1、ARP(Address Resolution Protocl)
数据链路层封装数据时,需要目的MAC地址。通过目的IP地址来获取目的MAC地址的过程,由ARP协议实现。ARP协议是TCP/IP协议簇中的重要组成部分。
2、ARP数据包格式
3、ARP报文不能跨越路由器,不能被转发到其他广播域
4、通过ARP协议,设备可建立目标IP地址和MAC地址的映射,设备获取到目的IP地址后,判断目的MAC地址是否已知。
5、ARP缓存(ARP Cache)
ARP缓存用来存放IP地址和MAC地址的映射关系,发送数据前先查找ARP缓存表,有则直接封装,没有则发送ARP Request获取。在有效期内,直接查找ARP缓存,过了有效期ARP表项自动删除。
若目标设备在其他网段,则先查找网关MAC地址,由网关把数据发给目的设备。
6、ARP请求
ARP Request报文封装在以太网帧中,帧头中源MAC地址为主机MAC地址,目的MAC地址为FF-FF-FF-FF-FF-FF。 ARP Request报文包括源IP,目的IP,源MAC,目的MAC,其中目的MAC为0。
7、ARP响应
其他主机收到ARP Request报文后,检查目的协议地址和自己IP地址是否匹配,不匹配则不响应,匹配则将报文中信息记录到自己ARP缓存中,并通过ARP Reply报文进行响应。
8、代理ARP
同一网段,但不在同一物理网络上的主机之间,可通过代理ARP实现通信,
例如:
主机A(10.1.0.1/8)----------(10.1.0.2/16)路由器B(10.2.0.2/16)-------------主机C(10.2.0.1/8)
本例主机A和主机C为同一网段,但广播报文无法被路由器B转发。但开启代理ARP后,主机A将以路由器接口MAC地址为目的MAC地址进行数据转发,从而实现A到C通信。
9、免费ARP
作用:来探测IP地址是否冲突,
当主机分配了IP地址后,需检测IP地址是否唯一,主机发送ARP Request报文,该报文目的IP和源IP地址均为自己,若目的IP地址已被使用时,则使用的主机或网关回应ARP Reply报文,这样主机就检测到是否冲突了。