一:数据封装
1.封装与解封装
封装:是从应用层-传输层-网络层-链路层-物理层(从上到下的过程)
数据
应用层 数据
传输层 应用层 数据 ---添加源端口 和目标端口
网络层 传输层 应用层 数据 ---添加源IP 和DIP
链路层 网络层 传输层 应用层 数据 ---添加源MAC 和DMAC
通过比特流进行传输
每层数据解析:
应用层(APP报头)--数据
传输层(TCP&UPD报头+端口)--数据段
网络层(原IP地址和目标端口)---数据包
链路层(源MAC地址和目标MAC地址)--数据帧
物流层(转换层0和1的bit流进行传递)--bit
封装和解封装_第1张图片
注意点:
链路层当中有一个type字段 用来表示我上一层是IP协议呢 还是IPv6协议呢 还是IPX协议
网络层当中有一个protocol字段 用来表示上层是TCP呢 还是UDP呢
传输层当中有一个Dport字段 用来表示上层是telnet呢?还是SSH呢?还是FTP呢等等
2:解封装
是从物理层-链路层-网络层-传输层-应用层
数据(你好)
链路层 网络层 传输层 应用层 数据 ---添加源MAC 和DMAC
网络层 传输层 应用层 数据 ---添加源IP 和DIP
传输层 应用层 数据 ---添加源端口 和目标端口
应用层 数据
数据
封装和解封装_第2张图片
注意点:
解封装到链路层的时候 当发现DMAC地址 是我自己的时候 我会继续向上解封装
解封装到网络层的时候 当发现DIP地址是我地址 我会继续向上解封装
解封装传输层的时候 当发现Dport是某某的时候 我会交给某一个应用程序进行处理