数据解封装
❶ 什么是数据封装和解封装
数据封装(Data Encapsulation),笼统地讲,就是把业务数据映射到某个封装协议的净荷中,然后填内充对应协容议的包头,形成封装协议的数据包,并完成速率适配。
解封装,就是封装的逆过程,拆解协议包,处理包头中的信息,取出净荷中的业务信息数据封装和解封装是一对逆过程。
数据封装是指将协议数据单元(PDU)封装在一组协议头和尾中的过程。在OSI7层参考模型中,每层主要负责与其它机器上的对等层进行通信。该过程是在“协议数据单元”(PDU)中实现的,其中每层的 PDU 一般由本层的协议头、协议尾和数据封装构成。
(1)数据解封装扩展阅读:
数据包利用网络在不同设备之间传输时,为了可靠和准确地发送到目的地,并且高效地利用传输资源(传输设备和传输线路),事先要对数据包进行拆分和打包,在所发送的数据包上附加上目标地址,本地地址,以及一些用于纠错的字节,安全性和可靠性较高时,还要进行加密处理等等。这些操作就叫数据封装。而对数据包进行处理时通信双方所遵循和协商好的规则就是协议。与邮寄物品相比,数据包本身就如同物品,而封装就如同填写各种邮寄信息,协议就是如何填写信息的规定。
❷ 数据封装与解封装的目的和意义
不是有人回答过了?
数据封装
(Data Encapsulation)
数据封装是指将协议数据单元(PDU)封装在一组协议头和尾中的过程。在 OSI 7层参考模型中,每层主要负责与其它机器上的对等层进行通信。该过程是在“协议数据单元”(PDU)中实现的,其中每层的 PDU 一般由本层的协议头、协议尾和数据封装构成。
每层可以添加协议头和尾到其对应的 PDU 中。协议头包括层到层之间的通信相关信息。协议头、协议尾和数据是三个相对的概念,这主要取决于进行信息单元分析的各个层。例如,传输头(TH)包含只有传输层可以看到的信息,而位于传输层以下的其它所有层将传输头作为各层的数据部分进行传送。在网络层,一个信息单元由层3协议头(NH)和数据构成;而数据链路层中,由网络层(层3协议头和数据)传送下去的所有信息均被视为数据。换句话说,特定 OSI 层中信息单元的数据部分可能包含由上层传送下来的协议头、协议尾和数据。
例如,如果计算机 A 要将应用程序中的某数据发送至计算机 B 应用层。计算机 A 的应用层联系任何计算机 B 的应用层所必需的控制信息,都是通过预先在数据上添加协议头。结果信息单元,其包含协议头、数据、可能包含协议尾,被发送至表示层,表示层再添加为计算机 B 的表示层所理解的控制信息的协议头。信息单元的大小随着每一层协议头和协议尾的添加而增加,这些协议头和协议尾包含了计算机 B 的对应层要使用的控制信息。在物理层,整个信息单元通过网络介质传输。
计算机 B 中的物理层接收信息单元并将其传送至数据链路层;然后 B 中的数据链路层读取包含在计算机 A 的数据链路层预先添加在协议头中的控制信息;其次去除协议头和协议尾,剩余部分被传送至网络层。每一层执行相同的动作:从对应层读取协议头和协议尾,并去除,再将剩余信息发送至高一层。应用层执行完后,数据就被传送至计算机 B 中的应用程序接收端,最后收到的正是从计算机 A 应用程所发送的数据。
网络分层和数据封装过程看上去比较繁杂,但又是相当重要的体系结构,它使得网络通信实现模块化并易于管理。
解封装正好是封装的反向操作,把封装的数据包还原成数据
❸ 简述数据在OSI参考模型中的流动过程,并解释数据的封装与解装。
OSI 七层模型分别为应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
作用分别为:
应用层为用户的应用程序提供接入网络的接口。
表示层将用户数据进行相应的编码或格式转换。
会话层区分通信中的不同上层程序,为每个进程建立单独的链接,并维护和管理通信的过程。
传输层为数据的可靠传输提供一种安全可靠的方式。
网络层完成数据在网络中的实际传输,确定地址和最佳路径
数据链路层使用硬件地址来定位远程主机,传输数据并进行必要的流量控制和差错校验。
物理层传输比特流。将链路层的数据用高低不同的电平值表示发送到物理线路上。物理层规定了设备的接口形状、针脚个数、针脚不同电平值的含义。
最初的计算机网络每家厂商迪标准都不同,这就造成了不同厂商的计算机在互连时难以互通的情况。这样就形成了一个个的由同一家厂商计算机构成的孤岛网络,而不同厂商的网络难以互联。这样限制了计算机和网络的发展。因而ISO组织制定了开放式系统互联模型(OSI),旨在使所有遵循该标准的厂商生产的设备具有通用性。从而使不同厂商的设备互联称为显示。
OSI采用分层设计的方式,将一个复杂的网络问题划分成了多个小的问题。使网络的维护更利于实现、使网络技术更利于更新。但由于OSI的标准实在是太严格了,目前还没有完全按照OSI标准设计的网络。但是,OSI给设计网络和网络排错提供了一个非常好的模型和思路------- 一个完整的应该具备哪些功能?该功能在哪个层次?通过这样的思考方式很容易定位网络的故障。也很容易的来衡量出一个现实的网络是否完善。
OSI模型中的通信过程。
主机A向主机B发送数据,该数据的产生肯定是一个应用层的程序产生的,如IE浏览器或者Email的客户端等等。这些程序在应用层需要有不同的接口,IE是浏览网页的使用HTTP协议,那么HTTP应用层为浏览网页的软件留下的网络接口。Email客户端使用smtp和pop3 协议来收发电子邮件,所以smtp和pop3就是应用层为电子邮件的软件留下的接口。我们假设A向B发送了一封电子邮件,因此主机A会使用smtp协议来处理该数据,即在数据前加上SMTP的标记,以便使对端在收到后知道使用什么软件来处理该数据。
应用层将数据处理完成后会交给下面的表示层,表示层会进行必要的格式转换,使用一种通信双方都能识别的编码来处理该数据。同时将处理数据的方法添加在数据中,以便对端知道怎样处理数据。
表示层处理完成后,将数据交给下一层会话层,会话层会在A主机和B主机之间建立一条只用于传输该数据的会话通道,并监视它的连接状态,直到数据同步完成,断开该会话。注意:A和B之间可以同时有多条会话通道出现,但每一条都和其他的不能混淆。会话层的作用就是有办法来区别不同的会话通道。
会话通道建立后,为了保证数据传输中的可靠性,就需要在数据传输的构成当中对数据进行不要的处理,如分段,编号,差错校验,确认、重传等等。这些方法的实现必须依赖通信双方的控制,传输层的作用就是在通信双方之间利用上面的会话通道传输控制信息,完成数据的可靠传输。
网络层是实际传输数据的层次,在网络层中必须要将传输层中处理完成的数据再次封装,添加上自己的地址信息和对端接受者的地址信息,并且要在网络中找到一条由自己到接收者最好的路径。然后按照最佳路径发送到网络中。
数据链路层将网络层的数据再次进行封装,该层会添加能唯一标识每台设备的地址信息(MAC地址),是这个数据在相邻的两个设备之间一段一段的传输。最终到达目的地。
物理层将数据链路层的数据转换成电流传输的物理线路。
通过物理线路传递的B主机后,B主机会将电信号转换成数据链路层的数据,数据链路层再去掉本层的硬件地址信息和其他的对端添加的内容上交给网络层,网络层同样去掉对端网络层添加的内容后上交给自己的上层。最终数据到达B主机的应用层应用层看到数据使用smtp协议封装,就知道应用电子邮件的软件来处理。
两个OSI参考模型之间的通行看似是水平的,但实际上数据的流动过程是有最高层垂直的向下交给相邻的下层的过程。只有最下面的物理层进行了实际的通行。而其他层次只是一种相同层次使用相同协议的虚通信。
学习OSI应掌握,分层、协议、实体、服务、接口、虚通信等多个概念。
封装指将本层控制信息添加在数据前的一种行为。
解封装指接收方将对端添加的控制信息去除的行为。