3.1 网络体系结构与协议概述
3.1.1 网络体系结构的概念
体系结构(Architecture)是研究系统各部分组成及相互关系的技术科学。计算机网络体系结构是指整个网络系统的逻辑组成和功能分配,定义和描述了一组用于计算机及其通信设施之间互连的标准和规范的集合。研究计算机网络体系结构的目的在于定义计算机网络各个组成部分的功能,以便在统一的原则指导下进行计算机网络的设计、建造、使用和发展。
3.1.2 网络协议的概念
从最根本的角度上讲,协议就是规则。例如,在公共交通公路上行驶的各种交通工具需要遵守交通规则,这样才能减少交通阻塞,有效地避免交通事故的发生。又如,不同国家的人使用的是不同的语言,如果事先不约定好使用同一种语言,那么进行沟通时将会非常困难。
在计算机网络的通信过程中,数据从一台计算机传输到另一台计算机称为数据通信或数据交换。同理,网络中的数据通信也需要遵守一定的规则,以减少网络阻塞,提高网络的利用率。网络协议就是为进行网络中的数据通信或数据交换而建立的规则、标准或约定。连网的计算机以及网络设备之间要进行数据与控制信息(一种用于控制设备如何工作的数据)的成功传递就必须共同遵守网络协议。
网络协议主要由以下3个要素组成。
(1)语法(Syntax)。语法规定了通信双方“如何讲”,即确定用户数据与控制信息的结构与格式。
(2)语义(Semantics)。语义规定通信的双方准备“讲什么”,即需要发出何种控制信息,完成何种动作以及做出何种应答。
(3)时序(Timing)。时序又可称为“同步”,规定了双方“何时进行通信”,即事件实现顺序的详细说明。
下面以两个通话人为例来说明网络协议的概念。
甲要打电话给乙,首先甲拨通乙的电话号码,对方电话振铃,乙拿起电话,然后甲、乙开始通话,通话完毕后,双方挂断电话。在这个过程中,甲、乙双方都遵守了打电话的协议。其中,电话号码是“语法”的一个例子,一般电话号码由8位阿拉伯数字组成,如果是长途就要加区号,国际长途还有国家代码等;甲拨通乙的电话后,乙的电话会振铃,振铃是一个信号,表示有电话打进,乙选择接电话,这一系列的动作包括了控制信号、相应动作等,就是“语义”的例子;“时序”的概念更好理解,因为甲拨通了电话,乙的电话才会响,乙听到铃声后才会考虑要不要接,这一系列事件的因果关系十分明确,不可能没有人拨乙的电话而乙的电话会响,也不可能在电话铃没响的情况下,乙拿起电话却从话筒里传出甲的声音。
3.1.3 网络协议的分层
计算机网络是一个非常复杂的系统,因此网络通信也比较复杂。网络通信的涉及面极广,不仅涉及网络硬件设备(如物理线路、通信设备、计算机等),还涉及各种各样的软件,所以用于网络的通信协议必然很多。实践证明,结构化设计方法是解决复杂问题的一种有效手段,其核心思想就是将系统模块化,并按层次组织各模块。因此,在研究计算机网络的结构时,通常也按层次进行分析。
1.分层的好处
计算机网络中采用分层体系结构,主要有以下一些好处。
(1)各层之间可相互独立。高层并不需要知道低层是采用何种技术来实现的,而只需要知道低层通过接口能提供哪些服务。每一层都有一个清晰、明确的任务,实现相对独立的功能,因而可以将复杂的系统性问题分解为一层一层的小问题。当属于每一层的小问题都解决了,那么整个系统的问题也就接近于完全解决了。
(2)灵活性好,易于实现和维护。如果把网络协议作为一个整体来处理,那么任何方面的改进必然都要对整体进行修改,这与网络的迅速发展是极不协调的。若采用分层体系结构,由于整个系统已被分解成了若干个易于处理的部分,那么这样一个庞大而又复杂的系统的实现与维护也就变得容易控制了。当任何一层发生变化时(如技术的变化),只要层间接口保持不变,则其他各层都不会受到影响。另外,当某层提供的服务不再被其他层需要时,可以将该层直接取消。
(3)有利于促进标准化。这主要是因为每一层的协议已经对该层的功能与所提供的服务做了明确的说明。
2.各层次间的关系
前面已经讲到了,网络协议都是按层的方式来组织的,每一层都建立在下一层之上。不同的网络,其层次数、各层的名字、内容和功能都不尽相同。然而,在所有的网络中,每一层的目的都是向上一层提供一定的服务,而上一层根本不需要知道下一层是如何实现服务的。
每一对相邻层次之间都有一个接口(Interface),接口定义了下层向上层提供的原语操作(即命令)和服务,相邻两个层次都是通过接口来交换数据的。当网络设计者在决定一个网络应包括多少层、每一层应当做什么的时候,其中一个很重要的考虑就是要在相邻层次之间定义一个清晰的接口。为达到这些目的,又要求每一层能完成一组特定的有明确含义的功能。低层通过接口向高层提供服务。只要接口条件不变、低层功能不变,低层功能的具体实现方法与技术的变化就不会影响整个系统的工作。计算机网络的层次模型如图3-1所示。
图3-1 计算机网络的层次模型
每一层中的活动元素通常称为实体(Entity)。实体既可以是软件实体(如一个进程),也可以是硬件实体(如智能输入/输出芯片)。不同通信节点上的同一层实体称为对等实体(Peer Entity)。例如,网络中一个通信节点上的第3层与另一个通信节点上的第3层进行对话时,通话双方的两个进程就是对等实体,通话的规则即为第3层上的协议。在计算机网络中,正是对等实体利用该层的协议在互相通信。但是在实际的通信过程中,数据并不是从节点1的第3层直接传送到节点2的第3层,而是每一层都把数据和控制信息交给下一层,直到第1层。第1层下面是物理传输介质,进行实际的数据传输。对等实体间的通信过程如图3-2所示。
图3-2 对等实体间通信示意图
3.层次间的关系举例
下面通过一个例子更好地说明网络通信的实质。
假设有甲、乙两个董事长(第3层中的对等实体),董事长甲是中国人,在成都;董事长乙是法国人,在巴黎,他们要进行对话。两个董事长的办公室都有两位工作人员:翻译(第2层中的对等实体)和秘书(第1层中的对等实体)。两者的对话过程如图3-3所示。
图3-3 甲、乙董事长的对话过程
董事长甲希望向董事长乙表达他的看法。那么,甲把“我认为我们应该合作完成这项工程”这一信息通过甲与其翻译的交接处(第3层与第2层之间的接口)传给甲的翻译。翻译根据翻译协会规定的方法(第2层的协议)把这句话翻译成英文“I think we should cooperate to do this project”。(注意:甲不必关心其翻译是通过什么工具进行的。)
接下来,董事长甲的翻译把该英文信息通过他与秘书的交接处(第2层与第1层之间的接口)交给董事长甲的秘书,以传递到巴黎。(注意:董事长甲的翻译不必关心秘书是用传真的方式还是用电子邮件的方式把英语句子传递到董事长乙的秘书那里,假定甲的秘书是用传真这种通信方式把翻译传递来的英文信息传到董事长乙的公司。)
董事长乙的秘书从传真机上取出传真纸,通过他与乙的秘书的交接处(第1层与第2层之间的接口)把那句英文交给董事长乙的翻译;董事长乙的翻译将其翻译成法语后通过他与乙的交接处(第2层与第3层之间的接口)再传给董事长乙,从而完成甲与乙的通信。(注意:董事长乙也不需要了解他的翻译是如何进行的。)
从上面这个例子可以看出:每层的实体所遵循的协议与其他层的实体所遵循的协议完全无关,在通信过程中,只要求该层的功能不变以及该层与其他层的接口保持不变。而且,低层的每一层都可能增加一些被对等实体所需要的信息,但这些信息一般不会被传递到对等实体之上的层。
3.1.4 其他相关概念
1.服务
服务位于层次接口的位置,表示低层为上层提供哪些操作功能,至于这些功能是如何实现的,完全不是服务考虑的范畴。
2.面向连接服务和无连接服务
服务分为面向连接服务和无连接服务。面向连接服务就像打电话,有一个明显的拨通电话、讲话、再挂断电话的过程,即面向连接服务的提供者要进行建立连接、维护连接和拆除连接的工作。这种服务的最大好处就是能够保证数据高速、可靠和顺序地传输。无连接服务就像发电报,电报发出后并不能马上确认对方是否已收到。因此,无连接服务不需要维护连接的额外开销,但是可靠性较低,也不能保证数据的顺序传输。
3.服务访问点(Service Access Point)
服务访问点是相邻两层实体之间通过接口调用服务或提供服务的联系点。
4.协议数据单元(Protocol Data Unit,PDU)
协议数据单元是对等实体之间通过协议传送的数据单元。
5.接口数据单元(Interface Data Unit,IDU)
接口数据单元是相邻层次之间通过接口传送的数据单元,接口数据单元又称为服务数据单元(Service Data Unit,SDU)。