Ethernet 系列(8)-- 基础学习::ARP

目录

1. ARP的目的:

1.1 什么是ARP

1.2 什么时候用ARP

2. ARP如何工作:

2.1 主机-主机的直接通信

2.2 主机-路由-主机的间接通信

3. ARP header:


1. ARP的目的:

1.1 什么是ARP:

ARP-地址解析协议,是第3层地址(IP地址)到第2层地址(MAC地址)的映射。

1.2 什么时候用ARP:

执行ARP时,IP地址是已知的,MAC地址是您试图发现的。

2. ARP如何工作:

假设主机B正试图与其他主机A和D通信。主机B已经知道主机A和路由器IP地址。

2.1 主机-主机的直接通信:

首先,ARP请求被广播发送到局域网(LAN)中的任何设备,内容如下图所示。

ARP请求由主机A和路由器接收。 

  • 路由器意识到此IP地址与路由器的IP地址不匹配。因此,路由器丢弃该数据包。 
  • 主机A意识到该IP地址与主机A的IP地址匹配。因此,主机A处理数据包并生成ARP响应。 
    • 响应包含主机B请求的IP地址到MAC地址的映射。 
    • ARP响应将以单播方式发送回主机B,以便主机B可以知道主机A的MAC地址值。

根据OSI模型,当主机B知道主机A的IP和MAC地址时,就可以与主机A通信。

2.2 主机-路由-主机的间接通信:

在本节中,为了更容易理解,我将以表格的形式说明每个设备的学习机制。学习机制意味着,一旦设备知道其他设备的价值,它就会记住它以备将来使用。 

表格格式如下:

此列提供网络中除主机B之外的任何设备的IP地址和MAC地址之间的映射信息

此列提供网络中除主机D之外的任何设备的IP地址和MAC地址之间的映射信息

此列提供网络中除路由器之外的任何设备的IP地址和MAC地址之间的映射信息

此列将提供我们拥有的网络ID的信息

  • 在这种情况下,要到达主机D,主机B需要使用路由器的IP地址。主机D知道路由器的IP地址,因为它配置了默认网关。

-

-

-

eth01: 10.3.3.0/24

eth02: 10.4.4.0/24

  • 当主机B想和局域网外的主机通话时,它需要通过网关发送请求,在这种情况下是路由器。为了知道路由器的MAC地址,主机B需要发送一个ARP请求,其内容如下图所示。

  • ARP请求由主机A和路由器接收。
    • 主机A意识到此IP地址与主机A的IP地址不匹配。因此,主机A丢弃该数据包。
    • 路由器意识到该IP地址与路由器的IP地址相匹配。现在,路由器知道主机B的IP和MAC地址。
  • -
  • -
  • 10.3.3.22 - 0053.ff33.bbbb
  • eth01: 10.3.3.0/24
  • eth02: 10.4.4.0/24
  • 然后路由器处理数据包并生成ARP响应。
    • 响应包含主机B请求的IP地址到MAC地址的映射。ARP响应将以单播方式发送回主机B。

  • 现在,主机B知道路由器的IP和MAC地址。
  • 10.3.3.99 - 0053.ff33.9999
  • -
  • 10.3.3.22 - 0053.ff33.bbbb
  • eth01: 10.3.3.0/24
  • eth02: 10.4.4.0/24
  • 当主机B知道路由器的IP和MAC地址时,主机B可以向该路由器发送一个数据包,其中包含: 
    • 第2层报头包括源MAC地址是主机B的MAC地址,目的MAC地址是路由器的MAC地址。 
    • 第三层报头包括源IP地址是主机B的IP地址,目的IP地址是服务器D的IP地址。

  • 当数据包到达路由器时: 
    • 路由器将查看第2层标头以做出决定。在这种情况下,它意识到目标MAC地址与其MAC地址匹配,然后从数据包中删除第2层报头。 
    • 之后,它将查看第3层标头以做出下一个决定。在这种情况下,它意识到目标IP地址与其IP地址不匹配。然后,路由器查阅路由表,确定该IP地址属于eth02:10.4.4.0/24。 
    • 由于路由器连接到该网络,它知道数据包必须被传递到其最终目的地。为此,它需要主机D的MAC地址。 
    • 因此,路由器广播ARP请求。主机D接收ARP请求,并意识到该IP地址与其IP地址匹配,然后将单播响应发送回路由器。
  • 10.3.3.99 - 0053.ff33.9999
  • 10.3.3.22 - 0053.ff33.bbbb
  • 10.3.3.22 - 0053.ff33.bbbb
  • eth 1: 10.3.3.0/24
  • eth 2: 10.4.4.0/24
  • 路由器接收响应并学习主机D的MAC地址。
  • 10.3.3.99 - 0053.ff33.9999
  • 10.3.3.22 - 0053.ff33.bbbb
  • 10.4.4.44 - 0053.ff44.dddd
  • 10.3.3.22 - 0053.ff33.bbbb
  • eth 1: 10.3.3.0/24
  • eth 2: 10.4.4.0/24
  • 路由器将第2层报头附加到数据包上,其中包括源MAC地址是路由器的MAC地址,目的MAC地址是主机D的MAC地址。最后,数据包可以发送到主机D。
  • 当主机D收到主机B的请求时,它需要发回响应。主机D知道它需要将此数据包发送到局域网外,因此需要通过路由器。为此,它需要知道路由器的MAC地址。因此,ARP请求被广播发送到网络。

  • 路由器从主机D接收ARP请求,并意识到该IP地址与其IP地址匹配。由于它已经知道主机D的IP和MAC地址,因此不需要再记忆了。然后,路由器处理ARP请求并将单播发送回主机D。 
  • 主机D从路由器接收ARP响应。现在,主机D知道路由器的IP和MAC地址。

