作者 | 雨田
小编 | 不吃猪头肉
引言
在当今快速发展的汽车行业中,车载以太网正逐步成为推动汽车智能化、网联化浪潮的核心技术之一。作为传统以太网技术在汽车领域的创新应用,车载以太网不仅继承了以太网的开放性、成熟性和互操作性,还针对车辆特有的环境和需求进行了优化与定制,为车载内部的复杂数据传输提供了高速、可靠、低延迟的通信平台。
在复杂的车载网络拓扑中,主机间通信最初只知道目标设备的IP地址,那
如何获取目标设备的MAC地址呢,这就不得不提到一个关键协议——ARP协议
。
ARP概念
ARP协议(Address Resolution Protocol,地址解析协议)在车载以太网中的作用与传统以太网中作用相同,是一种网络层协议,在网络世界中扮演着至关重要的角色,它就像是网络中的地址翻译官,负责将网络层的IP地址转换为数据链路层的MAC地址。
ARP工作原理
当主机A向主机B发送数据包时,会经过以下几步:
1.ARP缓存查询
:主机A首先会在自己的ARP缓存表中查找主机B 的IP地址对应的MAC地址,如在缓存表中存在映射关系,则将IP数据包封装成以太网帧并发送给主机B。
2.ARP请求广播
:如果主机A在本地ARP表中查询不到主机B对应的MAC地址,主机A会以广播方式发送一条ARP请求报文,ARP报文中源IP地址和MAC 地址为主机A的IP地址和MAC地址,目标IP地址是主机B地址,目标MAC地址设置为000000:00 。
3.ARP响应
:因ARP报文以广播方式发送,网段上所有主机都会接收到ARP请求,当主机B收到ARP请求后会比较自己的IP地址和报文中的目标IP地址是否相同,如果相同则回复一条单播ARP响应报文给主机A,响应报文中包含了主机B的IP地址和MAC地址,同时将发送端的IP地址和MAC地址存入主机B的ARP缓存表中。
4.缓存更新
:主机A收到ARP应答后,将主机B的IP地址和MAC地址的对应关系存入自己的ARP缓存表中。
5.数据传输
:主机A知道了主机B的IP地址和MAC地址,将IP数据包封装到以太网帧中发送到主机B。
ARP数据格式
1.以太网帧头
目的MAC地址
:占6字节,表示目标主机的MAC地址,作为ARP请求帧,目标MAC地址应设置为FFFFFF:FF;
源MAC地址
:占6字节,表示源主机的MAC地址;
帧类型
:占2字节,表示后面报文类型,对于ARP报文来说该字段值为0x0806;
2.ARP报文格式(以常用ARP报文为例)
硬件类型
:占2字节,表示硬件地址的类型。它的值为 1即表示以太网地址;
协议类型
:占2字节,表示要映射的协议地址类型,值等于0x0800时为IPv4协议;
MAC地址长度
:占1字节,表示MAC地址长度,值为6;
IP地址长度
:占1字节,表示IP地址长度,值为4;
操作类型
:占2字节,表示ARP报文类型,值等于1时为APR请求报文,值等于2时为ARP应答报文;
源MAC地址
:占6字节,表示源主机的MAC地址;
源IP地址
:占4字节,表示源主机的IP地址;
目的MAC地址
:占6字节,表示目标主机的MAC地址,在ARP请求报文中该字段值全为0 ;
目的IP地址
:占4字节,表示目标主机的IP地址;
报文解析示例
ARP请求报文解析示例:
ARP应答报文解析示例:
ARP表
ARP表是主机内部的一个高速缓存表,用于临时存储IP地址和MAC地址的映射关系,
可分为静态ARP表和动态ARP表
:
静态ARP表
:
通过手工配置和维护,不会被老化,不会被动态ARP表项覆盖。
动态ARP表
:
动态ARP表由ARP协议通过ARP报文自动生成和维护,可以被老化,可以被新的ARP报文更新,也可以被静态ARP表项覆盖。
常见ARP老化过程
ARP 老化是指 ARP 缓存表中的条目在一定时间内没有使用而被删除的过程:
1. 老化时间内
:当一个缓存条目在老化时间内没有被使用(即没有通过该条目发生过通信),它就会被视为过时并从ARP表中删除。
2. 更新重置
:在老化时间内有新的数据包需要通过此ARP条目转发,该条目的老化周期将被重置,即其老化计时器会被重新开始计算。
3. ARP探测报文
:当达到老化时间后,系统会发送一定次数的ARP探测报文,以确认该条目是否仍然有效,若探测失败,则删除该缓存条目。
免费ARP
当主机发送ARP请求,但请求的目标IP地址是自己本身的IP地址。这种类型的ARP不是为了获取MAC地址,而是用于更新网络中的ARP缓存、检测IP地址冲突或宣告主机更换了新的IP地址。
因免费ARP这些特性使其在DHCP(
动态主机配置协议
)过程中扮演着重要角色,当DHCP客户端从服务器获得了一个新的IP地址后,会发送一个免费ARP广播包,其目的是检查网络中是否有其他设备在使用相同的IP地址,如果存在另一台设备使用相同IP地址,它将响应这个ARP请求,从而客户端可以意识到地址冲突并重新向DHCP服务器请求一个新的IP地址。
在此过程中确保了新分配的IP地址的唯一性,并促进了网络中的设备能迅速识别出客户端的IP地址和MAC地址映射关系。
总结
ARP协议是网络通信的基石之一,它的实现也需要符合特定的标准和规范(如IEEE 802.3以太网标准)
。作为车载以太网相关测试人员了解ARP协议概念及原理是重要的,在车载网络中可能包含来自不同制造商的主机,它们在实现ARP协议时可能存在差异,通过测试可以验证整个网络中所有主机都能遵循相同的规则进行地址解析。同时为了提高车载网络中不同主机间的兼容性,OPEN联盟发布了相应的测试规范,其中《OPEN Alliance Automotive Ethernet ECU Test Specification Layer 3-7》文档中定义了ARP协议相关测试内容,如字段检测、动态学习、老化机制等。