ARP协议
无论网络层使用何种协议,在实际网络的链路上传输数据帧时,最终必须使用硬件地址
地址解析协议(Address Resolution Protocol,ARP):完成IP地址到MAC地址的映射,每个主机都有一个ARP高速缓存,存放着IP地址到MAC地址的关系映射表(ARP表,由ARP来动态维护此表)
ARP协议的工作原理:当需要进行数据帧的传输时进行有两种情况:
- ARP高速缓存表中有主机B的IP地址:可以直接查找其对应的物理地址并向目的主机发送MAC帧
- ARP高速缓存表中没有主机B的IP地址:找不到对应的物理地址,此时通过使用目的MAC地址为全一(即FF-FF-FF-FF-FF-FF)的帧 来封装并广播ARP请求分组,当目的主机B收到此广播帧后,向主机A发回一个**ARP响应分组(分组中包含主机B的物理地址和IP地址的映射关系),**主机A收到来自目的主机B的响应分组后,将对应的信息写入其ARP高速缓存表中,然后按照查询到的物理地址发送MAC帧
值得注意的是:源主机发送的ARP请求分组中也包含自己的IP地址和MAC地址的映射关系,因此当目的主机收到该ARP请求分组后会将源主机的IP地址和MAC地址的映射关系写入自己的ARP高速缓存表中
ARP用于解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题 。如果所要找的主机和源主机不在同一个局域网上,那么就要通过ARP找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。 剩下的工作就由下一个网络来做,尽管ARP请求分组是广播发送 的,但ARP响应分组是普通的单播,即从一个源地址发送到一个目的地址
- 如图当主机H1要向主机H2发送数据时,这时主机H1在网络1中使用ARP找到目的主机H2的物理地址
- 当主机H2要将数据传输到目的主机H3时,这是H1在网络1中使用ARP找到路由器R1的物理地址,并将数据传输给R1,剩下的工作由R1完成(将数据从R1传输到目的注意H3)
- 当路由器R1要将数据发送到与R1连接的网络2中的主机H3时,R1在网络2中使用ARP找到目的主机H3的物理地址
- 发送方是路由器R1,要把数据发送到网络3中的主机H4上。这是R1通过网络2使用ARP找到与网络3相连的路由器R2的物理地址,并将剩下的工作交给R2处理