Wireshark在计算机网络原理教学中的应用研究

2017-09-14 21:59赵安军曾应员董丽丽
教育教学论坛 2017年39期

赵安军+曾应员+董丽丽

摘要:在计算机网络原理教学中,对于抽象的网络协议的理解始终是教学的难点。本文给出了利用Wireshark协议分析工具开展计算机网络原理网络协议的理论教学,结合数据链路层、网络层以及运输层协议的基本原理,通过Wireshark协议分析结果,详细讨论了复杂协议与具体数据包实现的对应过程。这种理论联系实际的教学方法在计算机网络原理教学中起到了很好的教学效果。

关键词:计算机网络原理;Wireshark;协议分析;TCP/IP

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2017)39-0258-02

一、概述

计算机网络原理教学中,网络协议的体系结构以及支撑体系结构的相关协议是教学的重点和难点。体系结构本身就是抽象的,协议也是抽象的,导致学生对于网络原理理解困难。各层协议数据分组首部是协议功能实现的主要依赖,通过讲解协议数据分组首部的构成、各控制字段代表功能及其含义是理解网络协议的主要手段。Wireshark(前称Ethereal)是一个网络数据包分析软件,使用WinPCAP作为接口,直接与网卡进行数据报文交换。它的功能是捕获网络数据包,并尽可能显示出最为详细的网络数据包信息。借助于Wireshark网络数据包分析功能,结合教学中对于各协议数据分组首部的具体讲解,把抽象的协议和具体的数据包联系起来,使得学生能够深入的理解和掌握网络分层的概念以及协议的工作原理。

二、Wireshark在教学中的应用

Wireshark将各网络层的数据包层层剥开,按照计算机网络原理分层的体系结构,给出了各层数据包包括帧(数据链路层)、网络层(IP数据报)、传输层(TCP)以及用户数据的数据包头格式。

图1给出了Wireshark捕获到当打开百度搜索引擎网站时用于和百度WEB服务器建立TCP连接数据包,三个数据帧给出了TCP连接建立的三次握手过程。结合课程讲解中的数据链路层、网络层以及传输层中的数据分组首部,利用Wireshark给出的数据包分析结果,能够直观、易懂的讲解不同层数据分组首部的构成及其含义。

1.数据帧首部分析。以太网数据帧格式,不考虑前同步码和帧定界,包括目的MAC地址、源MAC地址、数据类型以及帧校验序列。

图1的Wireshark的数据包分析中,给出了目的主机和源主机网卡的厂商及MAC地址,根据数据帧中类型字段值(0X0800),给出了数据帧中携带的数据类型为IPv4数据。Wireshark数据链路层以太网协议分析没有给出前同步码和帧校验序列(FCS),这是因为网卡在物理层处理时,要去掉前导码和帧定界符,然后通过FCS校验数据帧的正确性,如果校验出错,丢弃此帧,校验正确,就将帧交网卡驱动程序做进一步处理。因此,在Wireshark的数据链路层分析中,看不到前同步码和帧定界符。

2.IP数据包首部分析。IPv4下的IP数据报首部固定部分的格式,包括IPv4版本,IP数据报首部长度,區分服务,总长度,数据报标识、标志以及片偏移,生存时间,上层协议,首部检验和,源、目的IP地址。

在图1的Wireshark给出的IP数据报分析中,给出了首部各字段及其相关的值具体的展示。IP的版本对应的值是4,首部的长度是20bytes,区分服务为0X00的默认值,IP数据报总长度为40字节,数据报的标识是0X0940,标志给出此数据报不允许分片,因此片偏移为0,生存时间为64,表明数据报被丢弃前最多能进过64太路由器,协议类型为6,代表数据报包含的数据为TCP数据,首部校验和为0X21c4,所显示的未验证是因为操作系统设置不进行校验,可以通过选项来修改,最后是源IP地址192.168.1.122和目的地址220.181.112.244。

3.TCP报文段首部分析。TCP报文段的首部格式包括用来完成进程通信的源端口和目的端口;发送方发送TCP报文段的第一个字节的序号;本端想要接收对端报文段的第一个字节序号的确认号;相当于报文段首部的数据偏移;用来控制TCP连接的URG、ACK、PSH、RST、SYN、FIN六个标志位;本端告知对端的接收窗口;检验和与紧急指针。

图2的Wireshark给出的打开百度主页的TCP报文段分析中,三个数据帧分别代表了TCP建立连接时的三次握手过程。以第一个数据帧为例,浏览器端的源端口是2342,百度Web服务端的端口是443;流索引和TCP段长度是Wireshark给出的内容;序列号是0,实际上当某个主机开启一个TCP会话时,初始序列号是随机的,可能是0和4,294,967,295之间的任意值,但Wireshark显示的都是相对序列号/确认号,而不是实际序列号/确认号,相对序列号/确认号是和TCP会话的初始序列号相关联的,因为比起真实序列号/确认号,跟踪更小的相对序列号/确认号会相对容易一些。比如,在“第一个数据帧”中,最初的相对序列号的值是0,但是实际的ASCII码显示真实序列号的值是0x54729cd9,转化为10进制为1423088857;确认号也是相对确认号,值为0;标志位为0X002代表该报文段是第一个TCP连接建立的握手过程;窗口大小为8192;检验和为0Xd1dd;紧急指针为0。

三、总结

计算机网络原理各层协议及分组首部在课程讲解中较为抽象,通过引入Wireshark协议分析工具,能够直观、具体地将网络各层分组的首部及其携带的数据展示出来,在教学过程中,教师通过实时的捕获网络数据,可以将TCP/IP各层数据的封装、解封过程进行更加具体、详细讲解。无论是对于教师的教学支持,还是对于学生网络原理的理解,都有很大的帮助作用。

参考文献:

[1]杨春勇,潘文君,朱翠涛.计算机网络课程教学及辅助教学方法研究[J].高等函授学报:自然科学版,2008,21(6):12-14.

[2]Wireshark User's Guide [EB/OL].

http://www.wireshark.org/ docs/wsug_html_chunked/.2015.

[3]谢希仁.算机网络[M].第6版.北京:电子工业出版社,2013.

[4]Forouzan.B.A.TCP/IP协议族[M].第3版.谢希仁译.北京:清华大学出版社,2006.

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