APP下载

基于仿真软件对协议数据单元的可视分析

2021-03-15高原符涛孙毅

电脑知识与技术 2021年1期
关键词:域名解析虚拟仿真

高原 符涛 孙毅

摘要:协议数据单元是计算机网络体系结构和通信协议的重要内容,但对于初学者来说,该部分知识抽象、枯燥、难以理解。为了提高學生学习兴趣和教学效果,通过Packet Tracer仿真软件的模拟方式将通信过程进行动态化、可视化展现。以网络通信中的域名解析为例进行实验设计,可视化呈现了协议数据单元的数据结构和内容,建立了与网络体系结构的对应关系,并做详细讲解。有利于学生对复杂的通信数据和网络协议进行深入理解和学习,同时培养学生实践能力,该方法可以在其他网络协议的教学过程中进行示范和推广。

关键词:Packet Tracer;计算机网络实验;协议数据单元;域名解析;虚拟仿真

中图分类号:G642        文献标识码:A

文章编号:1009-3044(2021)01-0045-04

Abstract:Protocol data unit is an important part of computer network architecture and communication protocol, but for beginners, this part of knowledge is abstract, boring and difficult to understand. In order to improve students'interest in learning and teaching effect, the communication process is displayed dynamically and visually through the simulation of Packet Tracer simulation software. Taking domain name resolution in network communication as an example, the experiment design visually presents the data structure and content of protocol data unit, establishes the corresponding relationship with network architecture, and gives a detailed explanation. It is helpful for students to deeply understand and learn complex communication data and network protocols, and to cultivate students'practical ability. This method can be demonstrated and promoted in the teaching process of other network protocols.

Key words:Packet Tracer; computer network experiment; protocol data unit; domain name resolution; virtual simulation

计算机网络体系结构在计算机网络课程教学中占有非常重要的地位,是整体认知计算机网络与通信协议的基础。按照我国高等院校计算机网络教学大纲要求,计算机网络体系结构几乎是必学的章节,一般采用基于国际标准化组织ISO(International Organization for Standardization)推出的计算机网络开放系统互联OSI(Open System Interconnection)的七层参考模型,或是基于工业标准TCP/IP的四层参考模型,或是基于折中的五层参考模型进行讲解[1-2]。然而上述参考模型多以理论研究为基础,概念抽象且复杂,授课过程中教师很难对网络体系结构进行精准、直观地表述,学生亦很难对其进行深入理解与认知[3-4]。在计算机网络体系结构和通信协议的教学过程中,协议数据单元PDU(Protocol Data Unit)作为重点讲解内容。PDU是理解并掌握网络协议、通信原理、网络安全的基础,然而在实际网络通信中PDU是使用二进制表示的,该表示方法复杂且抽象。另外,传统组网实验过程中很难对网络通信中的数据结构进行可视化呈现,也很难动态展现通信过程的逻辑变化,导致教学过程中学生被动接受、强行记忆,未达到真正理解和掌握计算机网络体系结构的教学目的。

为加强对本部分知识点的理解和教学,顾冠群院士[5]等人对计算机网络体系结构的含义进行了剖析,阐述了网络体系结构的重要性,同时也指出计算机网络体系结构尚无严格定义。彭赟[2]等人将OSI七层模型和国内外几种主流的TCP/IP网络体系结构模型进行了对比分析,指出由于国内外教科书不尽相同,不同分层模型的对应关系容易导致计算机网络体系结构概念模糊。刘淑婷[4]提出了利用情境设置(如:以邮政通信为例)的教学方法来理解层次型网络体系结构中几个逻辑性较强的概念,但该方法仅对网络通信过程进行了逻辑上的梳理和设计,实践操作性不强。张晓明[6]等人提出了以CDIO为主要教学理念的计算机网络实践教学体系与能力培养方案,该方案虽强调了学生计算机网络实践能力的培养,但在实际教学过程中仍无法实现网络通信中数据内容的直观、动态呈现。

笔者在讲授本部分内容时,总结了上述方法的优势和不足,提出借助思科公司Packet Tracer网络仿真软件,以网络通信中典型的客户端访问服务器为例,设计相应案例进行教学。重点将网络通信过程中协议数据单元的内容和变化过程进行模拟仿真呈现,并将协议数据单元和网络体系结构建立对应关系,从而将抽象的内容变得直观和具体。通过要求学生使用仿真软件进行实践操作,为网络设计提供了客观、可靠的定量依据[7],激发了学生学习兴趣,简化了教学过程,提升了教学效果。

