ARP协议(原理,特点,报文格式,具体过程),ARP缓存(有效时间,为什么),ARP欺骗(定向断网,成为中间人),RARP简单介绍

目录

ARP协议

引入

介绍

原理

arp请求/响应

特点

报文格式

硬件类型

协议类型

硬件/协议地址长度

op(操作码) 

过程

发送请求并处理

返回响应并处理

总结

arp缓存 

介绍

arp表项的有效时间

解释

arp欺骗

介绍

定向断网

基于arp的成为中间人的方式

多向欺骗

RARP

介绍


ARP协议

引入

跨网络通信时,通过不断更新mac帧,数据可以送达与目标主机相连的路由器设备上 -- 数据链路层(Mac帧,报头字段,局域网通信原理),MTU,MSS,ip报文的分包与组装(ip报头字段介绍,组装过程,判断是否被分片/收到全部分片)-CSDN博客

但是,这最后一跳没那么简单

  • 因为我们只知道目标主机的ip地址(ip报头中的目的ip),而不知道mac地址
  • 但是,局域网内的通信是需要mac地址的(因为要重新封装mac帧),如果硬件地址与本机不符,会直接在链路层丢弃

所以我们需要一个技术来解决 -- ARP协议

  • 它来将目标主机的ip地址->mac地址

介绍

ARP(Address Resolution Protocol,地址解析协议),一个介于数据链路层和网络层之间(但归属于链路层)的协议
  • 建立了主机 IP地址 和 MAC地址 的映射关系,以便数据包可以正确地发送到网络上的目标设备

原理

arp请求/响应

该路由器向目标主机所在局域网中广播一条消息(被称为ARP请求),询问具有特定ip地址的主机的mac地址

  • 以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播

因为已知ip地址

  • 所以目标主机可以收到,而其他主机会丢弃该条消息

目标主机收到后,会给源主机返回一条响应

  • 里面带着它自己的Mac地址

特点

如果 收到多次同样的应答,会以最新的为准
  • 如果在ARP缓存中已经存在了之前的应答记录,并且收到新的应答,ARP缓存会更新为最新的应答

报文格式

([下面的数字]单位是字节) 

硬件类型

指示网络类型,比如以太网的值是1

  • 它用于确定网络接口的硬件地址格式

协议类型

把哪种类型的地址->Mac地址

  • 确定上层协议类型
  • 通常是IPv4,其值为0x0800

硬件/协议地址长度

[前面字段填入的类型长度]对应的数字

  • 在以太网中,MAC地址的长度为6字节
  • 在IPv4中,IP地址的长度为4字节

op(操作码) 

指示ARP消息的类型

  • 1代表请求
  • 2代表响应

剩下的两组就是地址转换的重点(在过程中介绍) 

过程

发送请求并处理

假设我们路由器R准备发送给目标主机B:
网络层发现 目标主机与当前设备直接相连时,会先发送 arp请求,也就是先交付到 ARP协议层(记得嗷,ARP协议在网络层和MAC层之间)
构建好请求报文后,再交付给 Mac帧协议层
  • 封装好Mac帧报头后:
发送到局域网中,局域网内每台主机都能收到这个报文,每台主机收到后向上交付给Mac帧层,进行解包
  • 因为目的Mac地址是广播地址,所以需要受理,继续向上交付(因为类型是0806,所以交给arp协议层)
ARP协议层收到后解包
  • 先检查类型,发现是请求后,检查目的ip
  • 若不是发给自己的,直接丢弃

返回响应并处理

这样可以只让特定主机处理arp请求,并构建arp应答:
并向下交付( MAC层):
  • 因为此时源/目的mac地址已知,所以mac帧报头可以成功封装
封装好后,因为有确定的目的Mac地址,所以只有特定主机可以收到
  • 目标主机收到后,识别类型是arp协议

交付给arp协议层:

  • 先识别类型,确定是应答后,就知道是自己曾经请求的信息拿到了
  • 接着就提取源mac地址和源ip地址,这样就可以建立ip->mac的映射关系

总结

这个过程中,哪台主机都可能收到arp报文,并且第一件事情就是 查看报文类型
  • 如果是请求,那就查看目的ip
  • 如果是应答,就查看源ip和源mac

也就是,类型决定了要关注哪个字段

这样一来一回,就可以拿到目标主机的mac地址了,也就可以完成最后一跳了

arp缓存 

介绍

主机的ip和mac地址的映射关系,会被主机临时缓存起来
  • 当缓存关系失效时,才会触发arp机制 
  • 它也不仅仅只在最后一跳被触发,任何时候两台相连主机之间通信时,只要不知道对方的mac地址,都可以触发

arp表项的有效时间

