局域网与城域网 - ARP 地址解析协议

news2025/2/28 20:17:40

文章目录

  • 1 概述
  • 2 ARP 地址解析协议
    • 2.1 工作过程
    • 2.2 报文格式
    • 2.3 ARP 命令
  • 3 扩展
    • 3.1 网工软考真题

1 概述

ARP
全称:Address Resolution Protocol,地址解析协议
作用:根据IP地址获取物理地址的一个TCP/IP协议

2 ARP 地址解析协议

2.1 工作过程

  • 主机 A 的 IP 地址为:192.168.1.1,MAC 地址为:0A-11-22-33-44-01;
  • 主机 B 的 IP 地址为:192.168.1.2,MAC 地址为:0A-11-22-33-44-02;
  • 当主机 A 要与主机 B 通信时,地址解析协议可以将主机 B 的 IP 地址(192.168.1.2)解析成主机 B 的 MAC 地址,以下为工作流程:
    • 第 1 步:根据主机 A 上的路由表内容,确定用于访问主机 B 的转发 IP 地址是 192.168.1.2。然后 A 主机在自己的本地ARP缓存中检查主机 B 的匹配 MAC 地址。
    • 第 2 步:如果主机 A 在ARP缓存中没有找到映射,它将询问 192.168.1.2 的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机。源主机 A 的 IP 地址和 MAC 地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求。
    • 第 3 步:主机 B 确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中。
    • 第 4 步:主机 B 将包含其MAC地址的ARP回复消息直接发送回主机A。
    • 第 5 步:当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和MAC地址映射更新ARP缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机B的MAC地址一旦确定,主机A就能向主机B发送IP通信了。

2.2 报文格式

在这里插入图片描述

  • 硬件类型:指明了发送方想知道的硬件接口类型,以太网的值为1;
  • 协议类型:指明了发送方提供的高层协议类型,IP为0800(16进制);
  • 硬件地址长度和协议长度:指明了硬件地址和高层协议地址的长度,这样ARP报文就可以在任意硬件和任意协议的网络中使用;
  • 操作类型:用来表示这个报文的类型,ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4;
  • 发送方硬件地址(0-3字节):源主机硬件地址的前3个字节;
  • 发送方硬件地址(4-5字节):源主机硬件地址的后3个字节;
  • 发送方IP地址(0-1字节):源主机硬件地址的前2个字节;
  • 发送方IP地址(2-3字节):源主机硬件地址的后2个字节;
  • 目标硬件地址(0-1字节):目的主机硬件地址的前2个字节;
  • 目标硬件地址(2-5字节):目的主机硬件地址的后4个字节;
  • 目标IP地址(0-3字节):目的主机的IP地址。

2.3 ARP 命令

常见命令描述
arp -a 或 arp -g用于查看缓存中的所有项目
arp -a ip如果有多个网卡,那么使用arp -a加上接口的IP地址,就可以只显示与该接口相关的ARP缓存项目
arp -s ip 物理地址可以向ARP缓存中人工输入一个静态项目。该项目在计算机引导过程中将保持有效状态,或者在出现错误时,人工配置的物理地址将自动更新该项目
arp -d ip使用该命令能够人工删除一个静态项目

3 扩展

3.1 网工软考真题

【2019上半年 - 22,23,24】ARP的协议数据单元封装在(22)中传送;ICMP的协议数据单元封装在(23)中传送,RIP路由协议数据单元封装在(24)中传送。
(1)A.以太帧
   B.IP 数据表
   C.TCP 段
   D.UDP 段
(2)A.以太帧
   B.IP 数据表
   C.TCP 段
   D.UDP 段
(3)A.以太帧
   B.IP 数据表
   C.TCP 段
   D.UDP 段

参考答案:22=A,23=B,24=D

【2018上半年 - 24,25】若主机hostA的MAC地址为aa-aa-aa-aa-aa-aa,主机hostB的MAC地址为bb-bb-bb-bb-bb-bb。由hostA发出的查询hostB的MAC地址的帧格式如下图所示,则此帧中的目标MAC地址为(24),ARP报文中的目标MAC地址为(25)。
在这里插入图片描述
(24) A.aa-aa-aa-aa-aa-aa
  B.bb-bb-bb-bb-bb-bb
  C.00-00-00-00-00-00
  D.ff-ff-ff-ff-ff-ff
