在这一部分中,我们将抓取并分析 Ethernet 数据帧的内容,观察 ARP 协议在现实网络中如何工作。
b) 键入 arp -d *命令,清除 ARPcache内容。
之后,再清除浏览器缓存。
c) 打开 Wireshark,打开浏览器。
d) 键入:
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-lab-file3.html
e) 停止 Wireshark,更改 Wireshark 的“listing of captured packets”窗口为 arp:
这里遇到了问题,输入arp之后没有数据包。解决方法是,更换浏览器,并在网页加载完成之后,继续等待比较长的时间再结束捕获,过早结束回到是捕获不到arp数据包。
问题解决之后,捕获结果如下:
f) 下面分析arp数据包。
ARP报文可以表示为:
Who has target IP address? Tell sender IP address.
具体格式如下图所示:
具体地:
硬件类型:16位字段,用来定义运行ARP的网络类型。每个局域网基于其类型被指派一个整数。例如:以太网的类型为1。ARP可用在任何物理网络上。
协议类型:16位字段,用来定义使用的协议。例如:对IPv4协议这个字段是0800。ARP可用于任何高层协议。
硬件长度:8位字段,用来定义物理地址的长度,以字节为单位。例如:对于以太网的值为6。
协议长度:8位字段,用来定义逻辑地址的长度,以字节为单位。例如:对于IPv4协议的值为4。
操作码:16位字段,用来定义报文的类型。已定义的分组类型有两种:ARP请求(1),ARP响应(2)。
源硬件地址:这是一个可变长度字段,用来定义发送方的物理地址。例如:对于以太网这个字段的长度是6字节。
源逻辑地址:这是一个可变长度字段,用来定义发送方的逻辑(IP)地址。例如:对于IP协议这个字段的长度是4字节。
目的硬件地址:这是一个可变长度字段,用来定义目标的物理地址,例如,对以太网来说这个字段位6字节。对于ARP请求报文,这个字段为全0,因为发送方并不知道目标的硬件地址。
目的逻辑地址:这是一个可变长度字段,用来定义目标的逻辑(IP)地址,对于IPv4协议这个字段的长度为4个字节。
对上面捕获到的的ARP报文,硬件类型为Ethernet(1),协议类型为IPv4,硬件长度为6,协议长度为4,操作码为1代表请求,同时可以找到源Mac地址与IP地址、目标MAC地址与目标IP地址。
如果这篇文章对你有帮助,请给博主点个赞鼓励一下吧!