ARP详解

2.4 ARP

如图2-10所示,当网络设备有数据要发送给另一台网络设备时,必须要知道对方的网络层地址(即IP地址)。IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧必须要包含目的MAC地址,因此发送端还必须获取到目的MAC地址。如何知道一台主机的IP地址与物理地址的对应关系,就需要用到地址解析协议,即ARP(Address Resolution Protocol)协议。

图2-10 ARP协议背景意义

在文章最后加作者VX:可以免费领取以下资料

2.4.1ARP工作过程

通过ARP协议,网络设备可以建立目标IP地址和MAC地址之间的映射。网络设备通过网络层获取到目的IP地址之后,还要判断目的MAC地址是否已知。比如,当你和张三处于同一个班级,但你并不知道张三是谁;此时你站起来大喊一声:”我是李四,谁是张三?”于是张三回答:”我是张三。”这一过程后张三、李四互相知道对方的位置和姓名。

我们回到ARP的世界,如图2-11所示,其实当一台主机需要访问一个与自己在同一个网络的IP地址但不知道目的主机的物理地址时,它就会发送一个ARP请求报文。由于我们并不清楚目的MAC是什么,所以该报文的目的MAC用广播地址FF-FF-FF-FF-FF-FF来填充。

图2-11 ARP工作过程

当接收者收到该数据帧之后,会转交给自身的ARP程序进行比对,如果发现目的数据帧中目的IP地址正是自身的,就会对发送者做出回应,如不是则会保持沉默;回应报文中会将自身的物理地址,IP地址分别填充至源MAC位置和源IP地址位置。经过这一过程接收者和发送者互相明确了各自物理地址和IP地址的映射关系。

2.4.2 代理ARP

     主机A与主机B通信时,目的IP地址与本机的IP地址位于不同网络,但是由于主机A未配置网关,所以它将会以广播形式发送ARP Request报文,请求主机B的MAC地址。我们都知道路由器是隔离广播域的,因此该广播报文无法被路由器转发,所以主机B无法收到主机A的ARP请求报文,当然也就无法应答。这种情况下就需要代理ARP,其工作过程如图2-12所示。

图2-12代理ARP工作过程

     在路由器上启用代理ARP功能后,路由器收到这样的请求,会查找路由表,如果存在主机B的路由表项,路由器将会使用自己的G0/0/0接口的MAC地址,回应主机A发送的ARP Request请求。主机A收到代理ARP路由器发送的ARP Reply后,将以路由器的G0/0/0接口MAC地址作为目的MAC地址进行数据转发。

2.4.3免费ARP

     主机被分配了IP地址或者IP地址进行变更后,为了防止该IP地址与网络中其他主机IP地址冲突,主机会通过发送ARP Request报文来进行地址冲突检测。主机A将ARP Request广播报文中的目的IP地址字段设置为自己的IP地址,且该网络中所有主机包括网关都会接收到此报文。当目的IP地址已经被某一个主机或网关使用时,该主机或网关就会回应ARP Reply报文。通过这种方式,主机A就能探测到IP地址冲突了。

 在文章最后加作者VX:可以免费领取以下资料

2.3.4R-ARP

如果说ARP协议是设备通过自己知道的IP地址来获得自己不知道的物理地址;那R-ARP(Reverse Address Resolution Protocol, 反向地址解析协议)恰好与之相反,R-ARP发出要反向解析的物理地址并希望返回其对应的IP地址。

     R-ARP工作过程如下:

  • 每台设备都会有独立的硬件地址,从网卡上读取MAC地址,然后在网络上发送一个R-ARP请求的广播数据包,请求R-ARP服务器回复该MAC地址映射的IP地址。
  • R-ARP服务器收到了RARP请求数据包,为其分配IP地址,并将R-ARP回应发送给源主机。
  • 源主机收到R-ARP回应后,就使用得到的IP地址进行数据通信。
  1. R-ARP服务器