每台主机都维护一个ARP缓存表,可以用arp -a命令查看:
缓存表中的表项有过期时间(一般为20分钟)
  • 如果一定时间内没有再次使用某个表项,则该表项失效
  • 下次在与该主机通信时,需要发ARP请求来获得目的主机的硬件地址

解释

为什么要有缓存表?

  • 减少了ARP请求的频率
  • 通过直接查询缓存表,网络设备可以更快地完成数据包的转发和处理

为什么要有过期时间?

  • 需要确保缓存表中的信息是最新的和有效的 (在网络中,设备的IP地址和MAC地址可能会变化。eg: 设备可能会断开连接、关闭、或者被重新分配IP地址 , 如果ARP缓存表中的表项一直有效,则可能导致发送到错误设备的情况发生)
  • 过期时间可以帮助清理和刷新这些表项,确保缓存表只包含有效的映射信息 (如果没有过期时间,过时的或错误的映射信息可能会长时间存在,导致数据包无法正确传输)
  • ARP缓存中的长期存在的错误或无效表项可能被攻击者利用,例如通过ARP欺骗攻击。定期过期和刷新ARP表项可以减少这种攻击的可能性

arp欺骗

介绍

是一种网络攻击方式,利用了ARP(地址解析协议)的工作机制,以欺骗网络中的设备

  • 攻击者通过伪造ARP应答来干扰正常的网络通信,从而实现数据包拦截、修改或其他恶意行为

定向断网

如果某主机A直接向某主机B发送arp应答,构建虚假的ip->mac的映射关系
  • 比如,将键值对中的mac地址修改成自己的mac地址,ip地址不变
那么以后B发出的消息都会推送给A
  • 因为其他主机直接在链路层就丢弃了报文(mac地址是B的)

如果A也丢弃掉,就会造成B的消息无法成功发送

  • 相当于断网了

基于arp的成为中间人的方式

还是上面的流程,但A不丢弃B发送给其他主机(假设是主机C)的报文,而是拦截下来并构建一条新的报文(源ip和源mac都修改成A的信息)
  • 并发送给C,这样从主机C返回的应答也会是A收到
  • 同理,A也构建新的应答给B(源ip和源mac都是C),B无法察觉到它和C之间还存在着A
  • 这样相当于A成为了B和C的中间设备

这种攻击允许主机A监视、记录甚至篡改网络通信内容

多向欺骗

一台主机可以做到,多台主机也同理

  • 将其他主机记录的映射关系中的mac地址都改成自己的mac地址,那么该局域网内所有主机的信息都一定会被自己接收 

 

RARP

介绍

逆地址解析协议
  • 也就是用mac->ip
过程更简单,可以定向发送(因为mac地址已知)
应用场景少

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

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

相关文章

0基础学习爬虫系列:Python环境搭建

1.背景 当前网络资源更新非常快,然后对应自己感兴趣的内容,每天盯着刷网站又太费时间。我在尝试借助Ai,搭建一套自己知识抓取更新提醒的系统,这样可以用极少的时间,关注到自己感兴趣的信息。 其实,这套逻辑…

使用 Python 实现粒子群优化的理论与实践

这是关于 PSO 是什么以及如何使用它的教程 欢迎来到雲闪世界。有一个笑话让我笑翻了: “您知道吗,在时钟发明之前,人们必须主动四处走动并询问时间?” 显然,这个笑话无需解释,但如果我们稍微思考一下&…

IOS17.0安装巨魔:TrollRestore巨魔发布

👻 TrollRestore 17.0 巨魔发布 15.0 - 16.7 RC(20H18)和17.0。 官网:https://trollrestore.com/ 下载:https://pan.metanetdisk.com/IOS/%E5%B7%A8%E9%AD%94%E7%8E%A9%E5%AE%B6/TrollRestore.com 使用:ht…

共享单车轨迹数据分析:以厦门市共享单车数据为例(一)

共享单车数据作为交通大数据的一个重要组成部分,在现代城市交通管理和规划中发挥着越来越重要的作用。通过对共享单车的数据进行深入分析,城市管理者和规划者能够获得大量有价值的洞察,这些洞察不仅有助于了解城市居民的日常出行模式&#xf…

希尔排序/选择排序

前言: 本篇主要对常见的排序算法进行简要分析,代码中均以数组 arr[] { 5, 3, 9, 6, 2, 4, 7, 1, 8 } 为例,进行升序排列。 常见的排序算法有如下: 选择排序中,直接选择排序没有任何实际与教育意义,而堆排…

基于Python爬虫的淘宝服装数据分析项目

文章目录 一.项目介绍二.爬虫代码代码分析 三. 数据处理四. 数据可视化 一.项目介绍 该项目是基于Python爬虫的淘宝服装数据分析项目,以致于帮助商家了解当前服装市场的需求,制定更加精确的营销策略。首先,需要爬取淘宝中关于服装的大量数据…

