网络基础--ARP协议介绍

1、ARP作用

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

2、ARP报文结构

  ARP报文分为ARP请求和ARP应答报文,报文格式如下图所示:
在这里插入图片描述

  • 硬件类型:表示硬件地址的类型。它的值为 1 表示以太网地址;
  • 协议类型:表示要映射的协议地址类型。它的值为 0x0800 即表示 IP 地址;
  • 硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。对于以太网上 IP 地址的 ARP 请求或应答来说,它们的值分别为 6 和 4;
  • 操作类型( OP): 1 表示 ARP 请求, 2 表示 ARP 应答;
  • 发送端 MAC 地址:发送方设备的硬件地址;
  • 发送端 IP 地址:发送方设备的 IP 地址;
  • 目标 MAC 地址:接收方设备的硬件地址。
  • 目标 IP 地址:接收方设备的 IP 地址。

3、 ARP地址解析过程

  假设主机A和B在同一个网段,主机A要向主机B发送信息。如下图所示,具体的地址解析过程如下:
在这里插入图片描述

  • 主机 A 首先查看自己的 ARP 表,确定其中是否包含有主机 B 对应的 ARP 表项。如果找到了对应的 MAC 地址,则主机 A 直接利用 ARP 表中的 MAC 地址,对 IP 数据包进行帧封装,并将数据包发送给主机 B。
  • 如果主机 A 在 ARP 表中找不到对应的 MAC 地址,则将缓存该数据报文,然后以广播方式发送一个 ARP 请求报文。 ARP 请求报文中的发送端 IP 地址和发送端 MAC 地址为主机 A 的 IP地址和 MAC 地址,目标 IP 地址和目标 MAC 地址为主机 B 的 IP 地址和全 0 的 MAC 地址。由于 ARP 请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机 B)会对该请求进行处理。
  • 主机 B 比较自己的 IP 地址和 ARP 请求报文中的目标 IP 地址,当两者相同时进行如下处理:将 ARP 请求报文中的发送端(即主机 A)的 IP 地址和 MAC 地址存入自己的 ARP 表中。之后以单播方式发送 ARP 响应报文给主机 A,其中包含了自己的 MAC 地址。
  • 主机 A 收到 ARP 响应报文后,将主机 B 的 MAC 地址加入到自己的 ARP 表中以用于后续报文的转发,同时将 IP 数据包进行封装后发送出去。
  • 当主机 A 和主机 B 不在同一网段时,主机 A 就会先向网关发出 ARP 请求, ARP 请求报文中的目标IP 地址为网关的 IP 地址。当主机 A 从收到的响应报文中获得网关的 MAC 地址后,将报文封装并发给网关。如果网关没有主机 B 的 ARP 表项,网关会广播 ARP 请求,目标 IP 地址为主机 B 的 IP 地址,当网关从收到的响应报文中获得主机 B 的 MAC 地址后,就可以将报文发给主机 B;如果网关已经有主机 B 的 ARP 表项,网关直接把报文发给主机 B。

4、ARP表

  设备通过 ARP 解析到目的 MAC 地址后,将会在自己的 ARP 表中增加 IP 地址到 MAC 地址的映射表项,以用于后续到同一目的地报文的转发。ARP 表项分为动态 ARP 表项和静态 ARP 表项。

  • 动态ARP表项
    动态 ARP 表项由 ARP 协议通过 ARP 报文自动生成和维护,可以被老化,可以被新的 ARP 报文更新,可以被静态 ARP 表项覆盖。当到达老化时间、接口 down 时会删除相应的动态 ARP 表项。
  • 静态ARP表项
    静态 ARP 表项通过手工配置和维护,不会被老化,不会被动态 ARP 表项覆盖。配置静态 ARP 表项可以增加通信的安全性。静态 ARP 表项可以限制和指定 IP 地址的设备通信时只使用指定的 MAC 地址,此时攻击报文无法修改此表项的 IP 地址和 MAC 地址的映射关系,从而保护了本设备和指定设备间的正常通信。

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

5、 免费ARP简介