10.3.3.99 - 0053.ff33.9999

10.3.3.22 - 0053.ff33.bbbb

10.4.4.99 - 0053.ff44.9999

10.3.3.22 - 0053.ff33.bbbb

10.4.4.44 - 0053.ff44.dddd

eth 1: 10.3.3.0/24

eth 2: 10.4.4.0/24

  • 现在,主机D可以向路由器发送一个数据包,其中包含: 
    • 第2层报头包括源MAC地址是主机D MAC地址,目的MAC地址是路由器MAC地址。 
    • 第3层报头包括源IP地址是主机D IP地址,目的IP地址是主B IP地址。 
  • 当数据包到达路由器时: 
    • 路由器将查看第2层标头以做出决定。在这种情况下,它意识到目标MAC地址与其MAC地址匹配,然后从数据包中删除第2层报头。 
    • 之后,它将查看第3层标头以做出下一个决定。在这种情况下,它意识到目标IP地址与其IP地址不匹配。然后,路由器查阅路由表,确定该IP地址属于eth01:10.3.3.0/24。 
    • 由于路由器连接到该网络,它知道数据包必须被传递到其最终目的地。 
    • 由于学习机制,路由器已经知道主机B的MAC地址,因此不需要发送任何ARP请求。然后,路由器将第2层报头附加到数据包上,其中包括源MAC地址是路由器的MAC地址,目的MAC地址是主机B的MAC地址。 
    • 最后,可以将数据包发送到主机B。

3. ARP header:

硬件类型:定义运行ARP的物理网络的类型。 

  • 对于以太网,它设置为1。 

协议类型:定义要解析的协议。 

  • 对于IPv4,它被设置为0x0800。 

硬件长度:定义物理地址的长度(以字节为单位)。 

  • 对于以太网,它被设置为6,这意味着物理地址是6个字节。 

协议长度:定义逻辑地址的字节长度。 

  • 对于以太网,它设置为4,这意味着协议地址为4个字节。 

操作:定义ARP数据包为请求或应答。 

  • 对于请求,它被设置为1。对于回复,它被设置为2。 

发送方硬件地址:定义源MAC地址。 

发送方协议地址:定义源IP地址。 

目标硬件地址:定义目标MAC地址。 

  • 如果此字段未知,则将其设置为00:00:00:00:00 

目标协议地址:定义目标IP地址。

  • 请注意,在发送此ARP请求之前,必须将其封装为具有上述格式的以太网帧。 
  • 以太网帧的目标MAC地址设置为FF:FF:FF/FF:FF:FF,因为此ARP请求是广播发送到局域网中的任何设备的。

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

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

