‘壹’ 3、什么是数据的封装、拆包
就好象寄信时加个信封
一般发数据时,将原始数据加上一些附加信息发送 附加信息包括有多少个数据 发送地址 接收地址 校验码等
‘贰’ 数据封装的原理
数据封装是指将协议数据单元(PDU)封装在一组协议头和尾中的过程。在 OSI7层参考模型中,每层主要负责与其它机器上的对等层进行通信。该过程是在“协议数据单元”(PDU)中实现的,其中每层的 PDU 一般由本层的协议头、协议尾和数据封装构成。
每层可以添加协议头和尾到其对应的 PDU 中。协议头包括层到层之间的通信相关信息。协议头、协议尾和数据是三个相对的概念,这主要取决于进行信息单元分析的各个层。例如,传输头(TH)包含只有传输层可以看到的信息,而位于传输层以下的其它所有层将传输头作为各层的数据部分进行传送。在网络层,一个信息单元由层3协议头(NH)和数据构成;而数据链路层中,由网络层(层3协议头和数据)传送下去的所有信息均被视为数据。换句话说,特定 OSI 层中信息单元的数据部分可能包祥前旁含由上层传送下来的协议头、协议尾和数据。
例如,如果计算机 A 要将应用程序中的某数据发送至计算机 B 应用层。计算机 A 的应用层联系任何计算机 B 的应用层所必需的控制信息,都是通过预先在数据上添加协议头。结果谨橡信息单元,其包含协议头、数据、可能包含协议尾,被发送至表示层,表示层再添加为计算机 B 的表示层所理解的控制信息的协议头。信息单元的大小随着每一层协议头和协议尾的添加而增加,这些协议头和协议尾包含了计算机 B 的对应层要使用的控制信息。在物理层,整个信息单元通过网络介质传输。
计算机 B 中的物理层接收信息单元并将其传送至数据链路层;然后 B 中的数据链路层读取包含在计算机 A 的数据链路层预先添加在协议头中的控制信息;其次去除协议头和协议尾,剩余部分被传送至网络层。每一层执行相同的动作:从对应层读取协议头和协议尾,并去除,再将剩余信息发送至高一层。应用层执行完后,数据就被传送至计算机 B 中的应用程序接收悔闭端,最后收到的正是从计算机 A 应用程所发送的数据。
网络分层和数据封装过程看上去比较繁杂,但又是相当重要的体系结构,它使得网络通信实现模块化并易于管理。
‘叁’ 数据封装形成的实体是什么
数据封装形成的实体是类。数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是类。
类是面向对象程序设计实现信息封装的基础。类是一种用户定义的引用数据类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象。
类的三大特性:
(1)封装性将数据和操作封装为一个有机的整体,由于类中私有搏培升成员都是隐藏的,只向外部提供有限的接口,所以能够保证内部的高内聚性和与外部的低耦合性。用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员,能够增强安全性和简化编程。
(2)继承性更符合认知规律,使程序更易于理解,同时节省不必要的重复代码。
(3)多中扰态性是指同一操作作用于不同对象,可以有不同的解释,产生不同的执基老行结果。在运行时,可以通过指向父类(基类)的指针,来调用实现子类(派生类)中的方法。
以上内容参考:网络-类
以上内容参考:网络-数据封装
‘肆’ 谁能详细说一下数据封装的过程
数据封装的过程大致如下:
1、用户信息转换为数据,以便在网络上传输
2、数据转换为数据段,并在发送方和接收方主机之间建立一条可靠的连接
3、数据段转换为数据包或数据报,并在报头中放上逻辑地址,这样每一个数据包都可以通过互联网络进行传输
4、数据包或数据报转换为帧,以便在本地网络中传输。在本地网段上,使用硬件地址唯一标识每一台主机。
5、帧转换为比特流,并采用数字编码和时钟方案
以常见的OSI模型为例,它共分为七层,从下到上依次为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层,每层都对应不同的功能。为了实现对应功能,都会对数据按本层协议进行协议头和协议尾的数据封装,然后将封装好的数据传送给下层,各层的数据封装过程如下图所示。
其中在传输层用TCP头已标示了与一个特定应用的连接,并将数据封装成了数据段;网络层则用IP头标示了已连接的设备网络地址,并可基于此信息进行网络路径选择,此时将数据封装为数据包;到了数据链路层,数据已封装成了数据帧,并用MAC头给出了设备的物理地址,当然还有数据校验等功能字段等;到了物理层,则已封装成为比特流,就成为纯粹的物理连接了。
(4)什么是数据封装扩展阅读
封装 (encapsulation)
隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别。
封装途径
封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员。
封装在网络编程里面的意思, 当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络,其中每一层对收到的数据都要增加一些首部。
参考资料来源:网络-封装
参考资料来源:网络-数据封装
‘伍’ 简述数据封装与解封装的过程
一、数据封装的过程大致如下:
1、用户信息转换为数据,以便在网络上传输。
2、数据转换为数据段,并在发送方和接收方主机之间建立一条可靠的连接。
3、数据段转换为数据包或数据报,并在报头中放上逻辑地址,这样每一个数据包都可以通过互联网络进行传输。
4、数据包或数据报转换为帧,以便在本地网络中传输。在本地网段上,使用硬件地址唯一标识每一台主机。
5、帧转换为比特流,并采用数字编码和时钟方案。
二、数据解封装的过程
仍然以OSI模型为例来说明数据解封装的过程。数据的接收端从物理层开始,进行与发送端相反的操作,称为“解封装”,如下图所示,最终使应用层程序获取数据信息,使得两点之间的一次单向通信完成。
需要说明的是,应用最为广泛的TCP/IP协议可以看作是OSI协议层的简化,它分为四层:数据链路层、网络层、传输层、应用层,其各层对应的数据封装与OSI大同小异。
(5)什么是数据封装扩展阅读:
一、原理
数据封装是指将协议数据单元(PDU)封装在一组协议头和尾中的过程。在OSI7层参考模型中,每层主要负责与其它机器上的对等层进行通信。该过程是在“协议数据单元”(PDU)中实现的,其中每层的 PDU 一般由本层的协议头、协议尾和数据封装构成。
每层可以添加协议头和尾到其对应的 PDU 中。协议头包括层到层之间的通信相关信息。协议头、协议尾和数据是三个相对的概念,这主要取决于进行信息单元分析的各个层。例如,传输头(TH)包含只有传输层可以看到的信息,而位于传输层以下的其它所有层将传输头作为各层的数据部分进行传送。
在网络层,一个信息单元由层3协议头(NH)和数据构成;而数据链路层中,由网络层(层3协议头和数据)传送下去的所有信息均被视为数据。换句话说,特定 OSI 层中信息单元的数据部分可能包含由上层传送下来的协议头、协议尾和数据。
二、数据封装协议
SDH网络中封装协议有多种,最常用的有PPP/HDLC、LAPS、GFP。某一些设备厂商的专有封装协议。
1、PPP/HDLC协议
为点到点协议,它要利用HDLC(高速数据链路控制)协议来封装帧,用字节同步的方式把HDLC帧映射入SDH的VC中,成为VC的净荷。
在POS系统中,可用来承载IP数据;在SDH系统中,用来承载以太帧。
2、LAPS协议
为链路接入协议,这种方式特别用于SDH链路承载以太帧,它与HDLC十分相似。
G3、FP协议
为通用帧协议,是一种链路层标准。这种封装协议可以承载所有的数据业务,是一种可以透明地将各种数据信号封装进现有网络的技术,可以替代众多不同的封装方法,有利于各厂商设备之间的互联互通。
GFP采用不同的业务数据封装方法对不同的业务数据进行封装。包括帧映射(GFP-F)和透明传输(GFP-T)两种模式。
‘陆’ 什么是数据的封装、拆包
数据的封装和传递
在 OSI 参考模型中,同等层之间经常要进行信息交换。 对等层协议之间需要交换的信息单元 叫做 协议数据单元 ( PDU , protocol data unit )。节点对等层之间的通信除物理层之间直接进行信息交换外,其余对等层之间的通信并不直接进行(例如两个节点的链路层之间进行通信),它们需要通过借助于下层提供的服务来完成,对等层之间的通信为虚拟通信。实际通信是在相邻层之间通过层间接口进行。
直接通讯与虚通讯
当某一层需要使用下一层提供的服务传送自己的 PDU 时,其当前层的下一层总是先将上一层的 PDU 变为自己 PDU 的一部分,然后利用更下一层提供的服务将信息传递出去。节点A的传输层要把某一信息 T-PDU 传送到节点B的传输层的,首先将 T-PDU 交给节点A的网络层,节点A的网络层在收到 T-PDU 之后,将在 T-PDU 上加上若干比特的控制信息(即报头 header )变为自己 PDU ( N-PDU ),然后再利用其下层链路层提供的服务将数据发送出去。以此类推,最终将这些信息变为能够在传输介质上传输的数据,并通过传输介质将信息传送到节点B。
为了实现对等层通信,当数据需要通过网络从一个节点传送到另一节点前,必须在数据的头部(和尾部)加入特定的协议头(和协议尾)。这种增加数据头部(和尾部)的过程叫做 数据打包或数据封装 。同样,在数据到达接收节点的对等层后,接收方将识别、提取和处理发送方对等层增加的数据头部(和尾部)。接收方这种将增加的数据头部(和尾部)去除的过程叫做 数据拆包或数据解封 。图 1.8 显示了数据的封装与解封过程。
图 1.8 数据的封装与解封过程
2、数据传递与流动过程。
http://www.sdwfvc.com/jpkc/net/jiaoan_zhu/ja/chap1.htm
‘柒’ 关于网络传输过程的数据封装
数据封装(Data Encapsulation)是指将协议数据单元(PDU)封装在一组协议头和尾中的过程。在OSI七层参考模型中,每层主要负责与其它机器上的对等层进行通信。该过程是在协议数据单元(PDU)中实现的,其中每层的PDU一般由本层的协议头、协议尾和数据封装构成本文选自WireShark数据包分析实战详解清华大学出版社。
为了帮助用户更清楚的理解数据封装过程,下面通过一个实例来说明这个过程。假设某个公司局域网使用以太网,当员工从局域网的FTP服务器下载一个文件时,该文件从FTP服务器到员工主机的传输过程如图1.17所示本文选自WireShark数据包分析实战详解清华大学出版社。
在图1.17中,FTP服务器作为数据的发送端,员工主机作为数据的接收端。下面分别介绍数据发送和接收处理过程。
1.数据发送处理过程数据封装协议数据单元封装WireShark数据包分析
(1)应用层将数据交给传输层,传输层添加上TCP的控制信息(称为TCP头部),这个数据单元称为段(Segment),加入控制信息的过程称为封装。然后,将段交给网络层。
(2)网络层接收到段,再添加上IP头部,这个数据单元称为包(Packet)。然后,将包交给数据链路层。
(3)数据链路层接收到包,再添加上MAC头部和尾部,这个数据单元称为帧(Frame)。然后,将帧交给物理层。
(4)物理层将接收到的数据转化为比特流,然后在网线中传送。
2.数据接收处理过程数据封装协议数据单元封装WireShark数据包分析
(1)物理层接收到比特流,经过处理后将数据交给数据链路层。
(2)数据链路层将接收到的数据转化为数据帧,再除去MAC头部和尾部,这个除去控制信息的过程称为解封装,然后将包交给网络层。
(3)网络层接收到包,再除去IP头部,然后将段交给传输层。
(4)传输层接收到段,再除去TCP头部,然后将数据交给应用层。
从以上传输过程中,可以总结出以下几点。如下所示:
(1)发送方数据处理的方式是从高层到底层,逐层进行数据封装。
(2)接收方数据处理的方式是从底层到高层,逐层进行数据解封装。
(3)接收方的每一层只把对该层有意义的数据拿走,或者说每一层只能处理发送方同等层的数据,然后把其余的部分传递给上一层,这就是对等层通信的概念本文选自WireShark数据包分析实战详解清华大学出版社数据封装协议数据单元封装WireShark数据包分析。
‘捌’ 面向对象程序设计中的数据封装指的是
对象内部数据结构的不可访问性 输入数据必须用保密密码输入,数据加密,这不是面向对象编程的特点;不可能在对象的内部数据结构上建立防火墙,所以它们不是面向对象编程中的数据隐藏。面向对象编程系统中的封装单元是对象,对象之间只能通过接缺腔口交换信息,对象中的数据不能从外部随意访问,导致对象内部的数据结构不可访问,数据隐藏在对象中。这就是面向对象编程中的数据隐藏所指的。Redis是一个键-值对数据库,每个键是一个字符串对象,值可以是字符串对象、列表对象、哈希对象、集合对象、有序集合对象五种中的一种。Redis使用sds(简单动态字符串)来表示最基本的字符串数据。这个结构记录了用于保存字符串的字节数组char buf[]、已用长度int len和未用长度int free。有点像java中的字符串对象。这个sds使用C字符串作为文字量,遵循C风格,以空字符' '作为字符串的结尾,这样就可以直接重用C字符串函数库的部分函数,但与C字符串相比,它有以下优点:直接保存字符串长度而不是像C一样遍历得到长度;通过预分配空间和释放惰性空间,减少了修改字符串引起的内存重分配。空间预分配的意思是:当需要扩展字符数组的容量时,如果分配的长度将小于1MB,则预分配搏笑与当前len长度相同的字节数,如果超过1MB,则分配1MB。惰性空间释放是指当sds字符串被缩短时,多余的字节数组不被伏银衫回收,而是通过增长free来记录,这样下次如果free本身足够了,就不需要申请内存了。当然,也有可以调整为主动释放的API。用二进制方法处理buf数组,保留二进制数据,这样就可以保存除文本数据以外的其他格式,比如图片、音视频、压缩文件等。
‘玖’ 什么是bit什么是帧什么是数据包什么是封装和解封装
bit是数据位(bit)
在网络中,计算机通信传输的是由“0”和“1”构成的二进制数据,二进制数据组成“帧”(Frame),帧是网络传输的最小单位
数据封装是指将协扮运兆议数据单元(PDU)封装在一组协议头和尾中的过程。在
OSI
7层参考模型中厅租,每层主要负责与其它机器上的对等层进行通信。该过程是在“协议数据单元”(PDU)中实现的,其中每层的
PDU
一般由本层的协议头、协议尾和数据封装构成。
解封装正好是封装的反向操作,把封装的数据包还原成悄轮数据.
‘拾’ 什么是数据的封装、拆包
分类: 电脑/网络 >> 硬件
问题描述:
什么是数据的封装、拆包
解析:
数据的封装和传递
在 OSI 参考模型中,同等层之间经常要进行信息交换。 对等层协议之间需要交换的信息单元 叫做 协议数据单元 ( PDU , protocol data unit )。节点对等层之间的通信除物理层之间直接进行信息交换外,其余对等层之间的通信并不直接进行(例如两个节点的链路层之间进行通信),它们需要通过借助于下层提供的服务来完成,对等层之间的通信为虚拟通信。实际通信是在相邻层之间通过层间接口进行。
直接通讯与虚通讯
当某一层需要使用下一层提供的服务传送自己的 PDU 时,其当前层的下一层总是先将上一层的 PDU 变为自己 PDU 的一部分,然后利用更下一层提供的服务将信息传递出去。节点A的传输层要把某一信息 T-PDU 传送到节点B的传输层的,首先将 T-PDU 交给节点A的网络层,节点A的网络层在收到 T-PDU 之后,将在 T-PDU 上加上若干比特的控制信息(即报头 header )变为自己 PDU ( N-PDU ),然后再利用其下层链路层提供的服务将数据发送出去。以此类推,最终将这些信息变为能够在传输介质上传输的数据,并通过传输介质将信息传送到节点B。
为了实现对等层通信,当数据需要通过网络从一个节点传送到另一节点前,必须在数据的头部(和尾部)加入特定的协议头(和协议尾)。这种增加数据头部(和尾部)的过程叫做 数据打包或数据封装 。同样,在数据到达接收节点的对等层后,接收方将识别、提取和处理发送方对等层增加的数据头部(和尾部)。接收方这种将增加的数据头部(和尾部)去除的过程叫做 数据拆包或数据解封 。图 1.8 显示了数据的封装与解封过程。
图 1.8 数据的封装与解封过程
2、数据传递与流动过程。
sdwfvc/jpkcjiaoan_zhu/ja/chap1