实验项目3 观察协议数据单元
【预备知识】
在OSI模型各层中,每层都有自己的传输数据单元,即协议数据单元(PDU,Protocol Data Unit)。各层数据单元如下:
物理层PDU:比特流(bit);
数据链路层PDU:帧(frame);
网络层PDU:分组或包(packet);
传输层PDU:报文段(segment)。
其他高层的PDU是数据,分别为会话层SPDU(Session Protocol Data Unit)、表示层PPDU(Presentation Protocol Data Unit)、应用层APDU(Application Protocol Data Unit)。
为了能够将数据正确地从一台主机传送到另一台主机,就需要含有控制信息,当传送到下层时,控制信息被加入数据中,完成封装过程。封装是指网络节点将要传送的数据用每一层对应的特定协议打包后传送,多数是在原有数据之前加上协议首部来实现的,也有些协议还需要在数据之后加上协议尾部。如图3-1所示,主机A发送数据到应用层,应用层协议需要在数据前面加上协议首部H7,封装成新的应用协议数据单元,然后再传输到表示层,表示层协议继续将协议首部H6加在应用协议数据单元中,封装成表示协议数据单元,继续向下发送,以此类推。
拆封正好相反,就是将原来增加的协议首部去掉,将原始的数据发送给目标应用程序。如图3-1所示,数据到达接收端主机B的数据链路层,就要去掉帧头H2和帧尾T2,继续传送给网络层。发送端每一层都要对上一层传输来的数据进行封装,并传输给下一层,而接收端每一层都要对本层封装的数据进行拆封,并传输给上一层。
图3-1 OSI模型中数据通信过程
在OSI模型中,数据发送和接收流程如下:数据从发送端的应用层开始逐层封装、流向低层,直至到达物理层后成为“0”和“1”组成的比特流,然后再转换为电信号或光信号等形式,在通信介质上传输至接收端,接收端则由物理层开始逐层拆封、流向高层,直至到达应用层,还原为发送端所发送的数据信息。例如,当主机A要发送数据给主机B时,其实际传输路线是,从主机A的应用层开始逐层进行封装,自上而下传输到物理层,再通过传输介质以电信号或光信号的形式传输到主机B端的物理层,然后逐层拆封,再自下而上,最后到达接收端主机B。
对于计算机网络的学习者而言,一般综合OSI模型和TCP/IP模型的优点,可采用一种包含五层协议的体系结构阐述网络层次的概念,这个五层结构就是将TCP/IP模型的网络接口层看作是OSI模型的物理层和数据链路层,其他层次不变。
【实验目的】
1)理解OSI数据封装和拆封过程。
2)理解OSI各层的协议数据单元结构。
3)能够熟练应用Packet Tracer网络模拟软件。
【背景描述】
OSI模型和各层协议结构比较抽象,较难理解。为了让小希同学进一步理解学习的内容,使用Packet Tracer模拟两台计算机通信,并观察各层协议数据单元结构和通信过程。
【实验设备】
1)Packet Tracer模拟软件。
2)模拟计算机和模拟服务器各1台。
3)网络拓扑结构如图3-2所示。
【实验内容及步骤】
图3-2 网络拓扑图
3.1 设备互连及基本参数配置
1)打开Packet Tracer模拟软件,画出如图3-2所示的网络拓扑图,其中包含一台Web服务器和1台PC。Web服务器配置IP地址为192.168.1.254/24,PC配置IP地址为192.168.1.1/24。通过PC访问Web服务器来查看各层协议数据单元及数据通信过程。
2)在模拟器中,切换到“模拟模式”窗口,如图3-3所示。
图3-3 “模拟模式”窗口
3)添加一个简单数据包,打开PC的Web Browser模拟浏览器,输入服务器IP地址“192.168.1.254”,就可以逐步查看网络事件。
4)单击“Event List”中数据包信息或者单击逻辑拓扑中的数据包信封时,将打开“PDU Information at Device: Web Server”窗口,从中就可以看到各层协议数据单元的具体结构。图3-4所示是OSI模型中的数据在Web服务器的拆封与封装结构。
图3-4 OSI模型中的数据在Web服务器的拆封与封装结构
3.2 数据拆封过程
1)物理层:服务器在物理层收到客户端发送的比特流。
2)数据链路层:服务器检查收到数据帧中的目的MAC地址和服务器MAC地址,两者一致,拆封该数据帧,如图3-5所示,源MAC地址是客户端的MAC地址0060.2FB6.2B84,目的MAC地址是服务器MAC地址0002.4A01.4B36。
图3-5 拆封后数据链路层的以太网帧结构
3)网络层:数据到达网络层,拆封成IP数据报,如图3-6所示,源IP地址是服务器的IP地址192.168.1.1,目标IP地址是客户端IP地址192.168.1.254。
4)传输层:当数据到达传输层,拆封成TCP报文段,如图3-7所示,发送序列号为1,ACK确认序号为1,窗口大小为65535,源端口号为1029,目的端口号为80。
5)应用层:当数据到达服务器应用层后,服务器收到客户端HTTP请求报文后,发送应答给客户端,如图3-8所示。
图3-6 拆封后的网络层数据包
图3-7 拆封后TCP报文段
图3-8 HTTP请求
3.3 数据封装过程
1)应用层:服务器应用层收到客户端HTTP请求报文后,发送应答给客户端,如图3-9所示。
图3-9 HTTP回复
2)传输层:在服务器,当应答报文到达传输层,在传输层使用TCP协议封装成报文段,如图3-10所示,发送序列号为1,ACK确认序号为103,窗口大小为16384,源端口号为80(说明使用HTTP协议),目的端口号为1029。请读者与图3-7对比观察分析。
图3-10 封装TCP报文段
3)网络层:数据到达网络层,封装成IP数据报,如图3-11所示,源IP地址是服务器的IP地址192.168.1.254,目标IP地址是客户端IP地址192.168.1.1。请读者与图3-6对比观察分析。
图3-11 封装IP数据报
4)数据链路层:数据到达数据链路层,封装成以太网帧,如图3-12所示。源MAC地址是服务器的MAC地址0002.4A01.4B36,目的MAC地址是客户端MAC地址0060.2FB6.2B84。请读者与图3-5对比观察分析。
图3-12 封装成以太网帧
5)物理层:数据最后到达物理层,在物理传输介质上透明地传输比特流到客户端。
【注意事项】
1)客户端发送数据在各层的封装过程与服务器接收到数据在各层拆封过程的数据内容是一致的,即报文段、IP数据报和帧中所包含的数据是一致的。为了体现数据封装过程和拆封过程数据内容的不同,本实验以服务器接收到的HTTP请求报文描述其拆封过程,以服务器响应报文描述其封装过程。
2)注意观察协议数据单元中信息的变化。在计算机实际通信过程中,人们是看不到这样的通信过程的。
【项目拓展】
请在客户端使用“ping 192.168.1.254”观察数据通信过程,简单分析其各层协议数据单元信息。
【实践评价】