ARP协议详解

ARP协议详解

概念:

ARP又叫地址解析协议,用于解析mac地址和ip地址处于数据链路层和网络层之间,承上启下
假如主机A知道主机B的ip地址,但是在二层链路,也就是数据链路层,是通过mac地址进行转发的,那么在不知道的情况下又怎么获取到对方的mac地址呢?就需要通过ARP协议来获取解析

ARP有静态获取动态获取,通俗可以理解为(其实是了解不深):

静态获取相当于手动配置,ARP表里面的地址映射关系全部手动写,如果物理地址发生变化需要手动去更改,比较麻烦

动态获取相当于全部都是主机通过协议自己获取,自己更新,方便省事

过程:

假如有三台主机A,B,C
ARP协议详解_第1张图片1. ARP请求:

假如主机A要访问主机B,但是A现在只知道B的ip地址,10.1.1.2
这时候,A会发起一个ARP请求:
ARP协议详解_第2张图片因为在同一个广播域内,A通过全F的广播报文去寻找B,在ARP的请求包中,因为不知到B的mac地址,所以通过全FF来表示(画图的时候写错成0了)

2. ARP缓存
因为是同一个广播域,所以B,C都会收到这个请求,C收到后会把二层头部打掉,查看里面的ARP请求,发现目的地址不是自己,于是,C先把A的mac地址缓存到自己的ARP表中,然后再把报文丢弃
B收到后,同样的操作,但是,他发现目标地址是自己,于是不是没有丢弃,而是将A的mac缓存后并给予回应

3. ARP响应
B会把自己的mac地址封装在回应的ARP报文中,并且,B回应的二层头部不再是全F的广播报文,而是以A的mac为目的的单播报文
ARP协议详解_第3张图片抓包解析:
ARP请求
ARP协议详解_第4张图片ARP响应:
ARP协议详解_第5张图片ARP还有一种报文,叫免费ARP,用来探测是否有人的ip地址和自己冲突
他会发送源目ip都相同的广播报文,一般这个报文是不希望得到回应的,回应了说明地址有冲突了

你可能感兴趣的:(路由交换,网络,网络协议)