一、实验环境
在Windows10系统下用wireshark进行抓包
二、实验目的
1、使用wireshark抓包分析arp协议
2、对ICMP协议进行分析
3、了解数据包收发的整个流程
三、实验内容及步骤(包括主要配置流程,重要部分需要截图)
1、使用arp -d删除所有表项,ping某个地址,触发arp过程,但提示删除失败,请求的操作需要提升,因此使用管理员身份运行,接着就可以实现删除操作了
2、使用ipconfig命令,查看另一台电脑的ip,为10.128.200.146,使用ping指令开始传输数据包,刚开始ping时没有ping通,主要原因是防火墙,在关闭防火墙后便可以进行数据的传输,可以看到,本机地址的ip为10.128.248.168,刚开始进行广播,对10.128.200.146进行查找,然后对于地址做了回应,并询问10.128.248.168在哪里,最后作出回应。
3、使用arp -a命令,发现本机的默认网关和另一台电脑的ip被保存了下来
4、 修改IP后,可以发现在PC2上首先发送了一个无偿的arp请求,pc1收到后,会向pc2回复,在重复这样三次后,就可以确定网络内具有与之相同的ip主机,pc2就无法初始化其tcp/ip协议栈了
5、对于百度进行抓包,发送了四个包,分别进行请求和回复,对于发送请求进行分析:
6、可以看到,两台主机进行了四次握手,我们使用一个ICMP ECHO数据包来探测主机地址是否存活,通过简单的发送一个ICMP ECHO(Type 8)数据包到目标主机,如果ICMP ECHO Reply(ICMP type0)数据包接受到,说明主机是存活状态。如果没有就可以初步判断主机没有在线或者使用了某些过滤设备过滤了ICMP的Reply。这种机制就是我们通常所用的ping命令来检测目标主机是否可以ping到。回送消息的源地址是回送响应消息的目标地址。若要形成一个回送响应消息,应该将源和目的地址交换,将类型代码更改为0,重新计算机校验码。
7、对于ICMP网络层因特网部分分析:
从第一行45开始,
版本(4bits):4
IHL域(4bits):5,即该头部有5*4共有20个字节,IHL域最大值为15,单位是4字节,即头部最长60字节。
服务类型(2字节):00,即为普通服务类型
总长度(2字节):00 3c,即60字节
标识域(2字节):f2 2a
DF(1bit):0,表示允许分段
MF(1bit):0,表示为最后一个分片。由于本分组总长度60,未超过1518字节,故不用分片
分段偏移(13bits):00 00,即为第一个分组
生命周期TTL(1字节):80,即128
协议(1字节):01,即1,ICMP对应编号
头部校验和(2字节):00 00,correct,正确
源地址(4字节):10.128.248.168
目的地址(4字节):110.242.68.4
8、用ping命令探测网络上较远的结点,但把TTL设置较小,如ping -i 59.66.110.1,查看返回信息,并用wireshark看59.66.110.1返回的ICMP超时信息,看ICMP分组内容
Wireshark的交互为:
超时报文的ICMP部分格式如下,类型号为11,time-to-alive exceeded,code:0,time to live exceeded in transit,即传送超时
上图的ICMP部分还嵌套有一个原始的ICMP数据报文,是主机用来匹配请求的信息的,这样就能知道是哪个请求超时了
9、访问不可达主机:
目标主机不可达报文类型为3,代码为1,即主机不可达
10、清空两个PC的arp表,然后在cmd里ping 10.128.200.146,由于没有ping通,所以在wireshark里抓到的是2个ARP询问和4个ICMP询问。由于清空了ARP表,所以本机一开始会发送一个ARP请求的广播包,直接询问目的IP地址的mac地址;主机B在收到广播后,验证自己的ip地址和arp请求包的ip相同,确认ip地址是自己,把自己的mac地址装到arp相应数据包发送到对方的ip。并把A的ip和mac地址记录在自己的arp表中。主机A收到arp数据包,得知主机10.128.200.146对应的mac地址,把mac地址与之预定的ip地址记录在自己的arp表中。主机A现在通过查询自己arp表项中的mac地址,根据此B的mac地址向对方发送ICMP数据包。主机B收到根据mac地址收到给自己的数据包,通过解析IP数据包和ICMP数据包进行响应。主机A收到ICMP数据包,判断主机B是否可达以及相关信息。以上ICMP数据包重复发送四次,直至结束。
11、不同局域网:
抓新浪的包,发现会有DNS,ICMP,TCP等
主机A尝试访问域名服务器,发现服务器地址和本机不在同一子网,所以把数据转发给默认网关。主机A只知道默认网关的ip地址,所以需要对该IP地址进行ARP地址解析,通过arp获得默认网关的mac地址。之后,主机A便开始进行DNS域名解析,其中AAAA为ipv6协议,只查到ipv6,没有查到ipv4协议。主机通过对比,发现服务器地址和自己不在同一网络,所以将DNS数据包转发给网关。网关收到数据包后,将数据包转发到目标DNS服务器上。域名服务器收到DNS服务包后,将对应结果返回给A。网关获得DNS数据包,将DNS数据包返回给主机A。
12、过滤出http包:
HTTP的部分说明:
Host:URL中机器的域名
Connection:Keep-alive,表明发送请求之后TCP连接继续保持
User-Agent:请求的Web浏览器及客户机器
Accept头部包括:Accept接受;
Accept-Language:接受语言
Accept-Encoding:接受编码
Accept-Charset:接受字符集
分析tcp和http:
Http/1.1:显示服务器使用的HTTP版本
Content-Length:数据的长度
Content-Type:返回对象的类型
Server:QQ/1.0.0
四、实验结果(包括最终实验结果,需要截图)
结果及步骤见实验内容及步骤
五、实验中的问题及心得
本次实验借助wireshark抓包软件,在实际网络环境中分析arp协议的工作过程和ICMP协议的工作过程,以及以太网环境中数据包的传输过程
六、实验思考
有些网络设备并不会产生超时报文和目标主机不可达报文,还有些网络设备会隔离ICMP报文,这就使得在有些网络中能够抓取超时报文和目标主机不可达报文,而有些网络中抓取不到。本次实验加深了我对网络协议的分析以及数据包的解析。