(十七)ARP协议的工作过程
ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。
- ARP简介
- 当一台主机把以太网数据帧发送到位于同一局域网上的另一台主机时,是根据48bit的以太网地址来确定目的接口的
- 设备驱动程序从不检查ip数据报中的目的ip地址
- 地址解析为这两种不同的地址形式提供映射:32bit的IP地址和数据链路层使用的任何类型的地址
- ARP为IP地址到对应的硬件地址之间提供动态映射。
- ARP解析过程
ARP是一种解析地址问题的协议。以目标IP地址为线索,用来定位下一个应该接收数据分包的网络设备所对应的MAC地址(即下一跳的MAC地址)。如果目标主机不再同一链路上时,可以通过ARP查找下一跳路由器的MAC地址。
主机A为了获得主机B的mac地址,起初要通过广播发送一个ARP请求包。这个包中包含了想要了解其MAC地址的主机IP地址。也就是说,ARP请求包中已经包含额主机B的IP地址。因为广播的包可以被同一个链路上所有主机或路由器接收,因此ARP的请去包会被这同一链路上所有主机和路由器解析。若果ARP的请求包中的目的ip地址与自己的IP地址一致,那么这个节点就会将自己的MAC地址塞入ARP响应包返回给主机A.
因为ARP可以动态进行地址解析,所以在tcp/ip的网络构造和网络通信中无需事先知道MAC究竟是证明,只要有IP就可以。
其中需要注意的是若源主机与目的主机不再同一链路上,则目的主机收不到广播报文,此时需由与源主机位于同一个网络的某一路由器回应arp应答报文,arp应答报文中给出该路由器的MAC地址作为目的MAC地址进行封装(否则不会跳的)从而将发往目的主机的数据帧发到对应路由器上,然后由路由器转发。
所以使用ARP的典型情况:
①源主机和目的主机位于同一网络,这时用arp找到目的主机的mac地址
②不再同一网络,这时用arp找到与源主机位于同一网络上的一个路由器的mac地址
3.ARP缓存
一般来说,发送过一次IP数据报的主机,继续发送多次IP数据报的可能性会比较高。所以若每发送一个IP数据报要进行一次ARP请求,那就造成不必要的网络流量。因此,通常把获取到的MAC地址缓存一段时间。
里面有本局域网上各主机和路由器的IP地址和硬件地址的映射表,这些都是该主机目前知道的一些地址。