相关文章

uniapp组件实现省市区三级联动选择

1.导入插件 先将uni-data-picker组件导入我们的HBuilder项目中&#xff0c;在DCloud插件市场搜索uni-data-picker 点击下载插件并导入到我们的项目中 2.组件调用 curLocation &#xff1a;获取到的当前位置&#xff08;省市区&#xff09; <uni-data-picker v-slot:defa…

软件分享丨火绒应用商店

【资源分享】 资源名&#xff1a;火绒应用商店 官方网址&#xff1a;点击跳转 火绒应用商店是由火绒安全推出的一款独立软件。它提供了海量的应用程序&#xff0c;涵盖办公、社交、游戏、视频、工具等多种领域和类别&#xff0c;方便用户轻松找到所需的应用并进行一键下载安装…

信息化运维方案,实施方案,开发方案,信息中心安全运维资料(软件资料word)

1 编制目的 2 系统运行维护 2.1 系统运维内容 2.2 日常运行维护方案 2.2.1 日常巡检 2.2.2 状态监控 2.2.3 系统优化 2.2.4 软件系统问题处理及升级 2.2.5 系统数据库管理维护 2.2.6 灾难恢复 2.3 应急运行维护方案 2.3.1 启动应急流程 2.3.2 成立应急小组 2.3.3 应急处理过程 …

鸿蒙ArkTS中的布局容器组件(Column、Row、Flex、 Stack、Grid)

在鸿蒙ArkTS中&#xff0c;布局容器组件有很多&#xff0c;常见的有&#xff1a;   ⑴ Column&#xff1a;&#xff08;垂直布局容器&#xff09;&#xff1a;用于将子组件垂直排列。   ⑵ Row&#xff1a;&#xff08;水平布局容器&#xff09;&#xff1a;用于将子组件水…

RPC核心实现原理

目录 一、基本原理 二、详细步骤 三、额外考虑因素 RPC&#xff08;Remote Procedure Call&#xff0c;远程过程调用&#xff09;是一种计算机通信协议&#xff0c;也是一种用于实现分布式系统中不同节点之间进行通信和调用的技术。其实现原理主要可以分为以下几个步骤&…

Android Studio加载旧的安卓工程项目报错处理

文章目录 Invalid Gradle JDK configuration foundNDK not configuredCMake 3.10.2 was not found安装cmake适配cmake版本号 com.intellij.openapi.externalSystem.model.ExternalSystemExceptiongradle版本过低或下载不了下载gradle与依赖库超时替换gradle国内源替换Maven 仓库…

全星魅-物联网定位终端-北斗定位便携终端-北斗有源终端

在当今快速发展的物流运输行业中&#xff0c;精准定位与实时监控已成为确保货物安全与高效运输的关键因素。为了满足这一需求&#xff0c;QMCZ10作为一款集4G&#xff08;LTE Cat1&#xff09;通讯技术与智能定位功能于一体的终端产品&#xff0c;应运而生。它不仅具备普通定位…

银行卡二要素核验 API 对接说明

本文将介绍一种 银行卡二要素核验 API 对接说明&#xff0c;它可用于校验姓名和银行卡号的真实性和一致性。 接下来介绍下 银行卡二要素核验 API 的对接说明。 注册链接 点击链接注册&#xff0c;即可使用&#xff01; 申请流程 要使用 API&#xff0c;需要先到 银行卡二要…

关于elementui el-radio 赋值问题

今天遇到这样的问题&#xff1a; 点击的时候&#xff0c;同时选中 照抄官网&#xff01; 后来发现了问题&#xff1a; 也就是说如果你的版本太低&#xff0c;就不能用value&#xff0c;而得用label&#xff0c;于是修改 <el-radio-group v-model"searchTime"&g…

查缺补漏---子网划分方法(定长与不定长子网)

第一类题型&#xff1a; 方法&#xff1a;切蛋糕 例1&#xff1a; 现将一个 IP 网络划分成4个子网&#xff0c;若其中一个子网是 172.16.1.128/26&#xff0c;则下列网络中&#xff0c;不可能是另外三个子网之一的是&#xff08;&#xff09; A.172.16.1.0/25 B.172…