1 Packet Tracer简介

Packet Tracer是由Cisco(思科)公司发布的一个辅助学习软件,为学习思科网络课程的学者设计、配置、排除网络故障提供了网络模拟环境[8]。学生可以在软件的图形用户界面上直接使用拖拽网络组件的方法建立网络拓扑,该软件具有对计算机网络的仿真、编辑、动画呈现等功能,在模拟模式下可提供协议数据单元在网络通信中的详细处理过程,从而把抽象、复杂的协议技术概念进行直观呈现,方便了学生观察网络实时运行情况,有利于学生对通信数据和网络协议进行学习和理解。

2 教学设计案例

2.1 教学目标

通过Packet Tracer建立一个典型的C/S(客户端/服务器)网络访问模式,以客户端发起一次基于域名访问服务器的HTTP请求为例,通过该软件提供的模拟模式,以图形化用户界面和动画方式对网络通信过程中的协议数据单元进行跟踪、理解和分析。

2.2 网络拓扑结构及设备配置

为达到教学目标,以从客户端访问服务器为例,建立如下图1所示基于C/S模式的网络拓扑图:

其中内部网络部分,由1台个人电脑作为客户端,与1台思科2960接入层交换机、1台思科1841路由器互联;运营商网络部分,由2台服务器与1台思科2960交换机、1台思科1841路由器互联,其中DNS_Server作为域名解析服务器,Http_Server作为Web服务器;内部网络和运营商网络通过思科1841路由器互连。各设备配置如下表1所示:

54.253 不配置 R2_ISP Fa0/0 192.168.254.253 255.255.255.0 不适用 不适用 S0/0/0 10.10.10.6 255.255.255.252 不适用 不适用 ]

为了使本网络拓扑的内部网络和运营商网络能相互通信,需要在内部网络的R1_Central路由器上配置静态路由,配置命令如下:

R1-Central(config)#ip route 192.168.254.0 255.255.255.0 10.10.10.6

同时在运营商网络R2_ISP路由器上配置静态路由,配置命令如下:

R2_ISP(config)#ip route 172.16.0.0 255.255.0.0 10.10.10.5

完成上述配置后,在内部网络的PC_Client上打开命令提示符窗口,通过ping命令测试PC_Client与DNS_Server、PC_Client与Http_Server的互联互通情况,如下图2所示:

通过上图2所示,可以看出在Client上能ping通DNS_Server和Http_Server,从而说明PC_Client与DNS_Server、Http_Server已实现互联互通,为下一步进行客户端基于域名访问服务器确保了网络可达。

在本次实验设计中,将服务器Http_Server作为WEB服务器,提供网页访问服务。因此,需要在服务器Http_Server上开启HTTP服务,并建立WEB页面。进入服务器Http_Server配置界面,在服务(Services)选项卡中,选择HTTP服务,将HTTP服务设置为开启状态(On),并建立三个网页文件:copyrights.html、helloworld.html、index.html。操作方法如下图3所示:

在本次实验设计中,将服务器DNS_Server作为域名解析服务器(DNS),提供域名解析服务。进入服务器DNS_Server配置界面,在服务(Servicer)选项卡中,选择DNS服务,将DNS Services设置为开启状态(On),在DNS资源记录中,增加一条A记录:eagle-server.example.com[192.168.254.254]。如下图4所示:

2.3 在模拟模式中分析协议数据单元

在Packet Tracer中,默认使用的模式是实时模式(Realtime)。在实时模式中,设计的网络就像真实的网络按照配置情况实时响应和运行。为方便本实验观察和分析协议数据单元,需切换到模拟模式(Simulation)。在模拟模式中,数据包在设计的网络中按步进的方式在不同设备间以动画方式顺序运行,方便观察数据包的路径并进行跟踪检查,为教学过程中快速、生动地理解抽象的网络协议提供了支持。在该模式中,Packet Tracer默认捕获网络通信过程中支持的所有事件和协议。在本次实验中,通过设置事件列表过滤器来限制捕获的事件,只捕获DNS协议和HTTP协议。

