网络协议分析实验指导书.docx
《网络协议分析实验指导书.docx》由会员分享,可在线阅读,更多相关《网络协议分析实验指导书.docx(59页珍藏版)》请在冰豆网上搜索。
![网络协议分析实验指导书.docx](https://file1.bdocx.com/fileroot1/2022-12/10/fc1d6b7f-49ce-47f9-8e9b-5de1cc15a504/fc1d6b7f-49ce-47f9-8e9b-5de1cc15a5041.gif)
网络协议分析实验指导书
《网络协议分析》实验指导书
张鼎兴
计算机信息工程系
2016年3月
前言
《网络协议分析》课程是针对计算机及网络工程专业的本科生而设置的一门课程,它具有很强的理论性和实践性。
本实验指导书是专门为《网络协议分析》理论课程配套的、指导学生完成相关实验及操作而编写的。
本实验指导书按照TCP/IP的层次结构对网络互连中的主要协议进行分析,由下而上的设计了9个实验,涉及ARP协议分析、IP协议分析、ICMP协议分析、UDP协议分析、TCP协议分析、DHCP协议分析、DNS协议分析、HTTP协议分析、SMTP协议与POP3协议分析。
在实验内容之前对实验采用的Wireshark软件进行了介绍。
希望学生们通过以上实验进一步加深对网络协议的理解和掌握协议分析的方法。
特别说明:
1、本指导书中给出的实验网络物理模型,不需要学生动手搭建,所有网络物理模型都基于现有的实验室运行环境。
2、本指导书中实验内容的开展与实验室使用的交换机和路由器的品牌无关,实验指导书中指出实验品牌等,只是为了举例方便。
3、实验中设备的ip地址以实际实验机器的ip地址为准,不同学生的IP地址应该不同。
1.网络协议分析实验环境要求4
2.网络协议分析器Wireshark5
2.1Wireshark主窗口简介5
2.2Wireshark菜单栏简介6
2.3Wireshark的工具栏7
2.4Wireshark的网络数据抓包过程8
2.5由Wireshark协议窗口分析协议的格式10
3.网络层协议分析11
实验一ARP协议分析12
实验二IP协议分析15
实验三ICMP协议分析19
4.传输层协议分析28
实验四UDP协议分析29
实验五TCP协议分析31
5.应用层协议分析34
实验六DHCP协议分析35
实验七DNS协议分析37
实验八HTTP协议分析39
实验九SMTP及POP3协议分析43
1.网络协议分析实验环境要求
(1)本指导书按照TCP/IP的层次结构对网络互连中的主要协议进行分析。
本章实验的基本思路是使用协议分析工具从网络中截获数据报,对截获的数据报进行分析。
通过试验,使学生了解计算机网络中数据传输的基本原理,进一步理解计算机网络协议的层次结构、协议的结构、主要功能和工作原理,以及协议之间是如何相互配合来完成数据通信功能的。
Windows环境下常用的协议分析工具有:
SnifferPro、Natxray、Iris、Wireshark以及Windows2000自带的网络监视器。
本书选用Wireshark1.4.9中文版作为协议分析工具。
(2)网络协议图
2.网络协议分析器Wireshark
Wireshark(前称Wireshark)是一个网络封包分析软件。
网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。
Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。
2.1Wireshark主窗口简介
图1是抓包完成后的Wireshark的主窗口。
过滤栏以上是Wireshark本身的菜单,过滤栏以下是抓获的包经过分析后的显示信息。
图1抓包完成后的Wireshark主窗口
其中:
1.菜单栏通常用来启动Wireshark有关操作;
2.工具栏提供菜单中常用项目的快速访问;
3.过滤器栏提供一个路径,来直接控制当前所用的显示过滤器;
4.包列表窗格显示当前抓包文件的全部包的摘要。
包列表的每一行对应抓包文件中的一个包,不同报文有不同的颜色,但是没有明显的规
律。
如果你选择了一行,则更详细的信息显示在协议窗格和包字节数据窗格中。
注意:
在此窗格里单击某个包,就会在另外的第二个窗口里显示这个包的信息。
当Wireshark解析一个包时,由协议解析器将信息放置到行列中去,比较高级协议会改写较低级协议的信息,你只能看到最高级协议的信息。
例如,IP内部包含有TCP的Ethernet包,Ethernet解析器将写出它的数据(如Ethernet地址),而IP解析器将用自己的数据改写它(如IP地址),等等。
在包列表窗格中的每一列代表抓获的一个包,每个包的摘要信息包括:
*No:
抓包文件中包的编号。
,即使已经用了一个显示过滤器也不会改变。
*Time:
包的时间戳,即抓获该包的时间,该时间戳的实际格式可以改变。
*Source:
包的源地址。
*Destination:
包的目标地址。
*Protocol:
包协议的缩写。
*Info:
包内容的附加信息,这是一种可用的上下文菜单(鼠标右键)。
5.包协议窗格(包细节窗格)
包协议窗格以更详细的格式显示从包列表窗格选中的协议和协议字段。
包的协议和字段用树型格式显示,可以扩展和收缩。
这是一种可用的上下文菜单,单击每行前的“+”就可以展开为以“-”开头的若干行,单击“-”又可以收缩。
在每个协议行中,会显示一些指定的协议字段:
(1)生成的字段:
Wireshark自己会生成附加的协议字段(括号括起来者)。
这些字段的信息是从抓包文件中已知的与其它字段的上下文推导出来的。
例如,Wireshark分析每个TCP流的顺序号/确认号时,就会在TCP协议的[SEQ/ACK分析]中显示出来。
(2)链接:
如果Wireshark检测到抓包文件中存在着与其它包的关系,就会产生一个到其它包的链接。
链接用蓝色显示,双击它,Wireshark就跳到相应的包。
6.包字节窗格(十六进制数据窗格)
包字节窗格以十六进制形式显示出从包列表窗格中选定的当前包的数据,并以高亮度显示在包协议窗格中选择的字段。
在常用的十六进制区内,左边示出包数据的编号,中部为相应的十六进制显示出包数据,右边为对应的ASCII字符。
7.状态栏
显示当前程序状态和抓获的数据的信息。
通常左边显示相关信息的状态,右边显示包的当前数目。
2.2Wireshark菜单栏简介
1.文件菜单
文件菜单包括打开和合并抓包文件,保存、另存为、导出抓包文件,退出Wireshark等命令。
2.编辑菜单
编辑菜单包括查询包,时间查询,标记或标识一个或多个包,设置你的选项(剪切,拷贝,粘贴当前不能实现)
3.视图菜单
视图菜单控制抓抓获的包数据的显示,包括对抓获包的着色,字型的缩放,协议窗格中协议树的压缩和展开。
4.定位菜单
以不同方式指向特定的包。
5.抓包菜单
开始和停止抓包过程、参数选择以及选择抓包过滤器。
6.分析菜单
包括的选项由操作显示过滤器,允许和不允许对协议解析,配置用户指定的译码器和跟踪一个TCP流。
7.统计菜单
显示各种统计窗口的菜单项,包括已经抓到的包的摘要,显示协议的分层统计等等。
8.帮助菜单
包括帮助用户的选项,诸如一些基本帮助,所支持的协议列表,手工页面,在线访问一些web页面,以及常用的对话框。
除此之外,还有电信和工具菜单,实验用不到,不再介绍.
2.3Wireshark的工具栏
Wireshark工具栏提供主菜单中常用的选项的快速访问。
工具栏不能由用户定制,但是如果屏幕空间需要显示更多的包数据,就可以用视图菜单将它隐蔽。
作为菜单,只有当前程序被选用时该选项才是可用的,其它选项变成灰色(如果尚未装载数据就不能存入抓包文件)。
图2为各种工具图标的名称。
接口选项开始停止重开始打开存储为关闭重载打印
查询包向后向前指定包到首包到末包包着色卷屏放大取消放大
图2各种工具图标的名称
*接口:
单击此图标,出现一个抓包选项表对话框;
*选项:
引出一个抓包选项对话框;
*开始:
根据选项在最近时间开始抓包;
*停止:
停止当前运行的抓包过程;
*重开始:
为了方便起见,停止当前运行的抓包过程,重新开始;
*打开:
出现打开文件对话框,让你打开一个抓包文件来观察;
*存储为:
让你将当前的抓包文件存储为你希望的文件。
弹出“SaveCapture”
对话框;
*关闭:
关闭当前的抓包文件,如果没有存储该包被会询问是否存储;
*重载:
允许重装当前的抓包文件;
*打印:
引出打印对话框,允许全部或部分打印包文件中的包;
*查询包:
引出查询一个包的对话框;
*向后:
在包历史中向回跳;
*向前:
在包历史中向前跳;
*指定包:
引出对话框,跳到指定编号的包;
*到首包:
跳到包文件中第一个包;
*到末包:
跳到包文件中最后一个包;
*着色:
对包列表中抓获的色,用不同颜色显示;
*放大:
放大打开的包数据(增大字型);
*取消放大:
取消包数据放大。
2.4Wireshark的网络数据抓包过程
Wireshark的抓包有如下特征:
*可以从不同类别的网络硬件抓包,如Ethernet、TokenRing、ATM等;
*停止抓包时不同的触发器相似:
如抓获数据的总数、抓包时间,抓获包的数目;
*抓包过程中同时显示编译后(解析)的包。
*根据包过滤器的条件,从抓获的全部数据中进行过滤,减去符合条件的包。
使用Wireshark进行网络协议分析时应当注意:
必须有管理员权限才能开始抓包过程;必须选择正确的网络接口来抓获包数据;必须在网络的正确的位置抓包才能看到想看到的业务流量。
1.通过抓包接口开始抓包.通过抓包接口开始抓包
可以通过工具栏的接口选项,或者“Capture”菜单的“Interfaces”选项选择抓包菜单后,Etherea弹出抓包接口对话框,如图4所示。
但需注意,作为抓包接口对话框,只在数据抓包前显示,会消耗很多系统资源,要尽快关闭对话框以防止过多的系统装载。
图3抓包接口对话框
图中第一行为千兆以太网网卡。
工具栏框中的各个选项叙述于下:
*详细信息:
显示网卡的描述信息,上图中为“Intel(R)82579LMGigrbitNetworkConnnection”;
*IP地址:
Wireshark可能从这个接口分辨第一个IP地址,如果分辨不出地址,就会显示“unknown”,如果解析出不止一个IP地址,则只显示第一个(图中显示的是IPv6的地址,其IPv4地址为192.168.7.87,但未显示);
*Packets:
从对话框打开后从该接口侦测到的包数。
如果最近一秒没有侦测到包,则Packets变为灰色;
*Packets/s:
在最近一秒侦测到的包数,如果没有侦测到包,则在最近一秒变为灰色;
*停止:
停止当前抓包运行;
*开始:
利用最后抓包设置立即在该接口开始抓包;
*选项:
打开该接口的抓包选项对话框;
*详情:
显示接口更多细节
*关闭:
关闭对话框。
如果选择Capture,则立即开始抓包。
抓到足够的包后,单击Stop停止抓包。
即可显示如图1的抓包完成后的Wireshark主窗口。
2.通过抓包菜单选项抓包
Wireshark的抓包(capture)选项,如图4所示。
图4Capture选项
(1)单击选择抓包过滤器(F)...,弹出过滤器窗口,如图5所示。
图5Capture过滤器选项
(2)在显示过滤器栏中选择某项过滤器名称,如“NoBroadcastandnoMulticast”或“TCPonly”,则在过滤名字和过滤条件文本框中显示你的选项。
也可以在过滤名字框中键入过滤器名字,在过滤条件框中键入过滤器字符串,单击新建,一个过滤器就建立好了。
单击抓包菜单,选择抓包参数选择,弹出图6所示过滤器选项窗口,指明网络适配器,抓包模式,包字节限制,过滤条件等有关抓包的系统配置的启用和设置。
图6过滤器选项窗口
(3)Wireshark的抓包过滤器
抓包过滤器用来只抓取你感兴趣的包。
如果你想抓取某些特定的数据包时,有两种方法可供选择。
第一种方式是先定义好抓包过滤器,结果是只抓到你设定好的那些类型的数据包;
第二种方式是,先把本机收到或者发出的包全部抓下来,再使用显示过滤器,只显示你想要的那些类型的数据包,这种方式比较常用,建议实验时大家采用。
(4)最后单击开始,即可开始抓包,并弹出本机收到的数据报文统计信息。
此后的操作与通过接口抓包相同,单击停止命令即可停止抓包,并显示对截获到的报文进行分析后的界面。
2.5由Wireshark协议窗口分析协议的格式
Wireshark抓包后的界面有三个部分,上部为报文列表窗口,显示的是对抓到的每个数据报文进行分析后的总结型信息,包括编号、时间、源地址、目标地址、协议、信息。
中部为协议树窗口,显示的是数据报文的协议信息。
在报文列表窗口选择不同条目则协议树窗口的内容随之改变为相应的协议信息。
下部为16进制报文窗口,可以显示报文在物理层的数据形式。
在抓包完成后,显示过滤器可以用来找到你感兴趣的包,也可根据协议、是否存在某个域、域值、域值之间的关系来查找你感兴趣的包。
1..Wireshark的显示过滤器
可以使用下面的操作符来构造显示过滤器:
eq==等于:
如ip.addr==10.1.10.20
ne!
=不等于:
如ip.addr!
=10.1.10.20
gt>大于:
如frame.pkt_len>10
lt<小于:
如ltge>=大等于:
如frame.pkt_len>=10
le<=小等于:
如frame.pkt_len<=10
也可以使用下面的逻辑操作符将表达式组合起来:
and&&逻辑与:
如ip.addr=10.1.10.20&&tcp.flag.fin
or||逻辑或:
如ip.addr=10.1.10.20||ip.addr=10.1.10.21
xor^^异或:
如tr.dst[0:
3]==0.6.29xortr.src[0:
3]==not
!
逻辑非:
如!
llc
例如:
你想抓取IP地址是192.168.7.87的主机所收或发的所有的HTTP报文,则显示过滤器(Filter)为:
ip.addr=192.168.7.87andhttp
图7组合过滤器设置
注意:
当在Filter的输入,显示绿色背景时(图7上图)说明表达式是正确的,显示红色背景时(图7下图)说明表达式是错误的。
3.网络层协议分析
该层是网络互联层,负责相邻计算机之间的通信。
该层上的主要协议是IP协议,此外,这一层还包括三个子协议:
ICMP协议、ARP协议和RARP协议。
*互联网控制信息协议(ICMP,InternetControlMessageProtocol)
ICMP是TCP/IP协议簇的的一个子协议,它和IP协议属于同一层,但ICMP数据报是被封装在IP数据报中发送的。
ICMP协议通常被用于在IP主机、路由器之间传递控制消息。
控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。
这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
该协议经常被用作调试和监视网络。
*网际协议(IP,InternetProtocol)
这个协议是TCP/IP协议中最主要的协议之一,他负责处理来之传输层的分组发送请求
和输入的数据报文。
该层以上各层的协议都要使用IP协议。
*地址解析协议(ARP)和反地址解析协议(RARP,ReverseAddressResolutionProtocol)
它们分别负责实现从IP地址到物理地址(如以太网网卡MAC地址)和从物理地址到IP地址的映射。
实验一ARP协议分析
一.实验目的
1.熟悉以太网帧的封装
2.熟悉ARP协议报文格式
3.理解ARP协议的工作原理及其作用,能够使用ARP命令对ARP缓存进行操作。
二.实验内容
1.使用ARP命令对ARP缓存进行一些简单操作;
2.捕获ARP报文,并进行分析。
三.实验原理
1.ARP协议介绍
ARP是地址解析协议(ReverseAddressResolutionProtocol)的缩写,负责实现从IP地址到物理地址(如以太网MAC地址)的映射。
在实际通信中,物理网络使用硬件地址进行报文传输。
IP报文在封装为数据链路层帧进行传送时,就有必要把IP地址转换为对应的硬件地址,ARP正是动态地完成这一功能的。
(1)ARP报文格式
图8ARP报文格式
ARP协议报文是定长的,其格式如图8所示,报文中每一字段的含义如下:
*硬件类型:
表示物理网络的类型,“0X0001”表示以太网;
*协议类型:
表示网络网络协议类型,“0X0800”表示IP协议;
*硬件地址长度:
指定源/目的站物理地址的长度,单位为字节;
*协议地址长度:
指定源/目的站IP地址的长度,单位为字节;
*操作:
指定该报文的类型,“1”为ARP请求报文,“2”为ARP响应报文;
*源端硬件/IP地址:
由ARP请求者填充;
*目的站物理地址:
在请求报文中为0,在响应报文中,由由发送响应报文的主机填写接收该报文的目的主机的物理地址;
*目的站IP地址:
由ARP请求者填充,指源端想要知道的主机的IP地址。
只有IP地址等于该IP地址的主机才向源主机发送相应报文。
(2)ARP的工作方式
在以太网中,每台使用ARP协议实现地址解析的主机都在自己的高速缓存中维护着一个地址映射表,这个ARP表中存放着最近和它通信的同网络中的计算机的IP地址和对应的MAC地址。
当两台计算机通信时,源主机首先查看自己的ARP表中是否有目的主机的IP地址项,若有则使用对应的MAC地址直接向目的主机发送信息;否则就向网络中广播一个ARP请求报文,当网络中的主机收到该ARP请求报文时,首先查看报文中的目的IP地址是否与自己的IP地址相符,若相符则将请求报文中的源IP地址和MAC地址写入自己的ARP表中;然后,创建一个ARP响应报文,将自己的MAC地址填入该响应报文中,发送给原主机。
注意:
ARP响应报文不再广播,而是直接发送给请求者。
源主机收到响应报文后,取出目的IP地址和MAC地址加入到自己的ARP表中,并利用获得的目的MAC地址向目的端主机发送信息。
在实际中,为了节省内存空间和ARP表的查询时间,若某一个ARP地址项很久没有使用,则会从地址映射表中删除。
2.Arp命令简介
本次实验使用的Windows自带的Arp命令提供了显示和修改地址解析协议所使用的地址映射表的功能。
Arp命令的格式要求如下:
ARP-sinet_addreth_addr[if_addr]
ARP-dinet_addr[if_addr]
ARP-a[inet_addr][-Nif_addr]
其中:
*-s:
在ARP缓存中添加表项:
将IP地址inet_addr和物理地址ether_addr关联,物理地址由以连字符分隔的6个十六进制数给定,使用点分十进制标记指定IP地址,添加项是永久性的;
*-d:
删除由inet_addr指定的表项;
*-a:
显示当前ARP表,如果指定了inet_addr则只显示指定计算机的IP和物理地址;
*inet_addr:
以点分十进制标记指定IP地址;
*-N:
显示由if_addr指定的ARP表项;
*if_addr:
指定需要选择或修改其地址映射表接口的IP地址;
*ether_addr:
指定物理地址;
四.实验步骤
实验需要网络环境(局域网连接即可)。
每两位同学一组,合作开展实验。
1.验证ARP命令,并记录实验结果
(1)在命令行窗口中执行arp-d命令,记录实验结果;
(2)执行arp–a命令,记录实验结果。
(2)在两台中的任一台上执行ping另一台的IP;
(3)执行完成后执行arp-a命令,记录实验结果,注意和
(2)相比,结果的变化。
2.在执行步骤1的同时捕获ARP报文,并对捕获的结果进行分析,记录在如下表格中。
表1ARP报文分析
ARP请求报文
ARP应答报文
字段
报文信息及参数
字段
报文信息及参数
硬件类型
硬件类型
协议类型
协议类型
硬件地址长度
硬件地址长度
协议地址长度
协议地址长度
操作
操作
源站物理地址
源站物理地址
源站IP地址
源站IP地址
目的站物理地址
目的站物理地址
目的站IP地址
目的站IP地址
附录:
(假设实验的两台计算机为192.168.7.85和192.168.7.87)
实验步骤1的可能结果:
步骤2:
在执行步骤1时,如果同时抓取报文,则抓取的结果中应包含ARP的请求报文和响应报文。
请求报文如下:
响应报文为:
实验二IP协议分析
一.实验目的
1.熟悉IP协议的报文格式;
2.理解IP地址的作用。
二.实验内容
捕获IP协议报文,并进行分析。
三.实验原理
1.IP协议介绍
(1)IP地址的编址方法
IP地址是为每个连接在互联网上的主机分配的唯一识别的32位标识符。
IP地址的编址方法共经历了三个阶段,其中最初采用的是分类的IP地址,这是一种基于分类的两级IP地址编址的方法。
表2IP地址的分类
IP地址
类型
第一字节
十进制范围
二进制
固定最高位
二进制
网络位
二进制
主机位
A类
1-126
0
8位
24位
B类
128-191
10
16位
16位
C类
192-223
110
24位
8位
D类
224-239
1110
组播地址
E类
240-254
1111
保留试验使用
如表2所示,IP地址分为A,B,C,D,E五类,其中A、B、C类地址为可分配主机地址,而D类地址为组播地址,E类地址保留以备将来的特殊使用。
IP地址采用点分十进制方式记录,每个地址表被视为4个以点分隔开的十进制整数,每个整数对应一个字节。
A、B、C三类地址由两部分组成:
网络地址和主机地址,这三类地址的网络地址部分的
长度不一样。
每个A类地址的网络中可以有1600万台主机;每个B类地址的网络中可以有
6