地址解析协议 ARP
实际网络的链路上传送数据帧时,最终必须使用硬件地址(即MAC地址)。ARP解决了同一个局域网内主机和路由器的IP与MAC地址之间的解析。每台主机
都设有一个ARP高速缓存,用来存储 本局域网
内各主机和路由器的IP地址到MAC地址的映射关系,称为ARP表 。
交换机的接口无MAC地址,
ARP工作在网络层
主机A要向主机B发送数据,ARP的工作流程:
-
在同一个局域网内:
主机 A 首先会在自己的ARP缓存表中查找是否有B的IP地址及其对应的MAC地址,如果有,则直接将数据包发送到这个MAC地址。如果没有,主机A会在局域网内广播发送一个ARP请求分组,查询此目的主机对应的MAC地址。此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个 ARP响应数据包,告诉对方自己是它需要查找的MAC地址。源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。
-
不在同一个局域网内:
。。。。。把数据包传送到两个子网络连接处的"网关"(gateway),让网关去处理;
场景 | 数据包地址 |
---|---|
同一个子网络 | 对方的MAC地址,对方的IP地址 |
非同一个子网络 | 网关的MAC地址,对方的IP地址 |