ARP 地址解析协议

news2024/10/5 7:21:39

目录

ARP(Address Resolution Protocol)

地址解析协议 ARP 的作用

ARP 高速缓存 (ARP cache)

ARP 工作过程

ARP 查找 IP 地址对应的 MAC地址

ARP 高速缓存的作用

不在同一局域网的两个主机运行ARP协议

使用 ARP 的四种典型情况

为什么要使用两种地址:IP 地址和 MAC 地址?

ARP报文格式

ARP请求包

ARP响应包

反向ARP

免费ARP

代理ARP


ARP(Address Resolution Protocol)

实现 IP 通信时使用了两个地址:

        IP 地址(网络层地址)和 MAC 地址(数据链路层地址)

地址解析协议 ARP 的作用

ARP (Address Resolution Protocol ) 作用: 从 IP 地址解析出 MAC 地址

即从网络层使用的 IP 地址,解析出在数据链路层使用的硬件地址。

ARP 高速缓存 (ARP cache)

·存放 IP 地址到 MAC 地址的映射表。

·映射表动态更新(新增或超时删除)。

映射表:

超过生存时间的项目都从高速缓存中删除,以适应网络适配器变化。

ARP 工作过程

当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。

        ·如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。

        ·如没有, ARP 进程在本局域网上广播发送一个 ARP 请求分组。收到 ARP 响应分组后,将得到的 IP 地址到硬件地址的映射写入 ARP 高速缓存。

ARP 查找 IP 地址对应的 MAC地址

地址解析协议 ARP 要点

·本局域网上广播发送 ARP 请求(路由器不转发 ARP 请求)。

·ARP 请求分组:包含发送方硬件地址 / 发送方 IP 地址 / 目标方硬件地址(未知时填 0) / 目标方 IP 地址。

·单播 ARP 响应分组:包含发送方硬件地址 / 发送方 IP地址 / 目标方硬件地址 / 目标方 IP 地址。

·ARP 分组封装在以太网帧中传输

ARP 高速缓存的作用

·存放最近获得的 IP 地址到 MAC 地址的绑定。

·减少 ARP 广播的通信量。

·为进一步减少 ARP 通信量,主机 A 在发送其 ARP 请求分组时,就将自己的 IP 地址到 MAC 地址的映射写入 ARP 请求分组。

·当主机 B 收到 A 的 ARP 请求分组时,就将主机 A 的 IP 地址及其对应的 MAC 地址映射写入主机 B 自己的 ARP 高速缓存中。不必在发送 ARP 请求。

不在同一局域网的两个主机运行ARP协议

ARP 用于解决同一个局域网上的主机或路由器的 IP 地址和 MAC 地址的映射问题。

通信的路径:A → 经过 R1 转发 → B。

因此主机 A 必须知道路由器 R1 的 IP 地址,解析出其 MAC 地址。然后把 IP 数据报传送到路由器 R1。

使用 ARP 的四种典型情况

1.发送方是主机,要把 IP 数据报发送到本网络上的另一个主机。这时用 ARP 找到目的主机的硬件地址。

2.发送方是主机,要把 IP 数据报发送到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。

3.发送方是路由器,要把 IP 数据报转发到本网络上的一个主机。这时用 ARP 找到目的主机的硬件地址。

4.发送方是路由器,要把 IP 数据报转发到另一个网络上的一个主机。这时用 ARP 找到本网络上另一个路由器的硬件地址。剩下的工作由这个路由器来完成。

为什么要使用两种地址:IP 地址和 MAC 地址?

·不同使用不同的 MAC 地址。MAC 地址之间的转换非常复杂。

·对以太网 MAC 地址进行寻址也是极其困难的。

·IP 编址把这个复杂问题解决了。

        ·连接到互联网的主机只需各自拥有一个唯一的 IP 地址,它们之间的通信就像连接在同一个网络上那样简单方便,即使必须多次调用 ARP 来找到 MAC 地址,但这个过程都是由计算机软件自动进行的,对用户来说是看不见的。

·因此,在虚拟的 IP 网络上用 IP 地址进行通信非常方便。

ARP报文格式

ARP请求包

ARP响应包

反向ARP

