ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Blog.002 封装解封装与各层之间通信图解

2021-05-12 19:35:52  阅读:164  来源: 互联网

标签:封装 数据 IP TCP 传输 头部 图解 Blog.002


本章目录

 

1.传输数据的封装解封装
  1.1传输数据的封装过程
  1.2传输数据的解封装过程
2.协议数据单元(PDU)
3.设备与层的对应关系
4.各层之间的通信过程

 

1.传输数据的封装解封装

  1.1传输数据的封装过程

  (1)应用层传输过程

    在应用层,数据被"翻译"为网络世界使用的语言——二进制编码数据。大家可以试想一下,人们需要通过计算机传输的数据形式千变万化、各式各样,有字母、数字汉字、图片、声音等。这些信息对于单纯通过弱电流传输的计算机来说太过于"复杂",因此这些方便人类识别的信息被应用层通过各种特殊的编码过程转换成二进制数据。这就是上面所描述的"翻译"过程,也是应用层在网络数据传输过程中最为核心的贡献。

  (2)传输层传输过程

    在传输层,上层数据被分割成小的数据段,并为每个分段后的数据封装TCP报文头部。应用层将人们需要传输的信息转换成计算机能够识别的二进制数据后,这些数据往往都是海量的。例如,一张高清晰的图片转换成二进制数据可能会有几百万甚至几千万位比特,一次性传输如此庞大的数据,一旦网络出现问题而导致数据出错就要重新传输,数据量过大也会增加出错的概率,最终可能导致网络资源耗尽。因此,将数据先分割成小段再逐段传输,一旦数据传输出现错误只需重传这一小段数据即可。

    在TCP头部有一个关键的字段信息——端口号,它用于标识上层的协议或应用程序,确保上层应用数据的正常通信。计算机是可以多进程并发运行的,如图2.6中的例子,左边的计算机在通过QQ发送信息的同时也可以通过IE浏览右边主机的Web页面,对于右边的主机就必须搞清左边主机发送的数据要对哪个应用程序实施通信。但是对于传输层而言,它是不可能"看懂"应用层传输数据的具体内容的,因此只能借助一种标识来确定接收到的数据对应的应用程序,这种标识就是端口号。

  (3)网络层传输过程

    在网络层,上层数据被封装上新的报文头部——IP头部。值得注意的是,这里所说的上层数据包括TCP头部,也就是说,这里的上层是指传输层。对于网络层而言,它是"看不懂"TCP包头中的内容的,无论是应用层的应用数据,还是TCP头部信息都属于上层数据。    

    在IP头部中有一个关键的字段信息——IP地址,它是由一组32位的二进制数组成的,用于标识网络的逻辑地址。回想刚才寄信的例子,我们在信封上填写了对方的详细地址和本地的详细地址,以保证收件人能够顺利收到信件。网络层的传输过程与其类似,在IP头部中包含目标IP地址和源IP地址,在网络传输过程中的一些中间设备,如路由器,会根据目标IP地址来进行逻辑寻址,找到正确的路径将数据转发到目的端主机。如果中间的路由设备发现目标的IP地址是不可能到达的,它将会把该消息传回发送端主机,因此在网络层需要同时封装目标 IP和源IP。

  (4)数据链路层传输过程

    在数据链路层,上层数据被封装一个MAC头部,其内部有一个关键的字段信息——MAC地址,它由一组48位的二进制数组成。在目前阶段,我们可以先把它理解为固化在硬件设备中的物理地址,具有全球唯一性。例如,之前讲解的网卡就有属于自己的唯一的MAC地址。和IP头部类似,在MAC头部也同时封装着目标MAC地址和源MAC 地址。

  (5)物理层传输过程

    无论在之前封装的报文头部还是上层的数据信息都是由二进制数组成的,在物理层,将这些二进制数字组成的比特流转换成电信号在网络中传输。

 

 

    如图可以看出,每一层数据是由上一层数据+本层首部信息组成的,其中每一层的数据 ,称为本层的协议数据单元,即PDU。
    应用层数据在传输层添加TCP报头后得到的PDU被称为 Segment(数据段),图示为TCP段。
    传输层的数据(TCP段)传给网络层,网络层添加IP报头得到的PDU被称为Packet(数据包);图示为IP数据包。
    网络层数据报(IP数据包)被传递到数据链路层,封装数据链路层报头得到的PDU被称为Frame(数据帧),图示为以太网帧。
    最后,帧被转换为比特,通过网络介质传输。这种协议栈逐层向下传递数据,并添加报头和报尾的过程称为封装。

  1.2 传输数据的解封装过程

    数据被封装完毕通过网络传输到接收方后,将进入数据的解封装过程,这将是封装过程的一个逆过程,如图所示。

 

    解封装,就是封装的逆过程,拆解协议包,处理包头中的信息,取出净荷中的业务信息数据封装和解封装是一对逆过程。数据的接收端从物理层开始,进行与发送端相反的操作,称为“解封装”,最终使应用层程序获取数据信息,使得两点之间的一次单向通信完成。需要说明的是,应用最为广泛的TCP/IP协议可以看作是OSI协议层的简化,它分为四层:数据链路层、网络层、传输层、应用层,其各层对应的数据封装与OSI大同小异。

 

2.协议数据单元(DPU)

    协议数据单元,是指在分层网络结构,例如在开放式系统互联(OSI)模型中,在传输系统的每一层都将建立协议数据单元(PDU)。

 

    对于OSI参考模型而言,每一层都是通过协议数据单元来进行通信的;而对于TCP/IP五层结构,也可以沿用这个概念。PDU(Protocol Data Unit,协议数据单元)是指同层之间传递的数据单位。例如∶TCP/IP五层结构体系中,上层数据被封装了TCP头部后,这个单元称为段(Segment);数据段向下传到网络层,被封装了IP头部后,这个单元称为包(Packet);数据包继续向下传送到数据链路层,被封装了MAC头部后,这个单元称为帧(Frame);最后帧传送到物理层,帧数据变成比特(Bits)流;比特流通过物理介质传送出去。

3.设备与层的对应关系

 

4.各层之间的通信过程

 

    (1)发送主机按照之前封装过程进行封装;

 

    (2)从发送主机物理网卡发出的电信号通过网线到达交换机,交换机将电信号转换成二进制数据送往交换机的数据链路层。因为交换机属于数据链路层的设备,所以它将可以查看数据帧头部的内容,但不会进行封装和解封装过程。当交换机发现数据帧头部封装的MAC地址不属于自己,它不会像终端设备那样将数据帧丢弃,而是根据该MAC地址将数据帧智能地转发到路由器设备,在转发前要重新将二进制数据转换成物理的电信号;

 

    (3)当路由器收到数据后,会拆掉数据链路层的MAC头部信息,将数据送达网络层,这样IP头部信息就"暴露"在最外面。路由器将检测数据包头部的目标IP地址信息,并根据该信息进行路由转发,智能地将数据报文转发到下一跳路由器上,在转发前要重新封装新的MAC头部信息,并将数据转换成二进制。

 

 

    从这个过程我们可以看出,数据在传输过程中不断地进行着封装和解封装的过程,中间设备属于哪一层就在哪一层对数据进行相关的处理,以实现设备的主要功能。也正因如此,我们称TCP/IP五层模型为"参考"模型,参考这五层模型可以帮助我们很好地研究网络中的设备以及设备工作过程中遵守的协议。

 

 

 

标签:封装,数据,IP,TCP,传输,头部,图解,Blog.002
来源: https://www.cnblogs.com/cityfell/p/14761256.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有