7.3 计算机网络协议与体系结构
7.3.1 网络协议
数据交换、资源共享是计算机网络的最终目的。要保证有条不紊地进行数据交换,合理地共享资源,各个独立的计算机系统之间必须达成某种默契,严格遵守事先约定好的一整套通信规程,包括严格规定要交换的数据格式、控制信息的格式和控制功能以及通信过程中事件执行的顺序等。这些通信规程我们称之为网络协议(Protocol)。
网络协议主要由以下三个要素组成:
(1)语法,即用户数据与控制信息的结构或格式。
(2)语义,即需要发出何种控制信息,以及完成的动作与做出的响应。
(3)时序,是对事件实现顺序的详细说明。
协议分层:
网络协议对计算机网络是不可缺少的,一个功能完备的计算机网络需要制定一整套复杂的协议集。
对于结构复杂的网络协议来说,最好的组织方式是层次结构,计算机网络的协议就是分层的,层与层之间相对独立,各层完成特定的功能,每一层都为上一层提供某种服务,最高层为用户提供诸如文件传输、电子邮件、打印等网络服务。
协议分层的原因有以下几点:
(1)分层有助于网络的实现和维护。
(2)分层有助于技术发展。
(3)分层有助于网络产品的生产。
(4)分层能促进标准化工作。
7.3.2 网络体系结构
计算机网络的协议是按照层次结构模型来组织的,我们将网络层次结构模型与计算机网络各层协议的集合称为网络的体系结构或参考模型。
世界上第一个网络体系结构是IBM公司于1974年提出的,命名为“系统网络体系结构SNA”。在此之后,许多公司纷纷提出了各自的网络体系结构,如DEC公司的“数字网络体系结构DNA”、Honeywell公司的“分布式系统体系结构DSA”等。
这些网络体系结构的共同之处在于它们都采用了分层技术,但层次的划分、功能的分配与采用的技术术语均不相同,结果导致了不同网络之间难以互连。
1977年,国际标准化组织提出了开放系统互连参考模型(OSI,Open System Interconnection)的概念,1984年10月正式发布了整套OSI国际标准。
OSI参考模型将网络的功能划分为7个层次:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。如图所示。
物理层
位于OSI参考模型的最底层,提供一个物理连接,所传数据的单位是比特。
其功能是对上层屏蔽传输媒体的区别,提供比特流传输服务。也就是说,有了物理层后,数据链路层及以上各层都不需要考虑使用的是什么传输媒体,无论是用双绞线、光纤,还是用微波,都被看成是一个比特流管道。
数据链路层
负责在各个相邻节点间的线路上无差错地传送以帧(Frame)为单位的数据。每一帧包括一定数量的数据和一些必要的控制信息。
其功能是对物理层传输的比特流进行校验,并采用检错重发等技术,使本来可能出错的数据链路变成不出错的数据链路,从而对上层提供无差错的数据传输。
换句话说,就是网络层及以上各层不再需要考虑传输中出错的问题,就可以认定下面是一条不出错的数据传输信道,把数据交给数据链路层,它就能完整无误地把数据传给相邻节点的数据链路层。
网络层
计算机网络中进行通信的两台计算机之间可能要经过多个节点和链路,也可能要经过多个通信子网,网络层数据的传送单位是分组或包(Packet),它的任务就是要选择合适的路由,使发送端的传输层传下来的分组能够正确无误地按照目的地址发送到接收端,使传输层及以上各层设计时不再需要考虑传输路由。
传输层
在发送端和接收端之间建立一条不会出错的路由,对上层提供可靠的报文传输服务。
与数据链路层提供的相邻节点间比特流的无差错传输不同,传输层保证的是发送端和接收端之间的无差错传输,主要控制的是包的丢失、错序、重复等问题。
会话层
会话层虽然不参与具体的数据传输,但它却对数据传输进行管理。
会话层建立在两个互相通信的应用进程之间,组织并协调其交互。例如,在半双工通信中,确定在某段时间谁有权发送,谁有权接收;或当发生意外时(如已建立的连接突然断了),确定在重新恢复会话时应从何处开始,而不必重传全部数据。
表示层
表示层主要为上层用户解决用户信息的语法表示问题,其主要功能是完成数据转换、数据压缩和数据加密。
表示层将欲交换的资料从适合于某一用户的抽象语法变换为适合于OSI系统内部使用的传送语法。有了这样的表示层,用户就可以把精力集中在他们所要交谈的问题本身,而不必更多地考虑对方的某些特性。
应用层
应用层是OSI参考模型中的最高层。应用层确定进程之间的通信性质以满足用户的需要,负责用户信息的语义表示,并在两个通信者之间进行语义匹配。这就是说,应用层不仅要提供应用进程所需要的信息交换等操作,而且还要作为互相作用的进程的用户代理,来完成一些为进行语义上有意义的信息交换所必需的功能。
OSI模型各层主要功能的归纳总结
应用层:与用户应用进程的接口,即相当于“做什么?”
表示层:数据格式的转换,即相当于“对方看起来像什么?”
会话层:会话的管理与数据传输的同步,即相当于“轮到谁讲话和从何处讲?”
传输层:从端到端经网络透明地传送报文,即相当于“对方在何处?”
网络层:分组交换和路由选择,即相当于“走哪条路可到达该处?”
数据链路层:在链路上无差错的传送帧,即相当于“每一步该怎么走?”
物理层:将比特流送到物理媒体上传送,即相当于“对上一层的每一步应该怎样利用物理媒体?”
OSI模型各层主要功能的归纳总结
OSI参考模型的网络功能可分为三组,下两层解决网络信道问题,第三、四层解决传输服务问题,上三层处理应用进程的访问,解决应用进程通信问题。
Internet 参考模型
TCP/IP协议是1974年由Vinton Cerf和Robert Kahn开发的,随着Internet的飞速发展,TCP/IP协议现已成为事实上的国际标准。TCP/IP协议实际上是一组协议,是一个完整的体系结构。如图所示。

