中国汽车工程师之家--聚集了汽车行业80%专业人士 

论坛口号:知无不言,言无不尽!QQ:542334618 

本站手机访问:直接在浏览器中输入本站域名即可 

  • 722查看
  • 0回复

[模块网络] 以太网基础:为什么需要ARP?

[复制链接]


该用户从未签到

发表于 3-12-2023 08:33:14 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师



开发以太网的小伙伴,对ARP(Address Resolution Protocol,地址解析协议)已经见怪不怪。在控制器刚启动阶段,总线上会看到一些ARP报文。那么,问题来了,为什么在控制器启动阶段,会有ARP报文呢?ARP报文到底扮演着什么样的角色呢?本文,聊一聊ARP。1、以太网通信基础

我们知道,以太网是点对点(Point-to-Point)的通信方式。如果两个以太网节点建立通信,发送节点首先需要知道和谁通信。发送节点如何知道和谁通信呢?答:MAC地址(Media Access Control Address)。MAC地址也称为网卡,每一个网卡分配唯一MAC地址(长度为6 Bytes)。所以,知道目标节点MAC地址,才能知道信息要发给谁。而在整车的网络拓扑中,节点之间的数据交互由交换机(Switch)进行二层转发,示意如下:

以太网基础:为什么需要ARP?w2.jpg

(一)ARP帧格式

不管何种总线,为了确保信息有效交互,会根据软、硬件层级,设计不同的通信协议。本文关注链路层的以太网帧和网络层的ARP协议,ARP报文封装在以太网帧的数据段传输,如下所示:

以太网基础:为什么需要ARP?w3.jpg



    硬件类型(2 Byte):表示硬件地址类型,eg:以太网为1

    协议类型(2 Byte):表示上层协议类型,eg:IPv4为0x0800

    硬件地址长度(1 Byte):表示硬件地址长度,eg:以太网为6

    协议地址长度(1 Byte):表示协议地址长度,eg:IPv4为4

    操作码(Option,2 Byte):表示ARP请求或响应的操作类型,eg:请求(Request)为1,响应(Replay)为2

    源MAC地址(6 Byte):发送ARP请求的主机的MAC地址

    源IP地址(4 Byte):发送ARP请求的主机的IP地址

    目标MAC地址(6 Byte):目标主机的MAC地址(在ARP请求中通常为空,即:全0x00)

    目标IP地址(4 Byte):目标主机的IP地址


通过ARP报文格式可以看出,ARP记录着IP与MAC的对应关系,即:通过IP关联的MAC地址,最终找到通信的目标节点。而在TCP/IP的分层结构中,ARP属于网络层,因此,网络层的源节点实体、目标节点实体之间通过IP地址识别彼此。但是,ARP报文封装在以太网帧中,依赖以太网链路层传输,而以太网链路层的寻址方式为MAC地址,因此,需要把IP地址转换成MAC地址才能将上层待发送的信息发送给目标节点,所以,这就是ARP出现的意义。

首先,同一局域网内的每个以太网节点,网络层会分配一个或者多个IP,数据链路层固化一个唯一MAC地址,由<MAC,IP>标识发送节点,如下所示:

以太网基础:为什么需要ARP?w4.jpg

其次,通过ARP报文获取目标节点的MAC,形成目标节点的<MAC,IP>对,进而,每个以太网节点形成一个ARP Table。有了ARP Table以后,发送方在发送数据之前,就可以通过目标节点的IP地址,查找目标节点的MAC地址,进而发送数据。每个节点的ARP Table示意如下:

以太网基础:为什么需要ARP?w5.jpg

(二)交换机如何转发

ARP Table形成以后,解决了发送节点知道发送给谁的问题,但是,还有一个问题需要解决:交换机(Switch)如何知道信息转发给谁呢?答:路由表(Route Table),示意如下:

以太网基础:为什么需要ARP?w6.jpg