P11229 [CSP-J 2024] 小木棍

[CSP-J 2024] 小木棍 题目描述 小 S 喜欢收集小木棍。在收集了 n n n 根长度相等的小木棍之后&#xff0c;他闲来无事&#xff0c;便用它们拼起了数字。用小木棍拼每种数字的方法如下图所示。 现在小 S 希望拼出一个正整数&#xff0c;满足如下条件&#xff1a; 拼出这个数…

嵌入式开发之进程函数

1、进程创建-fork #include <unistd.h> pid_t fork(void); 创建新的进程&#xff0c;失败时返回-1成功时父进程返回子进程的进程号&#xff0c;子进程返回0通过fork的返回值区分父进程和子进程 pid_t pid; //fork子进程之后&#xff0c;子进程和父进程会同时继续往下执行…

【循环引用及格式化输出】

垃圾回收机制 当一个值在内存中直接引用跟间接引用的量为0时&#xff0c;&#xff08;即这个值没有任何入口可以找到它&#xff09;那么这个值就会被清空回收♻️&#xff0c;释放内存空间&#xff1b; 列表在内存中的存储方式 1&#xff09;引用计数的两种方式 x "ea…

从0开始学习Linux——文本编辑器

往期目录&#xff1a; 1、从0开始学习Linux——Linux简介&安装 2、从0开始学习Linux——搭建属于自己的Linux系统 我们通过前面教程的学习已经了解了什么是Linux&#xff0c;并且我们也定制安装了属于我们自己的一个Linux系统。从这个章节开始我们将开始学习如何去操作Linu…

“北斗三号”如何赋能工业物联网

北斗三号是我国独立自主研发的第三代卫星导航系统&#xff0c;是北斗卫星导航系统的重要组成部分。北斗三号系统具有全球覆盖能力&#xff0c;除了提供基本的定位、导航、授时服务外&#xff0c;还提供高精度和短报文通信服务等。针对产业物联网应用&#xff0c;北斗三号也发挥…

相关衍生 pika+mongo

衍生相关 pikamongo 很多平台不提供完整的数据展示, 翻页只能翻几页,不过提供相关推荐等方法可获取更多的数据; 使用 rabbitmq 是因为数据量可能有几十上百万, 且能持久化 mongo对于数据并不实时的更新到查询里 def main():# mongodb# client MongoClient(localhost, 27017)cl…

Odoo | 免费开源ERP:汽车及零配件行业信息化解决方案

文 / 开源智造 Odoo亚太金牌服务 概述 围绕汽车行业产业链上下游企业的整体业务主线&#xff0c;提供面向汽车主机厂整车个性化制造解决方案&#xff0c;产业链上下游一体化协同解决方案&#xff0c;数字化精益制造解决方案、全价值链质量管理解决方案&#xff0c;数字化运营解…

【Linux】【守护进程】总结整理

守护进程&#xff08;Daemon&#xff09;是运行在后台的进程&#xff0c;通常没有与之关联的控制终端。守护进程在启动后会脱离控制终端&#xff0c;并继续在后台运行&#xff0c;即使用户退出登录或者终端关闭也不会影响它们的运行。守护进程常用于提供网络服务、定期执行任务…

vue中html如何转成pdf下载,pdf转base64,忽略某个元素渲染在pdf中,方法封装

一、下载 html2Canvas jspdf npm install jspdf html2canvas二、封装转换下载方法 htmlToPdf.js import html2Canvas from html2canvas import JsPDF from jspdf/*** param {*} reportName 下载时候的标题* param {*} isDownload 是否下载默认为下载&#xff0c;传false不…

火山引擎云服务docker 安装

安装 Docker 登录云服务器。 执行以下命令&#xff0c;添加 yum 源。 yum update -y yum install epel-release -y yum clean all yum list依次执行以下命令&#xff0c;添加Docker CE镜像源。更多操作请参考Docker CE镜像。 # 安装必要的一些系统工具 sudo yum install -y yu…