ARP协议报文格式及ARP表

news/2025/3/16 19:55:47/

摘自:《深入理解计算机网络》 王达著 机械工业出版社
相关知识链接
IPV4数据报头部格式请点击这里
IPv6数据报头部格式请点击这里
IPv4数据报的封装与解封装请点击这里
IPv4数据报的分段与重组请点击这里

ARP协议报文格式及ARP表

ARP(Address Resolution Protocal,地址解析协议)是将IP地址解析为以太网的MAC地址(或者称为物理地址)的协议。在局域网中,当主机或其他网络设备有数据要发送给另一个主机或设备时,它必须知道对方的网络层地址(即IP地址)。但是仅仅有IP地址还是不够的,因为IP数据报文必须封装成帧才能通过物理网络发送,因为发送站还必须有接收站的物理地址,所以需要一个从IP地址到物理地址的映射。ARP就是实现这个功能的协议。

ARP报文格式

ARP是一个独立的三层协议,所以ARP报文在向数据链路层传输时不需要经过IP协议的封装,而是直接生成自己的报文,其中包括ARP报头,到数据链路层后再由对应的数据链路层协议(如以太网协议)进行封装。ARP报文分为ARP请求和ARP应答报文两种,它们的报文格式可以统一为下图所示。


ARP报文格式

  • 硬件类型:占两字节,表示ARP报文可以在哪种类型的网络上传输,值为1时表示为以太网地址。
  • 上层协议类型:占两字节,表示硬件地址要映射的协议地址类型,映射IP地址时的值为0x0800。
  • MAC地址长度:占一字节,标识MAC地址长度,以字节为单位,此处为6。
  • IP协议地址长度:占一字节,标识IP得知长度,以字节为单位,此处为4。
  • 操作类型:占2字节,指定本次ARP报文类型。1标识ARP请求报文,2标识ARP应答报文。
  • 源MAC地址:占6字节,标识发送设备的硬件地址。
  • 源IP地址:占4字节,标识发送方设备的IP地址。
  • 目的MAC地址:占6字节,表示接收方设备的硬件地址,在请求报文中该字段值全为0,即00-00-00-00-00-00,表示任意地址,因为现在不知道这个MAC地址。
  • 目的IP地址:占4字节,表示接受方的IP地址。

ARP报文不是直接在网络层上发送的,它还是需要向下传输到数据链路层,所以当ARP报文传输到数据链路层之后,需要再次进行封装。以以太网为例,ARP报文传输到以太网数据链路层后会形成ARP帧。ARP帧如下图所示,他就是在ARP报文前面加了一个以太网帧头。


ARP帧格式

以太网帧头的三个字段说明

  • 目的MAC地址:占6字节,如果是ARP请求帧,因为它是一个广播帧,所以要填上广播MAC地址(FF-FF-FF-FF-FF-FF),其目标主机是网络上的所有主机。
  • 源MAC地址:占6字节,这是发送ARP帧的节点MAC地址。
  • 帧类型:占两字节,这里用来标识帧封装的上层协议,因为本帧的数据部分是ARP报文,所以直接用ARP的协议号0x0806表示就可以了。

ARP映射表

无论是主机,还是交换机都会有一个用来缓存同一网段设备IP地址和MAC地址的ARP映射表,用于数据帧的转发。设备通过ARP解析到目的MAC之后,将会在自己的ARP映射表中增加IP地址到MAC地址的映射表,以用于后续到同一目的地数据帧的转发。ARP表项分为动态ARP表项和静态ARP表项。

动态ARP表项

动态ARP表项由ARP协议通过ARP报文自动生成和维护,可以被老化,可以被新的ARP报文更新,也可以被静态ARP表项所覆盖。当到达老化时间或接口关闭时会删除相应的动态ARP表项。

静态ARP表项