当交换机某个端口(Port #n)收到以太网帧以后,会通过目标节点的MAC地址查找Route Table,如果找到目标节点端口号,则将信息转发出去,实现路由的目的。同时,也会检查发送节点的MAC地址是否已经缓存,如果Route Table中没有缓存发送节点的MAC,则将发送节点的MAC地址和入口Port缓存到Route Table。

2、ARP通信原理

1、控制器初始启动阶段,ARP缓存表为空,即:ARP Table没有目标节点的<MAC,IP>信息。此时,发送节点发送ARP报文,请求目标节点的MAC地址。注意:目标节点的IP地址已知。请求示意如下:

以太网基础:为什么需要ARP?w7.jpg

发送节点(MCU2)发送的ARP报文信息如下所示:

以太网基础:为什么需要ARP?w8.jpg

解析:



    发送节点发送ARP报文时,会包含发送节点的IP(192.168.0.2)、发送节点MAC(02:00:00:00:00:02)、目标节点的IP(192.168.0.1);

    由于不知道目标节点的MAC,所以,在ARP报文中,目标节点的MAC地址(上图中的Target Protocol Address)用全0x00表示;

    由于发送节点不知道目标节点在哪个位置,所以,发送节点发送ARP请求时,使用广播的方式发送,即:Destination为全0xFF。



2、当交换机收到MCU2的ARP请求报文以后,发现:路由表中找不到目标节点的Port(初始阶段为空),于是,交换机向所有端口广播ARP报文(不包含接收端口),同时,缓存MCU2的MAC2和Port2,如下所示:

以太网基础:为什么需要ARP?w9.jpg

3、当目标节点(MCU1)收到ARP请求报文以后,发现MAC地址与自身匹配,则接收该ARP报文,同时将发送节点的MAC2缓存下来。MCU1之后给出ARP响应,由于知道了发送节点的MAC地址,所以,MCU1响应ARP报文时,单播发送ARP报文。当交换机收到MCU1的ARP响应以后,发现目标节点是MCU2,而且MCU2的MAC2已经关联Port2,则直接将ARP报文发送给MCU2,同时,交换机缓存<MAC1,Port1>。当MCU1接收到MCU2的ARP响应以后,也会缓存<MAC1,IP1>。之后,MCU1和MCU2即可正常通信,示意如下:

以太网基础:为什么需要ARP?w10.jpg

提示:非目标节点收到ARP报文以后,直接丢弃。

响应节点(MCU1)发送的ARP报文信息如下所示:

以太网基础:为什么需要ARP?w11.jpg

解析:

ARP响应报文属于单播。




该用户从未签到

发表于 17-3-2025 14:09:19 | 显示全部楼层
以太网是一种基于广播通信方式的网络结构,其运行基于IP层及物理地址MAC层的数据通信需求。控制器刚启动时,ARP报文的重要性体现在MAC地址与IP地址之间的映射关系上。ARP协议作为以太网中不可或缺的一部分,主要负责实现网络层IP地址到MAC地址的解析转换。这种转换解析是解决以太网中数据链路层通信的基础问题。发送节点在需要通信时,必须先通过ARP协议获取目标节点的MAC地址,以便将数据包发送到正确的目标节点上。因此,在控制器启动阶段,ARP报文的出现是为了建立IP地址与MAC地址的映射关系,确保网络通信的顺利进行。
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 17-3-2025 14:09:09 | 显示全部楼层
以太网是一种基于广播的通信方式,为了确保通信过程中的准确性,需要使用ARP协议来进行地址解析。在控制器启动阶段,ARP报文用于获取目标设备的MAC地址,确保网络通信顺利进行。简而言之,ARP的主要作用是转化上层通信所使用的IP地址到对应的MAC地址,从而保证网络传输的高效性和准确性。在以太网通信中,MAC地址是数据链路层的关键组成部分,用于标识网络上的设备。因此,ARP报文在控制器启动阶段扮演着至关重要的角色。
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 17-3-2025 14:08:59 | 显示全部楼层
以太网是一种基于广播通信方式的网络,每个节点都可以接收到网络上的广播报文。当节点想要相互通信时,发送方需要将数据包发送给接收方,但在网络中不可能知道每台主机的MAC地址,这就需要一个转换机制来实现IP地址到MAC地址的转换。这个转换机制就需要ARP协议(地址解析协议)来完成。在控制器启动阶段,ARP报文被用来请求和解析网络中其他主机的MAC地址信息。通过这种解析过程,以太网中的设备可以正确识别并通信。因此,ARP在以太网通信中起到了至关重要的作用。
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 17-3-2025 14:08:59 | 显示全部楼层
以太网是现今网络通信系统中的重要组成部分,它实现了电子设备间的点对点通信。在以太网通信中,为了确保信息能够准确无误地发送到目标设备,地址解析协议(ARP)扮演着至关重要的角色。

在控制器启动阶段,ARP报文的存在是为了将网络中的32位IP地址转换为对应的MAC地址。这是因为,虽然IP地址能够标识网络中的设备,但真正驱动网络通信的是MAC地址。ARP通过广播方式请求目标设备的MAC地址,进而建立通信连接。因此,ARP报文确保了以太网通信的顺畅进行,是网络通信不可或缺的一环。
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 17-3-2025 14:09:09 | 显示全部楼层
以太网是一种基于广播的通信方式,其中每个节点都能接收到网络上的所有通信。为了确保点对点的通信能够准确进行,发送节点需要知道目标节点的MAC地址来进行直接的通信。ARP协议在此过程中起到关键的作用,因为它可以将IP地址转化为MAC地址。当控制器刚启动时,它需要知道网络上的其他设备的MAC地址来建立通信连接。因此,在这个阶段,ARP报文被用来请求和响应这些地址解析请求。简而言之,ARP报文在以太网通信中起到了连接设备并确定其MAC地址的重要作用。
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 17-3-2025 14:08:59 | 显示全部楼层
以太网是通信的基础架构,其中ARP(地址解析协议)起到了至关重要的作用。在控制器启动阶段,ARP报文的存在是为了将网络层的IP地址解析为数据链路层可识别的MAC地址。这是因为以太网通信是建立在MAC地址上的点对点通信方式,发送节点需要通过ARP协议知道目标节点的MAC地址才能进行通信。因此,ARP报文在控制器启动阶段及整个网络通信过程中,起到了连接网络层和数据链路层的关键桥梁作用,确保信息的准确传输。
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 17-3-2025 14:09:09 | 显示全部楼层
作为汽车工程师,对以太网和ARP协议有深入了解。首先,以太网通信是基于MAC地址进行识别的,而ARP协议在以太网中扮演着将IP地址转换为MAC地址的重要角色。在控制器启动阶段,需要通过ARP报文来解析目标设备的MAC地址,以确保通信的顺利进行。这是因为,在初始化阶段,发送节点并不直接知道目标节点的MAC地址,需要通过ARP协议来查询和解析。简而言之,ARP报文在以太网通信中起到了地址解析的关键作用,确保了数据的准确传输。
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 17-3-2025 14:09:09 | 显示全部楼层
作为汽车工程师,对以太网和ARP协议有深入了解。首先,以太网是一种点对点的通信方式,要确定通信对象,需要知道对方的MAC地址。而ARP协议的主要作用就是实现IP地址到MAC地址的转换。在控制器启动阶段,需要通过ARP报文获取网络上的设备信息。具体来说,当控制器刚启动时,它需要知道其他设备的MAC地址来建立通信连接。ARP报文就起到了这种“中介”作用,通过解析IP地址来获得对应的MAC地址。简而言之,ARP协议是以太网通信中不可或缺的一环,确保网络内的设备能够正确识别并建立通信连接。
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 17-3-2025 14:09:09 | 显示全部楼层
以太网是一种基于广播通信方式的网络,其通信过程中需要识别目标设备的物理地址,即MAC地址。而ARP协议在以太网通信中扮演着将IP地址解析为MAC地址的重要角色。在控制器启动阶段,ARP报文的存在是为了获取目标设备的MAC地址信息。当发送节点想要与目标节点建立通信时,它需要知道目标节点的MAC地址,以便通过以太网发送数据。此时,ARP协议会广播请求报文,寻找目标设备的MAC地址。因此,ARP报文在以太网通信中起到了关键性的桥梁作用,确保了网络通信的顺畅进行。
回复 支持 反对

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 15-7-2025 18:16 , Processed in 0.403471 second(s), 43 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.