从客户端Client的桌面打开Web浏览器,在地址栏中输入域名:http://eagle-server.example.com/index.html,点击Enter,然后用 Event List(事件列表)中的 Capture / Forward(捕获/转发)按钮捕获 DNS 与 HTTP 的交互过程。通过模拟模式,可以清晰展现出本次实验经历的4个阶段:

1)客户端(Client)向DNS服务器(DNS_Server)發起DNS查询请求;

2)DNS_Server向Client反馈DNS查询结果(192.168.254.254);

3)Client向WEB服务器(Http_Server)发起HTTP请求;

4)Http_Server向Client反馈Web页面。如下图5所示:

与此同时,随着模拟通信的动画过程,在模拟面板(Simulation Panel)的事件列表(Event List)中,协议数据单元在不同设备中按时间顺序以列表方式依次呈现,如下图6所示:

在第一个阶段: Client向DNS_Server发起DNS查询请求,双击图6所示的对应协议数据单元,查看协议数据单元信息在Client中的网络体系结构和数据格式。如下图7、图8所示:

OSI的七层协议体系结构概念清楚,理论也较完整,但既抽象又复杂。TCP/IP四层结构较为实用,得到了非常广泛的应用。在学习计算机网络的原理时,往往采取折中的办法,即综合OSI和TCP/IP的优点,采用一种只有五层协议的体系结构[1]。笔者和同行教师在教学体会交流中,普遍认为在理论教学过程中,对该部分的讲解取得的效果往往不尽人意,学生在初学的过程中反映难以理解。不过,将图7、图8和OSI体系结构、TCP/IP体系结构相结合并建立对应关系后,对网络体系结构的认识变得形象而具体,如下图9所示:

通过上图9所示,对不同层的协议数据单元分析如下:

1)对于应用层协议数据单元,Client发出一个DNS查询请求(DNS Query),其中查询名(NAME)部分用来表示请求查询的域名,长度不固定,在本实验中是需要访问的服务器域名:eagle-server.example.com;查询类型(TYPE)为:1,表示由域名返回IPv4地址;查询类(CLASS)为:1,表示是Internet数据。该数据封装于DNS头部(DNS Header),其中:会话标识(ID)用于区分不同的请求和响应;接下来的2个字节表示各类标志;然后是8个字节的数量字段:查询问题区域节数量(QDCOUNT)、回答区域数量(ANCOUNT)、授权区域数量(NSCOUNT)、附加区域数量(ARCOUNT),由此形成DNS查询数据报文。

2)对于运输层协议数据单元,在DNS查询数据报文的基础上,封装源端口号:1038、目的端口号:53,由此形成UDP(用户数据包)数据段。

3)对于网际层协议数据单元,通过網络层封装源IP:172.16.1.1、目的IP:192.168.254.250,由此形成DNS查询数据报。

4)对于网络接口层协议数据单元,通过数据链路层封装源MAC:0000.0CEB.43E5,下一跳MAC:000D.BDD0.7601,形成数据帧;最后通过物理层快速以太网网卡发送二进制比特流。

在第二个阶段,DNS_Server收到来自Client的DNS查询请求后,向Client反馈DNS查询结果,双击图6所示的对应协议数据单元,同样可以查看协议数据单元信息在DNS_Server中的网络体系结构和数据格式。为便于理解和学习,与OSI体系结构、TCP/IP体系结构相结合并建立对应关系如下图10所示:

通过上图10所示,对不同层的协议数据单元分析如下:

1)对于应用层协议数据单元,DNS_Server返回一个DNS响应(DNSAnswer),其中地址(ADDRESS)为:192.168.254.254,该地址通过在DNS_Server域名数据库中查询得到;该数据封装于DNS头部(DNS Header),由此形成DNS查询数据报文。

2)对于运输层协议数据单元,在DNS返回的数据报文基础上,封装源端口号:53、目的端口号:1038,由此形成UDP(用户数据包)数据段。

3)对于网际层协议数据单元,通过网络层封装源IP:192.168.254.250、目的IP:172.16.1.1,由此形成DNS查询数据报。

4)对于网络接口层协议数据单元,通过数据链路层封装下一跳MAC:00D0.97A4.1301,源MAC:0001.969C.9277,形成数据帧,最后通过物理层快速以太网网卡发送二进制比特流。

