网络协议(一):网络参考模型
网络参考模型就是一种指导思想,一种架构,或者叫一种规范,它把网络传输的过程划分成不同的抽象部分,并说明各个抽象部分的分工和协作关系。
ARPAnet Reference Model
1969年11月,美国国防部 高级研究计划管理局( ARPA 全称: Advanced Research Projects Agency)开始建立一个命名为ARPAnet的网络,这是就是互联网的前身,一个军事用途的网络。
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参考模型,我们称之为“五层网络模型”。
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)
UDP协议数据包装过程OSI Reference Model
全称Open Systems Interconnection Reference Model,中文我们大多翻译成“网络七层协议”,但实际上它不是一种协议,它是网络参考模型,是一种指导思想,翻译过来应该叫“开放式系统互连参考模型”,或者“OSI参考模型”。
1978年(或1979年),为了统一网络系统的体系结构,ISO(International Standards Organization国际标准化组织)和CCITT(International Telegraph and Telephone Consultative Committee国际电报电话咨询委员会)分别起草了定义网络模型的文档。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参考模型外,还有一个非常重要的东西,那就是遵循这个参考模型而设计的一系列协议,OSI protocols。
看张图吧:
OSI Model七层划分和OSI Protocols工作原理
简单来讲发送的数据的时候就是数据经过层层包装,包装成每一层能看得明白的信息,然后到了物理层转化成了二进制流,发送出去,再经过层层剥离,把数据拿出来,最后就完成了数据的传输。
网络模型对比
网络模型对比图由于TCP/IP协议簇在互联网上的统治地位,OSI协议簇并没有真正的推广开来。但是由于OSI参考模型的标准文档做得比较好,并且经常被用于教学,所以OSI的七层网络模型反而深入人心。
延展阅读
http://www.tutorialspoint.com/internet_technologies/internet_reference_models.htm
http://www.cnblogs.com/onepeace/p/4680147.html
http://www.csn.ul.ie/~heathclf/fyp/fyp-final/node14.html