首页 理论教育 计算机网络中数据包的封装与传递

计算机网络中数据包的封装与传递

时间:2023-11-01 理论教育 版权反馈
【摘要】:在计算机网络体系结构中,我们可以把几乎所有的网络设备都抽象为层次模型。图3.6不同节点同等层之间的信息交换与处理其中,接口控制信息只在接口局部有效,不会随数据一起传递下去;而服务数据单元是真正提供服务的有效数据,它的内容基本上与协议数据单元一致。发送进程的数据好像是“直接”传送给接收进程的,这是开放系统在网络过程中最主要的特点。

计算机网络中数据包的封装与传递

计算机网络体系结构中,我们可以把几乎所有的网络设备都抽象为层次模型。比如路由器,我们把它抽象为一个只有物理层、数据链路层、网际层的三层模型;交换机则是一个有物理层、数据链路层的两层模型;集线器的层次模型只有一层,即物理层。网络中的计算机拥有完整的层次结构,其层次模型如图3.6所示,包括物理层,数据链路层,网络层,传输层、会话层、表示层和应用层

网络体系结构除了分层外,还对传输数据单位与整个数据传输进行规范。

网络设备在传输和处理数据时,由于每一层所用的协议不一样,使得所能够处理和传输的数据包或者数据单元都是不一样的,因此两个设备在相互通信时只有对等层才能读取和处理对方的数据包,才能够相互沟通。由此整个信息交换过程比较复杂,我们把对等层之间需要交换和处理的信息单位叫作协议数据单元(Protocol Data Unit,PDU)。假如现在网络节点A 与网络节点B 要进行通信,用户利用网络节点A 中应用层软件向节点B 发送信息。应用层首先对发送的大块信息进行处理分割成一个个独立的数据传输单位,并对其进行封装。所谓封装就是按照本层协议的规定将每个数据传输单元的头部(和尾部)加入特定的协议头(和协议尾)。

节点对等层之间的通信除物理层之间直接进行信息交换外,其余对等层之间的通信并不直接进行,它们需要通过借助于下层提供的服务来完成,对等层之间的通信为虚拟通信,如图3.6所示横向带箭头虚线。实际通信是在相邻层之间通过层间接口进行,纵向传输的数据用接口数据单元(IDU)表示。接口数据单元指相邻层次之间通过接口传递的数据,它分为两部分,即接口控制信息和服务数据单元。

图3.6 不同节点同等层之间的信息交换与处理

其中,接口控制信息只在接口局部有效,不会随数据一起传递下去;而服务数据单元是真正提供服务的有效数据,它的内容基本上与协议数据单元一致。用简单的公式表示就是:

接口数据单元=控制信息+服务数据单元

将控制信息、服务数据单元与高级语言里面的局部变量和全程变量做一个类比,接口数据单元的控制信息就好比局部变量,只在特定的某两层接口有效,如二、三层接口的控制信息与三、四层接口的控制信息完全不同;服务数据单元就好比全程变量,从应用层到物理层一直传递下去,而且每层都要加一些自己的内容进去。(www.xing528.com)

服务数据单元是用于层与层接口的概念,而协议数据单元用于描述同一层次对等实体之间交换的数据,是一个逻辑上的概念。实际上,当某一层需要使用下一层提供的服务传送自己的PDU 时,其当前层的下一层总是先将上一层的PDU 变为自己PDU 的一部分,然后利用更下一层提供的服务将信息传递出去。

例如,在图3.6中,节点A 的传输层要把某一信息T-PDU 传送到节点B 的传输层,首先将T-PDU 交给节点A 的网络层,节点A 的网络层在收到T-PDU 之后,将在T-PDU 上加上若干比特的控制信息(即报头Header)变为自己的PDU(N-PDU),然后再利用其下层链路层提供的服务将数据发送出去,依次类推,最终将这些信息变为能够在传输介质上传输的数据,并通过传输介质将信息传送到节点B。

在网络中,对等层可以相互理解和认识对方信息的具体意义(如节点B 的传输层收到节点A 的T-PDU 时,可以理解该T-PDU 的信息并知道如何处理该信息)。如果不是对等层,双方的信息就不可能相互理解。例如,在节点B 的网络层收到节点A 的N-PDU 时,它不可能理解N-PDU 包含的T-PDU 代表何意。它仅需要将N-PDU 中包含的T-PDU 通过层间接口提交给上面的传输层。

为了实现对等层通信,当数据需要通过网络从一个节点传送到另一个节点前,必须在数据的头部(和尾部)加上特定的协议头(和协议尾)。这种增加数据头部(和尾部)的过程叫作数据打包或数据封装。同样,在数据到达接收节点的对等层后,接收方将识别、提取和处理发送方对等层增加的数据头部(和尾部)。接收方这种将增加的数据头部(和尾部)去除的过程叫作数据拆包或数据解封。图3.6给出了一个完整的OSI 数据传递与流动过程,从图中可以看出OSI 环境中数据流动的过程。

尽管发送进程的数据在OSI 环境中经过复杂的处理过程才能送到另一节点的接收进程,但对于每台计算机的接收进程来说,OSI 环境中数据流的复杂处理过程是透明的。发送进程的数据好像是“直接”传送给接收进程的,这是开放系统在网络过程中最主要的特点。

为了说明白这个复杂的问题,我们用一个现实中的事例进行类比说明。某个养老院有两座4 层小楼,如图3.7所示,每层通信地址为图中数字与字母所标。现1 层想与A 层通信,便将写好的信塞于信封中(封装),约定信封地址左上角为寄信人,右下角为收信人(通信协议)。1层把信传于2 层,2 层将信再塞入一个信封中并依然按照上边的约定写明收发地址,传给下层。以此类推,最后4 层用同样的方法处理从上层收到的信,并按照地址寄于D 层。D 层剥开一层信封传给上层,C 层核实地址,发现收信人是自己,于是拆开信封并交给B 层,以此类推,最终信安全寄到A层。

图3.7 现实事例示意图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