(25) A.aa-aa-aa-aa-aa-aa
  B.bb-bb-bb-bb-bb-bb
  C.00-00-00-00-00-00
  D.ff-ff-ff-ff-ff-ff

参考答案:24=D,25=C
当主机A向本局域网内的主机B发送IP数据报的时候,就会先查找自己的ARP映射表,查看是否有主机B的IP地址,如有的话,就继续查找出其对应的硬件地址,在把这个硬件地址写入MAC帧中,然后通过局域网发往这个硬件地址。也有可能找到不到主机B的IP地址项目,在这种情况下,主机A就要运行ARP协议,广播ARP请求分组,去请求主机B的MAC。
mac帧中的mac地址不知道发给谁,所以广播选择全f,arp报文中不知道发给谁,先写全0,后面进行填充

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

plt、fig、axes、axis的含义

plt import matplotlib.pyplot as plt figure,axes与axis 如果将Matplotlib绘图和我们平常画画相类比,可以把Figure想象成一张纸(一般被称之为画布),Axes代表的则是纸中的一片区域(当然可以有多个区域,这…

剑指 Offer - 字符串合辑

🍎道阻且长,行则将至。🍓 🌻算法,不如说它是一种思考方式🍀 算法专栏: 👉🏻123 题解目录 一、🌱[剑指 Offer 05. 替换空格](https://leetcode.cn/problems/t…

[笔记]C++并发编程实战 《二》线程管理

文章目录 前言第2章 线程管理2.1 线程管理的基础2.1.1 启动线程2.1.2 等待线程完成2.1.3 特殊情况下的等待2.1.4 后台运行线程2.2 向线程函数传递参数 前言 第2章 线程管理 本章主要内容 启动新线程等待线程与分离线程线程唯一标识符 好的!看来你已经决定使用多…

使用压缩包安装jdk多版本并能领过切换

使用压缩包安装jdk多版本并能领过切换 1.下载2.解压包到指定位置3.使用pdate-alternatives 进行版本切换管理3.1. jdk173.2. jdk1.8 3.切换版本4.解决JAVA_HOME环境变量识别的问题 1.下载 官网的下载地址: 下载地址: jdk17: jdk1.8在当前页面的下面: …

基于差分进化算法的微电网调度研究(Matlab代码实现)​

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

MAC突然打不开Notion,你遇到过这个问题吗?

目录 解决办法 为什么Notion会突然打不开呢? Notion是一款适合记录/规划的应用,而且页面简洁,模板强大,深得大家喜爱。我也经常在Notion上制定计划、记录学习笔记等。不过,今天突然打不开了,网页版、本地…

基于SpringBoot的生鲜管理系统的设计与实现

背景 困扰交易市场的许多问题当中,生鲜交易管理一定是交易市场不敢忽视的一块。但是管理好生鲜交易又面临很多麻烦需要解决,例如有几个方面:第一,生鲜市场往往人数都比较多,如何保证能够管理到每一个商家,如何在工作琐碎,记录繁多的情况下将生鲜交易的当前情况反应给领导相关部…

【大数据】Hadoop高可用集群搭建

知识目录 一、写在前面💕二、Zookeeper安装✨三、Hadoop配置✨四、Hadoop HA自动模式✨五、HA脚本分享✨七、结语💕 一、写在前面💕 大家好!这篇文章是我在搭建Hdfs的HA(高可用)时写下的详细笔记与感想,希望能帮助到大…

分布式调度XXL-JOB

分布式调度XXL-JOB 1.概述 1.1什么是任务调度 比如: 某电商平台需要每天上午10点,下午3点,晚上8点发放一批优惠券某银行系统需要在信用卡到期还款日的前三天进行短信提醒某财务系统需要在每天凌晨0:10分结算前一天的财务数据,统计汇总 以…

【图床】SpringBoot上传图片

知识目录 一、写在前面✨二、新建开源仓库✨2.1 新建仓库2.2 将仓库设置为开源2.3 生产私人令牌 三、代码实现😄3.1 工具类3.2 上传图片 四、总结撒花😊 一、写在前面✨ 大家好!我是初心,很高兴再次和大家见面。 今天跟大家分享…

【Unity】Animation Playable Bug、限制及解决方案汇总

【Unity】Animation Playable Bug、限制及解决方案汇总 先自荐一下我的PlayableGraph监控工具,比官方的Visualizer好用得多:https://github.com/SolarianZ/UnityPlayableGraphMonitorTool Bug 文中提及的各项Bug及解决方案的最小化测试工程可在此仓库下…

基于java的竞赛预约管理信息系统的设计与实现

背景 本系统提供给管理员对首页,个人中心,用户管理,项目分类管理,竞赛项目管理,赛事预约管理,系统管理等诸多功能进行管理。本系统对于用户输入的任何信息都进行了一定的验证,为管理员操作提高…

2023语言与智能技术竞赛开辟“双赛道”:寻找“全民测评官”,探索AI多模态能力...

开年以来,人工智能大语言模型(LLM)掀起新一轮全球科技竞赛,全球科技巨头打响“百模大战”。当大语言模型正深刻改变人类生产生活方式时,该如何进一步释放其潜能,成为业界关注的问题,也成为了202…

计网之HTTP请求的构造

文章目录 1. form表单请求构造2. ajax请求构造3. Postman的简单使用 常见的构造 HTTP 请求的方式有以下几种: 直接通过浏览器地址栏, 输入一个 URL 就可以构造出一个 GET 请求.直接点击收藏夹, 得到的也是 GET 请求.HTML 中的一些特殊标签也会触发 GET 请求, 如: link, script…

线程池ThreadPoolExecutor底层原理源码分析

线程池执行任务的具体流程是怎样的&#xff1f; ThreadPoolExecutor中提供了两种执行任务的方法&#xff1a; void execute(Runnable command)Future<?> submit(Runnable task) 实际上submit中最终还是调用的execute()方法&#xff0c;只不过会返回⼀个Future对象&am…

【项目实战】基于Vue3+TypeScript+Pinia的后台管理系统(coderwhy)

是基于Vue3、Pinia、VueRouter、Vite、ElementPlus、TypeScript、Echarts等后台系统 效果 项目地址 https://gitee.com/yangyang993/vue3_ts_cms_admin.git 超级管理员 登录 系统总览 侧边栏是动态形成的&#xff1a;动态路由加载。路由地址路径和菜单相匹配。 注意&…

CAN总线上的报文帧类型(N_PCI)

1.四种报文类型&#xff08;简洁明了&#xff09; 请记住对于CAN报文来说&#xff0c;可以通过识别每条CAN的首个字节来确定它的类型&#xff0c;4种&#xff1a; 单帧 0 首帧 1 连续帧 2 流控帧 3 2. 单帧&#xff08;SF&#xff0c;Single Frame&#xff09; 0X 单帧首个…

【Spring MVC】后端处理多文件上传如何保持最大的灵活性

文章目录 前言找文档Spring MVC 如何接收多文件formdata 接收其他传参结论 前言 有一个多文件上传的需求&#xff0c;翻看了Spring MVC的官网&#xff0c;总结一下&#xff1a; 如何根据版本号找官方文档后端如何声明Controller能保持较好的灵活性 找文档 spring-framework…

Hive基础概论

HIVE 基础 Hive基础什么是Hive&#xff1f;为什么用Hive&#xff1f;Hive与Hadoop的关系Hive架构、组件组件用户接口元数据存储Driver驱动程序&#xff0c;包括语法解析器、计划编译器。优化器、执行器执行引擎 数据模型Data ModelDataBase 数据库Tables 表Partitions 分区Buck…

LIMUML04数据标注(note)

数据标注的思维导图 目标&#xff1a;是提升模型还是提升标注&#xff0c;本小节讨论提升标准&#xff0c;提升模型后面介绍。 如果有足够标注&#xff1a;使用半监督学习 没有足够标注&#xff0c;有足够预算&#xff1a;请人标注 没有足够预算&#xff1a;使用弱监督学习 问题…