Wireshark可以跟踪网络协议的通讯过程,本节通过ARP协议,在了解Wireshark使用的基础上,重温ARP协议的通讯过程。
ARP(Address Resolution Protocol)地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。
主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
在Wireshark界面,我们可以看到19、20号数据包,就是一对标准的ARP请求和响应包。
打开ARP请求数据包报文,
Ethernet II部分:
Destination(目的物理地址)字段的值为:ff:ff:ff:ff:ff:ff,说明该以太网帧是广播帧,和ARP请求分组是通过广播形式发送吻合。
Source(源物理地址)字段的值为:00:0c:29:7f:da:7b,这是发送方主机的物理地址,和ARP协议的Sender MAC address字段的值完全吻合。
Type字段为:ARP(0x0806)。说明该以太网帧封装的是一个ARP协议分组。
ARP协议部分:
前4个字段表明物理地址和逻辑地址的类型和长度。
第五个字段Opcode的值为1,说明是ARP请求报文。
后面4个字段是源物理地址和IP地址,以及目标物理地址和IP地址。
值得注意的是,目标物理地址正如之前所说,全部填充的0。因为该字段正是ARP请求报文需要获取的,目前不知,只能全部填充为0。
打开ARP响应数据包报文,
在Ethernet II部分:
Destination(目的物理地址)字段的值正好是ARP请求报文的Source字段的值。也就是说,该ARP响应报文是用来回应之前的ARP请求分组的。该值也和Target MAC address的值相同。
Source(源物理地址)字段的值为目的端的物理地址,该值和Sender MAC address的值相同。
Padding是填充字段,用来填充以太网帧到最小帧长。
在ARP协议部分:
前4个字段没什么好讲的。
第五个字段Opcode为2,表示这是ARP响应分组。
后面4个字段,源MAC地址正是ARP请求报文想寻找的物理地址。源IP地址正好是ARP请求分组的目的IP地址。目的物理地址和目的IP地址正好是ARP请求分组的源物理地址和源IP地址。
通过上面的通讯过程,加深我们对ARP协议请求的了解,同时也加强Wireshark对数据包支持的理解。