美文网首页
地址解析协议(ARP)

地址解析协议(ARP)

作者: 谢朴欢 | 来源:发表于2017-12-09 11:58 被阅读6次

    1. 简介

    同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。如果知道其IP地址,则可以通过ARP(Address Resolution Protocol,地址解析协议)查询到其MAC地址。ARP仅用于IPv4,IPv6使用ICMPv6

    2. ARP帧格式

    ARP帧格式

    上图是一个以太网封装上层ARP包后的以太网帧,其中的一些字段,如

    • 硬件类型:硬件地址类型,如以太网的值为0x0001
    • 协议类型:映射的协议的地址类型,如IPv4的值为0x0800
    • 硬件地址长度:硬件地址占多少个字节的长度,如以太网占6个字节,该值就为6
    • 协议地址长度:协议地址占多少个字节的长度,如IPv4占4个字节,该值就为4
    • OP:指出这个ARP包是一个请求或响应包,请求为1,响应为2

    3. 原理

    ARP抓包结果

    以主机A(192.168.1.103)向所在子网的主机B(192.168.1.101)发送数据为例:

    1. 当主机A发送数据时,主机A会在本机的ARP缓存表中寻找是否有主机B的IP地址。

      • 如果找到就知道主机B的MAC地址为主机B的MAC地址,直接把主机B的MAC地址写入帧首部发送数据。
    2. 如果在ARP缓存表中没有找到主机B的MAC地址,主机A就会在网络上广播一个ARP请求帧。如下图:


      ARP请求结果
    3. 同一子网上的主机都会收到这个帧,并且根据ARP包的内容更新自己的ARP缓存表。但只有主机B接收到这个帧时,单播一个目的IP地址为192.168.1.103的ARP响应帧,其他主机则丢弃这个请求帧。


      ARP响应结果

    ARP缓存表采用老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。

    相关文章

      网友评论

          本文标题:地址解析协议(ARP)

          本文链接:https://www.haomeiwen.com/subject/rkgnbxtx.html