TCP/IP详解卷一ARP地址解析协议

ARP地址解析协议

一、什么是ARP地址解析协议?

  ARP协议即地址解析协议,用于32位IPV4地址和以太网48位MAC地址之间的映射,并且仅在位于同一IP子网系统时,ARP才能工作

二、抓包理解ARP协议

  同一局域网内
  1.主机A的IP地址为192.168.22.22 MAC地址为E8-6A-64-75-B7-C6
  2.主机B的IP地址为192.168.22.70 MAC地址为F6-AF-73-BB-DF-45

在这里插入图片描述
在这里插入图片描述
  3.主机Aping主机B

在这里插入图片描述
  4.查看主机A ARP缓存的条目

在这里插入图片描述
  可以看到主机B的MAC地址,动态的意思是来自ARP学习,如果通过手动输入则为静态。
  5.主机Aping主机B的同时,利用wireshark抓包

  在抓包之前,先给出IPv4地址映射到48位的MAC(以太网)地址时使用的ARP帧格式,方便下文分析。
在这里插入图片描述
字段1:是ARP请求的目的以太网地址,全1时代表广播地址,目的是让局域网上所有主机都收到ARP请求包;

字段2:发送ARP请求的MAC地址;

字段3:以太网帧类型,表示的是后面大数据类型,ARP请求和ARP应答包的这个值都为0X0806;

字段4:表示硬件地址类型,硬件地址不止以太网一种,以太网类型是此值为1;

字段5:表示要映射的协议地址类型,对IPv4地址进行映射时,此值为0X0800;

字段6和7:分别表示硬件地址长度和协议地址长度,MAC地址占6字节,IP地址占4字节;

字段8:表示操作类型字段,值为1表示进行ARP请求,值为2表示ARP应答,值为3表示RARP请求,值为4表示RARP应答;

字段9:表示发送端ARP请求或应答的硬件地址也就是源MAC地址,与2相同;

字段10:表示发送ARP请求或应答的IP地址;

字段11和12:分别表示目的端的硬件地址和协议地址。

前3个字段14个字节是以太网的首部,后面9个字段28个字节是ARP请求/应答的信息。

  • request包

在这里插入图片描述
  由于主机A里面没有缓存主机B的MAC地址,因此ARP直接进行广播,
1、以太网目的地址(Destination):ff:ff:ff:ff:ff:ff ,此地址全为1,是广播地址;

2、以太网源地址(Source):E8-6A-64-75-B7-C6

3、帧类型(Type):ARP(0x0806);

4、硬件类型(Hardware):Ethernet(1);

5、协议类型(Protocol):IPv4(0x0800);

6、硬件地址长度(Hardware size):6

7、协议地址长度(Protocol):4

8、Opcode:操作类型为ARP请求request(1)

9、发送端MAC地址(Sender MAC address):E8-6A-64-75-B7-C6

10、发送端IP(Sender IP address):192.169.22.22

11、目的MAC地址(Target MAC address):00:00:00:00:00:00 (此地址需要根据目的IP去获取,在请求报文中为全0);

12、目的IP地址(Target IP address):192.169.22.70;

  • reply
    在这里插入图片描述
    此包将自己的MAC F6-AF-73-BB-DF-45封装到ARP报文然后回复给请求方,reply包的字段含义跟requset差不多,其中op为:reply(2)。

一个有趣的现象在主机A寻找主机B的MAC地址之后,主机B也会在局域网内广播,寻找主机A的MAC地址。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/koudan567/article/details/93869174