Menu Close

TCP/IP分层原理

对于网络通信的分层ISO国际标准组织与国际电工电子学会IEEE都有相应的标准。ISO在1970开始着手有关互联模型的开发与标准制定,1984年开放互联系统模型OSI model(Open System Interconnection model)正式被ISO采纳并发布。虽然后来的互联系统的结构与软件开发并没有完全遵循该开放模型,但作为概念性(conceptual)的结构模型,在网络教学方面一直备受重视。下面将ISO/OSI分层要求与各层特点进行介绍。

1. ISO/OSI的网络通信模型是分层的,分层模型遵循如下要点:

  • 每层的创建必须是特定需要的抽象
  • 每层的功能应符合国际标准协议
  • 层数应该足够大,使分割的功能放在不同的层中。同时层数也应有限制,不至于变得非常复杂,难以控制。
  • OSI的分层中应遵循本层依赖于低于本层的相邻层的服务,同时又对高于本层的相邻层提供服务。除了上下两层的服务与依赖,本层与其它各层不应发生依赖于服务的关系。
  • 某层的修改,不应引起其他层的功能和结构修改。
  • 协议层是对等的,如网络中的两个终端,

ISO/OSI最终采用7层协议,层次结构如图1所示。

IMG_256

图1.      ISO/OSI 7层协议

图1对应的各层的英文名称如图2,

IMG_256

图2    IOS/OSI 7 layers

2. ISO/OSI各层协议简介

    • 物理层(physical layer):建立、维护、断开物理连接。(由底层网络定义协议),该层包含物理介质,物理接口,电气接口,串并转换,信道编码等内容。为对应的上层(数据链路层)提供服务。
    • 数据链路层(Data Link layer):建立逻辑连接、进行硬件地址寻址、差错校验 等功能。本层接受底层(Physical layer)服务并对上层(Network layer)服务。在发送端将数据帧变成字节流传递到下层,在接收端将字节流组合成帧。Frame Header(MAC地址)用来进行寻址,一般由于局域网的寻址。差错校验用于检验数据包在通信过程中是否发生错误,但一般不做错误纠正,互联网的数据链路层一般采用CRC32作为数据帧的校验。
    • 网络层(Network Layer):进行逻辑地址寻址,实现不同网络之间的路径选择。协议有:ICMP IGMP IP(IPV4 /IPV6)等。网络层的下层为数据链路层,本层接受数据链路层的服务,并服务与上层(Transport Layer)。
    • 传输层(Transport Layer):定义传输数据的协议端口号,端口号对应不同的主机服务程序。传输层差错校验。协议有:TCP或 UDP,TCP(Transport control protocol)为传输控制协议,是面向连接的服务,有流控等措施,有出错处理,超时重发等功能,在计算机服务系统中,该部分内容由操作系统自动处理,;而UDP(User Datagram Protocol)为用户数据报协议,是无连接的服务,没有流控,差错控制,超时重发等措施。
    • 会话层(Session layer):建立、管理、终止会话。对应主机进程,指本地主机与远程主机建立或正在进行的会话。该层协议一般称为 X.225 或 ISO 8327。因此通信是否建立以及持续多长时间,由本层决定。会话层接受传输层的服务,并服务于上层表示层(Presentation Layer)。
    • 表示层(Presentation Layer):数据的分段、安全、压缩等,提供不同网络点之间的可靠传输。格式有,JPEG、ASCll、EBCDIC、加密格式等。
    • 应用层:网络服务与最终用户的一个接口,决定数据最终的展现形式。协议有:HTTP 、FTP、 TFTP、 SMTP、 SNMP 、DNS、 TELNET 、HTTPS、 POP3 、DHCP等。

3. TCP/IP模型

TCP/IP模型最早由美国国防部(USDOD, United State Department of Defence)资助并研究,由美国国防高级研究计划局(Defense Advanced Research Projects Agency),简称DARPA负责开发与研究,最终得到一系列成果,在使用中一般称为协议栈。

  • TCP/IP模型的构成

TCP/IP模型总共有四层,分别为数据连路程,网络层,传输层和应用层。与OSI模型对比如图3所示。

IMG_256

图3    OSI模型与TCP/IP模型对比图

  • TCP/IP模型与OSI模型对比

从图3对比图可以看出,在TCP/IP的模型中数据链路层将OSI模型中的物理层与数据链路层合并,统一抽象成数据链路层,同时将OSI模型中的会话层,表示层以及应用层统一合并成应用层。

