前言
我们在进行网络通信时,需要数据包在不同网络设备之间传输。这个过程就需要数据包进行封装与解封装。
1、数据封装与解封装过程
1.1 数据封装过程
性质:
每层看不懂也无需看懂上一层传下来的报文(packet),本层只负责给报文添加相应的头部
应用层传输过程:
在应用层,数据“翻译”为网络世界使用的语音——二进制编码数据。
传输层传输过程:
在传输层,上层数据被分割成小的数据段,并为每个分段后的数据封装TCP报文头部。在TCP头部有一个关键的字段信息——端口号,他用于标识上层的协议或应用程序,确保上层应用数据的正常通信。
网络层传输过程:
在网络层,上层数据被封装上新的报文头部——IP头部。(这里所说的上层数据包括TCP头部)
数据链路层传输过程:
在数据链路层,上层数据被封装一个MAC头部,其内部有一个关键的字段信息——MAC地址
物理层传输过程:
无论是之前每一层封装的头部还是上层数据信息都是由二进制组成的,物理层将这些二进制数字组成的比特流转换成电信号在网络中传输
封装过程图示:
1.2 数据解封装过程:
数据被封装完毕通过网络传输到接收方后,将进入的数据解封装,这将是封装过程的一个逆过程。
如图所示:
1.3 相关数据传输的一些基本概念
1.3.1 不同层中的PDU
PDU:协议数据单元,PDU是指同层之间传递的数据单位。
应用层:消息/报文(上层数据)。
传输层:数据段(TCP头部、上层数据)。
网络层:数据包(IP头部、TCP头部、上层数据)。
数据链路层:数据帧(MAC头部、IP头部、TCP头部、上层数据)
物理层:比特流
1.3.2 常见的硬件设备与五层模型的对应关系
层名称 | 应用层 | 传输层 | 网络层 | 数据链路层 | 物理层 |
典型设备 | 计算机 | 防火墙 | 路由器 | 交换机 | 网卡 |