·根据MAC学习IP。

免费ARP

(1)免费ARP指主机发送ARP查找自己的IP地址。
(2)通常发生在系统引导期间进行接口配置时。
(3)与标准ARP的区别就是免费ARP分组的目的IP地址字段封装的是自己的IP地址
    (即向所在网络请求自己的MAC地址)。
(4)免费ARP可以用来探测IP地址是否冲突:

代理ARP

代理ARP就是通过使用一个主机(通常为router),来作为指定的设备使用自己的 MAC 地址来对另一设备的ARP请求作出应答。

·位于不同网络的网络的网络设备在不同配置网关情况下,能够通过ARP代理实现相互通信。

欢迎一起学习~

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

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

相关文章

vcomp140.dll缺失的多种处理方法,教你4种方法修复vcomp140.dll

"vcomp140.dll缺失"是一个在电脑使用过程中较为普遍遇到的错误情况,这个问题可能会阻止许多程序的正常启动。vcomp140.dll是一个属于 Visual C Redistributable for Visual Studio 2015 的文件,对于运行那些基于 Visual Studio 2015 创建的应用…

从公有云对象存储迁移到回私有化 MinIO需要了解的所有信息

我们上一篇文章《如何从 AWS S3 遣返到 MinIO》的反响非常出色 - 我们已经接到了数十个企业的电话,要求我们提供遣返建议。我们已将这些回复汇总到这篇新文章中,其中我们更深入地研究了与遣返相关的成本和节省,以便您更轻松地进行自己的分析。…

Tomcat多实例配置与tomcat反向代理集群

目录 Tomcat多实例配置 1.首先配置Tomcat单实例 2.tomcat多实例配置 1.1复制单实例tomcat 1.2修改端口,以启动多实例。多实例之间端口不能一致 1.3对比文件不同之处 3.启动tomcat 4.检查端口查看是否启动: 5.测试浏览器访问 二、tomcat反向代理集群 1、负载…

Thymeleaf基础教程

系列文章目录 文章目录 系列文章目录一、Thymeleaf 语法规则二、Thymeleaf 语法分为以下 2 类标准表达式语法th 属性2.1 基础语法2.1.1 变量表达式 ${}2.1.2 选择变量表达式 *{}2.1.3 链接表达式 {} 2.1.4 消息表达式 三、常用的 th 标签四、迭代循环 一、Thymeleaf 语法规则 …

【MySQL】MVCC多版本并发控制

目录 一、数据库的并发场景二、多版本并发控制隐藏字段undo日志模拟MVCCRead View整体流程RC(不可重复读)和RR(可重复读)的本质区别 一、数据库的并发场景 数据库并发的场景无非如下三种: 读-读并发:不存…

web前端项目-实现录音功能【附源码】

录音功能 运行效果&#xff1a;本项目可实现录音软件的录音、存储、播放等功能 HTML源码&#xff1a; &#xff08;1&#xff09;index.html&#xff1a; <!DOCTYPE html> <html><head><meta http-equiv"Content-Type" content"text/h…

Linux线程API使用与分析

线程是操作系统进程调度器可调度的最小粒度的执行单元 执行ps -eLF查看线程 UID PID PPID LWP C NLWP SZ RSS PSR STIME TTY TIME CMD root 103724 103680 103724 0 14 23667 40048 1 Jan24 ? 00:00:13 /root/.vscode-serv…

【Redis】list以及他的应用场景

介绍 &#xff1a;list 即是 链表。链表是一种非常常见的数据结构&#xff0c;特点是易于数据元素的插入和删除并且且可以灵活调整链表长度&#xff0c;但是链表的随机访问困难。许多高级编程语言都内置了链表的实现比如 Java 中的 LinkedList&#xff0c;但是 C 语言并没有实现…

运行VUE提示找不到模块validate-engines.js...

原来好好的&#xff0c;突然提示找不到模块validate-engines.js&#xff0c;CMD命令行输入npm -v不是内部或外部命令&#xff0c;node -v可以查看到版本号。 解决&#xff1a; 1. 卸载nodejs&#xff0c;重新下载安装文件&#xff1a;下载nodejs 2. 到目录&#xff1a;C:\Us…

