数据封装技术
扫描二维码
随时随地手机看文章
数据封装(Data Encapsulation),笼统地讲,就是把业务数据映射到某个封装协议的净荷中,然后填充对应协议的包头,形成封装协议的数据包,并完成速率适配。解封装,就是封装的逆过程,拆解协议包,处理包头中的信息,取出净荷中的业务信息数据封装和解封装是一对逆过程。
数据包利用网络在不同设备之间传输时,为了可靠和准确地发送到目的地,并且高效地利用传输资源(传输设备和传输线路),事先要对数据包进行拆分和打包,在所发送的数据包上附加上目标地址,本地地址,以及一些用于纠错的字节,安全性和可靠性较高时,还要进行加密处理等等。这些操作就叫数据封装。而对数据包进行处理时通信双方所遵循和协商好的规则就是协议。与邮寄物品相比,数据包本身就如同物品,而封装就如同填写各种邮寄信息,协议就是如何填写信息的规定。从上面的分析可以看出,对数据包封装实际上很复杂:要达到可靠、准确及高效的目的,必须考虑很多影响因素,并有针对性地采取防范措施。在实际应用中,组网的数据封装按功能分层进行,目的很简单,就是为了能将复杂系统分解为很多模块,各模块独立,互不影响,每个模块(每层)之间用接口进行连接和交互,并互相提供服务。这样不仅更容易实现功能,而且使整个系统具有良好的兼容性和可扩展性。
数据封装是指将协议数据单元(PDU)封装在一组协议头和尾中的过程。在 OSI7层参考模型中,每层主要负责与其它机器上的对等层进行通信。该过程是在“协议数据单元”(PDU)中实现的,其中每层的 PDU 一般由本层的协议头、协议尾和数据封装构成。每层可以添加协议头和尾到其对应的 PDU 中。协议头包括层到层之间的通信相关信息。协议头、协议尾和数据是三个相对的概念,这主要取决于进行信息单元分析的各个层。例如,传输头(TH)包含只有传输层可以看到的信息,而位于传输层以下的其它所有层将传输头作为各层的数据部分进行传送。在网络层,一个信息单元由层3协议头(NH)和数据构成;而数据链路层中,由网络层(层3协议头和数据)传送下去的所有信息均被视为数据。换句话说,特定 OSI 层中信息单元的数据部分可能包含由上层传送下来的协议头、协议尾和数据。
例如,如果计算机 A 要将应用程序中的某数据发送至计算机 B 应用层。计算机 A 的应用层联系任何计算机 B 的应用层所必需的控制信息,都是通过预先在数据上添加协议头。结果信息单元,其包含协议头、数据、可能包含协议尾,被发送至表示层,表示层再添加为计算机 B 的表示层所理解的控制信息的协议头。信息单元的大小随着每一层协议头和协议尾的添加而增加,这些协议头和协议尾包含了计算机 B 的对应层要使用的控制信息。在物理层,整个信息单元通过网络介质传输。计算机 B 中的物理层接收信息单元并将其传送至数据链路层;然后 B 中的数据链路层读取包含在计算机 A 的数据链路层预先添加在协议头中的控制信息;其次去除协议头和协议尾,剩余部分被传送至网络层。每一层执行相同的动作:从对应层读取协议头和协议尾,并去除,再将剩余信息发送至高一层。应用层执行完后,数据就被传送至计算机 B 中的应用程序接收端,最后收到的正是从计算机 A 应用程所发送的数据。