【网络协议】精讲ARP协议工作原理!图解超赞超详细!!!

  亲爱的用户,打开微信,搜索公众号:“风云说通信”,即可免费阅读该文章~~

目录

前言

1. ARP协议介绍

1.1 ARP协议功能

1.2 ARP请求报文

1.3 ARP工作原理

2. ARP 缓存超时

2.1 RARP

3. ARP 攻击

3.1 ARP 攻击分类


前言

        首先,我们要搞明白一个问题,为什么需要ARP协议呢?

    之前在IP数据报中看到,我们需要在首部填写源地址目的地址,这两个地址是Mac地址。那什么是Mac地址呢?Mac地址又称物理地址,请注意:不要被 “物理” 二字误导认为物理地址属于物理层范畴,物理地址属于数据链路层范畴。一般在在网卡上。

这是由于A设备给B设备发送数据报时,可能不知道B设备的mac地址,所以就需要通过ARP协议去查找。

图片

  • step1:  每台主机都会在自己的ARP缓冲区建立一个ARP列表,以表示IP地址和Mac地址的映射关系。当源主机给目的主机发送数据报,会先检查本地的ARP列表是否存在映射关系,如果有,则直接返回

  • step2:如果没有,则向本地网段发送一个ARP请求的广播包,查询改主机对应的Mac地址

  • step3:此ARP请求中包含了源主机IP地址,源主机Mac地址,目的主机IP地址。网络中的所有主机收到ARP请求后,会检查包中的IP地址是否和自己的IP地址一致,如果不相同就忽略,如果相同则记录下发送端的Mac地址和IP地址添加到自己ARP列表(如果已经存在则更新),并且给源主机发送一个ARP响应数据报,告诉对方自己是要查找的ARP地址。

  • step4: 源主机收到ARP响应后,将得到的目的主机的Mac地址添加到自己的ARP列表中,并利用此信息开始传输数据(如果没有收到ARP响应,表示ARP查询失败

1. ARP协议介绍

        ARP 协议的全称是 Address Resolution Protocol(地址解析协议),它是一个通过用于实现从 IP 地址到 MAC 地址的映射,即询问目标 IP 对应的 MAC 地址 的一种协议。ARP 协议在 IPv4 中极其重要。

注意:ARP 只用于 IPv4 协议中,IPv6 协议使用的是 Neighbor Discovery Protocol,译为邻居发现协议,它被纳入 ICMPv6 中。

        简而言之,ARP 就是一种解决地址问题的协议,它以 IP 地址为线索,定位下一个应该接收数据分包的主机 MAC 地址。如果目标主机不在同一个链路上,那么会查找下一跳路由器的 MAC 地址。

1.1 ARP协议功能

  • 将一个已知的IP地址解析成MAC地址

  • 重复地址检测,检测地址冲突

无故ARP: 当一台设备获取到一个Ip地址时 ,会自动发送一个无故ARP,检测是否有设备已使用了此地址。

1.2 ARP请求报文

图片

1.3 ARP工作原理

图片

  1. PC1想发送数据给PC2, 会先检查自己的ARP缓存表,只在终端设备上。

  2. 如果发现要查找的MAC地址不在表中,就会发送一个 ARP请求广播,用于发现目的地的MAC地址。ARP请求消息中包括PC1的IP地址和MAC地址以及PC2的 IP地址和目的MAC地址(此时为广播MAC地址FF-FF-FF-FF-FF-FF)

  3. 交换机收到广播后做泛洪处理,除PC1外所有主机收到 ARP请求消息,PC2以单播方式发送ARP应答, 并在自 己的ARP表中缓存PC1的IP地址和MAC地址的对应关系, 而其他主机则丢弃这个ARP请求消息。

  4. PC1在自己的ARP表中添加PC2的IP地址和MAC地址 的对应关系,以单播方式与PC2通信。

1.4 windows当中如何查看arp缓存表(静态arp和动态 arp)

  • 查看arp缓存表 :arp -a

图片

  • 不加IP清除所有 :arp -d

  • 加IP只删除改IP :arp -d [IP]

  • 删除arp静态绑定:arp -s IP MAC

动态ARP表项老化:在一段时间内(默认120s)如果表项中的ARP映射关系始终没有使用,则会被删除。通过及时删除不活跃表项,从而提升ARP响应效率。

ARP工作原理(简化):

  1. PC1发送数据给PC2,查看缓存有没有PC2的MAC地址。

  2. PC1发送ARP请求消息(广播)。

  3. 所有主机收到ARP请求消息,PC2回复ARP应答(单播),其他主机丢弃。

  4. PC1将PC2的MAC地址保存到缓存中,发送数据。

    图片

2. ARP 缓存超时

缓存超时通常与 ARP 缓存中的项有关系,arp 命令可以允许管理员设置永不超时。ARP 把保存在高速缓存中的每一映射地址都设置生存时间,一般为 20 分钟。如果是不完整的映射,那么缓存超时时间为 3 分钟,不完整的映射通常会强制发送一条不存在主机的 ARP 请求。

2.1 RARP

与 ARP 相对的,RARP(Reverse Address Resolution Protocol) 是将 ARP 反过来,从 MAC 地址定位 IP 地址的一种协议,将打印机服务器等小型嵌入式设备接入网络时会使用到。

平常我们设置 IP 地址一般会有两种方式,手动设置 和 DHCP 动态获取

但是对于嵌入式设备来说,它没有任何输入接口,也无法通过 DHCP 获取动态地址。

在这种情况下,就要使用到 RARP 了,你需要准备一个 RARP 服务器,在这个服务器上注册设备的 MAC 地址和 IP 地址,然后将设备接入网络,设备会发出一条 IP 和 MAC 地址的查询请求给服务器,服务器会告诉设备其 IP 地址和 MAC 地址。

3. ARP 攻击

ARP 是一种非常不安全的协议,目前已经有很多涉及 ARP 的攻击,最主要的就是使用代理 ARP 功能假扮主机,对 ARP 请求作出应答,通过伪造 ARP 数据包来窃取合法用户的通信数据,造成影响网络传输速率和盗取用户隐私信息等严重危害。

3.1 ARP 攻击分类

ARP 主要攻击方式分为下面这几种

  • ARP 泛洪攻击:通过向网关发送大量 ARP 报文,导致网关无法正常响应。首先发送大量的 ARP 请求报文,然后又发送大量虚假的 ARP 响应报文,从而造成网关部分的 CPU 利用率上升难以响应正常服务请求,而且网关还会被错误的 ARP 缓存表充满导致无法更新维护正常 ARP 缓存表,消耗网络带宽资源。
  • ARP 欺骗主机攻击:ARP 欺骗主机的攻击也是 ARP 众多攻击类型中很常见的一种。攻击者通过 ARP 欺骗使得局域网内被攻击主机发送给网关的流量信息实际上都发送给攻击者。主机刷新自己的 ARP 使得在自己的ARP 缓存表中对应的 MAC 为攻击者的 MAC,这样一来其他用户要通过网关发送出去的数据流就会发往主机这里,这样就会造成用户的数据外泄。
  • 欺骗网关的攻击: 欺骗网关就是把别的主机发送给网关的数据通过欺骗网关的形式使得这些数据通过网关发送给攻击者。这种攻击目标选择的不是个人主机而是局域网的网关,这样就会攻击者源源不断的获取局域网内其他用户韵数据.造成数据的泄露,同时用户电脑中病毒的概率也会提升。
  • 中间人攻击: 中间人攻击是同时欺骗局域网内的主机和网关,局域网中用户的数据和网关的数据会发给同一个攻击者,这样,用户与网关的数据就会泄露。
  • IP地址冲突攻击: 通过对局域网中的物理主机进行扫描,扫描出局域网中的物理主机的 MAC 地址,然后根据物理主机的 MAC 进行攻击,导致局域网内的主机产生 IP 地址冲突,影响用户的网络正常使用。

 

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

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

相关文章

HTML(16)——边距问题

清楚默认样式 很多标签都有默认的样式,往往我们不需要这些样式,就需要清楚默认样式 写法: 用通配符选择器,选择所有标签,清除所有内外边距选中所有的选择器清楚 *{ margin:0; padding:0; } 盒子模型——元素溢出 作…

超越AnimateAnyone, 华中科大中科大阿里提出Unimate,可以根据单张图片和姿势指导生成视频。

阿里新发布的UniAnimate,与 AnimateAnyone 非常相似,它可以根据单张图片和姿势指导生成视频。项目核心技术是统一视频扩散模型,通过将参考图像和估计视频内容嵌入到共享特征空间,实现外观和动作的同步。 相关链接 项目&#xff1…

Eclipse使用TFS(Team Foundation Server) 超详细

Eclipse使用TFS 1、什么是TFS2、TFS和Git的区别3、签出代码4、签入代码4.1、签出以进行编辑4.2、修改本地代码4.3、签入挂起的更改4.4、签入 如果不能 签入挂起的更改,则先 签出以进行编辑如果 签入挂起的更改不可选中,则 如下操作 1、什么是TFS Team F…

fastadmin多语言切换设置

fastadmin版本:1.4.0.20230711 以简体,繁体,英文为例 一,在application\config.php 里开启多语言 // 是否开启多语言lang_switch_on > true, // 允许的语言列表allow_lang_list > [zh-cn, en,zh-tw], 二…

达梦数据守护集群部署

接上篇 达梦8单机规范化部署 https://blog.csdn.net/qq_25045631/article/details/139898690 1. 集群规划 在正式生产环境中,两台机器建议使用统一配置的服务器。使用千兆或千兆以上网络。 两台虚拟机各加一块网卡,仅主机模式,作为心跳网卡…

Notepad++插件 Hex-Edit

Nptepad有个Hex文件查看器,苦于每次打开文件需要手动开插件显示Hex,配置一下插件便可实现打开即调用 关联多个二进制文件,一打开就使用插件的方法,原来是使用空格分割!!!

创新指南|品牌电商新策略:五大转型思路与RGM举措

在流量红利过去的背景下,品牌电商面对多渠道运营的难题,如缺乏统盘经营、绩效管理分散、价格战失控、用户体验不足以及流量过度依赖,品牌电商如何有效应对这些挑战,本文从5个维度探讨全渠道电商RGM破局之路,实现品牌的…

视频汇聚安防综合管理系统EasyCVR平台GB28181设备注册未上线的原因排查与解决

视频汇聚安防综合管理平台EasyCVR视频监控系统基于云边端架构,可支持海量视频汇聚集中管理,能提供视频监控直播、云端录像、云存储、录像检索与回看、告警(协议告警/智能告警/1400视图库告警)、平台级联、AI智能分析接入等视频能力…

名侦探李先生第一话:谁是真正的凶手(只出现一次的数字相关题解(力扣)+位操作符回忆)

引子:我们在之前的案子中破解过基础的单身狗问题,那面对更有挑战的案子,且看李先生如何破局,那下凶手! 复习: 1,位操作符: 正整数原,反,补码都相同 首位是…

Pyppeteer原理介绍和入门尝试

pyppeteer仓库地址:https://github.com/miyakogi/pyppeteer puppeteer仓库地址:https://github.com/search?qpuppeteer&typerepositories 因为有些网页是可以检测到是否是使用了selenium。并且selenium所谓的保护机制不允许跨域cookies保存以及登…

第一百二十三节 Java面向对象的设计 - Java接口继承

Java面向对象的设计 - Java接口继承 接口可以从另一个接口继承。与类不同,接口可以从多个接口继承。 interface Singer {void sing();void setRate(double rate);double getRate(); } interface Writer {void write();void setRate(double rate);double getRate();…

【面试题】马上金九银十了,简历该准备起来了,面试题你准备好了吗 ?浅谈 JS 浅拷贝和深拷贝

代码展示 let obj_old {name: Tom,age: 15,favorite: {food: bread,drink: milk} } let obj_new {...obj_old} console.log(obj_old obj_new) // false console.log(obj_old.name obj_new.name) // true console.log(obj_old.favorite obj_new.favorite) // true3. Ar…

视频云存储平台LntonCVS国标视频平台功能和应用场景详细介绍

LntonCVS国标视频融合云平台基于先进的端-边-云一体化架构设计,以轻便的部署和灵活多样的功能为特点。该平台不仅支持多种通信协议如GB28181、RTSP、Onvif、海康SDK、Ehome、大华SDK、RTMP推流等,还能兼容各类设备,包括IPC、NVR和监控平台。在…

网站制作和推广

在当今数字化时代,拥有一个网站对于企业的发展和推广来说是至关重要的。网站既可以作为一个企业的形象展示,也可以作为一个销售渠道,更可以作为一个品牌传播的平台。在本文中,我们将讨论网站制作和推广的重要性,以及一…

为什么要学习PMP

学习PMP(项目管理专业人士认证)能够在职场竞争力、薪资待遇、项目管理技能等方面带来显著的提升。以下是学习PMP的具体分析: 1、职场竞争力 升职加薪:学习PMP能够提升个人在项目中的管理能力和解决问题的能力,从而在…

渗透测试基础(六) MS10-046漏洞攻击

1. 漏洞介绍 1.1 漏洞介绍 Microsoft Windows快捷方式LNK文件自动执行代码漏洞。Windows支持使用快捷方式或LNK文件。LNK文件是指向本地文件的引用,点击LNK文件与点击快捷方式所制定的目标具有相同效果。Windows没有正确的处理LNK文件,特制的LNK文件可能导致Windows自动执行…

【Leetcode每日一题】 01背包 - DP41 【模板】01背包(难度⭐⭐)(80)

1. 题目解析 题目链接:DP41 【模板】01背包 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 第一问:不超过总体积的背包问题 1. 状态表示 dp[i][j] 表示:从前 i 个物品中挑选&…

MOE学习笔记

MOE网络结构 和传统的 transformer 网络结构相比,我们将 Transformer 模型的每个 FFN 层替换为 MoE 层,MoE 层由门网络(Router)和一定数量的专家(Expert)组成。 这些 Expert 其实也是 FFN 层,…

探秘神经网络激活函数:Sigmoid、Tanh和ReLU,解析非线性激活函数的神奇之处

引言 在神经网络中,激活函数扮演着至关重要的角色。它们赋予神经网络非线性的能力,使得网络具备学习和表示复杂函数关系的能力。本文将详细解析三种常见的激活函数:Sigmoid、Tanh和ReLU,揭开它们在神经网络中的奥秘。无论你是初学…

5. Revit API: Application

5. Revit API: Application 前言 上一篇中,讲到了UI篇的Ribbon(界面),并提到要创建 RibbonPanel,需要使用UIControlledApplication.CreateRibbonPanel(..)方法,还在结尾说到要写“UI”开头的那些个类&…