OSI参考模型与TCP/IP参考模型的比较:
TCP/IP参考模型中没有数据链路层和物理层,只有网络与数据链路层的接口,可以使用各种现有的链路层、物理层协议。
TCP/IP模型的网际层(也称互联层)对应于OSI模型的网络层,包括IP(网际协议)、ICMP(网际控制报文协议)、IGMP(网际组报文协议)以及ARP(地址解析协议),这些协议处理信息的路由以及主机地址解析。
传输层对应于OSI模型的传输层,包括TCP(传输控制协议)和UDP(用户数据报协议),这些协议负责提供流控制、错误校验和排序服务,完成源到目标间的传输任务。
应用层对应于OSI模型的应用层、表示层和会话层,它包括了所有的高层协议,并且不断有新的协议加入。
常用的应用层协议:
(1)超文本传输协议HTTP,用来传递制作的网页文件。
(2)文件传输协议FTP,用于实现互联网中交互式文件传输功能。
(3)电子邮件协议SMTP,用于实现互联网中电子邮件传送功能。
(4)网络终端协议TELNET,用于实现互联网中远程登录功能。
(5)域名服务DNS,用于实现网络设备名字到IP地址的映射服务。
(6)路由信息协议RIP,用于网络设备之间交换路由信息。
(7)简单网络管理协议SNMP,用来收集和交换网络管理信息。
(8)网络文件系统NFS,用于网络中不同主机间的文件共享。
TCP/IP与OSI参考模型的对比:
OSI参考模型与TCP/IP参考模型都采用了层次结构的概念,但二者在层次划分与使用的协议上是有很大区别的。
OSI参考模型概念清晰,但结构复杂,实现起来比较困难,特别适合用来解释其他的网络体系结构。
TCP/IP参考模型在服务、接口与协议的区别尚不够清楚,这就不能把功能与实现方法有效地分开,增加了TCP/IP利用新技术的难度,但经过30多年的发展,TCP/IP模型赢得了大量的用户和投资,伴随着Internet的发展而成为目前公认的国际标准。


