ARP协议:网络世界的地址翻译官

news/2025/3/18 9:31:46/文章来源:https://www.cnblogs.com/polelink/p/18232695

一 . 引言

 

 

在当今快速发展的汽车行业中,车载以太网正逐步成为推动汽车智能化、网联化浪潮的核心技术之一。作为传统以太网技术在汽车领域的创新应用,车载以太网不仅继承了以太网的开放性、成熟性和互操作性,还针对车辆特有的环境和需求进行了优化与定制,为车载内部的复杂数据传输提供了高速、可靠、低延迟的通信平台。

在复杂的车载网络拓扑中,主机间通信最初只知道目标设备的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地址设置为00:00:00:00:00: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地址应设置为FF:FF:FF:FF:FF: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协议相关测试内容,如字段检测、动态学习、老化机制等。

 

北汇信息是一家专注于汽车电子测试领域的企业,对车载以太网测试有着丰富经验,并可提供相关培训、咨询服务以及测试解决方案,帮助汽车制造商和零部件供应商确保其车载以太网系统的可靠性和安全性。如果需要具体的测试服务或了解更多信息,欢迎大家来联系我们。

 

参考文献:

【1】《TCP/IP详解 卷1:协议》

【2】《车载以太网权威指南》

【3】《RFC 826文档》

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/720238.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

逐梦航天!AIRIOT大学计划暑期训练营来啦!

品质训练营助力“小白”,开启大神之路! AIRIOT大学计划暑期训练营等你来!“产业赋能,教育创新",为了促进物联网产业的纵深发展和创新,推进教育链、产业链与创新链的有机结合,提升理论、实践和创新能力,扩展学生视野,促进学生交流,为中国最有前途的物联网人才成长…

为什么MySQL的information_schema.tables字段index_length显示为0?

为什么MySQL的information_schema.tables字段index_length显示为0?测试版本为:MySQL社区版 8.0.36分情况1:innodb引擎的表是索引组织表,按照主键进行顺序存放。则表是索引,索引是表,index_length不会有值。 如下,创建一个表,并追加主键,查看索引情况。(root@localhost…

etcd-v3.5.9源代码分析

Github上下载etcdv3.5.9源代码,包含server和client两部分。 先放ETCDv3 读写流程图镇楼读流程写流程 Etcd Server server->etcdmain->main.go:Main():startEtcdOrProxyV2() ->etcd.go:startEtcd()->StartEtcd()->etcdserver目录下server.go:NewServer() 初始化…

【长亭雷池WAF】介绍及“动态防护”功能深度体验

一、介绍 什么是雷池 雷池(SafeLine)是长亭科技耗时近 10 年倾情打造的 WAF,核心检测能力由智能语义分析算法驱动。 Slogan: 不让黑客越雷池半步。 什么是 WAF WAF 是 Web Application Firewall 的缩写,也被称为 Web 应用防火墙。 区别于传统防火墙,WAF 工作在应用层,对基…

Goland无法Debug

起因 今天用goland,Debug代码出现如下报错 其原因是因为正在使用的Delve试调器版本太旧,无法兼容当前的Go语言版本1.22.1 Delve是Go语言的一个调试工具,用于提供源码级别的调试功能 Go语言每隔一段时间会发布新版本,而相应的调试器Delve也可能会更新以提供新的特性或修复已…

2.6倍!WhaleTunnel 客户POC实景对弈DataX

作为阿里早期的开源产品,DataX是一款非常优秀的数据集成工具,普遍被用于多个数据源之间的批量同步,包括类似Apache DolphinScheduler的Task类型也对DataX进行了适配和增强,可以直接在DolphinScheduler里面利用通用的数据源调用DataX进行数据批量同步。 作为DolphinSchedule…

App_Code.dll没有生成问题

场景:VS2019需要生成App_Code.dll,用来更新网站接口,但是【发布/重新生成】网站后,Bin目录里头都没有找到这个App_Code.dll。 解决: 发布的时候勾选一下【在发布前删除所有现有文件】和【在发布期间预编译】即可

P4003 [清华集训 2017] 无限之环 解题报告

oj:https://gxyzoj.com/d/gxyznoi/p/P93 它要判断什么时候不漏水,就是需要建一种图,使得原图的最大流是答案 因为是网格图,考虑黑白染色,可以将\((i+j)\)对2取模的结果作为颜色,将所有颜色为1的点向源点连边,颜色为0的点向汇点连边 接下来考虑如何判断是否漏水,因为有四…

一文搞懂5种内存溢出案例,内含完整源码

在开发中需要尽量避免出现内存溢出,导致程序出现异常。本文分享自华为云社区《10分钟搞懂各种内存溢出案例!!(含完整源码,建议收藏)》,作者:冰 河。 作为程序员,多多少少都会遇到一些内存溢出的场景,如果你还没遇到,说明你工作的年限可能比较短,或者你根本就是个假…

SARscape5.7中DS-InSAR:E-PS操作说明

PS-InSAR方法测量PS点的形变,SBAS-InSAR方法测量分布式散射体DS(Distributed Scatters)的形变。随着技术的发展,在这一领域取得了许多研究进展,SARscape5.7版本开始,提供了能够同时提取PS和DS测量值的新方法,即增强型永久散射体(E-PS)和增强型短基线(E-SBAS)。 E-PS…

揭秘PW1558A:集成电源管理的6A双向限流过压保护IC

描述PW1558A 是一款先进的 28V 6A 额定双向负载开关, 提供过载、 短路、 输入电压浪涌、 过大冲击电流和过热保护, 为系统供电。 内置的 24mΩ超低 RDS(ON)电源开关有助于减少正常操作期间的功率损耗。 该设备具有两个输入/输出端口 VBUS1 和 VBUS2, 其绝对 MAX 大额定值为 …