计算机网络实验WiresharkWord格式.docx
《计算机网络实验WiresharkWord格式.docx》由会员分享,可在线阅读,更多相关《计算机网络实验WiresharkWord格式.docx(27页珍藏版)》请在冰豆网上搜索。
![计算机网络实验WiresharkWord格式.docx](https://file1.bdocx.com/fileroot1/2022-12/1/6980f7cb-04cc-462c-9f5d-d0692106e06c/6980f7cb-04cc-462c-9f5d-d0692106e06c1.gif)
运行Wireshark程序时,其图形用户界面如图2所示。
最初,各窗口中并无数据显示。
Wireshark的界面主要有五个组成部分:
图2
●命令菜单(commandmenus):
命令菜单位于窗口的最顶部,是标准的下拉式菜单。
●协议筛选框(displayfilterspecification):
在该处填写某种协议的名称,Wireshark据此对分组列表窗口中的分组进行过滤,只显示你需要的分组。
●捕获分组列表(listingofcapturedpackets):
按行显示已被捕获的分组内容,其中包括:
分组序号、捕获时间、源地址和目的地址、协议类型、协议信息说明。
单击某一列的列名,可以使分组列表按指定列排序。
其中,协议类型是发送或接收分组的最高层协议的类型。
●分组首部明细(detailsofselectedpacketheader):
显示捕获分组列表窗口中被选中分组的首部详细信息。
包括该分组的各个层次的首部信息,需要查看哪层信息,双击对应层次或单击该层最前面的“+”即可。
●分组内容窗口(packetcontent):
分别以十六进制(左)和ASCII码(右)两种格式显示被捕获帧的完整内容。
四、实验步骤
1.启动Web浏览器(如IE);
2.启动Wireshark;
3.开始分组捕获:
单击工具栏的
按钮,出现如图3所示对话框,[options]按钮可以进行系统参数设置,在绝大部分实验中,使用系统的默认设置即可。
当计算机具有多个网卡时,选择其中发送或接收分组的网络接口(本例中,第一块网卡为虚拟网卡,第二块为以太网卡)。
单击“Start”开始进行分组捕获;
图3
4.在运行分组捕获的同时,在浏览器地址栏中输入某个网页的URL,如:
5.当完整的页面下载完成后,单击捕获对话框中的“stop”按钮,停止分组捕获。
此时,Wireshark主窗口显示已捕获的你本次通信的所有协议报文;
6.在协议筛选框中输入“http”,单击“apply”按钮,分组列表窗口将只显示HTTP协议报文。
7.选择分组列表窗口中的第一条http报文,它是你的计算机发向服务器()的HTTPGET报文。
当你选择该报文后,以太网帧、IP数据报、TCP报文段、以及HTTP报文首部信息都将显示在分组首部子窗口中,其结果如图4。
图4
五、实验报告内容
在实验基础上,回答以下问题:
(1)列出在第5步中分组列表子窗口所显示的所有协议类型;
(2)从发出HTTPGET报文到接收到对应的HTTPOK响应报文共需要多长时间?
(分组列表窗口中Time列的值是从Wireshark开始追踪到分组被捕获的总的时间数,以秒为单位)
(3)你主机的IP地址是什么?
你访问的服务器的IP地址是什么?
实验二使用Wireshark分析以太网帧与ARP协议
分析以太网帧,MAC地址和ARP协议
与因特网连接的计算机网络系统;
主机操作系统为windows;
使用Wireshark、IE等软件。
三、实验步骤:
IP地址用于标识因特网上每台主机,而端口号则用于区别在同一台主机上运行的不同网络应用程序。
在链路层,有介质访问控制(MediaAccessControl,MAC)地址。
在局域网中,每个网络设备必须有唯一的MAC地址。
设备监听共享通信介质以获取目标MAC地址与自己相匹配的分组。
Wireshark能把MAC地址的组织标识转化为代表生产商的字符串,例如,00:
06:
5b:
e3:
4d:
1a也能以Dell:
1a显示,因为组织唯一标识符00:
5b属于Dell。
地址ff:
ff:
ff是一个特殊的MAC地址,意味着数据应该广播到局域网的所有设备。
在因特网上,IP地址用于主机间通信,无论它们是否属于同一局域网。
同一局域网间主机间数据传输前,发送方首先要把目的IP地址转换成对应的MAC地址。
这通过地址解析协议ARP实现。
每台主机以ARP高速缓存形式维护一张已知IP分组就放在链路层帧的数据部分,而帧的目的地址将被设置为ARP高速缓存中找到的MAC地址。
如果没有发现IP地址的转换项,那么本机将广播一个报文,要求具有此IP地址的主机用它的MAC地址作出响应。
具有该IP地址的主机直接应答请求方,并且把新的映射项填入ARP高速缓存。
发送分组到本地网外的主机,需要跨越一组独立的本地网,这些本地网通过称为网关或路由器的中间机器连接。
网关有多个网络接口卡,用它们同时连接多个本地网。
最初的发送者或源主机直接通过本地网发送数据到本地网关,网关转发数据报到其它网关,直到最后到达目的主机所在的本地网的网关。
1、俘获和分析以太网帧
(1)选择工具->
Internet选项->
删除文件
(2)启动Wireshark分组嗅探器
(3)在浏览器地址栏中输入如下网址:
会出现美国权利法案。
(4)停止分组俘获。
在俘获分组列表中(listingofcapturedpackets)中找到HTTPGET信息和响应信息,如图1所示。
(如果你无法俘获此分组,在Wireshark下打开文件名为ethernet--ethereal-trace-1的文件进行学习)。
HTTPGET信息被封装在TCP分组中,TCP分组又被封装在IP数据报中,IP数据报又被封装在以太网帧中)。
在分组明细窗口中展开EthernetII信息(packetdetailswindow)。
回答下面的问题:
1、你所在的主机48-bitEthernet地址是多少?
2、Ethernet帧中目的地址是多少?
这个目的地址是的Ethernet地址吗?
图1 HTTPGET信息和响应信息
2、分析地址ARP协议
(1)ARPCaching
ARP协议用于将目的IP转换为对应的MAC地址。
Arp命令用来观察和操作缓存中的内容。
虽然arp命令和ARP有一样的名字,很容易混淆,但它们的作用是不同的。
在命令提示符下输入arp可以看到在你所在电脑中ARP缓存中的内容。
为了观察到你所在电脑发送和接收ARP信息,我们需要清除ARP缓存,否则你所在主机很容易找到已知IP和匹配的MAC地址。
步骤如下:
(1)清除ARPcache,具体做法:
在MSDOS环境下,输入命令arp–d*command,The–d表示清除操作,*删除alltableentries.
(2)选择工具->
(3)启动Wireshark分组俘获器
(4)在浏览器地址栏中输入如下网址:
(5)停止分组俘获。
(6)选择Analyze->
EnabledProtocols->
取消IP选项->
选择OK。
如图3所示:
图3利用Wireshark俘获的ARP分组
四、实验报告
根据实验,回答下面问题:
由于此实验是关于Ethernet和ARP的,所以,只需在分组俘获列表中显示IP层下面的协议,具体做法为:
选择Analyze->
不选择IP协议->
selectok如图2所示:
实验三使用Wireshark分析IP协议
1、分析IP协议
2、分析IP数据报分片
三、实验步骤
IP协议是因特网上的中枢。
它定义了独立的网络之间以什么样的方式协同工作从而形成一个全球户联网。
因特网内的每台主机都有IP地址。
数据被称作数据报的分组形式从一台主机发送到另一台。
每个数据报标有源IP地址和目的IP地址,然后被发送到网络中。
如果源主机和目的主机不在同一个网络中,那么一个被称为路由器的中间机器将接收被传送的数据报,并且将其发送到距离目的端最近的下一个路由器。
这个过程就是分组交换。
IP允许数据报从源端途经不同的网络到达目的端。
每个网络有它自己的规则和协定。
IP能够使数据报适应于其途径的每个网络。
例如,每个网络规定的最大传输单元各有不同。
IP允许将数据报分片并在目的端重组来满足不同网络的规定。
在4_1_JoiningTheInternet下打开已俘获的分组,分组名为:
dhcp_isolated.cap。
感兴趣的同学可以在有动态分配IP的实验环境下俘获此分组,此分组具体俘获步骤如下:
1、使用DHCP获取IP地址
(1)打开命令窗口,启动Wireshark。
(2)输入“ipconfig/release”。
这条命令会释放主机目前的IP地址,此时,主机IP地址会变为0.0.0.0
(3)然后输入“ipconfig/renew”命令。
这条命令让主机获得一个网络配置,包括新的IP地址。
(4)等待,直到“ipconfig/renew”终止。
然后再次输入“ipconfig/renew”命令。
(5)当第二个命令“ipconfig/renew”终止时,输入命令“ipconfig/release”释放原来的已经分配的IP地址
(6)停止分组俘获。
如图1所示:
图1Wireshark俘获的分组
下面,我们对此分组进行分析:
IPconfig命令被用于显示机器的IP地址及修改IP地址的配置。
当输入命ipconfig/release命令时,用来释放机器的当前IP地址。
释放之后,该机没有有效的IP地址并在分组2中使用地址0.0.0.0作为源地址。
分组2是一个DHCPDiscover(发现)报文,如图2所示。
当一台没有IP地址的计算机申请IP地址时将发送该报文。
DHCPDiscovery报文被发送给特殊的广播地址:
,该地址将到达某个限定广播范围内所有在线的主机。
理论上,能够广播到整个因特网上,但实际上并不能实现,因为路由器为了阻止大量的请求淹没因特网,不会将这样的广播发送到本地网之外。
在DHCPDiscover报文中,客户端包括自身的信息。
特别是,它提供了自己的主机名(MATTHEWS)和其以太网接口的物理地址(00:
07:
e9:
53:
87:
d9)。
这些信息都被DHCP用来标识一个已知的客户端。
DHCP服务器可以使用这些信息实现一系列的策略,比如,分配与上次相同的IP地址,分配一个上次不同的IP地址,或要求客户端注册其物理层地址来获取IP地址。
在DHCPDiscover报文中,客户端还详细列出了它希望从DHCP服务器接收到的信息。
在ParameterRequestList中包含了除客户端希望得到的本地网络的IP地址之外的其他数据项。
这些数据项中许多都是一台即将连入因特网的计算机所需要的数据。
例如,客户端必须知道的本地路由器的标识。
任何目的地址不在本地网的数据报都将发送到这台路由器上。
也就是说,这是发向外网的数据报在通向目的端的路径上遇到的第一台中间路由器。
图2DHCPDiscovery
客户端必须知道自己的子网掩码。
子网掩码是一个32位的数,用来与IP地址进行“按
图2ParameterRequestList
位逻辑与运算”从而得出网络地址。
所有可以直接通信而不需要路由器参与的机器都有相同的网络地址。
因此,子网掩码用来决定数据报是发送到本地路由器还是直接发送到本地目的主机。
客户端还必须知道它们的域名和它们在本地域名服务器上的标识。
域名是一个可读的网络名。
IP地址为的DHCP服务器回复了一个DHCPOFFER报文。
该报文也广播到,因为尽管客户端还不知道自己的IP地址,但它将接收到发送到广播地址的报文。
这个报文中包含了客户端请求的信息,包括IP地址、本地路由器、子网掩码、域名和本地域名服务器。
在分组5中,客户端通过发送DHCPRequest(请求)报文表明自己接收到的IP地址。
最后,在分组6中DHCP服务器确认请求的地址并结束对话。
此后,在分组7中客户端开始使用它的新的IP地址作为源地址。
在分组3和分组7到12的地址ARP协议引起了我们的注意。
在分组3中,DHCP服务器询问是否有其它主机使用IP地址(该请求被发送到广播地址)。
这就允许DHCP服务器在分配IP之前再次确认没有其它主机使用该IP地址。
在获取其IP地址之后,客户端会发送3个报文询问其他主机是否有与自己相同的IP地址。
前4个ARP请求都没有回应。
在分组10—13中,DHCP服务器再次询问哪个主机拥有IP地址,客户端两次回答它占有该IP同时提供了自己的以太网地址。
通过DHCP分配的IP地址有特定的租用时间。
为了保持对某个IP的租用,客户端必须更新租用期。
当输入第二个命令ipconfig/renew后,在分组14和15中就会看到更新租用期的过程。
DHCPRequest请求更新租用期。
DHCPACK包括租用期的长度。
如果在租用期到期之前没有DHCPRequest发送,DHCP服务器有权将该IP地址重新分配给其他主机。
最后,在分组16时输入命令ipconfig/release后的结果。
在DHCP服务器接收到这个报文后,客户停止对该IP的使用。
如有需要DHCP服务器有权重新对IP地址进行分配。
2、分析IPv4中的分片
在第二个实验中,我们将考察IP数据报首部。
俘获此分组的步骤如下:
(1)启动Wireshark,开始分组俘获(“Capture”-----“interface…”----“start”)。
(2)启动pingplotter(pingplotter的下载地址为),在“Addresstotrace:
”下面的输入框里输入目的地址,选择菜单栏“Edit”---“Options”---“Packet”,在“Packetsize(inbytesdefaults=56):
”
右边输入IP数据报大小:
5000,按下“OK”。
最后按下按钮“Trace”,你将会看到pingplotter窗口显示如下内容,如图3所示:
图3pingplotter
(3)停止Wireshark。
设置过滤方式为:
IP,在Wireshark窗口中将会看到如下情形,如图4所示。
在分组俘获中,你应该可以看到一系列你自己电脑发送的“ICMPEchoRequest”和由中间路由器返回到你电脑的“ICMPTTL-exceededmessages。
图4用Wireshark所俘获的分组
(4)如果你无法得到上图的分组信息,也可使用已经下载的IP分片分组文件:
fragment_5000_isolated.cap。
然后在Wireshark中,选择菜单栏“File”---“Open”导入上述文件进行学习。
下面,我们来分析fragment_5000_isolated.cap中的具体分组:
IP层位于传输层和链路层之间。
在fragment_5000_isolated.cap中传输层协议是UDP,链路层协议是以太网。
发送两个UDP数据报,每个包含5000个字节的数据部分和8字节的UDP首部。
在分组1到4和分组5到8分别代表了先后发送的两个UDP数据报。
当IP层接收到5008字节的UDP数据报时,它的工作是将其作为IP数据报在以太网传输。
以太网要求一次传输的长度不大于1514个字节,其中有14字节是以太网帧首部。
IP被迫将UDP数据报作为多个分片发送。
每个分片必须包含以太网帧首部、IP数据报首部。
每个分片还会包含UDP数据报的有效负载(首部和数据)的一部分。
IP将原始数据报的前1480个字节(含1472个字节的数据和含8个字节的UDP首部)放在第一个分片中。
后面两个分片每个均含1480个字节的数据,最后一个分片中包含的数据为568个字节)。
为了让接收段重组原始数据,IP使用首部的特殊字段对分片进行了编号。
标识字段用于将所有的分片连接在一起。
分组1到4含有相同的标识号0xfd2b,分组5到8的标识号是0xfd2c.片漂移量指明了分组中数据的第一个字节在UDP数据报中的偏移量。
例如分组1和分组5的偏移量都是0,因为它们都是第一个分片。
最后在标识字段中有一位用来指明这个分片后是否还有分片。
分组1到分组3和分组5到分组7均对该位置进行了置位。
分组4和分组8由于是最后一个分片而没有对该位置位。
四、实验报告内容
打开文件dhcp_isolated.cap、fragment_5000_isolated.cap,回答以下问题:
1、DHCP服务器广播的本地路由器或默认网关的IP地址是多少?
2、在dhcp_isolated.cap中,由DHCP服务器分配的域名是多少?
3、在fragment_5000_isolated.cap中,我们看到通过UDP数据报发送的5000字节被分成了多少分片?
在网络中,一次能传输且不需要分片的最大数据单元有多大?
实验四利用Wireshark分析ICMP
分析ICMP
Ping和traceroute命令都依赖于ICMP。
ICMP可以看作是IP协议的伴随协议。
ICMP报文被封装在IP数据报发送。
一些ICMP报文会请求信息。
例如:
在ping中,一个ICMP回应请求报文被发送给远程主机。
如果对方主机存在,期望它们返回一个ICMP回应应答报文。
一些ICMP报文在网络层发生错误时发送。
例如,有一种ICMP报文类型表示目的不可达。
造成不可达的原因很多,ICMP报文试图确定这一问题。
例如,可能是主机关及或整个网络连接断开。
有时候,主机本身可能没有问题,但不能发送数据报。
例如IP首部有个协议字段,它指明了什么协议应该处理IP数据报中的数据部分。
IANA公布了代表协议的数字的列表。
例如,如果该字段是6,代表TCP报文段,IP层就会把数据传给TCP层进行处理;
如果该字段是1,则代表ICMP报文,IP层会将该数据传给ICMP处理。
如果操作系统不支持到达数据报中协议字段的协议号,它将返回一个指明“协议不可达”的ICMP报文。
IANA同样公布了ICMP报文类型的清单。
Traceroute是基于ICMP的灵活用法和IP首部的生存时间字段的。
发送数据报时生存时间字段被初始化为能够穿越网络的最大跳数。
每经过一个中间节点,该数字减1。
当该字段为0时,保存该数据报的机器将不再转发它。
相反,它将向源IP地址发送一个ICMP生存时间超时报文。
生存时间字段用于避免数据报载网络上无休止地传输下去。
数据报的发送路径是由中间路由器决定的。
通过与其他路由器交换信息,路由器决定数据报的下一条路经。
最好的“下一跳”经常由于网络环境的变化而动态改变。
这可能导致路由器形成选路循环也会导致正确路径冲突。
在路由循环中这种情况很可能发生。
例如,路由器A认为数据报应该发送到路由器B,而路由器B又认为该数据报应该发送会路由器A,这是数据报便处于选路循环中。
生存时间字段长为8位,所以因特网路径的最大长度为28-1即255跳。
大多数源主机将该值初始化为更小的值(如128或64)。
将生存时间字段设置过小可能会使数据报不能到达远程目的主机,而设置过大又可能导致处于无限循环的选路中。
Traceroute利用生存时间字段来映射因特网路径上的中间节点。
为了让中间节点发送ICMP生存时间超时报文,从而暴露节点本身信息,可故意将生存时间字段设置为一个很小的书。
具体来说,首先发送一个生存时间字段为1的数据报,收到ICMP超时报文,然后通过发送生存时间字段设置为2的数据报来重复上述过程,直到发送ICMP生存时间超时报文的机器是目的主机自身为止。
因为在分组交换网络中每个数据报时独立的,所以由traceroute发送的每个数据报的传送路径实际上互不相同。
认识到这一点很重要。
每个数据报沿着一条路经对中间节点进行取样,因此traceroute可能暗示一条主机间并不存在的连接。
因特网路径经常变动。
在不同的日子或一天的不同时间对同一个目的主机执行几次traceroute命令来探寻这种变动都会得到不同的结果。
为了体现Internet路由的有限可见性,许多网络都维护了一个traceroute服务器traceroute。
Traceroute服务器将显示出从本地网到一个特定目的地执行traceroute的结果。
分布于全球的traceroute服务器的相关信息可在上获得。
1、ping和ICMP
利用Ping程序产生ICMP分组。
Ping向因特网中的某个特定主机发送特殊的探测报文并等待表明主机在线的回复。
具体做法:
(1)打开Windows命令提示符窗口(WindowsCommandPrompt)。
(2)启动Wireshark分组嗅探器,在过滤显示窗口(filterdisplaywindow)中输入icmp,开始Wireshark分组俘获。
(3)输入“ping–n10hostname”。
其中“-n10”指明应返回10条ping信息。
(4)当ping程序终止时,停止Wireshark分组俘获。
实验结束后会出现如图所示的命令窗口:
图1命令窗口
停止分组俘获后,会出现如图2所示的界面:
图2停止分组俘获后Wireshark的界面
图3是在分组内容窗口中显示了ICMP协议的详细信息。
观察这个ICMP分组,可以看出,此ICMP分组的Type8andCode0即所谓的ICMP“echorequest”分组。
图3ICMP协议详细信息
在实验报告中回答下面问题:
(1)你所在主机的IP地址是多少?