Wireshark在TCP/IP网络协议教学中的应用

时间:2022-04-09 09:53:23

Wireshark在TCP/IP网络协议教学中的应用

摘要:本文结合“计算机网络”课程的教学,并通过网络教学实践,对课程的教学方法进行了探讨。通过实例介绍了利用Wireshark捕获网络通信数据包,分析网络协议的数据传输机制,强调培养学生解决问题的应用能力。

关键词:“计算机网络”教学;Wireshark;TCP/IP

“计算机网络”课程作为计算机科学与技术、网络工程、通信工程和软件工程等专业的主干课,其地位在课程体系群中尤为重要。学习这门课程,最重要的是掌握计算机网络的原理,了解网络硬件和软件的工作机制。计算机网络基础理论复杂抽象,概念众多,对刚开始学习计算机网络的学生来说,这些概念和协议是非常难以理解和记忆的。计算机网络原理主要描述的是各层的功能及其协议和服务,具体地说就是要理解网络的相关功能层概念和网络体系结构(包括OSI参考模型、TCP/IP模型协议族),以及功能模块之间的协议交互[1],这是学好计算机网络的关键。网络体系结构是计算机网络及其部件所应完成的功能的精确定义。计算机网络原理主要讲述的就是各层的功能及其协议和服务。在计算机网络教学过程中,利用Wireshark网络探测和分析软件,通过从网络中实时捕获几种常见协议数据包并进行分析,使学生对一些协议的工作原理及结构有了更加深刻的理解和认识[2]。

1Wireshark简介

Wireshark(原名Ethereal)是目前世界上最受欢迎的协议分析软件,利用它可将捕获到的网络二进制数据流翻译为人们容易读懂和理解的文字和图表等形式,极大地方便了对网络活动的监测分析和教学实验。它有十分丰富和强大的统计分析功能,可在Windows,Linux 和UNIX等系统上运行。它允许在一个网络内部实时捕获和分析数据包,用户可以通过图形界面很直观地浏览捕获到的数据信息,研究数据包每一层的详细信息[3]。

学习和理解计算机网络原理的最好方法是,理论联系实际。在一个现实的局域网中,网络数据流往往是来自不同用户的各种各样协议数据的大混杂,因此利用Wireshark的“捕获过滤器”和“显示过滤器”,从错综复杂的数据流中迅速提取自己所关心的网络信息,了解和掌握网络的工作原理和协议的交互过程。

Wireshark使用目的是网络管理员使用Wireshark来检测网络问题、网络安全工程师使用Wireshark来检查资讯安全相关问题、开发者使用Wireshark来为新的通讯协议除错、普通使用者使用Wireshark来学习网络协议的相关知识等。

2用Wireshark分析网络协议

网络协议是网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)之间通信规则的集合,它定义了通信时信息必须采用的格式和这些格式的意义。TCP/IP(Transmission Control Protocol / Internet Protocol),即传输控制协议/互联网协议是不同操作系统的计算机网络互连的通用协议,它是一组计算机通信协议族,其中最著名的两个协议是TCP及IP协议。TCP/IP协议具有开放式互联环境,很容易实现各种局域网和广域网的集成式互联。此协议是当今技术最成熟、应用最广泛的网络协议[4]。

TCP是一种面向连接的、可靠的运输层协议,TCP数据传输(只有连接建立后才可进行数据传输)需要通过在客户端和服务器端建立特定的虚电路连接来完成,该过程通常被称为“三次握手”,即发送方先发送连接请求,然后接收方进行连接确认,最后发送方对接收方的确认再次进行确认(图1)。下面就以Wireshark对 TCP连接建立交互过程的数据包捕获分析为例,来说明对TCP/IP协议实现的分析。

2.1建立捕获TCP连接报文的实验环境

PCATTCP是一款不错的测试局域网网络速度的软件。在局域网中,两台主机通过交换机连接起来。在服务器端和客户端都安装和运行PCATTCP进行通信,产生TCP流。启动Wireshark进行数据包捕获,单击CaptureInterfaces菜单,选择自己的网卡,选择Start开始监控流量。在服务器端运行ttcp,监听TCP的5001端口。图2是服务器端的完整命令行输出:

服务器配置好后,在客户端运行ttcp,双方开始通信。

2.2TCP报文分析

2.2.1客户端发送连接请求

捕捉到的TCP 连接报文如图3所示。

从图3可以看出,客户端发出的连接请求数据包封装了三个头信息:以太网(Ethernet)帧、IP数据报和TCP报文段。在数据链路层,数据以帧的方式进行传输。在网络层,加工的主要数据对象是IP数据报。IP协议是TCP/IP协议族中的核心协议之一,所有的TCP、UDP、ICMP数据都以IP数据报格式传输。

在运输层,主要数据对象是TCP报文。客户端发送的连接请求如图4所示。

