目录
ARP(Address Resolution Protocol)
地址解析协议 ARP 的作用
ARP 高速缓存 (ARP cache)
ARP 工作过程
ARP 查找 IP 地址对应的 MAC地址
ARP 高速缓存的作用
不在同一局域网的两个主机运行ARP协议
使用 ARP 的四种典型情况
为什么要使用两种地址:IP 地址和 MAC 地址?
ARP报文格式
ARP请求包
ARP响应包
反向ARP
免费ARP
代理ARP
ARP(Address Resolution Protocol)
实现 IP 通信时使用了两个地址:
IP 地址(网络层地址)和 MAC 地址(数据链路层地址)
地址解析协议 ARP 的作用
ARP (Address Resolution Protocol ) 作用: 从 IP 地址解析出 MAC 地址。
即从网络层使用的 IP 地址,解析出在数据链路层使用的硬件地址。
ARP 高速缓存 (ARP cache)
·存放 IP 地址到 MAC 地址的映射表。
·映射表动态更新(新增或超时删除)。
映射表:
超过生存时间的项目都从高速缓存中删除,以适应网络适配器变化。
ARP 工作过程
当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。
·如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。
·如没有, ARP 进程在本局域网上广播发送一个 ARP 请求分组。收到 ARP 响应分组后,将得到的 IP 地址到硬件地址的映射写入 ARP 高速缓存。
ARP 查找 IP 地址对应的 MAC地址
地址解析协议 ARP 要点
·本局域网上广播发送 ARP 请求(路由器不转发 ARP 请求)。
·ARP 请求分组:包含发送方硬件地址 / 发送方 IP 地址 / 目标方硬件地址(未知时填 0) / 目标方 IP 地址。
·单播 ARP 响应分组:包含发送方硬件地址 / 发送方 IP地址 / 目标方硬件地址 / 目标方 IP 地址。
·ARP 分组封装在以太网帧中传输。
ARP 高速缓存的作用
·存放最近获得的 IP 地址到 MAC 地址的绑定。
·减少 ARP 广播的通信量。
·为进一步减少 ARP 通信量,主机 A 在发送其 ARP 请求分组时,就将自己的 IP 地址到 MAC 地址的映射写入 ARP 请求分组。
·当主机 B 收到 A 的 ARP 请求分组时,就将主机 A 的 IP 地址及其对应的 MAC 地址映射写入主机 B 自己的 ARP 高速缓存中。不必在发送 ARP 请求。
不在同一局域网的两个主机运行ARP协议
ARP 用于解决同一个局域网上的主机或路由器的 IP 地址和 MAC 地址的映射问题。
通信的路径:A → 经过 R1 转发 → B。
因此主机 A 必须知道路由器 R1 的 IP 地址,解析出其 MAC 地址。然后把 IP 数据报传送到路由器 R1。
使用 ARP 的四种典型情况
1.发送方是主机,要把 IP 数据报发送到本网络上的另一个主机。这时用 ARP 找到目的主机的硬件地址。
2.发送方是主机,要把 IP 数据报发送到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。
3.发送方是路由器,要把 IP 数据报转发到本网络上的一个主机。这时用 ARP 找到目的主机的硬件地址。
4.发送方是路由器,要把 IP 数据报转发到另一个网络上的一个主机。这时用 ARP 找到本网络上另一个路由器的硬件地址。剩下的工作由这个路由器来完成。
为什么要使用两种地址:IP 地址和 MAC 地址?
·不同使用不同的 MAC 地址。MAC 地址之间的转换非常复杂。
·对以太网 MAC 地址进行寻址也是极其困难的。
·IP 编址把这个复杂问题解决了。
·连接到互联网的主机只需各自拥有一个唯一的 IP 地址,它们之间的通信就像连接在同一个网络上那样简单方便,即使必须多次调用 ARP 来找到 MAC 地址,但这个过程都是由计算机软件自动进行的,对用户来说是看不见的。
·因此,在虚拟的 IP 网络上用 IP 地址进行通信非常方便。
ARP报文格式
ARP请求包
ARP响应包
反向ARP
·根据MAC学习IP。
免费ARP
(1)免费ARP指主机发送ARP查找自己的IP地址。
(2)通常发生在系统引导期间进行接口配置时。
(3)与标准ARP的区别就是免费ARP分组的目的IP地址字段封装的是自己的IP地址
(即向所在网络请求自己的MAC地址)。
(4)免费ARP可以用来探测IP地址是否冲突:
代理ARP
代理ARP就是通过使用一个主机(通常为router),来作为指定的设备使用自己的 MAC 地址来对另一设备的ARP请求作出应答。
·位于不同网络的网络的网络设备在不同配置网关情况下,能够通过ARP代理实现相互通信。
欢迎一起学习~