网络:ARP的具体过程和ARP欺骗

在这里插入图片描述

个人主页 : 个人主页
个人专栏 : 《数据结构》 《C语言》《C++》《Linux》《网络》 《redis学习笔记》

文章目录

  • 前言
  • ARP具体过程
  • ARP欺骗原理
  • 总结


前言

本文仅作为ARP具体过程和ARP欺骗的知识总结


在这里插入图片描述

  • 硬件类型 :指定发送和接受ARP包的硬件类型,如 1 为 以太网
  • 协议类型:指定ARP包所携带的网络层协议类型,如 0X0800 为 IPv4协议的数据包
  • 硬件地址长度:指定硬件地址的长度,如以太网地址 为 6字节
  • 协议地址长度:指定协议地址的长度,如IP地址为4字节
  • 操作码(Operation Code):指定ARP包的操作类型,如 1表示ARP请求,2表示ARP应答

现在有一个场景,当一个局域网的入口路由器,收到一个数据包,要转发到局域网中的目的主机;现在入口路由器知道目的主机IP地址,但入口路由器还需要知道目的主机的mac地址,才能把数据报封装称为mac帧发送出去。这里需要一个将目的主机IP地址 转换为 目的主机mac地址 的过程,而这个过程就是ARP协议

ARP具体过程

在这里插入图片描述

入口路由器R要发送数据给主机B,但不知道主机B的mac地址。此时就需要ARP协议,下面我们就来看看ARP的具体过程。


入口路由器先组织如下 mac帧:
在这里插入图片描述

其中以太网目的地址 和 目的以太网地址 为 全F 表示 广播地址。同一个局域网中所有设备都会接收到这个数据包
以太网原地址为 入口路由器R的mac地址
帧类型,0806表示ARP请求/响应报文
硬件类型,1表示以太网
协议类型,0806表示ARP请求/响应
硬件地址长度,6表示以太网地址,也就是mac地址
协议地址长度,4表示IPv4地址
OP,1表示ARP请求
发送端以太网地址,macR
发送端IP地址,IPR
目的IP地址,IPB


再向局域网发送mac帧,此时该局域网中所有的主机都可以收到 该 mac帧。
在这里插入图片描述

此时所有主机发现该mac帧的以太网目的地址为 FFFF…FFFF(全F) 是广播,再分离 mac报头 和 有效载荷,再看帧类型 为 0806是ARP请求/响应,将 有效载荷 向上交付给 ARP。
在这里插入图片描述


主机先查看操作码 为 1 表示 ARP请求,再看目的IP地址 为 IPB,发现是向 主机B 的ARP请求;主机A,主机C,主机D都丢弃该ARP请求。

在这里插入图片描述

主机B组织如下mac帧

在这里插入图片描述
其中以太网目的地址 和 目的以太网地址 都是 入口路由器的macR
以太网原地址为 macB(主机B的mac地址)
帧类型,0806表示ARP请求/响应
硬件类型,1表示以太网
协议类型,0806表示ARP请求/响应
硬件地址长度,6表示以太网地址
协议地址长度,4表示IPv4地址
OP,2表示ARP响应
发送端以太网地址,macB
发送端IP地址,IPB
目的IP地址,IPR


主机B向局域网发送mac帧,其它主机 和 入口路由器 都会收到该mac帧,查看mac帧报头,发现以太网目的地址是macR(入口路由器的mac地址),其它主机丢弃该mac帧。

在这里插入图片描述


入口路由器分离 报头 和 有效载荷,查看帧类型是 0806,将有效载荷交付给ARP层。
在这里插入图片描述


入口路由器查看操作码(OP) 为2 ,表示为ARP响应,再查看发送端以太网地址,目的以太网地址,发送端IP地址等。建立主机B的mac与ip映射。
在这里插入图片描述
以上就是ARP的过程。

ARP欺骗原理

第一步:信息收集
攻击者需要收集目的网络中的关键信息

  • 目标主机的ip地址 和 mac地址
  • 该局域网的路由器的ip地址 和 mac地址

在这里插入图片描述