第一条报文是没有数据的TCP报文段,并且将首部的SYN位设置为1。因此,第一条报文常常被称为SYN分组。这个报文段里的序列号是由系统随机设置的数值,表示客户端为后续报文设定的起始编号。此TCP报文段,序列号SEQ在连接请求时相对初始值是0,其实际值是c9 f4 65 c2;确认号是00 00 00 00,ACK标志为0表明确认号被忽略。SYN=1表示正在进行连接请求,通过SYN和ACK也可以用来区分Connection Request和Connection Accepted,在连接请求中,SYN=1、ACK=0,连接响应时,SYN=1、ACK=1。

SYN分组通常是从客户端发送到服务器端。这个报文段请求建立连接。因为一旦成功建立连接,服务器进程必须已经在监听SYN分组所指示的IP地址和端口号[5]。如果没有建立连接,SYN分组将不会应答。如果第一个分组丢失了,客户端通常会发送若干个SYN分组,如果多次尝试不成功,客户端将会停止并报告一个错误给应用程序。

2.2.2服务端连接响应

当服务器接收到连接请求时,就对请求方进行响应,以确认收到客户端的第一个TCP报文段。响应的报文段SYN位和ACK位都将置1。通常称这个报文段为SYNACK分组。SYNACK分组在确认收到SYN分组的同时也发出一个初始的数据流序列号,表示服务器发向客户端的数据序号,它不需要与刚才客户端发来的数据流的序列号相匹配。服务器端响应的数据包如图5所示。

此数据包的起始序列号SEQ在协议框中显示为0,在原始框中的实际值为63 cf 1a c9。所有初始序列号逻辑上都视同为序列号0。ACK标志为1表明确认号有效,SYN仍然为1。

图6中确认号在协议框中显示为1,在原始框中的值为c9 f4 65 c3(比c9 f4 65 c2多1)。这解释了TCP的确认模式,TCP接收端确认第X个字节已经收到,并通过设置确认号为X+1来表明期望收到的下一个字节号。

2.2.3客户端连接确认

在TCP连接建立的最后阶段,客户端对接收到数据包的服务器端进行确认,到此为止建立完整的TCP连接,开始全双工模式的数据传输过程。客户端收到服务器端确认后,发送带有ACK标志的TCP报文段来完成三次握手的过程[6]。这个报文段将确认服务器端发送的SYNACK分组,并检查TCP连接的两端是否正确地打开和运作。

如图7所示,在确认阶段,数据包由客户端发送至服务器端,TCP中的序列号为c9 f4 65 c3(即上次服务器响应报文的确认号)。

图8中,报文段的本次确认号为63 cf 1a ca(即上次的序列号加1)表示客户端下一次希望从主机接收的数据的起始位置。ACK标志为1表明确认号有效,SYN置为0表示连接建立结束。连接建立后,双方可以根据各自的窗口尺寸开始传输数据。

2.3小结

从以上的图可以看出,利用Wireshark可以针对每一数据包,完成从链路层、网络层、运输层到应用层的协议解析。通过上面步骤,可以更加直观的观察到TCP三次握手建立的过程,有助于理解TCP及其工作原理,掌握协议的语法细节。

3结语

计算机网络基本理论复杂抽象,不易理解,但这部分内容又是进一步学习“计算机网络”课程,培养实践应用能力的基础。在教学过程中,通过合理组织授课内容,采用先进的教学方法和较为科学的教学手段,使学生能够较好地掌握计算机网络的基本理论和方法。利用Wireshark网络协议分析软件,进行网络性能参数和数据代码的捕获分析,了解协议的封装结构、交互过程,对于计算机网络教学有很大的帮助。

参考文献:

[1] 谢希仁. 计算机网络[M]. 大连:大连理工大学出版社,2004.

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

[3] Angela Orebaugh,Gilbert Ramirez,Jay Beale. Wireshark & Ethereal Network Protocol Analyzer Toolkit[M]. Burlington:Syngress Press,2006.

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

[5] 蒋波,李方军,郝军. 数据包的截获与网络协议分析[J]. 重庆三峡学院学报,2006,22(3):26-28.

[6] Miller D. 数据通讯与网络[M]. 邓劝生,薛建新,王涌,译. 北京:清华大学出版社,2007.

The Application of Wireshark in TCP/IP Network Protocol Teaching

PAN Wen-chan, ZHANG Yun

(College of Computer Science, Nanjing University of Posts and Telecommunications, Nanjing 210003, China)

Abstract: Combining with the teaching practice of computer network, a concise probe into the teaching methods of computer network is made. Wireshark is a network packet analyzer, which will try to capture network packets and tries to display these packet data as detailed as possible and make analysis of the network transport control protocol. The purpose of this study is to cultivate student ability to analyze and solve problems.

Key words: computer network teaching; Wireshark; TCP/IP

上一篇:浅谈如何提升多媒体教学的质量 下一篇:为两化融合分类培养创新人才的探索