ARP为IP地址到对应的硬件地址之间提供动态映射。它将32bit的IP地址变换为48bit的以太网地址,从逻辑Internet地址到对应的物理硬件地址进行翻译。
ARP本来是用作广播网络的,有许多主机或路由器连在同一个网络上。ARP发送一份称作ARP请求的以太网数据帧给以太网上的每个主机,这个过程称作广播。ARP请求数据帧中包含目的主机的IP地址。目的主机的ARP层收到这份广播报文后,识别出这是发送端在询问它的IP地址,于是发送一个ARP应答。这个应答包含IP地址和对应的硬件地址。
在以太网上解析IP地址时,ARP请求和应答分组的格式如下:
以太网报头中的前两个字段是以太网的源地址和目的地址。目的地址为全1的特殊地址是广播地址。电缆上的所有以太网接口都要接收广播的数据帧。
帧类型字段表示后面数据的类型。对于ARP请求或应答来说,该字段的值为0x0806.
硬件类型字段表示硬件地址的类型。值为1即表示以太网地址。
协议类型字段表示要映射的协议地址类型。值为0x0800即表示IP地址。它的值与包含IP数据报的以太网数据帧中的类型字段的值相同,这是有意设计的。
硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,单位是字节。对于以太网上IP地址的ARP请求或应答来说,值为6和4.
op即为操作字段。指出四种操作类型。分别为:ARP请求 为 1,ARP应答 为 2 ,RARP请求 为 3,RARP应答 为 4.这个字段是必须的,因为ARP请求和ARP应答的帧类型字段值是相同的。
接下来的四个字段是发送端的硬件地址(在这里是以太网地址)、发送端的协议地址(IP地址)、目的端的硬件地址和目的端的协议地址。这里有一些重复信息:在以太网的数据帧报头中和ARP请求数据帧中都有发送端的硬件地址。
对于一个ARP请求来说,除目的端硬件地址外的所有其他的字段都有填充值。当系统收到一份目的端为本机的ARP请求报文后,它就把硬件地址填进去,然后用两个目的端地址分别替换两个发送端地址,并把操作字段置为2,最后把它发送回去。
RARP分组的格式与ARP分组基本一致,它们之间的主要差别是RARP请求或应答的帧类型代码为0x8035,而且RARP请求的操作码为3,应答操作码为4.
对应与RAP,RARP请求以广播方式传送,而RARP应答一般是单播传送的。
阅读(910) | 评论(0) | 转发(0) |