网络协议(一):网络参考模型
网络参考模型就是一种指导思想、一种架构,或者叫一种规范,它把网络传输的过程划分成不同的抽象部分,并说明各个抽象部分的分工和协作关系。
ARPAnet Reference Model
1969 年 11 月,美国国防部高级研究计划管理局(ARPA,Advanced Research Projects Agency)开始建立一个命名为 ARPAnet 的网络,这就是互联网的前身,一个军事用途的网络。

刚开始 ARPAnet 只联结了 4 台主机,主机之间的数据交换也比较简单,所以它的网络连接方式只有三个过程:
- 程序处理 Application/Process
- 主机到主机传输 Host-to-host
- 网络接口发送 Network interface
后来 Mike Padlipsky 写了一本书,把这种网络连接方式归结为一种网络参考模型,叫 ARPANET Reference Model,简称 ARM,并发表了 RFC 871,我们一般称之为”三层网络模型”。
TCP/IP Reference Model
随着 ARPAnet 网络的逐渐发展,更多的主机接入,原来的架构和协议已经不够用了,研究人员把重点投向了第二代网络协议的研究,于是 TCP/IP 协议簇出现了。TCP/IP 簇使用的网络参考模型我们称之为”五层网络模型”。
TCP/IP 参考模型分为五层,每层负责的事情不一样:
-
物理层 Physical layer 为网络接口层提供物理连接,在其上串行传送比特流。通俗点就是通过物理设备把 0、1 这种数据发送出去,比如交换机、网线等。
-
数据链路层 Data Link layer 负责在网络节点间的线路上通过检测、流量控制和重发等手段,无差错地传送以帧为单位的数据,比如 ARP 协议。
-
网络层 Internet layer 网络层的任务就是选择合适的路由和交换节点,使源的传输层传下来的分组信息能够正确无误地按照地址找到目的地,并交付给相应的传输层,即完成网络的寻址功能,比如 IP 协议。
-
传输层 Transport layer 把应用层的用户数据切割和包装成报文,当报文较长时将它分割成若干分组,然后交给网络层进行传输,比如 TCP、UDP 协议。
-
应用层 Application layer 该层直接面向用户,主要任务是为用户提供应用的接口,即提供不同计算机间的文件传送、访问与管理等,比如 HTTP 协议。
当然也有人说 TCP/IP 参考模型是四层的,不是五层的。其实这么理解也是对的,TCP/IP 参考模型只是一种概念,并没有相关的标准。TCP/IP 协议里只要求能够提供给网络互连层(Internet layer)一个访问接口,以便在其上传递 IP 分组就可以,这一层次未被定义,所以具体的实现方法会随着网络类型的不同而不同。四层模型一般被叫做互联网网络模型(Internet Reference Model)。

OSI Reference Model
全称 Open Systems Interconnection Reference Model,中文大多翻译成”网络七层协议”,但实际上它不是一种协议,而是一种指导思想,翻译过来应该叫**“开放式系统互连参考模型”或”OSI 参考模型”**。
1978 年(或 1979 年),为了统一网络系统的体系结构,ISO(国际标准化组织)和 CCITT(国际电报电话咨询委员会)分别起草了定义网络模型的文档。1983 年,这两份文档合并,形成了开放系统互连的基本参考模型(the OSI Reference Model)。它把通信系统划分成七个不同的抽象层,每一层服务于上一层,并由下面的层提供服务。1984 年,该标准分别被列入了 ISO 标准(ISO 7498)和 CCITT 标准(X.200)。
OSI 参考模型分为七层:
-
物理层 Physical Layer 为数据链路层提供物理连接,在其上串行传送比特流。比如交换机、路由器等物理设备,通过网线、光缆、无线电等手段发送数据。
-
数据链路层 Data Link Layer 负责在网络节点间的线路上通过检测、流量控制和重发等手段,无差错地传送以帧为单位的数据。
-
网络层 Network Layer 选择合适的路由和交换节点,使源的传输层传下来的分组信息能够正确无误地按照地址找到目的地,并交付给相应的传输层,即完成网络的寻址功能。
-
传输层 Transport Layer 传输层是高低层之间衔接的接口层。数据传输的单位是报文,当报文较长时将它分割成若干分组,然后交给网络层进行传输。
-
会话层 Session Layer 对传输的报文提供同步管理服务,在两个不同系统的互相通信的应用进程之间建立、组织和协调交互。
-
表示层 Presentation Layer 主要任务是把所传送的数据的抽象语法变换为传送语法,即把不同计算机内部的不同表示形式转换成网络通信中的标准表示形式。
-
应用层 Application Layer 该层直接面向用户,是 OSI 中的最高层。主要任务是为用户提供应用的接口,即提供不同计算机间的文件传送、访问与管理,电子邮件的内容处理,以及不同计算机通过网络交互访问的虚拟终端功能等。
除了 OSI 参考模型外,还有一个非常重要的东西,那就是遵循这个参考模型而设计的一系列协议,OSI protocols。

简单来讲,发送数据时就是数据经过层层包装,包装成每一层能看得明白的信息,然后到了物理层转化成二进制流发送出去,再经过层层剥离把数据拿出来,最后完成数据的传输。
网络模型对比

由于 TCP/IP 协议簇在互联网上的统治地位,OSI 协议簇并没有真正推广开来。但由于 OSI 参考模型的标准文档做得比较好,并且经常被用于教学,所以 OSI 的七层网络模型反而深入人心。
延伸阅读: