5.5 网络协议
5.5 网络协议
一个物理硬件连接成功的计算机网络要想实现通信离不开网络协议的支持。 网络协议是为进行网络中的数据交换而建立的规则、标准或约定,计算机网络中的数据交换必须遵守事先约定好的规则。 计算机之间的通信是一项非常复杂的工作,因此,一般将网络按功能进行分层,使每层的功能便于实现和管理,并为每个层次设计了不同的协议。
5.5.1 OSI七层模型
由于计算机网络的复杂性,为整个网络设计一个协议是不现实的,因此在计算机网络中采用了分层的思想,将计算机网络划分为多个层次,不同层次实现不同功能,分层之后,各层之间是独立的,某一层并不需要知道其他层是如何工作的,它只需为其上层提供相应的服务即可。在计算机网络的对等层之间,通信双方采用设计好的双方都必须遵守的协议来进行通信。 这样的分层结构使得每层都可以采用最适合的技术来实现,使得整个计算机网络便于实现和维护。 网络中如何分层,以及各层中具体采用的协议总和称为网络体系结构。 因此计算机网络的体系结构就是指计算机网络的各层及其协议的集合。
20世纪70年代中期,计算机网络的研究和设计进入了一个新的阶段,为了创建一个国际通用的计算机网络体系结构标准,国际标准化组织ISO于1983年提出了开放系统互联(open systeminterconnection)参考模型,即OSI标准。 此标准将网络分为7层,即物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 如图5.5所示为OSI/RM模型。
其中,传输层以下为通信子网,它是网络的内层,负责完成网络数据传输、转发等通信处理任务。 传输层以上为资源子网,它是网络的外围,提供各种网络资源和网络服务。

图5.5 OSI/RM模型
1)物理层
物理层的主要任务是实现透明的传输二进制的比特流,其目的是屏蔽通信手段的差异,为上面的数据链路层提供服务。 物理层确定了与传输媒体的接口相关的一些特性,为计算机网络的组网提供了指导。 其中物理层确定的特性包括:指明接口所用接线器的形状、尺寸和引线数目等的机械特性,指明在接口电缆的各条线上出现的电压范围的电气特性,指明某条线上出现的某一电平的电压表示何种意义的功能特性,指明对于不同功能的各种可能事件出现顺序的过程特性。 简单地说,物理层是面向比特流的,它屏蔽了物理层使用的各种通信介质本来存在的差异性,使得这种差异性对于上层而言是透明的,而且物理层保证了当发送数据时,接收方能够接收到数据。
2)数据链路层
物理层实现了数据流的传输,但是数据在传输过程中有可能受到电磁干扰而产生错误,因此物理层交付给上层的数据有可能存在问题,物理层实现的是不可靠的通信。 数据链路层的主要功能是如何在本来不可靠的物理线路上进行数据的可靠传递,也就是说,当接收方接收到数据1时,能够判定发送方的确发送的是数据1而不是数据0。 这样,数据链路层就可以把本来可能出错的物理传输线路转换成了一条可靠的逻辑传输线路。 为了能够提供可靠的传输信道,数据链路层采用了差错校验技术,对于收到的数据进行差错检测,确保交付给上层的是正确的数据。 而对于共享线路的广播式网络,信道的共享也是问题。
3)网络层
网络层的主要功能是形成一个虚拟互联网络,屏蔽下层的各种不同点,并能够在这个虚拟互联网络上标识每一台计算机,此外,网络层应该能够将虚拟互联网中标识每一台计算机的网络地址翻译成计算机对应的物理地址,并将信息发送到目的地址。 网络层向传输层提供的服务是无连接的数据报服务。 数据报服务不需事先建立连接,因此,网络层对传输层提供的是无连接的、尽最大努力交付的服务。 因特网在设计时,采用的就是数据报服务。
4)传输层
传输层提供端到端的交换数据的机制。 传输层对会话层等高三层提供可靠的传输服务,对网络层提供可靠的目的地站点信息,它向高层用户屏蔽了下面网络核心的细节,它能够按照网络能处理的最大尺寸将较长的数据包进行强制分割。 此外,传输层采用端口机制实现了分用/复用技术,将上层交付的数据通过不同的端口发送给网络层,从而在接收方接收到数据时能够识别数据应该交付的应用程序,同时,在传输层用基于接收方可接收数据的快慢程度来规定适当的发送速率,实现了流量控制,并且采用了响应的协议进行拥塞控制。 在传输层提供了两种不同的协议,面向连接的TCP和无连接的UDP。 TCP提供面向连接的服务,在传送数据之间必须先建立连接,数据传送结束后释放连接。 UDP在传送之前不需要建立连接,接收方在接收到UDP报文后,不需要给出确认。
5)会话层
会话层负责在网络中的两个节点之间建立、维持和终止通信,允许不同机器上的用户之间建立会话。
6)表示层
不同的计算机体系结构使用的数据表示法不同,表示层的主要作用之一是为不同的计算机通信提供一种公共语言,以便能进行互操作。 表示层关心的是节点之间所传递的信息的语法和语义。 表示层定义一种抽象的、两个节点都能够理解的数据结构来完成两个节点的通信,同时表示层还会定义一个编码方法用来表示数据。 表示层在进行数据传递时,采用这样的数据结构和编码方法;此外,数据的压缩、解压、加密、解密都在该层完成。
7)应用层
应用层是开放互联参考模型的最高层,是直接为应用进程提供服务的,负责对软件提供接口,以使程序能使用网络服务,其作用是在实现多个系统应用进程相互通信的同时,完成一系列业务处理所需的服务。 在应用层中包含了各种各样的协议,而这些协议一般是针对用户的某个应用功能开发的。 现在普遍使用的协议有HTTP,FTP等协议。 一般来说,应用层提供的服务包括文件传输、文件管理和电子邮件的信息处理,一些新的应用层协议也在不断地被开发出来,如RTSP(实时流传输协议)等。
5.5.2 TCP/IP协议
ISO/RM参考模型是国际化标准组织制订的一个网络标准,但是由于各种原因,这一标准并没有在实际中得到应用。 而TCP/IP模型发展于20世纪70年代,是一个得到广泛应用的协议簇,也是现在事实上的网络标准。 TCP/IP模型把网络分为了4个层次,即网络接口层、互联网络层、传输层和应用层。这两种标准的对应关系如图5.6所示。

图5.6 两种模型的对比图