静态ARP表项通过手工配置(通过对应设备的IP地址与MAC地址绑定命定进行)和维护。不会被老化,也不会被动态ARP表项覆盖。配置静态ARP表项可以增加通信的安全性,因为静态ARP可以限定和指定IP地址的设备通信时只使用指定的MAC地址(也就是我们通常所说的IP地址和MAC地址的绑定),此时攻击报文无法修改此表项的IP地址和MAC地址的映射关系,从而保护了本设备和指定设备间正常通信。静态ARP表项又分为短静态ARP表项和长静态ARP表项

短静态ARP表项

在配置短静态ARP表项时,只需要配置IP地址和MAC地址项。如果出接口是三层以太网接口,短静态ARP表项可以直接用于报文转发;如果出接口是VLAN虚接口,短静态ARP表项不能直接用于报文转发,当要发送IP数据包时,先发送ARP请求报文,如果收到的相应报文中的源IP地址和源MAC地址与所配置的IP地址和MAC地址相同,则将接受ARP响应报文的接口加入该静态表项中,之后就可以用于IP数据包的转发了。

长静态ARP表项

在配置长静态ARP表项时,除了配置IP地址和MAC地址项外,还必须配置该ARP表所对应的VLAN(虚拟局域网)和出接口。也就是长静态ARP表项同事绑定了IP地址、MAC地址、VLAN和端口,可以直接用于报文转发。


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

相关文章

ARP协议

只要确定了 IP 地址后,就能够向这个 IP 地址所在的主机发送数据报,这是我们所熟知的事情。但是再往深了想,IP 地址只是标识网络层的地址,那么在网络层下方数据链路层是不是也有一个地址能够告诉对方主机自己的地址呢?是…

网络中的三张表——ARP表、MAC表、路由表

1、ARP表 提起ARP表必然先想起ARP(address resolution protocol)协议,地址解析协议。   在实际应用中,我们经常遇到这样的问题:已知一个机器的IP地址,但在实际网络的链路上传送数据帧时,最终还…

Flink实时任务性能调优

前言 通常我们在开发完Flink任务提交运行后,需要对任务的参数进行一些调整,通常需要调整的情况是任务消费速度跟不上数据写入速度,从而导致实时任务出现反压、内存GC频繁(FullGC)频繁、内存溢出导致TaskManager被Kill…

Spring MVC中的HandlerInterceptors和Filters

1.介绍 比较Java servlet过滤器和Spring MVC Handlerinterceptor,以及什么时候一个比另一个更好。 2.Filters 过滤器是web服务器的一部分,而不是Spring框架。对于传入的请求,可以使用过滤器来操作甚至阻止请求到达任何servlet。反之亦然&a…

西部数据携全线产品亮相IDF 2014

存储行业的领导者 西部数据 作为英特尔信息技术峰会(简称IDF)的常年合作伙伴,携全线高性能存储产品与高科技解决方案隆重亮相IDF 2014,向各方与会者、及行业伙伴展示了包括消费级桌面系列、企业级与安防监控系列、应用于超级本的超…

常规机械硬盘分类应用场景与硬盘接口存储方案介绍

0x00 简述0x01 硬盘类型 1.西部数据(WD)2.希捷(seagate)0x02 硬盘接口 1.硬盘接口类型2.硬盘接口协议3.磁盘存储方案0x00 简述 描述:简要介绍磁盘实现原理以及购买磁盘商的选择对比以及其产品线了解,其后对磁盘接口及其常使用的协议做了一个简单的了解,并且对其使用场景作了一…

【Linux云计算架构:第一阶段-Linux操作系统入门到精通】第12章——硬盘介绍和磁盘管理

本节所讲内容: 12.1 SAS-SATA-SSD-SCSI-IDE硬盘讲解 12.2 磁盘分区工具和挂载 12.3 实战扩展swap分区 12.1 SAS-SATA-SSD-SCSI-IDE硬盘讲解 常见磁盘类型: •SAS硬盘(希捷:ST)•SATA硬盘(西部数据:WD,个人…

Qt:记录一下好看的配色

qss代码 窗体背景色 background-color: #ED6927; border-top-left-radius:35px;border-top-right-radius:35px;border-bottom-right-radius:0px; border-bottom-left-radius:0px;background-color: #203A32; border-radius:35px; border-top-left-radius:0px;border-top-righ…