ARP和RARP

ARP和RARP

ARP(地址转换协议)

格式如下:


以太网的数据包是46-1500字节,加上头部14字节,一个以太网包最少要60字节,所以ARP请求/应答包需要再补充18字节以达到最小要求的60字节
各参数含义
1.两个字节的帧类型,表示后面的数据类型,对于ARP或者应答来说是0x0806
2.硬件类型,表示硬件地址的类型,他的值为1表示为以太网
3.协议类型,表示要映射的协议地址类型,值为0x0800表示IP地址
4.硬件地址长度,硬件地址的长度,长度是6
5.协议地址长度,对于IP地址的ARP,长度是4
6.op操作类型,ARP是1,ARP应答是2,RARP是3,RARP应答是4
注意ARP请求中跟以太网头对比,有重复的部分

 

ARP工作原理

1.目的主机知道需要访问主机的IP,但是不知道MAC,于是发送一个ARP请求源MAC地址是自己,目的MAC是广播,源IP和目的IP都是已知的。
2.发送的ARP包是一个广播,网段内的所有主机都会收到。如果没有目的主机收到,源主机会继续发送ARP请求,以指数退避算法方式发送,即每隔几秒到每隔十几秒发送一次。
3.如果有目的主机收到,目的主机发送一个响应给源主机。同时更新自己的ARP表。
4.目的主机收到了ARP应答包,之后的上层操作就可以明确将数据包发给目的主机了,同时更新自己的ARP表。
ARP广播过程如下:

客户端发送的广播内容如下:(可以看到目标的mac地址是全0,等待应答的目标主机去填充)

目标主机收到数据帧后的应答内容如下:(将自己的mac地址填充上,并发送给源主机)

其他功能

ARP代理

将ARP请求从一个网络发往另一个网络,路由器充当了源主机。
路由器收到ARP请求之后,修改源主机的MAC地址,改为自己的地址。然后跟目的主机通讯,使得在不影响路由表的情况下添加一个router,使子网对主机来说是透明的。

免费ARP

主要用于检测IP地址是否有冲突。
免费ARP的源MAC地址是自己,目的MAC是广播,源和目的IP都是自己。这样的话如果有IP冲突则对方回收到这个包然后回应这样就说明地址冲突了,如果没有回应则表示没有冲突。

ARP缓存

将请求的目的主机MAC和IP的映射放到ARP表中,ARP表会老化,一般为20分钟。也就是一个映射内容如果在20分钟都没有被使用则会被删除,如果被使用过了则重新设置20分钟。这样可以减少ARP表的大小。

 

ARP请求应答的列子

参考

ARP、RARP、免费ARP、代理ARP
地址解析协议-维基百科

1 次阅读

发表评论

电子邮件地址不会被公开。