数据封装
当主机跨越网络向其他设备传输数据时,就要进行数据封装,在OSI参考模型中,当一台主机需要传送用户的数据(DATA)时,数据首先通过应用层的接口进入应用层。在应用层,用户的数据被加上应用层的报头(Application Header,AH),形成应用层协议数据单元(Protocol Data Unit,PDU),在模型中的每一层,这些含有控制信息的PDU被附加到数据上。他们通常被附加到数据字段的报头中。但它们也可以附加在数据字段的报尾中,PDU信息只能是个由接收方设备中的对等层读取,在读取之后,报头就被剥离,然后被递交到下一层-表示层。
表示层并不"关心"上层-应用层的数据格式而是把整个应用层递交的数据包看成是一个整体进行封装,即加上表示层的报头(Presentation Header,PH)。然后,递交到下层-会话层。
同样,会话层、传输层、网络层、数据链路层也都要分别给上层递交下来的数据加上自己的报头。它们是:会话层报头(Session Header,SH)、传输层报头(Transport Header,TH)、网络层报头(Network Header,NH)和数据链路层报头(Data link Header,DH)。
其中,数据链路层还要给网络层递交的数据加上数据链路层报尾(Data link Termination,DT)形成最终的一帧数据。当一帧数据通过物理层传送到目标主机的物理层时,该主机的物理层把它递交到上层-数据链路层。数据链路层负责去掉数据帧的帧头部DH和尾部DT(同时还进行数据校验)。数据链路层将每个数据包封装成帧,帧的报头中包含了源和目的主机的硬件地址。如果目的设备在以个远程网络中,帧就会被送往路由器,以通过互联网络传送到目的地。一旦它达到了目的网络,就会使用以个新的帧将数据包送往目的主机。在传输过程中,帧会变,但是数据包不会变。如果数据没有出错,则递交到上层-网络层。
同样,网络层、传输层、会话层、表示层、应用层也要做类似的工作。最终,原始数据被递交到目标主机的具体应用程序中。
在发送方设备中,数据封装过程如下:
1.用户信息转换为数据,以便在网络上传输。
2.数据转换为数据段,并在发送方和接收方主机之间建立以条可靠的连接。
3.数据段转换为数据包或数据报,并且在报头中放上逻辑地址,这样,每以个数据包都可以通过互联网进行传输。
4.数据包或数据报转换为帧,以便在本地网络中传输。在本地网段上,使用硬件(以太网)地址唯一表示每一台主机。
5.帧转换为比特流,并采用数字编码和时钟方案。
请记住:数据流是从高层送往传输层的。解封装和它的过程相反。