ARP的工作原理

news/2024/10/25 8:18:53/

1、ARP的工作原理
(1)一个网络设备要发送数据给另一个网络设备时,必须要知道对方的IP地址。但是,仅有IP地址是不够的,因为IP数据报文必须封装成帧才能通过数据链路进行发送,而数据帧必须要包含目的MAC地址,因此发送端还必须获取到目的MAC地址。每一个网络设备在数据封装前都需要获取下一跳的MAC地址。IP地址由网络层来提供,MAC地址通过ARP协议来获取。ARP协议是TCP/IP协议簇中的重要组成部分,它能够通过目的IP地址获取目标设备的MAC地址,从而实现数据链路层的可达性。
(2)ARP数据包的格式
Hardware Type | Protocol Type ||
Hardware Length | Protocol Length | Operation Code ||
Source Hardware Address ||
Source Protocol Address ||
Destination Hardware Address ||
Destination Protocol Address ||
①Hardware Type表示硬件地址类型,一般为以太网;
②Protocol Type表示三层协议地址类型,一般为IP;
③Hardware Length为MAC地址的长度,单位是字节;
④Protocol Length为IP地址的长度,单位是字节;
⑤Operation Code指定了ARP报文的类型,包括ARP Request和ARP Reply;
⑥Source Hardware Address指的是发送ARP报文的设备MAC地址;
⑦Source Protocol Address指的是发送ARP报文的设备IP地址;
⑧Destination Hardware Address 指的是接收者MAC 地址,在 ARP Request报文中,该字段值为0;
⑨Destination Protocol Address指的是接收者的IP地址。
(3)ARP的工作过程
①ARP请求:主机A的ARP缓存表中不存在主机C的MAC地址,所以主机A会发送ARP Request报文来获取目的MAC地址。ARP Request报文封装在以太帧里。帧头中的源MAC地址为发送端主机A的MAC地址。此时,由于主机A不知道主机C的MAC地址,所以目的MAC地址为广播地址FF-FF-FF-FF-FF-FF。ARP Request报文中包含源IP地址、目的IP地址、源MAC地址、目的MAC地址,其中目的MAC地址的值为0。ARP Request报文会在整个网络上传播,该网络中所有主机包括网关都会接收到此 ARP Request报文。网关将会阻止该报文发送到其他网络上。
②ARP响应:所有的主机接收到该ARP Request报文后,都会检查它的目的协议地址字段与自身的IP地址是否匹配。如果不匹配,则该主机将不会响应该 ARP Request报文。如果匹配,则该主机会将ARP报文中的源MAC地址和源IP地址信息记录到自己的ARP缓存表中,然后通过ARP Reply报文进行响应。ARP Reply报文中的源协议地址是主机C自己的IP地址,目标协议地址是主机A的IP地址,目的MAC地址是主机 A 的 MAC 地址,源 MAC 地址是自己的 MAC 地址,同时Operation Code被设置为Reply。ARP Reply报文通过单播传送。
③ARP缓存:主机A收到ARP Reply以后,会检查ARP报文中目的MAC地址是否与自己的MAC匹配。如果匹配,ARP报文中的源MAC地址和源IP地址会被记录到主机A的ARP缓存表中。

2、ARP缓存表的作用
网络设备一般都有一个ARP缓存(ARP Cache),ARP缓存用来存放IP地址和MAC地址的关联信息。在发送数据前,设备会先查找ARP缓存表。如果缓存表中存在对方设备的MAC地址,则直接采用该MAC地址来封装帧,然后将帧发送出去。如果缓存表中不存在相应信息,则通过发送ARP Request报文来获得它。学习到的IP地址和MAC地址的映射关系会被放入ARP缓存表中存放一段时间。在有效期内,设备可以直接从这个表中查找目的MAC地址来进行数据封装,而无需进行ARP查询。过了这段有效期,ARP表项会被自动删除。如果目标设备位于其他网络,则源设备会在ARP缓存表中查找网关的MAC地址,然后将数据发送给网关,网关再把数据转发给目的设备。

3、ARP代理
主机A需要与主机B位于不同网络,所以它将会以广播形式发送ARP Request报文,请求主机B的MAC地址。但是,广播报文无法被路由器转发,所以主机B无法收到主机A的ARP请求报文,当然也就无法应答。在路由器上启用代理ARP功能,就可以解决这个问题。启用代理ARP后,路由器收到这样的请求,会查找路由表,如果存在主机B的路由表项,路由器将会使用自己的G0/0/0接口的MAC地址来回应该ARP Request 。主机A收到ARP Reply后,将以路由器的G0/0/0接口MAC地址作为目的MAC地址进行数据转发。