实际应用中数据链路层还是分割为物理层(Physical Layer 简称Phy)和MAC(Media attachment control)层。网络层与原OSI模型7层协议中的网络层一致,一般会称为IP层,或第3层。传输层与ISO/OSI模型中的传输层一致,包含TCP,UDP协议。

虽然在互联网教学中会经常引用ISO/OSI的7层模型结构,但在实际的网络应用及编程中都是采用TCP/IP模型。后续的文章中会介绍TCP/IP模型的由来、相关的协议标准以及编程和应用细节。

  • 网络接口层

在TCP/IP的模型中又经常将数据链路层拆分成两个部分,类似OSI模型中的物理层和数据链路层。把这两部分合在一起统称网络接口层。因此,TCP/IP模型在讨论中也可以看成5层模型。因此在讨论TCP/IP模型时要注意上下文的对应,网路接口层如图4所示。

%title插图%num

图4

4. 对等层的概念

在TCP/IP模型中,4层协议具有高度抽象的特点,将相关协议与功能函数都在汇聚在对应的分层中解决,如网络层汇集的协议族为IP相关的各种协议,该部分协议主要完成网络数据包的寻址及路由以及由此产生的各种子功能和子协议。因此形成了对等层的概念,例如源主机(Source Host)与目的主机(Destination Host)之间的通信中。我们可以通俗的认为二者之间进行对话,从高层的角度看,首先对话的是应用层(Application)之间的对话,也就是源主机的应用层与目的主机的应用层可以相互理解,并能相互应答。而应用层与其它各层完全可以不需要理解和应答。因此可以认为两个应用层之间建立虚拟的连接。也就是在源主机应用层发送的数据内容,数据格式、数据长度等在目的主机的接收端都能理解并能够处理,并不关心数据是经过何种途径或何种方法传送过来的。其它各层也一样,如IP层与IP层之间相互理解,传输层与传输层之间相互理解,数据链路层与数据链路层之间可以相互理解。因此在网络编程中也希望各层之间相互分离,独立编程,耦合原则是相邻层之间若耦合,非相邻层之间尽量不耦合。图4描述了源主机与目的主机之间的对等的概念。图5描述了对等层及数据流向。

%title插图%num

图5.    TCP/IP模型中的对等层

%title插图%num

图6 互联网数据流模型

5. TCP/IP封装

  • 数据封装

TCP/IP各层之间需要数据封装,一般称为打包。发送端打包如7所示,应用层数据准备好后传递给传输层,传输层将应用层的数据进行打包,打包的过程就是在应用层数据前加上传输层的头部数据,该头部数据将描述应用层数据的特性,如数据长度,对应哪个应用层(端口号),以及通信中数据是否损坏,数据是否需要拆分等。将打包后的数据包作为整体传送给网络层,网络层得到传输层的数据后继续打包,过程与上面描述的过程类似。一直将打包过程持续到物理层。打包过程以及各个头部数据的内容,在后续章节中将会详细讲解。

%title插图%num

图7    数据的封装过程

  • 解封装与数据还原

%title插图%num

图7    解封装与数据还原

图7 描述了接收端数据解封装与数据还原的过程。首先从物理层开始解封装,把各个层头文件剥离,将对应的数据逐级交给上一层,最终将应用层的数据还原后成功得交给应用层。解包过程以及各个头部数据的内容,在后续章节中将会详细讲解。

可见发送端如何打包数据,在接收端将以相反得过程解包。注意在物理层的数据封装仅仅是个示意图,并不代表在物理层一定要加物理层的包头,但物理层可能处理更复杂变换,如信道编码,调制/解调,均衡的一系列操作,便于数据可以在相应的信道上进行传输。

8.  TCP/IP模型各层支持得协议及应用

表1

TCP/IP 层 协议及应用程序
应用层 HTTP FTP Telnet SMTP DNS
传输层 TCP UDP
网络层 IP ARP ICMP IGMP
链路层 Ethernet Token Ring 其它

表1中描述的各个协议将会在后续课程中详细介绍。

总结:本文介绍两种模型的网络分层结构,并将OSI模型与TCP/IP模型做了比较。之后将TCP/IP模型中的各层协议及封装做了介绍,为后续课程的介绍打下基础。

 

Posted in FPGA, 教材与教案, 文章, 资料区

发表评论

相关链接