地址解析协议(ARP)

地址解析协议(ARP)用于将IPv4地址(32位逻辑地址)解析为物理地址,应用层的网络应用程序使用IPv4地址与另一设备进行通信,但在数据链路层,寻址是Mac地址(48位物理地址)。

操作

  1. 源设备想要与另一台设备进行通信,原设备会检查其地址解析(ARP)缓存,以查找它是否已经具有目标设备的解析Mac地址,若果它在那里,它将使用该Mac地址进行通信。
  2. 本地缓存中设有ARP解析,原机器将产生一个地址解析话术消息,它将自己的数据链路层地址作为发送方硬件地址,将自己的IPv4地址填充为目标协议地址,目标硬件地址将留空,因为机器试图找到它。
  3. 源将ARP请求消息广播到本地网络。
  4. 由于是广播消息,因此LAN上的每个设备都接收到该消息,每个设备将目标协议地址(源试图与之通信的机器的IPv4地址)与自己的协议地址(IPV4地址)进行比较。那些不匹配的将丢弃数据包而不进行任何操作。
  5. 当目标设备检查目标协议地址时,它会找到匹配的项并生成地址解析协议(ARP)回复消息,它从ARP请求消息中获取发送者硬件地址和发送者协议地址字段,并将这些值用于回复消息的目标硬件地址和目标协议地址。
  6. 目标设备将更新其ARP缓存因为它需要尽快联系发送方机器。
  7. 目标设备发送ARP回复消息,它不会是广播而是单播,以节省网络资源。
  8. 源机器将处理来自目标的ARP回复,它将发送方硬件地址存储为目标的第二层地址。
  9. 源机器将使用从ARP回复消息中收到的发送方硬件地址和发送方协议地址更新其ARP缓存。

ARP协议的工作过程

广播发送ARP请求,单播发送ARP响应。

  1. 首先每个主机都会建立一个ARP列表在自己的ARP缓存区中,以表示IP地址和Mac地址之间的对应关系。
  2. 当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的Mac地址,如果有,则直接发送数据,如果没有,就像本王短的所有主机发送ARP数据包,该数据包包括的内容有:源主机IP地址,源主机Mac地址,目的主机IP地址。
  3. 当本网络的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,首先从数据包中取出源主机的IP地址和Mac地址写入到ARP列表中,告诉源主机自己就是它想要找的Mac地址。
  4. 源主机收到ARP响应包后,将目的主机的IP地址和Mac地址写入ARP列表中,并利用此信息发送数据。如果源主机一直没有收到ARP响应包数据,表示ARP查询失败。

查看Linux ARP缓存老化时间

cat /proc/sys/net/ipv4/neigh/***/base_reachable_time
//同目录下还有一个文件:gc_state_time:Determines how often to check for stale neighbour entires

arp -a //查看ARP缓存状态 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值