Wireshark-ARP数据包

ARP:地址解析协议;
   是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;
   即当一台主机把以太网数据帧发送到位于同一局域网上的另一台主机时,是根据 48 bit的以太网地址来确定目的接口的(这是ip地址是没法找到目标主机的);

   在以太网上解析 I P地址时, A R P请求和应答分组的格式如下图所示:
   Wireshark-ARP数据包_第1张图片

  以太网报头中的前两个字段是以太网的源地址和目的地址。目的地址为全 1的特殊地址是广播地址。电缆上的所有以太网接口都要接收广播的数据帧。
  
  两个字节长的以太网帧类型表示后面数据的类型。对于 A R P请求或应答来说,该字段的值为0 x 0 8 0 6。
  形容词h a r d w a r e (硬件)和p r o t o c o l (协议)用来描述A R P分组中的各个字段。例如,一个 A R P请求分组询问协议地址(这里是 I P地址)对应的硬件地址(这里是以太网地址)。
  
  硬件类型字段表示硬件地址的类型。它的值为 1即表示以太网地址。协议类型字段表示要映射的协议地址类型。它的值为 0 x 0 8 0 0即表示 I P地址。它的值与包含 I P数据报的以太网数据帧中的类型字段的值相同,这是有意设计的(参见图 2 - 1)。
  
  接下来的两个 1字节的字段,硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。对于以太网上 I P地址的A R P请求或应答来说,它们的值分别为 6和4。
  
  操作字段指出四种操作类型,它们是 A R P请求(值为1)、 A R P应答(值为 2)、 R A R P请求(值为3)和R A R P应答(值为4)(我们在第5章讨论R A R P)。这个字段必需的,因为 A R P请求和A R P应答的帧类型字段值是相同的。
  
  接下来的四个字段是发送端的硬件地址(在本例中是以太网地址)、发送端的协议地址( I P地址)、目的端的硬件地址和目的端的协议地址。注意,这里有一些重复信息:在以太网的数据帧报头中和A R P请求数据帧中都有发送端的硬件地址。
  
  对于一个 A R P请求来说,除目的端硬件地址外的所有其他的字段都有填充值。当系统收到一份目的端为本机的 A R P请求报文后,它就把硬件地址填进去,然后用两个目的端地址分别替换两个发送端地址,并把操作字段置为 2,最后把它发送回去。

下面通过wireshark抓包抓取一个ARP包进行分析:

Wireshark-ARP数据包_第2张图片

上面是ARP帧结构的解析,下面为实际获取的帧数据(16进制),可以通过下面的数据读取相应的参数;

Wireshark-ARP数据包_第3张图片

这里可以发现获取的包字节为60而不是64(以太网的最小帧长是64),原因在于抓包软件抓到的是去掉前导同步码、帧开始分界符、FCS之外的数据,wireshark把8字节的前序和4字节的FCS都给过滤了。wireshark中所显示的报文长度是包含14字节以太类型头,28字节ARP请求/应答,但不计算尾部4字节校验FCS值的.
因此对于IP报文类似的有wireshark报文长度大小:14(以太类型头)+20(IP头)+(实际数据)

RARP:逆地址解析协议

逆地址协议和地址解析协议是刚好相反的,他通过物理地址获取相应的IP地址,一般用于网络上的无盘系统。其帧结构和RAP基本相同,它们之间主要的差别是 R A R P请求或应答的帧类型代码为 0 x 8 0 3 5,而且R A R P请求的操作代码为3,应答操作代码为4。

你可能感兴趣的:(wireshark,ARP)