封装:将数据变为比特流的过程中,在参考模型的每一层需要添加上特定的协议报头动作
动作:从高层往低层依次封装,在每一层使用特定的协议,对数据进行处理,在数据前添加特定的协议报头。
封装原则:
1:每一层在上一层数据前添加协议报头
2:添加完协议报头的整体,就是该层的PDU
3:每一层的PDU对于下一层来说就是上层数据(每一层的上层数据就是上层的PDU)
PDU(协议数据单元,也就是每层的数据单位)
应用层:APDU
表示层:PPDU
会话层:SPDU
传输层:段(segment)
网络层:包(packet)
数据链路层:帧(frame)
物理层:比特(bit)
封装由发送者发送出去,数据只有被封装以后才有可能被发送出去。
封装过程
应用层:原始数据被转换成二进制数据
传输层:二进制数据被分割成小的数据段,并封装TCP头部 (数据段)
(TCP头部的关键信息–端口号)
网络层:传输层传来的数据被封装上IP头部 (数据包)
(IP头部的关键信息–IP地址)
数据链路层:网络层传来的数据被封装上MAC头部 (数据帧)
(MAC头部的关键信息–MAC地址)
物理层:二进制数据组成的比特流转化为电信号在网络中传输 (比特流)
主机在封装数据包之前,必须要知道目的端IP地址,在封装数据帧之前,必须要知道去往目的网络的路由以及下一跳的MAC地址。
封装的必要参数
传输层:源端口号 目标端口号
网络层:源IP地址 目标IP地址
数据链路层:源MAC地址 目标MAC地址
解封装 :封装的逆过程,数据从比特流还原为数据的过程
动作:从底层往高层依次解封装,每解封装一层,会将该层的忒点那个协议报头去掉
解封过程
物理层:将电号转化为二进制数据,并将其送至数据链路层
数据链路层:查看MAC地址,地址是自己,就拆掉MAC头部,继续传输
地址不是自己,就丢弃数据
网络层:查看IP地址,地址是自己,就拆掉IP头部,继续传输
如果IP地址不是自己,则会路由表查找去往该网段的下一跳地址。如果存在转发路径,会为数据包添加一个新的二层帧头和帧尾部。
传输层:查看TCP头部,判断应该传到哪里,然后重组数据,传输到应用层
应用层:二进制转化为原始数据
解封装原则:
1:必须从底层往高层解封装
2:解封装时,只有协议报头合理,才可以解封装。
3:解封装一旦停止,数据就会被丢弃
解封装由接收者触发,数据必须经过解封装才可以被接受
数据链路层分为两个子层:
LLC子层:逻辑链路控制子层–负责和上层协商,使用SAP来区分不同的上层协议
MAC子层:介质访问控制子层
数据链路层有FCS(帧检验字段)用于检测数据的完整性
LLC子层提供服务访问点(SAP),标识上层协议
1:每一层都需要利用下层的服务进行通信
2:每一层都需要为上层服务,所以需要标识上层所使用的协议或应用
传输层:使用端口号标识上层应用
网络层:使用协议号标识上层应用
(注:可能有部分内容参考于其他博主,仅用于个人学习。)
————————————————
版权声明:本文为CSDN博主「李林楠」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lln1540295459/article/details/107335373/