第二步:ARP缓存中毒
攻击者分别向目标主机 和 路由器 大量发送伪造ARP响应,目的是让目标主机 和 路由器更新它们的ARP缓存,使目标主机的ARP缓存中奖路由器的ip地址映射到攻击者的mac地址;路由器的ARP缓存中将目标主机的ip地址映射到攻击者的mac地址。这样,当目标主机尝试与路由器通信时,会将数据包发送给攻击者;同样,当路由器尝试与目标主机通用时,也会将数据包发送给攻击者。

在这里插入图片描述


第三步:中间人攻击
攻击者已经成功的称为目标主机和路由器之间的中间人。

  • 伪造路由器和目标主机之间的通信信息
  • 窃听目标主机和路由器之间的通信内容
  • 修改或丢弃数据包

在这里插入图片描述


总结

以上就是ARP的具体过程和ARP欺骗的知识总结

在这里插入图片描述

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

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

相关文章

AI大模型的广泛应用时代该如何重塑软件开发流程?

成长路上不孤单😊😊😊😊😊😊 【14后😊///C爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于AI大模型如何重塑软件开发流程的相关内容…

影响神经网络速度的因素- FLOPs、MAC、并行度以及计算平台

影响神经网络速度的四个主要因素分别是 FLOPs(浮点操作数)、MAC(内存访问成本)、并行度以及计算平台。这些因素共同作用,直接影响到神经网络的计算速度和资源需求。 1. FLOPs(Floating Point Operations&a…

springboot基于SpringBoot的旅游网站的设计与实现

摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势,旅游网站当然也不能排除在外,随着旅游网站的不断成熟,它彻底改变了过去传统的旅游网站方式,不仅使旅游管理…

2.2 python数据库-mysql

以mysql为例,数据库的操作包括:连接、断开、新增库表、新增数据、查询数据、删除数据和修改数据 1. 连接与关闭 #!/usr/bin/python3import pymysqldb pymysql.connect(hostlocalhost,usertestuser,passwordtest123,databaseTESTDB)# 使用 cursor() 方…

微信小程序的汽车维修预约管理系统

文章目录 项目介绍具体实现截图技术介绍mvc设计模式小程序框架以及目录结构介绍错误处理和异常处理java类核心代码部分展示详细视频演示源码获取 项目介绍 系统功能简述 前台用于实现用户在页面上的各种操作,同时在个人中心显示各种操作所产生的记录:后…

Python | Leetcode Python题解之第540题有序数组中的单一元素

题目&#xff1a; 题解&#xff1a; class Solution:def singleNonDuplicate(self, nums: List[int]) -> int:low, high 0, len(nums) - 1while low < high:mid (low high) // 2mid - mid & 1if nums[mid] nums[mid 1]:low mid 2else:high midreturn nums[l…

7.2 设计模式

设计模式 7.3.1 设计模式的要素7.3.2 创建型设计模式7.3.3 结构性设计模式1. Adapter (适配器)2. Bridge(桥接)3.Composite(组合)4.Decorator(装饰)5.Facade(外观)6.Flyweight(享元)7.Proxy(代理)8. 结构型模式比较 7.3.4 行为型设计模式1 Chain of Responsibility [ &#xff…

使用ffmpeg播放rtsp视频流

获取IPC摄像机视频流一般使用GB28181或者RTSP协议&#xff0c;这两款协议是比较常见的&#xff1b;两者都有开源的库&#xff0c;下面介绍如何使用RTSP获取进行IPC视频流&#xff1b; 准备库 ffmepg是个开源的库,该库集成了rtsp协议&#xff0c;可以直接使用&#xff1b;首先…

python之数据结构与算法(数据结构篇)-- 队列

一、队列的概念 1.“队列”这个概念&#xff0c;其实可能我们在进行排队的时候是差不多的。 2.例如&#xff0c;在结账时&#xff0c;顾客按照到达顺序排队等待付款&#xff0c;这是现实生活中的一个队列示例。同样地&#xff0c;在计算机程序中&#xff0c;当多个任务需要按顺…

网卡多队列介绍

一、多队列网卡 1.1 什么是多队列网卡 多队列网卡&#xff08;Multi-Queue NIC&#xff09;支持将网络流量分发到多个处理队列中&#xff0c;以提高系统的网络处理性能和吞吐量。传统上&#xff0c;单队列网卡只有一个硬件队列用于处理所有的输入和输出流量&#xff0c;这可能…

文本语义分块、RAG 系统的分块难题:小型语言模型如何找到最佳断点?

文本语义分块、RAG 系统的分块难题&#xff1a;小型语言模型如何找到最佳断点&#xff1f; 转自jina最新的关于文本语义分块的分享和模型 之前我们聊过 RAG 里文档分块 (Chunking) 的挑战&#xff0c;也介绍了 迟分 (Late Chunking) 的概念&#xff0c;它可以在向量化的时候减…

linux 安装php扩展:xlswriter

这里以xlswriter扩展为例 进入官方扩展&#xff1a;https://pecl.php.net查询自己php对应版本的扩展包 下载扩展 wget https://pecl.php.net/get/xlswriter-1.5.5.tgz 解压扩展 tar -zxvf xlswriter-1.5.5.tgz 进入扩展目录 cd xlswriter-1.5.5 查找对应php版本的phpiz…

IPC原理

消息队列 什么是消息队列 消息队列接口 msgget msgctl ipcs -p msgsnd msgrcv code示例 发送到消息队列&#xff1a; #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h> #include…

成为编程高手 day16

今天在学结构体 网上说可以用点号找到对应的地方&#xff0c;但是发现不可以&#xff0c;后来上网查资料 vs里面需要把cpp改成c才可以 我爱说实话&#xff0c;这玩意咋这么长。

U8C表体存货或编码相关的字段赋值不上

涉及到表体有存货相关字段的单据&#xff0c;如果更改源码或者客开的时候使用VO赋值&#xff0c;跟代码VO的存货字段有值&#xff0c;但是在前台不显示有值&#xff0c;或者说在前台显示没有值。 需要你在使用this.getBillCardPanel().setBillValueVO(oldVO);或者ui.getBillCa…

实战攻略 | ClickHouse优化之FINAL查询加速

【本文作者&#xff1a;擎创科技资深研发 禹鼎侯】 查询时为什么要加FINAL 我们在使用ClickHouse存储数据时&#xff0c;通常会有一些去重的需求&#xff0c;这时候我们可以使用ReplacingMergeTree引擎。这个引擎允许你存储重复数据&#xff0c;但是在merge的时候会根据order …

albert模型实现微信公众号虚假新闻分类

项目源码获取方式见文章末尾&#xff01; 600多个深度学习项目资料&#xff0c;快来加入社群一起学习吧。 《------往期经典推荐------》 项目名称 1.【基于CNN-RNN的影像报告生成】 2.【卫星图像道路检测DeepLabV3Plus模型】 3.【GAN模型实现二次元头像生成】 4.【CNN模型实现…

nginx系列--(一)--调试环境搭建

辅助脚本&#xff1a; #!/bin/bash mkdir -p $(pwd)/nginxhome # 生成 Makefile,--prefix need a absolute path --with-stream表示要包括stream模块 auto/configure --prefix$(pwd)/nginxhome --with-stream # lsof -i tcp:10086 && fuser -k 10086/tcp ||true # 定…

Flutter开发者必备面试问题与答案06

Flutter开发者必备面试问题与答案06 视频 https://youtu.be/a1NAfSQrpIg https://www.bilibili.com/video/BV1g71KYREBN/ 前言 原文 Flutter 完整面试问题及答案06 本文是 flutter 面试问题的第六讲。 正文 51. 定义什么是 App State &#xff1f; 在 Flutter 中&#xf…

ElasticSearch学习篇16_《检索技术核心20讲》进阶篇之空间检索

背景 学习极客实践课程《检索技术核心20讲》https://time.geekbang.org/column/article/215243&#xff0c;文档形式记录笔记。 相关问题&#xff1a; 查询范围固定的需求 直接计算两点之间距离区域二进制编码GeoHash编码 查询范围不固定的需求 GeoHash编码索引结构设计 基于…