人工智能训练师边缘计算实训室解决方案

一、引言 随着物联网(IoT)、大数据、人工智能(AI)等技术的飞速发展,计算需求日益复杂和多样化。传统的云计算模式虽在一定程度上满足了这些需求,但在处理海量数据、保障实时性与安全性、提升计算效率等方面…

MyBatis-SQL-语句执行流程

已查询为例 首先我们可以看到,在查询的时候Mapper对象已经是被代理过后的: 所以会执行invoke方法,其底层实现就是JDK的动态代理: 如下图所示,如果MethodCache里面存在方法,则判断这个方法是否为default方…

Java异常体系----深入讲解

JAVA异常体系 1.error 错误 程序无法处理的异常, 它是由JVM产生和抛出的,比如OutOfMemoryError.ThreadDeath等 示例: public class Test {public static void main(String[] args) {run();}public static void run(){run();} }堆栈溢出,…

Selenium 实现图片验证码识别

前言 在测试过程中,有的时候登录需要输入图片验证码。这时候使用Selenium进行自动化测试,怎么做图片验证码识别?本篇内容主要介绍使用Selenium、BufferedImage、Tesseract进行图片 验证码识别。 环境准备 jdk:1.8 tessdata&…

解决Django会话中的竞态条件

Django 会话中的竞态条件(race condition)问题通常发生在多个请求几乎同时修改同一个会话数据时,导致数据丢失或数据不一致。这种情况在需要频繁更新会话数据的场景(如实时聊天应用、并发请求处理等)中尤为常见。 1、问…

20240902-VSCode-1.19.1-部署vcpkg-win10-22h2

20240902-VSCode-1.19.1-部署vcpkg-win10-22h2 软件环境 标签:C++ VSCode mingw gcc13 vcpkg cmake分栏:C++操作系统:Windows10 x64 22h2一、安装VScode-1.19.1 请参考另一篇文章《20240717-VSCode-1.91.1-部署gcc13-C++23-win10-22h2》。 二、安装cmake 本文流程需要安…

Java程序到CPU上执行 的步骤

相信很多的小伙伴在最初学习编程的时候会容易产生一个疑惑❓,那就是编写的Java代码究竟是怎么一步一步到CPU上去执行的呢?CPU又是如何执行的呢?今天跟随小编的脚步去化解开这个疑惑❓。 在学习这个过程之前,我们需要先讲解一些与…

Chrome 浏览器插件获取网页 window 对象(方案三)

前言 最近有个需求,是在浏览器插件中获取 window 对象下的某个数据,当时觉得很简单,和 document 一样,直接通过嵌入 content_scripts 直接获取,然后使用 sendMessage 发送数据到插件就行了,结果发现不是这…

硬盘分区、SD 卡被误格式化?格式化后恢复数据教程

硬盘分区、SD 卡、Android 手机被误格式化?别担心,奇客数据恢复内置格式恢复功能,是适合您的工具,因为如果重新格式化是误操作,无论是快速格式化、完整格式化还是驱动器报告未格式化,它都可以恢复格式化的数…

芯片解决方案--SL8541e-OpenHarmony适配方案

摘要 本文描述8541E芯片适配OpenHarmony的整体方案。 本文描述的整体方案,不止适用于8541e,也适用于该芯片厂家的其他芯片,如7863、7885,少部分子系统会略有差异。 整体方案架构 整体方案架构如下图,遵循OpenHarmo…

Android开发不支持Java,No,你选错了

Android Studio Giraffe | 2022.3.1 开始,选择Empty Activity模版,默认是Kotlin,很多同学以为Android Studio不支持Java开发了,其实Android Studio还是支持Java开发的,建议选择Empty Views Activity模版。 在Empty Vi…

AI智能分析/智慧安防EasyCVR视频汇聚平台新版本(V3.6.0)播放鉴权与播放限制时长的区别介绍

随着科技的飞速发展,视频技术已成为现代社会不可或缺的一部分,广泛应用于安防监控、娱乐传播、在线教育、电商直播等多个领域。EasyCVR视频汇聚平台作为视频技术的佼佼者,不断推陈出新,通过功能更新迭代,为用户提供更加…

如果电脑一直提示微软账号登录……

前言 今天小白接了个电脑故障问题:电脑提示微软账号登录,然后经过各种操作…… 电脑重启之后就变成了这样: 按理说,登录了微软账号之后,Windows系统要进入到桌面就必须有一个输入密码验证的过程,但这个界…

防封!数字人直播防封!铭顺科技AI数智人抖音直播防封落地方案!!

数字人直播防不防封? 数字人直播有没有流量? 数字人直播能不能落地? 这是目前所有想入局AI数字人赛道、想用数字人直播、想做数字人项目的老板们最担心、最关心的问题!但是,同行友商对此都噤若寒蝉,不敢跟…