免费 ARP 报文是一种特殊的 ARP 报文,该报文中携带的发送端 IP 地址和目标 IP 地址都是本机 IP地址,报文源 MAC 地址是本机 MAC 地址,报文的目的 MAC 地址是广播地址。设备通过对外发送免费 ARP 报文来实现以下功能:

  • 确定其它设备的 IP 地址是否与本机的 IP 地址冲突。当其它设备收到免费 ARP 报文后,如果发现报文中的 IP 地址和自己的 IP 地址相同,则给发送免费 ARP 报文的设备返回一个 ARP 应答,告知该设备 IP 地址冲突。
  • 设备改变了硬件地址,通过发送免费 ARP 报文通知其它设备更新 ARP 表项。使能了免费 ARP 报文学习功能后,设备会根据收到的免费 ARP 报文中携带的信息(源 IP 地址、源 MAC 地址)对自身维护的 ARP 表进行修改。设备先判断 ARP 表中是否存在与此免费 ARP 报文源 IP 地址对应的 ARP 表项:
  • 如果没有对应的 ARP 表项,设备会根据该免费 ARP 报文中携带的信息新建 ARP 表项;
  • 如果存在对应的 ARP表项, 设备会根据该免费 ARP报文中携带的信息更新对应的 ARP表项。
    关闭免费 ARP 报文学习功能后,设备不会根据收到的免费 ARP 报文来新建 ARP 表项,但是会更新已存在的对应 ARP 表项。如果用户不希望通过免费 ARP 报文来新建 ARP 表项,可以关闭免费ARP 报文学习功能,以节省 ARP 表项资源。

参考资料:H3C设备ARP配置

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AIGC热潮涌动 HashData如何降低大模型应用门槛?

当前,以ChatGPT为代表的大语言模型(LLM)正在掀起新一轮的AI 浪潮,数字产业生态也迎来前所未有的变局。随着大模型应用的兴起,如何低成本地实现大模型的构建和应用,成为企业关注的重点。 数据仓库是企业数据…

前后端分离------后端创建笔记(07)表单验证

1、我输入数据,然后关闭,重新打开会发现残存的数据仍然保留着 2、点了这个x号,数据就全部被清理了 3、点这三个地方,数据全部都清理掉 4、这里先写一个方法 4.1 定义一个方法 4.2 这里表单的数据在哪里,就是这个 4.3 …

Linux文件系统管理

Linux文件系统管理 磁盘的组成与分区 计算机用于存取文件的硬件是磁盘,磁盘的组成主要有磁盘盘、机械手臂、磁盘读取头与主轴马达所组成, 而数据的写入其实是在磁盘盘上面。磁盘盘上面又可细分出扇区(Sector)与磁道(Track)两种单位, 其中扇区…

idea常见错误大全之:解决全局搜索失效+搜索条件失效(条件为空)+F8失灵

问题一:全局搜索快捷键ctrlshiftf 突然失灵了,键盘敲烂了 都没反应,这是为什么呢? 肯定不是idea本身的原因,那么就是其它外在因素影响到了idea的快捷键,那么其它的快捷键为什么没失效呢,原因只有…

P13-CNN学习1.3-ResNet(神之一手~)

论文地址:CVPR 2016 Open Access Repository https://arxiv.org/pdf/1512.03385.pdf Abstract 翻译 深层的神经网络越来越难以训练。我们提供了一个残差学习框架用来训练那些非常深的神经网络。我们重新定义了网络的学习方式,让网络可以直接学习输入信息与输出信息…

【应用笔记】使用 CW32 实现电池备份(VBAT)功能

前言 电池备份(VBAT)功能的实现方法,一般是使用 MCU 自带的 VBAT 引脚,通过在该引脚连接钮扣电池,当系统电源因故掉电时,保持 MCU 内部备份寄存器内容和 RTC 时间信息不会丢失。 本文档介绍了如何基于 C…

迭代器失效问题

1.什么是迭代器失效 迭代器失效是一种现象,由特定操作引发,这些特定操作对容器进行操作,使得迭代器不指向容器内的任何元素,或者使得迭代器指向的容器元素发生了改变。 2.可能引起迭代器失效的操作 ①.插入元素/扩容引起的迭代…

web图书管理系统Servlet+JSP+javabean+MySQL图书商城图书馆 源代码

本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 web图书管理系统ServletJSPjavabeanMySQL 系统有1权限…

合同管理是什么,合同管理怎么做

