七 ARP
一 ARP概要
ARP是一种解决地址问题的协议.以目标IP地址为线索,用来定位下一个应该接收数据包的网络设备对应的MAC地址.如果目标主机不在同一个链路上时,可以通过ARP查找下一跳路由器的MAC地址.不过ARP只适用于IPv4,,不能用于IPv6.IPv6可以用ICMPv6替代ARP发送邻居探索消息.
二 ARP工作机制
ARP是借助ARP请求与ARP响应两种类型的包确定MAC地址.
假设主机A向同一链路上的主机B发送IP包,主机A的IP地址为172.20.1.1,主机B的IP地址为172.20.1.2,它们互不知道对方的MAC地址

主机A为了获得主机B的MAC地址,起初要通过广播发送一个ARP请求包.这个包中包含了想要了解其MAC地址的主机IP地址.也就是说,ARP请求包中已经包含了主机B的IP地址172.20.1.2.由于广播的包可以被同一个链路上所有的主机或路由器接收.因此ARP的请求包也就会被这同一个链路上所有的主机和路由器进行解析.如果ARP请求包中的目标IP地址与自己IP地址一致,那么这个节点就将自己的MAC地址塞入ARP响应包返回给主机A.
ARP请求包还有一个作用,那就是将自己的MAC地址告诉对方.
通过ARP获取到的MAC地址作为IP对MAC的映射关系记忆到一个ARP缓存表中(可以通过arp-a获取该表信息),下一次再向这个IP地址发送数据报时不需再重新发送ARP请求,而是直接使用这个缓存表当中的MAC地址进行数据报的发送.这样,在一定程度上也防止了ARP包在网络上被大量广播的可能性.
三 ARP头

协议类型: ARP请求正在使用的高层协议.
硬件地址长度: 正在使用的硬件地址的长度(八位组/字节)
协议地址长度: 对于指定协议类型所使用的逻辑地址的长度(八位组/字节)
操作 : ARP数据包的功能,1表示请求,2表示响应
发送方硬件地址:发送者的硬件地址
发送方协议地址:发送者的IP协议地址
目的硬件地址:目的接受方的硬件地址(ARP请求为0)
目的协议地址:目的接收方的高层协议地址
四 Gratutious ARP
在多数情况下,一个设备的IP地址是可以改变的.当这样的改变发生后,网络中的主机缓存里的IP和MAC地址的映射就失效了.为了防止造成通信错误.Gratuitious ARP请求就会被发送到网络中,强制所有收到它的设备去用新的IP和MAC地址映射更新缓存

检查这个以太网报头,会看见这个数据包以广播的形式发送,以便网络上的所有主机能够接收它.这个ARP头看上去和ARP请求很像,除了发送方的IP地址和目标IP地址是相同的.在这个数据包被网络中的其他主机接收到之后,它会让这些主机使用新的IP地址和MAC地址关系更新它们的APR表.由于这个ARP数据包是未经请求的,却导致客户端更新ARP缓存,因此会称为Gratutious ARP

浙公网安备 33010602011771号