在第三个阶段,Client根据返回的DNS查询结果得知:域名为eagle-server.example.com的服务器对应的IP地址为192.168.254.254。从而发出一个HTTP请求,其协议数据单元中目的IP地址为192.168.254.254,源IP地址为172.16.1.1。协议数据单元在网络体系结构的不同层次中的数据格式和分析方法同前述类似,在此不再赘述。

在第四个阶段,HTTP请求到达Http_Server后,Http_Server根据请求内容,返回响应WEB页面,其协议数据单元中的目的IP地址为172.16.1.1,源IP地址为192.168.254.254。协议数据单元在网络体系结构的不同层次中的数据格式和分析方法同前述类似,在此不再赘述。

以上阐述了DNS协议和HTTP协议的工作原理,并通过Packet Tracer动态跟踪展现了两个协议的完整实现流程。利用软件平台的模拟模式,将网络体系结构中不同层次的协议数据单元内容进行清晰呈现,使学生对DNS协议和HTTP协议,以及网络体系结构有了比较全面的认识和理解。

3 实验效果分析

通过本实验,以C/S模式中基于域名访问服务器为例,把涉及的网络拓扑结构、路由器配置、DNS服务器和HTTP服务器配置、域名解析、WEB访问等知识点进行了有效串接。利用Packet Tracer将上述过程进行了模拟显示,并通过对域名解析过程中的协议数据单元开展分析,将计算机网络体系结构的OSI七层协议、TCP/IP的四层协议、五层协议结构等进行对比学习,使学生对抽象的计算机网络体系结构建立了具体的认知。利用Packet Tracer仿真软件的模拟模式,以动态和过程化的方式展现了协议数据单元的内容和格式,把抽象的协议定义直观有效地进行了呈现,解决了在实际操作过程中无法直观展现协议数据单元的内容和变化过程这一问题。同时,利用Packet Tracer进行操作还培养了学生实践动手能力和探索能力,激发了学习计算机网络的积极性。

4 结语

本文以域名解析协议的实验设计为例,采用Packet Tracer仿真软件进行模拟实现,既方便教师课堂教学,还方便学生在课余时间反复演练和强化理解。该实验具有较强的示范推广效应,还可以在对FTP、SNMP、TELNET、SMTP、POP3等协议的教学中开展类似的实验设计和教学。此外,还可以与网络封包分析软件配合使用,如:Wireshark[9],进一步分析观察协议数据单元的比特流数据形式和特点。

参考文献:

[1] 谢希仁.计算机网络[D].第七版.北京:电子工业出版社,2017.

[2] 彭赟,刘志雄,刘晓莉,孙云莲,査晓明,饶凌平.TCP/IP网络体系结构分层研究[J].中国电力教育,2014(15):38-39+64.

[3] 朱立才,耿珍,黄津津.网络工程专业计算机网络实验教学的设计与实施[J].实验技术与管理,2017,34(5):161-164.

[4] 刘淑婷.基于层次型网络体系结构的教学方法研究[J].教育教学论坛,2012(18):50-51.

[5] 杨鹏,顾冠群.计算机网络的发展现状及网络体系结构涵义分析[J].计算机科学,2007(3):1-5+158.

[6] 张晓明,陈明,杜天苍,向胜军,赵国庆,张世博.计算机网络实践教学体系与能力培养[J].实验室研究与探索,2013,32(10):401-404+411.

[7] 徐庚保,曾莲芝.计算机网络和网络控制系统的仿真研究[J].计算机仿真,2010,27(2):140-144+319.

[8] 袁志坚,王金双,陈融,潘林.基于Packet Tracer的“信息安全”教学实例[J].计算机工程与科学,2014,36(S2):254-258.

[9] 罗青林,徐克付,臧文羽,刘金刚.Wireshark环境下的网络协议解析与验证方法[J].计算机工程与设计,2011,32(3):770-773.

【通联编辑:王力】

猜你喜欢

域名解析虚拟仿真
域名解析服务管理问答
免费动态域名解析软件
基于传输层协议的网络访问控制研究
一种去中心化的网络域名服务系统模型
虚实结合和科教融合的计算机实验教学体系
基于云的域名解析服务模型