R-ARP规定只有R-ARP服务器能产生应答。并且R-ARP的请求是在硬件层上的广播这因此这不能通过路由转发,因此在每个网络都要实现一个R-ARP服务器。许多网络也会指定多个R-ARP服务器,这样做既是为了平衡负载也是为了作为出现问题时的备份。

  1. R-ARP报文格式

     类似于ARP的报文格式主要差别在于帧类型代码为0x8035(ARP为0x0806)。

2.5练习题

  1. UDP是面向无连接的,必须依靠什么协议来保障传输的可靠性?

A、传输控制协议       B、应用层协议        C、网络层协议        D、网际协议

  1. 华为路由器中tracert诊断工具被用来跟踪数据的转发路径。(  )

A、对   B、错

  1. 网络管理员使用ping来测试网络连通性用哪些协议?

A、UDP            B、TCP            C、ARP             D、ICMP

  1. ARP协议能够根据目的IP地址解析目标设备mac地址从而实现mac地址与IP地址的映射。

A、对    B、错

5.由于TCP协议在建立连接和关闭连接时都采用三次握手机制,所以TCP支持可靠传输。

A、正确     B、错误

本文出自作者的《HCIA Datacom学习指南》
https://item.jd.com/14032255.html

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

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

相关文章

RuntimeError: Tensor must have a last dimension with stride 1

我在使用torch.view_as_complex将weight转化为复数时,遇到了这样一个错误:由于我在对weight使用view_as_complex之前使用了F.interpolate函数进行了分辨率调整,因此只需对张量weight添加.contiguous()即可。

拿到B端系统设计需求该如何入手,这样做准没错!

在拿到B端系统设计需求后,以下是一些入手的步骤和方法: 理解需求 首先,仔细阅读和理解所提供的需求文档。了解系统的目标、功能需求、用户需求、非功能需求等方面的要求。如果有任何不清楚或模糊的地方,及时与需求提出方进行沟通…

vue+sortablejs来实现列表拖拽——sortablejs的使用

sortablejs官网:https://sortablejs.com/ 最近在看form-builder组件,发现里面有用到sortablejs插件,用于实现拖拽效果。 但是这个官网中的配置,实在是看不懂,太简单又太复杂,不实用。 下面记录一下我的使用&#xff…

Redis 实战之RDB文件结构

RDB文件结构 databases 部分key_value_pairs 部分value 的编码字符串对象列表对象集合对象哈希表对象有序集合对象INTSET 编码的集合ZIPLIST 编码的列表、哈希表或者有序集合 总结AOF持久化的实现命令追加 AOF 文件的写入与同步小结 在本章之前的内容中, 我们介绍了…

C++优先级队列priority_queue模拟实现

