3.2 网络参考模型与通信协议

网络的运行是由许多不同领域的技术融合而来的,而融合的标准规范就在参考模型中。简单来说,设立模型的目的就是为了建立共同的规范或标准,因为网络的运行横跨全世界,如果不制定一套共同的运行标准,整个网络就无法协调运行起来。此外,为了让所有计算机都能互相沟通,就必须制定一套可以让所有计算机都能够“明白”的公开“对话”标准,这种标准就是“通信协议”(protocol)。

3.2.1 OSI参考模型

OSI参考模型是由“国际标准化组织”(International Standard Organization, ISO)在1988年的“政府开放系统互连框架文件”(Government Open Systems Interconnect Profile, GOSIP)中制定的,当时虽然要求厂商必须共同遵守,不过一直没有得到厂商的支持,但是OSI制定的标准有助于了解网络设备、通信协议等的运行架构,所以倒是一直被教育界拿来作为教学讨论的对象。OSI模型共分为七层,如图3-4所示。

图3-4 OSI参考模型示意图

  • 应用层

在这一层中运行的就是我们平常接触的网络通信软件,例如浏览器、文件传输软件、电子邮件软件等,它的目的在于建立用户与下层通信协议的沟通桥梁,并与网络连接的另一方相对应的软件进行数据传输。通常这一层的软件都采取主从模式。

  • 表示层

这一层的主要功能是让各个网络工作站点之间的数据格式保持一致,包含字符的转换、编码与解码、数据格式的转换等。例如万维网中有文字、图像、声音、视频等数据,而表示层负责制定网络连接双方共同的数据表示方式,例如文字编码方式、图像格式、视频文件格式等。

  • 会话层

会话层的作用是建立起网络连接双方应用程序互相沟通的方式,例如何时表示要求建立网络连接、何时终止连接、发送何种信号时表示接下来要传送文件,也就是建立和管理接收端与发送端之间网络连接的对话形式。例如,在网络游戏中就不能发生客户端按【箭头】键表示要移动游戏中的人物1格时,而服务器却认为要移动人物10格,这就是会话层中应该实现的规范。

  • 传输层

传输层的主要工作是为网络层与会话层提供一个可靠且高效的传输服务,例如TCP、UDP都是此层的通信协议。传输层所负责的任务就是将网络上所接收到的数据分发(传输)给对应的软件,例如将网页相关数据传送给浏览器或将电子邮件传送给邮件软件。这层也负责给上层应用程序的数据打包,指定接收的另一方该由哪一个软件来接收此数据并进行处理。

  • 网络层

网络层的工作是负责解读IP地址并决定数据要传送给哪一台主机,如果是在同一个局域网络中,就会直接传送给网络内的主机;如果不是在同一个局域网络中,就会将数据交给路由器,并由它来决定数据传送的路径,而目的网络的最后一个路由器再直接将数据传送给目的主机。

  • 数据链路层

数据链路层是OSI模型的第二层,主要负责数据“成帧”(Frame)及“解帧”(Deframe)处理,并决定数据的实际传送地址、流量与传送时间、错误检测的工作等。在考虑网络吞吐量的情况下,会将所接收的数据分组,分割为较小的信息帧,并在前后分别加上帧头和帧尾,让接收端进行识别。此外,数据链路层通常用于两个相同网络节点间的传输,因此像网卡、网桥或交换式集线器(Switch Hub)等设备都属于此层的产品。

  • 物理层

物理层是OSI模型的第一层,所处理的是真正的电子信号,主要的作用是定义网络信息传输时的物理规格,包含连接方式、传输介质、信号转换等,也就是对调制解调器、集线器、连接线与传输方式等加以规定。例如我们常见的“集线器”就是典型的物理层设备。

3.2.2 OSI DoD模型

因特网上所使用的TCP/IP协议是在1982年提出的,当时TCP/IP的架构又被称为TCP/IP模型,同年美国国防部(Department of Defense, DoD)将TCP/IP纳为它的网络标准,所以TCP/IP模型又被称为DoD模型,强调是以TCP/IP为主的因特网。DoD模型是一个既成事实的业界标准,并未经公信的标准机构标准化,但由于推行已久,加上TCP/IP协议的普及,因此被业界广泛采用。DoD模型的各层如图3-5所示。

图3-5 DoD模型的架构图

  • 应用层

应用层决定程序处理数据的范围以及如何提供服务,这一层的工作范围相当于OSI模型中的应用层、表示层与会话层三者所负责的工作范围,只不过在DoD模型中不如OSI模型区分得那么细致。例如,HTTP对应浏览器,SMTP/POP3对应邮件管理程序。

  • 传输层

传输层又称为主机对主机层(Host to Host Layer),主要功能是为两台不同计算机之间提供稳定且可靠的通信。将上层应用层的应用程序与下层网络层的复杂性相互隔离,应用层只需发出请求,而不用了解任务的详情,相当于OSI模型的传输层,这层用于负责处理数据的确认、流量控制、错误检测等事情,TCP与UDP是本层最具代表性的通信协议。

  • 互连层

互连层所负责的工作相当于OSI模型的网络层与数据链路层,决定数据如何传送到目的地,例如IP寻址、IP路径选择、MAC地址的获得等都是在这层中加以规范的。互连层就是通过路由器的IP协议与路由选择把数据分组送往目的地。

  • 链路层

链路层又称为网络接口层,所负责的工作相当于OSI模型的物理层,负责对硬件的沟通,将封装好的逻辑数据以实际的物理信号传送出去,还负责与数据链路层设备的沟通,例如以太网络、PPP及ISDN等设备。

OSI、DoD和TCP/IP协议套件的相关示意图如图3-6所示。

图3-6 OSI模型、DoD模型与TCP/IP协议套件的相关示意图