A. 解释计算机网络封装和解封装的含义
当网络中的两台计算机要进行通信时,数据由发送端的应用层向下,逐层传送,而且每一层都为原始数据添加报头(有的层除增加报头外,还需要添加报尾),这也称为数据封装的过程。当封装好的数据到达物理层后,就会根据连接两台设备所使用的物理介质类型,将数据帧的各个比特转换为电压、光源、无线电波等物理层信号,通过中间网络设备,发送端的数据会被送达接收端的物理层。在接收端,数据的还原需要进行一个封装的反过程,从物理层向上直到应用层,随着数据逐层向上传递,协议数据单元的报头及报尾被一层层剥离。最终实现了数据从发送端到接收端的传递。
B. 什么叫数据的封装和解封装
其实数据链路层是把网络层的数据加上头和尾形成帧再交付给物理层。这就是封装。
之所以要加上头和尾是因为物理层只管电信号,必须要有一个特殊的电信号告诉物理层这是一个帧的开始和结尾。
一般头和尾的电信号是连续的10101010这样的形式,当物理层接收到信号后,知道这是一个帧来了,经过模数转换后交付给数据链路层,数据链路层剥离头和尾把数据交付给上面的网络层,这就是解封装的过程。
其实网络的七层结构基本上都是封装和解封装的过程,上层数据下来的时候就给他加特定的头,相当于装了个信封,就这样一层层的装下来。下层的数据送到上层就一层层的剥离头(信封),直到最后没有信封得到最终的数据为止。
C. 关于网络传输过程的数据封装
数据封装(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数据包分析。
D. 什么叫做“封包”
封缄。亦指封缄着财物、文书等的封套。
数据要在通讯系统中必须要先经过某些处理,才能在网络当中传递,例如将数据切割为数个区块之后,才能在网络上依照某种通讯协议来传送,这种过程就好像将包裹打包一样,称为分封。
IP封包
IP封包分析从一直以来讨论至今我们都不断地接触到“封包”“撷取IP封包如果您的机器上面装有netxray等封包撷取软件或使用NT的“网路监视器”。
可以撷取那些进出本机的封包了。当我们打开撷取功能之后然后使用ping命令随便ping一个地址。
E. JAVA 中,为什么要封装
封装是由Java是面向对象程序设计语言的性质决定的,因为面向对象程序设计语言的三大特性之一就是封装。
因为面向对象中所有的实体都是以对象为基本单位的,以宏观世界的实体来映射到计算机世界中,每个对象有它自己的属性和自己的行为,我们用类来将这些属性和行为封装到一起,当它实例化出来一个对象的时候,我们可以说这个对象具有这些属性和行为。
(5)网络数据为什么进行封装扩展阅读:
封装的作用
1、 对象的数据封装特性彻底消除了传统结构方法中数据与操作分离所带来的种种问题,提高了程序的可复用性和可维护性,降低了程序员保持数据与操作内容的负担。
2、对象的数据封装特性还可以把对象的私有数据和公共数据分离开,保护了私有数据,减少了可能的模块间干扰,达到降低程序复杂性、提高可控性的目的。