ARP(Address Resolve Protocol)

ARP是解决同网段PC间通信的协议,当知道对端IP地址,想要知道对端的MAC地址时,我们发ARP请求来得到对端的MAC地址

ARP协议包结构:

Hardware type:     硬件类型         2个字节
        00 01: 以太网
Protocol type:     协议类型         2个字节
        08 00:  IP
Hardware size:    硬件地址长度      1个字节
           06:    6字节
Protocol size:     协议长度         1个字节
           04:    4字节
Opcode:           操作码           2个字节
        00 01:    request
        00 02:    reply
Sender MAC:       源MAC           6个字节              
        00 50 56 a1 0e 9a
Sebder IP:        源IP            4个字节
        c0 a8 0a 67
Target MAC:  目的MAC         6个字节
        00 00 00 00 00 00
Target IP:   目的IP          4个字节
        c0 a8 0a 03

ARP request包

ARP(Address Resolve Protocol)_第1张图片

ARP Reply

ARP(Address Resolve Protocol)_第2张图片

ARP协议原理

ARP是在同网段中,如果只知道对方的IP地址,不知道MAC地址
1 发送端首先发起一个ARP request报文在本网段中广播
2 接收端收到该广播报文后查看报文中的destination-ip是否是自己的IP地址
        是, 回复reply报文给发送端,此时是单播,因为在request报文中已经标明了发送端的MAC,没有必要再广播了
        不是,丢弃

ARP cache

ARP缓存的出现是为了能够快速的处理数据包的转发,如果每次都需要学习,速度会很慢,如果是一些设备里缓存了这些刚学到的条目,那么下次还是遇到这个目的IP,则可以
不再进行学习,而直接根据缓存中的记录进行高效的转发,缓存中的条目是有时间限制的,会在一定的时间过后老化
免费的ARP

免费ARP是当设备IP地址改变后,网络主机中缓存的IP和MAC映射就失效了,为了防止通信错误,免费的ARP请求被广播到网络中,通
知其它主机及时更新ARP缓存映射,免费ARP的发送方和目标IP相同,目标MAC未知填0,接收方无需回复应答包,因此称之为免费






你可能感兴趣的:(ARP)