阅读本文, 您可以了解:1、合同管理是什么;2、合同管理怎么做 一、合同管理是什么 合同管理是指对合同的有效执行、监督和维护过程的管理。合同是一种法律文件,用于规定各方之间的权利和义务。在商业和法律交易中,合同…

Windows 11 家庭中文版找不到组策略文件gpedit.msc

最近因为调整日期问题需要用到组策略文件gpedit.msc,但是发现找不到文件 在按键盘 winR 打开运行界面输入 gpedit.msc 回车 Windows找不到文件’gpedit.msc’。请确定文件名是否正确后,再试-次。 检查电脑Windows系统版本 是 Windows 11 家庭中文版 果断早网上搜…

windows11下配置vscode中c/c++环境

本文默认已经下载且安装好vscode,主要是解决环境变量配置以及编译task、launch文件的问题。 自己尝试过许多博客,最后还是通过这种方法配置成功了。 Linux(ubuntu 20.04)配置vscode可以直接跳转到配置task、launch文件,不需要下载mingw与配…

抖音关键词搜索小程序排名怎么做

抖音关键词搜索小程序排名怎么做 1 分钟教你制作一个抖音小程序。 抖音小程序就是我的视频,左下方这个蓝色的链接,点进去就是抖音小程序。 如果你有了这个小程序,发布视频的时候可以挂载这个小程序,直播的时候也可以挂载这个小…

Fiddler模拟请求发送和修改响应数据

fiddler模拟伪造请求 方法一:打断点模拟HTTP请求 1、浏览器页面填好内容后(不要操作提交),打开fiddler,设置请求前断点,点击菜单fiddler,”Rules”\”Automatic Breakpoints”\”Before Requests” 2、在…

Linux RPM包安装、卸载和升级(rpm命令)详解

(转载请删除括号里的内容) 下面讲解一下,如何使用 rpm 命令对 RPM 二进制包进行安装、卸载和升级操作。我们以安装 apache 程序为例。 RPM包默认安装路径 通常情况下,RPM 包采用系统默认的安装路径,所有安装文件会按照类别分散安装到下表所…

Redis使用Lua脚本和Redisson来保证库存扣减中的原子性和一致性

文章目录 前言1.使用SpringBoot Redis 原生实现方式2.使用redisson方式实现3. 使用RedisLua脚本实现3.1 lua脚本代码逻辑 3.2 与SpringBoot集成 4. Lua脚本方式和Redisson的方式对比5. 源码地址6. Redis从入门到精通系列文章7. 参考文档 前言 背景:最近有社群技术交…

Tuxera NTFS Mac2023最新免费版Mac读写工具

有时候我们在使用苹果笔记本的时候,会遇到一些问题,比如怎么打开移动硬盘,或者为什么苹果电脑读不出U盘。这些问题可能让我们感到困惑和沮丧,但其实都有解决办法。本文就来为大家介绍一下苹果笔记本怎么打开移动硬盘和苹果电脑读不…

pdf怎么转换成jpg图片?这几个转换方法了解一下

pdf怎么转换成jpg图片?转换PDF文件为JPG图片格式在现代工作中是非常常见的需求,比如将PDF文件中的图表、表格或者图片转换为JPG格式后使用在PPT演示、网页设计等场景中。 【迅捷PDF转换器】是一款非常实用的工具,可以将PDF文件转换成多种不同…

mac ssh连接另一台window虚拟机vm

vmware配置端口映射 编辑(E) > 虚拟网络编辑器(N)... > NAT设置(S)... window防火墙,入站规则添加5555端口 控制面板 > 系统和安全 > Windows 防火墙>高级设置>入站规则>新建规则... tips windows查看端口命令:netstat -ano | f…

中电金信:技术实践|Flink多线程实现异构集群的动态负载均衡

导语:Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。本文主要从实际案例入手并结合作者的实践经验,向各位读者分享当应用场景中异构集群无法做到负载均衡时,如何通过Flink的自定义多线程来实现异…

cloud_mall-notes01

1、登录 1.1 获取token令牌 登录时的ajax请求: 后端路由配置处理: 登录的路由配置 作用:把oAuth2.0颁发的token存储到redis中 package com.powernode.config;import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject;…