在Visual Studio 2022中将源文件扩展名改为 .c 后,没有显示 #define _CRT_SECURE_NO_WARNINGS 1?

一、问题 在Visual Studio 2022中将源文件扩展名改为 .c 后&#xff0c;没有显示 #define _CRT_SECURE_NO_WARNINGS 1&#xff1f; 二、解答 对于使用了不安全的C运行时库函数&#xff08;如strcpy、scanf等&#xff09;而触发的安全警告&#xff0c;编译器不会默认包含_CRT_S…

Ubuntu 20.04 Server 使用命令行设置 IP 地址

1、编辑 /etc/netplan/ 目录下的配置文件00-installer-config.yaml (修改之前&#xff0c;把原来的文件备份) 按照对应的配置进行修改IP地址和网关 2、运行命令使其生效 sudo netplan apply 修改完成后&#xff0c;永久有效。重启后配置不会丢失

解决Linux部署报错No main manifest attribute, in XXX.jar

这是我近期遇到的一个问题&#xff0c;报错原因就是没找到主类&#xff0c;首先你在你本地运行&#xff0c;本地运行ok的话&#xff0c;解压生成的jar包&#xff0c;里面有个META-INF文件&#xff0c;打开MANIFEST.MF文件&#xff0c;该文件是一个清单文件。该文件包含有关JAR文…

宏景eHR FrCodeAddTreeServlet SQL注入漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

echarts option series smooth

echarts option series smooth 平滑处理 smooth&#xff1a;0.3 echarts_04_line.html <!DOCTYPE html> <html lang"en"><head> <meta charset"utf-8"> <title></title> </head><body><div id&quo…

探讨UI自动化测试几步骤

随着软件开发的不断发展&#xff0c;UI自动化测试变得越来越重要&#xff0c;它能够提高测试效率、降低人为错误&#xff0c;并确保软件交付的质量。本文将介绍UI自动化测试的一般步骤和一些最佳实践&#xff0c;以帮助开发团队更好地实施自动化测试。 需求分析和选择测试工具&…

使用QT实现播放gstreamer的命令(二)

一、前言 上一篇文章写到了&#xff0c;如何快速使用C来执行gstreamer的命令&#xff0c;如何在QT中显示gstreamer的画面&#xff0c;原文如下&#xff1a; https://blog.csdn.net/Alon1787/article/details/135107958 二、近期的其他发现&#xff1a; 1.gstreamer的画面显示在…

echarts:获取省、市、区/县、镇的地图数据

目录 第一章 前言 第二章 获取地图的数据&#xff08;GeoJSON格式&#xff09; 2.1 获取省、市、区/县地图数据 2.2 获取乡/镇/街道地图数据 第一章 前言 需求&#xff1a;接到要做大屏的需求&#xff0c;其中需要用echarts绘画一个地图&#xff0c;但是需要的地图是区/县…

AI语音机器人,智能语音交互

随着人工智能技术的不断发展&#xff0c;AI语音机器人软件在电销行业中得到了广泛应用。这些软件可以通过自动拨打功能&#xff0c;提高销售效率&#xff0c;降低成本&#xff0c;提升客户体验。AI语音机器人软件的主要功能是自动拨打电话。它可以根据预设的规则和算法&#xf…

如何使用Everything随时随地远程访问本地电脑搜索文件

文章目录 前言1.软件安装完成后&#xff0c;打开Everything2.登录cpolar官网 设置空白数据隧道3.将空白数据隧道与本地Everything软件结合起来总结 前言 要搭建一个在线资料库&#xff0c;我们需要两个软件的支持&#xff0c;分别是cpolar&#xff08;用于搭建内网穿透数据隧道…

【竞技宝】DOTA2:LGD正式官宣emo离队 setsu加盟担任二号位

北京时间2024年1月29日,随着新年的到来,DOTA2赛事已经进入了新的篇章。本月虽然没有迎来大型赛事,但各种赛事的预选赛却打了不少。国内战队方面,LGD在今年换人之后表现较差,此前传言LGD将对阵容进行调整,就在昨天LGD终于官宣了新年的首次阵容变动。 昨日,LGD在官方微博发布公告…