数据封装和解封装、数据传输单位

在两台主机通信的过程中,数据在经过网络时会进行封装和解封装。下面详细解释下封装和解封装的过程。

 

 一、数据封装

 

比如说用户要发送hello这个英文单词,我们称要发送的这个英文单词为原始数据,即用户真正想要传输的数据。数据在上三层即应用层、表示层、会话层是不发生任何变化的。相当于用户在应用层发送了数据,数据直接透传到传输层。当数据来到传输层的时候,传输层会在这个数据上打上一个或者是TCP或者是UDP的头部,传输层一共工作着两个协议,即TCP/UDP协议。然后数据会在往下传,传到网络层,网络层会再在四层头部的外面添加上一个三层的IP头部。然后在往下传,传到数据链路层,数据链路层会在三层头部的外面在添加上一个二层的MAC头部,并在最后边添加上一个用于错误检测恢复的FCS,FCS叫做帧校验序列和。最终数据链路层把数据封装好之后,它给到物理层,物理层在把二层封装好的数据转换成比特流的形式,通过我们的有线网络或者无线网络传过去。这就是数据发送过程中的一个自上而下的封装过程。如下图所示:

 

 

 

二、数据解封装

 

当数据到达接收方之后,接收方需要对数据进行解封装。物理层把数据收过来,然后给到数据链路层,数据链路层先把二层的头部MAC和尾部FCS拆掉,拆掉之后给到网络层,网络层再把IP头部拆掉,在给到传输层,传输层再把4层的TCP或者UDP头部拆掉,最后露出原始数据给到会话层,在由会话层直接将原始数据透传到应用层,然后由接收者正常的接收数据。所以我们可以发现数据的解封装完全执行的是相当于封装的逆运算。解封装过程如下图所示:

 

 

 

最后概括一下,发送者和接收者在传递一个数据的时候,发送者是自上而下的封装,而接收者是自下而上的解封装。

 

三、传输单位

数据在每一层有不同的传输单位。发送方在将数据发送出来之后,数据在经过上三层时是不发生任何变化的,那么数据在上三层的时候有一个单位名称,叫做PDU,PDU叫做协议数据单元,即 protocol data unit 。当数据来到第四层之后,我们知道这时候四层会给数据加一个TCP/UDP头部,那么封装之后,此时的数据就不叫PDU了,而叫做数据段segment。接着到了网络层之后,网络会在四层头部的外面在加一个IP头部,在添加完IP头部之后,此时的数据叫做数据包packet。在数据链路层封装完之后,此时的数据就叫做数据帧frame。然后在给到物理层,由物理层转化为0101的二进制比特流。如下图所示:

 

 

posted @ 2022-07-22 16:30  云计算成长路  阅读(1250)  评论(0编辑  收藏  举报