4、免费ARP
主机被分配了IP地址或者IP地址发生变更后,必须立刻检测其所分配的IP地址在网络上是否是唯一的,以避免地址冲突。主机通过发送ARP Request报文来进行地址冲突检测。主机A将ARP Request广播报文中的目的IP地址字段设置为自己的IP地址,且该网络中所有主机包括网关都会接收到此报文。当目的IP地址已经被某一个主机或网关使用时,该主机或网关就会回应ARP Reply报文。通过这种方式,主机A就能探测到IP地址冲突了。

5、总结
(1)源设备在发送数据给目的设备前,会首先查看自身的ARP缓存,查找ARP缓存中是否存在目的设备的IP地址和MAC地址的映射。如果存在则直接使用,如果不存在则会发送ARP Request。
(2)当网络上的一个设备被分配了IP地址或者IP地址发生变更后,可以通过免费ARP来检查IP地址是否冲突。


http://www.ppmy.cn/news/531518.html

相关文章

机械硬盘的结构和工作原理

硬盘的外部物理结构 一般硬盘正面贴有产品标签,主要包括厂家信息和产品信息,如商标、型号、序列号、生产日期、容量、参数和主从设置方法等。这些信息是正确使用硬盘的基本依据,下面将逐步介绍它们的含义。 硬盘主要由盘体、控制电路板和接…

计算机的工作原理

<1>计算机的工作原理 你需要有一定的电学知识&#xff0c;然后就可以去看模拟电路和数字电路相关的书籍了&#xff0c;了解完这两个东西后你就能基本明白计算机是怎么运作起来的了。这里只做简单回答。简单回答的意思是说&#xff0c;这个回答旨在让完全没有基础的人从理…

计算机主机cpu内存,两分钟看懂计算机中CPU、内存、硬盘的工作原理

在日常的生活和工作中,我们都离不开电脑,专业点称之为计算机。特别是对于我们程序员来说每天都在计算机上编写各种程序,所以对于了解计算机的各部分原理是非常必要的,了解原理才能够写出更好的程序。让我们来聊聊现代计算机的组成架构和各部分的工作原理。 著名的计算机之父…

kafka工作原理介绍

两张图读懂kafka应用&#xff1a; Kafka 中的术语 broker&#xff1a;中间的kafka cluster&#xff0c;存储消息&#xff0c;是由多个server组成的集群。 topic&#xff1a;kafka给消息提供的分类方式。broker用来存储不同topic的消息数据。 producer&#xff1a;往broker中某个…

网页的工作原理

网页运行原理&#xff1a; 一、静态网页的工作原理如下&#xff1a; 请求-下载同时解析&#xff0c;先加载样式展现网页结构&#xff0c;JS函数需要自行驱动执行。&#xff08;有的JS函数需要随页面加载也运行&#xff0c;如图表初始显示的数据&#xff0c;方法两个&#xff…

机械硬盘内部硬件结构和工作原理详解

硬盘的外部物理结构 一般硬盘正面贴有产品标签&#xff0c;主要包括厂家信息和产品信息&#xff0c;如商标、型号、序列号、生产日期、容量、参数和主从设置方法等。这些信息是正确使用硬盘的基本依据&#xff0c;下面将逐步介绍它们的含义。 硬盘主要由盘体、控制电路板和接口…

ES工作原理

文章目录 一、架构设计二、工作流程1.ES写数据过程2.ES搜索数据过程3.ES读数据过程 三、写数据底层原理四、倒排索引五、ES为什么查询效率很高1.倒排索引2.单词词典3.单词索引4.位图BitMap 一、架构设计 ElasticSearch 设计的理念就是分布式搜索引擎&#xff0c;底层其实还是基…

闪存的工作原理

转载自&#xff1a;https://zhuanlan.zhihu.com/p/35115499 https://zhuanlan.zhihu.com/p/26944064 https://zhuanlan.zhihu.com/p/27328255 闪存价格节节攀升&#xff0c;让三星大赚特赚。其实它的基本原理在1980年代之后基本就没有变化过。它的构成和场效应管(MOSFET)十分…