580 字
3 分钟
ARP
Address Resolve Protocol, 实现三层地址到二层地址的转换
概念
ARP缓存 ARP表
分析
flowchart LR
subgraph net0
H1((H1))
H2((H2))
end
net0 <--> R1[R1] <--> net1
subgraph net1
H3((H3))
end
net1 <--> R2[R2] <--> net2
subgraph net2
H4((H4))
end
H1给本地网络上的H2发消息
- H2的mac地址命中arp缓存,把mac地址写入以太网帧,向H2发送消息
- H2mac地址未命中arp缓存,通过目标mac地址为FF-FF-FF-FF-FF-FF,源地址为本机mac地址帧封装arp广播请求分组,H2收到这个分组后向H1单播发送响应分组,源地址为H2的mac地址,目标地址为H1的mac地址,H1收到响应后把mac地址写入arp缓存,然后按查询到的地址发送以太网帧
H1给其他网络的主机发送消息
H1发现目的地址的网络前缀不是本地网络,此时H1使用arp协议找到默认网关的mac地址(默认网关的ip地址是dhcp协议或者自己手动配置的),剩下的工作由默认网关完成
路由器给主机发消息
- 目的ip地址位于相连接的网络上 跟第一个情况相同
- 否则 如R1给H4发送消息,R1根据转发表找到输出端口和下一跳路由器的ip地址,使用arp协议找到R2的mac地址,然后把消息转发给R2进行处理
H4给H1回复IP分组
[!NOTE] Title 当主机A向B发送数据报时,很可能以后不久主机B还要向A发送数据报,因而主机B也可能要向A发送ARP请求分组。为了减少网络士的通信批,主机A在发送其ARP诮求分组时,就把自己的IP地址到MAC地址的映射写入ARP请求分组。当主机B收到A的ARP诸求分组时,就把主机A的这一地址映射写入主机B自己的ARP高速缓存中。以后主机B向A发送数据报时就很方便了
故H4给H1回复分组时没有arp请求
例题
单向arp的请求次数是链路的段数,如果题目改成往返arp请求次数也为4