priority_queue模拟实现 1. priority_queue介绍2. priority_queue使用2.1 priority_queue显示定义2.2priority_queue接口使用 3. 仿函数4. priority_queue模拟实现4.1 向上调整算法4.2 向下调整算法4.3 实现priority_queue的接口4.4 使用[仿函数](https://legacy.cplusplus.com…

Springboot+Vue项目-基于Java+MySQL的流浪动物管理系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

MCP3008-I/SL 模数转换器ADC SPI接口 模拟信号采集

MCP3008-I/SL 模数转换器ADC 贴片SOIC16 MCP3008-I/SL 是一款模数转换器(ADC),属于 SAR(逐次逼近寄存器)架构的 ADC。它具有以下特点: 8 通道单 ADC 最大采样率:200ksps(千样点每秒…

为什么byte 的取值范围是 [-128,127]

在计算机中,byte(字节)是存储数据的基本单位,通常用8位二进制数字表示一个字节。在字节中,最高位的最左边一位是符号位,用来表示正负号,值为0表示正数,值为1表示负数。 如果将byte定…

URL过滤

什么是URL过滤? URL过滤是一种针对用户的URL请求进行上网控制的技术,通过允许或禁止用户访问某些网页资源,达到规范上网行为和降低安全风险的目的。 URL过滤可以基于URL分类、特定URL等多种方式限制URL访问。 URL过滤的主要作用如下&#xf…

Python Flask框架(一)初识Flask

Flask是使用Python编写的Web微框架。Web框架可以使我们不用关心底层的请求响应处理,更方便高效的编写Web程序。Flask有两个主要依赖,一个是WSGI(Web Server Gateway Interface,web服务器网关接口)工具集,另…

【文献解析】3D高斯抛雪球是个什么玩意

论文地址:https://arxiv.org/abs/2308.04079 项目:3D Gaussian Splatting for Real-Time Radiance Field Rendering 代码:git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive 一、文章概述 1.1问题导向 辐射…

USB3.0接口——(1)基础知识

1.背景 USB 3.0是一种USB规范,该规范由英特尔等公司发起。 USB协议版本 命名约定 USB-IF组织引入命名约定,将端口列为 USB 5 Gbps、USB 10 Gbps、USB 20 Gbps 、USB 40 Gbps,而不使用版本号。获得 USB-IF 认证的 USB 产品的制造商会获得带…

SAP 长文本语言代码维护

在SAP中,我们发现长文本都是有语言代码的,如果需要新增一个语言代码的话,需要通过程序RSCPCOLA进行维护处理 具体实现步骤如下: 1. 输入事务码SE38,输入程序名RSCPCOLA,然后点击执行按钮 2. 维护信函语言…

sklearn的make_blobs函数

make_blobs是一个用于生成随机数据点的实用函数, from sklearn.datasets import make_blobs X,Y make_blobs(n_samples2000,n_features2,centers12,cluster_std0.05,center_box[-5,5],random_state21)n_samples: 要生成的样本数量。centers: 要生成的簇&#xff0…

电子书3D翻页制作技巧大揭秘,轻松将文档转化为逼真仿真书!

随着数字化时代的到来,电子书已成为阅读的主流形式之一。然而,普通的电子书往往缺乏纸质书的质感和互动性,让人感到有些遗憾。今天,将为你揭秘电子书3D翻页制作技巧,让你轻松将文档转化为逼真仿真书! 1.要制…

LearnOpenGL(九)之材质

一、材质 在现实世界里,每个物体会对光产生不同的反应。比如,钢制物体看起来通常会比陶土花瓶更闪闪发光,一个木头箱子也不会与一个钢制箱子反射同样程度的光。在opengl中,我们可以针对每种表面定义不同的材质(Material)属性来模…

Mac 解决外接移动硬盘(NTFS格式)无法写入的问题

文章目录 1. 问题描述2. 解决步骤 1. 问题描述 MacOS 可以识别 NTFS 格式的磁盘,但是默认情况下是只读模式,即无法向 NTFS 格式的磁盘写入数据。这是因为 NTFS 是 Windows 系统默认的文件系统格式,而 MacOS 对 NTFS 的写入支持是有限的。 如…

指定地区|CSC高级研究学者赴澳大利亚访学交流

CSC高级研究学者均是正高或博导级的,学术背景较强,多数能DIY联系到国外合作机构。但也有些申请者因指定地域或学校,或须在短期内获取邀请函故而求助于我们。本案例D教授就指定澳大利亚的墨尔本地区,我们最终用维多利亚大学的邀请函…

JWK和JWT 学习

JWK和JWT 介绍 JWK (JSON Web Key) 和 JWT (JSON Web Token) 是现代Web应用程序中用于安全通信的两个重要概念。它们都是基于JSON的,并且是OAuth 2.0和OpenID Connect等协议的核心组成部分。 官方文档 JWT官方网站 JWK和JWK Set的RFC文档 JWT的RFC文档 JWK (JS…

Oopsie从80端口到获取root权限的渗透过程

Oopsie 需要用到的工具burpnmapnc手写代码信息收集 由于是靶场的原因单一没有子站所以收集到ip就可以nmap扫描 拿到IP第一件事就是扫描端口 nmap -T4 -sV -sC -sS 10.129.24.79 -T4:提升扫描速度 -sV:查看详细版本 -sC:使用默认类别的脚本进行扫描 可更换其他类别…