风言枫语  

一、简介

    ARP为IP地址到对应的硬件地址之间提供动态映射。之所以称为动态是因为这个过程是自动完成的。一般应用程序用户或系统管理员不必关心。RARP是被那些没有磁盘驱动器的系统使用,它需要系统管理员进行手动设置。稍后介绍。

    点对点链路不适用ARP。当设置这些链路时,必须告知内核链路每一端的IP地址。

二、ARP高速缓存

    ARP高效运行的关键是由于每个主机上都有一个ARP高速缓存。这个缓存存放了最近Internet地址到硬件地址之间的映射记录。高速缓存中的每一项的生存时间一般为20分钟,起始时间从被创建时开始算起。

    arp -a可用来显示高速缓存中所有的内容。

三、ARP的分组格式

    ARP请求和应答分组的格式如下所示:


    以太网报头中的前两个字段是以太网的源地址和目的地址。目的地址为全1的特殊地址是广播地址。电缆上的所有以太网接口都要接收广播的数据帧。
    两个字节长的以太网帧类型表示后面数据的类型。对于ARP请求或应答来说,该字段的值为0x0806。
    硬件类型字段表示硬件地址的类型。它的值为1即表示以太网地址。协议类型字段表示要映射的协议地址类型。它的值为0x0800即表示IP地址。它的值与包含IP数据报的以太网数据帧中的类型字段的值相同,这是有意设计的。
    接下来的两个1字节的字段,硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。对于以太网上IP地址的ARP请求或应答来说,它们的值分别为6和4。
    操作字段指出四种操作类型,它们是ARP请求(值为1)、ARP应答(值为2)、RARP请求(值为3)和RARP应答(值为4)。这个字段必需的,因为ARP请求和ARP应答的帧类型字段值是相同的。
    接下来的四个字段是发送端的硬件地址(在本例中是以太网地址)、发送端的协议地址(IP地址)、目的端的硬件地址和目的端的协议地址。注意,这里有一些重复信息:在以太网的数据帧报头中和ARP请求数据帧中都有发送端的硬件地址。
    对于一个ARP请求来说,除目的端硬件地址外的所有其他的字段都有填充值。当系统收到一份目的端为本机的ARP请求报文后,它就把硬件地址填进去,然后用两个目的端地址分别替换两个发送端地址,并把操作字段置为2,最后把它发送回去。

四、对不存在主机的ARP请求

    对不存在主机的ARP请求会按一定时间间隔重复发送ARP请求报文。直到上层应用放弃(如TCP连接大约在75s左右放弃连接)。

五、ARP高速缓存超时设置

    对完整的表项设置超时值为20分钟,对于不完整的表项(对一个不存在的主机发出ARP请求)设置超时值为3分钟。

六、免费ARP

    除了ARP代理外,ARP另一个特性称为免费ARP,它是指主机发送ARP查找自己的IP地址。通常,它发生在系统引导期间进行接口配置的时候。它有两方面的作用:

    (1)一个主机可以通过它来确定另一个主机是否设置了相同的IP地址;

    (2)如果发送免费ARP的主机正好改变了硬件地址,那么这个分组就可以使其他主机告诉缓存中旧的硬件地址进行相应的更新。

七、ARP命令

    arp -a用来显示ARP高速缓存中的所有内容。

    arp -d用来删除arp高速缓存中的某一项内容。

    arp -s用来增加高速缓存中的内容。新增加的内容是永久性的,除非在命令行的末尾附上关键字temp。

    位于命令行末尾的关键字pub和-s选项一起,可以使系统起着主机ARP代理的作用。系统将回答与主机名对应的IP地址的ARP请求,并以指定的以太网地址作为应答。如果广播地址为系统本身,那么系统就为指定的主机名起着委托ARP代理的作用。

 

posted on 2013-10-12 09:45  风言枫语  阅读(264)  评论(0编辑  收藏  举报