什么是数据封装与解封装
在我们数据传输过程中要遵循对等层次通信,每一层都与另一方对等层次进行通信,网络层-网络层、数据链路层-数据链路层。而这些对等通信,并非直接进行的。而是由下层逐层封装来完成对等层交换数据,这就是我们数据的封装,而解封装,就是上层需要与下层进行通信,于是逐层解封装至目标层进行通信。
这里的上下层就是指的网络参考模型的层次
上面可能说的有点复杂不易于理解,可以记住下面这句话:
数据发送时,从上至下逐层封装
数据接收时,从下至上逐层解封装
只有拆除外层封装,才能看到内层封装
TCP/IP 五层模型对应每层格式
数据封装的流程
1.数据从应用层发出,进入传输层
在传输层
会为我们数据打上TCP or UDP
头部,里面包含了我们数据的源端口、目的端口
,到这层的时候,我们数据已经被封装成了数据段
。
2.再来,数据段从传输层发出,进入网络层
在网络层,会为我们的数据段打上一个IP头部
里面包含了数据段的源IP 、目的IP
,这时候在网络层的数据段被封装成了数据包
。
3.在来,数据包从网络层发出,进入数据链路层
在数据链路层会封装一个以太网帧头部
里面包含了我们二层数据源MAC、目的MAC地址
,这时候我们的数据包已经被封装成了数据帧
,
4.最后,数据帧从数据链路层发出,进入物理层
,在这里将由物理层将帧转换为01011二进制形式的比特流
在网络进行传输。
注意,数据的封装、解封装都是逐层进行的,不会出现跃层通信
数据的解封装
同封装原理一样,只不过顺序进行了颠倒,从物理层的二进制数据流开始逐层解封装
直至应用层
小节
本篇了解了我们数据封装与解封装的流程,让我们理解了数据是如何在网络各层传输通信的,后续我们会使用wireshark
抓包软件来逐层分析。