ARP基本原理

Posted 正在努力中的杨Sir

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ARP基本原理相关的知识,希望对你有一定的参考价值。

对于文章中出现的任何错误请大家批评指出,一定及时修改。
有任何想要讨论和学习的问题可联系我:944636892@qq.com
发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。

ARP报文格式

ARP请求和应答报文格式:

主要字段解释如下:
•Hardware Type:硬件地址的类型。对于以太网,该类型的值为“1”。
•Protocol Type:映射的协议地址类型。对于IP地址,该值为0x0800。
•Hardware Length:硬件地址长度。对于ARP请求或应答来说,该值为6。
•Protocol Length:协议地址长度。对于ARP请求或应答来说,该值为4。
•OP:操作类型。1表示ARP请求,2表示ARP应答。
•Ethernet Address of sender:发送方MAC地址。
•IP Address of sender:发送方IP地址。
•Ethernet Address of destination:接收方MAC地址。
•IP Address of destination:接收方IP地址。

ARP地址解析过程

ARP通过ARP请求和ARP应答这两个过程完成地址解析

  • ARP请求过程

    HostA和HostB在同一个网段,HostA要向HostB发送信息。
    首先,HostA查看自己的ARP表,确定其中包含有HostB对应的ARP表项。
    如果找到了HostB对应的MAC地址,则HostA直接利用ARP表中的MAC地址,对IP数据包进行帧分钟,并将数据包 发送给HostB。
    如果HostA在ARP表中找不到对应的MAC地址,则将缓存该数据报文,然后以广播方式发送一个ARP请求报文。ARP请求报文中的发送端IP地址和发送端MAC地址为HostA的IP地址和MAC地址,目标IP地址为HostB的IP地址,目标MAC地址为全0的MAC地址。
    由于ARP请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即HostB)会对该请求进行处理
  • ARP应答过程

    HostB比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:
    将ARP请求报文中的发送端(即HostA)的IP地址和MAC地址存入自己的ARP表中。之后以单播方式发送ARP响应报文发送给HostA,其中包含了自己的MAC地址。HostB向HostA发出一个包含其MAC地址和ARP响应报文
    HostA收到ARP响应报文后,将HostB的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将IP数据包进行封装后发送出去

ARP老化机制

  • 高速缓存
    每台主机上都维护着一个高速缓存,这是ARP高效运行的一个关键。在这个高速缓存中,存放最近获得的IP地址和MAC的映射关系。
    发送发在每次发送报文时,都先在缓存中查找目标IP地址所对应的MAC地址。如果ARP缓存中有对应的AMC地址,主机就不会在发送ARP请求报文,而是直接将报文发至这个MAC地址。如果ARP缓存中没有对应的AMC地址时,主机才会发送广播的ARP请求报文
  • 动态ARP表项的老化超时时间
    ARP告诉缓存中的表项一般都会设定一个定时器。当到达定时器的动态ARP表项的老化超时时间,设备进行老化探测,如果探测失败,删除该表项;否则,保留该表项
  • 动态ARP表项的老化探测次数
    一条动态ARP表项老化之前,系统先进行探测,如果超过设置的探测次数后探测的目标主机仍没有应答,则此ARP表项将被删除
  • 动态ARP表项的老化探测模式
    ARP表项老化之前,接口会发送ARP老化探测报文。老化探测报文可以是单播报文,也可以是广播报文。设备只在最后一次发送ARP老化探测报文是广播模式,其余均为单播模式发送

动态ARP

动态ARP表项由ARP协议通过ARP报文自动生成和维护,可以被老化,可以被新的ARP报文更新,可以被静态ARP表项覆盖。当到达老化时间、接口Down时会删除响应的动态ARP表项

静态ARP

静态ARP是指IP地址和MAC地址之间有固定的映射关系,由网络管理员手动配置生成。

以上是关于ARP基本原理的主要内容,如果未能解决你的问题,请参考以下文章

ARP基本原理

ARP原理 和防护

图解ARP协议ARP攻击原理与实践

图解ARP协议ARP攻击原理与实践

ARP原理和ARP攻击

2.1基本路由原理数据转发原理3