OSI模型中的数据封装与解封装过程

数据封装(Data Encapsulation),笼统地讲,就是把业务数据映射到某个封装协议的净荷中,然后填充对应协议的包头,形成封装协议的数据包,并完成速率适配。  

    在OSI参考模型(7层)中,当一台主机需要传送用户的数据(DATA)时,数据首先通过应用层的接口进入应用层。在应用层,用户的数据被 加上应用层的报头(Application Header,AH),形成应用层协议数据单元(Protocol Data Unit,PDU),然后被递交到下一层-表示层。表示层并不"关心"上层-应用层的数据格式而是把整个应用层递交的数据包看成是一个整体(应用层数据)进行封装,即加上表示层的报头(Presentation Header,PH)。然后,递交到下层-会话层。




同样,会话层、传输层、网络层(假设用tcp传输,则是TCP数据+ip包头)、数据链路层(把上一层的TCP数据+ip包头统一称为帧数据,帧头+帧数据+帧尾(CRC))也都要分别给上层递交下来的数据加上自己的报头。它们是:会话层报头(Session Header,SH)、传输层报头(Transport Header,TH)、网络层报头(Network Header,NH)和数据链路层报头(Data link Header,DH)。其中,数据链路层还要给网络层递交的数据加上数据链路层报尾(Data link Termination,DT)形成最终的一帧数据。

当一帧数据通过物理层传送到目标主机的物理层时(物理层将数据转换成比特流在介质中传递),该主机的物理层把它递交到上层-数据链路层。数据链路层负责去掉数据帧的帧头部DH和尾部DT(同时还进行数据校验)。如果数据没有出错,则递交到上层-网络层。

  
  同样,网络层、传输层、会话层、表示层、应用层也要做类似的工作。最终,原始数据被递交到目标主机的具体应用程序中。


猜你喜欢

转载自blog.csdn.net/Ssxysxy123/article/details/49903951