ARP地址解析协议
什么是ARP
ARP是地址解析协议,它提供了32位IP地址到物理链路层的物理地址的映射关系。拿最常见的以太网来说,ARP将32位IP地址映射位48位的MAC物理地址。
下面我们来看看ARP协议在我们的一次请求中所起的作用。
1.应用程序FTP客户端调用函数getHostByName将主机名转换为32bit的IP地址。这个过程由DNS完成。
2.FTP客户端请求TCP用到的IP地址建立连接。
3.TCP发送一个连接请求分段到远端的主机,即用上述IP地址发送一份数据报。
4.如果目录的主机在本地网络上,那么IP数据报可以直接送到目录的主机。如果母的主机在一个远程网络上,那么就通过IP选路函数确定位于本地网络上的下一站路由器地址,并让它转发IP数据报。
5.假设是一个以太网,那么发送端主机必须把32bit的IP地址编程48bit的以太网地址。从逻辑Internet地址到对应的物理硬件地址需要进行翻译,这就是ARP的功能。
6.ARP发送一份称作APR请求的以太网数据帧给一台网上的每个主机。
7.目的主机的ARP层收到这份广播报文后,识别出这是发送端在寻问它的IP地址,于是发送一个ARP应答。这个ARP应答包含IP地址及对应的硬件地址。
8.收到ARP应答后,使ARP进行请求-应答交换的IP数据报现在就可以发送了。
9.发送IP数据报到目的主机。
ARP协议的报文格式
-
以太网帧类型表示后面的数据类型。对于ARP请求或应答来说,该字段的值为0x0806。
-
硬件类型表示硬件地址的类型,值为1表示以太网地址。
-
协议字段表示映射的协议类型,值为0x800表示IP地址。
-
硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,字节为单位,对于以太网上的IP地址的ARP请求或应答来说,它们的值分别为6和4。
-
操作字段指出四种操作类型,分别是ARP请求(1),ARP应答(2),RARP请求(3),RARP应答(4)。
-
对于一个ARP请求来说,除目的端硬件地址外的所有其他字段都有填充值。当系统收到一份目的地址为本机的ARP请求报文后,它就把硬件地址填进去,然后用两个目的端地址分别替换两个发送端地址,并把操作字段置为2,最后把它发送出去。
要点总结
RARP
RARP是ARP的逆过程,具有本地磁盘的系统引导时,一般是从磁盘上的配置文件读取IP地址的,对于许多无盘系统,在引导时用RARP来获取IP地址。