当前位置: 首页 > news >正文

ARP协议(地址分析协议)

系列文章目录
数通王国历险记(4)


目录

前言

一,什么是地址解析协议(ARP)

 二,封装和解封装

三,为什么需要地址解析协议(ARP)

 四,ARP的验证实验

4.1,先创建拓扑结构:

4.2,配置PC1和路由器

4.3,我们先开始进行抓包

4.4,抓包结果

4.5,总结ARP协议

五,ARP的工作原理

5.1

 5.2

5.3

5.4

总结


前言

随着华为公司的不断发展,数据通信这门技术也越来越重要,很多人都开启了数据通信学习,本文就介绍了地址分析协议(ARP),是我们通过数通王国的第四站(我们在文章中使用的是华为的ENSP软件)。


一,什么是地址解析协议(ARP)

 二,封装和解封装

因为我们发出的数据包它是要进行封装的,什么叫做封装呢?

不同层里面出现的这种数据要以每层可以识别的这种格式出现

举个例子:

既假如说你在网络层,你就必须是ip地址,以数据包的形式出现

如果你是物理层,你就老老实实的以比特流的身份出现、

如果你在物理层出现的一个端口号,物理层就直接不好意思直接丢弃,因为物理层就根本无法识别什么是端口号,只能识别比特流,端口号是传输层所能做的

为什么需要封装,因为我们后面讲通信原理的时候,经常会用到一个封装和解封装:其实就是为了在每一层里面可以以正确的本层能识别和处理的格式出现

所以我们需要封装,解封装就是把你不能识别的,其他层的这些格式去掉,换成我们能识别的本层的一个协议,进行处理,所以为什么需要封装和解封装的原因。

三,为什么需要地址解析协议(ARP)

因为在我们已知ip地址解析,我们进行封装的时候,三层分装完就要进行二层封装,因为是从应用层开始封装的,到了这个数据链路层的时候,我们没有办法知道所要访问的目标ip对应的MAC地址是什么?所以我们没有办法进行ARP解析,没有办法进行数据链路层的一个封装,所以这个时候我要请求一个ARP协议报文,根据我访问的这个目标ip去请求对方的这个地址对应的MAC地址。

主机a主动去请求主机b发送了一个广播报文,arp是一种广播报文,去请求192.168.1.2/24这个ip所对应的这个终端的mac地址是多少?所以这个终端在相同的广播域里面会收到这个报文,192.168.1.2/24收到之后他会给192.168.1.1/24进行回应,返回一个ARP的广播报文,说明自己的mac地址,给他回复,所以这个时候主机a就清楚了,在进行数据链路层封装的时候,就会把源MAC地址和目标MAC地址进而完成数据的封装,把数据发送出去。

所以为什么需要ARP解析:

因为数据的转发需要进行封装和解封装,当封装到第二层的时候,由于第一次通信

设备没有办法获知目标ip对应的MAC地址,所以需要借助ARP协议请求目标IP地址对应的MAC地址:

 四,ARP的验证实验

因为数据转发需要进行封装和解封装,当封装到第二层时候,由于第一次通信,设备没法获知目标IP对应的MAC地址,所以需要借助ARP协议请求目标IP地址对应的MAC地址。

4.1,先创建拓扑结构:

4.2,配置PC1和路由器

我们知道对方的ip地址,但是不知道对方的MAC地址

先配置设备地址

4.3,我们先开始进行抓包

然后ping一下我们才能看到ARP协议的具体。

 

4.4,抓包结果

查看我们的抓包的结果 

 我们对抓包的数据进行解析:

这是我们抓包看到的结果可以看到arp协议的工作:因为在里面的通信肯定是使用了封装和解封装,所以我们也可以抓到这个报文,可以看出arp是一个广播报文,报文格式是什么?它是一种arp报文,并且它们的一种广播的报文,它问谁是10.1.1.254告诉10.1.1.1

然后10.1.1.254就把自己mac地址告诉了对方

4.5,总结ARP协议

总结arp协议:就是已知对方的三层地址但是没法知道对方三层ip对应的的MAC地址

所以无法知道数据链路层的封装,所以需要讲arp的协议以广播的报文形式发送出去寻求对方的对应的ip的地址所在的mac地址才能够顺利的完成数据的封装完成通信。

ARP协议的作用:就是已知目标ip,请求对应的Mac地址(三层转二层)

五,ARP的工作原理

5.1

我们还要刚才实验拓扑

 看pc1当中的mac地址表

 查看路由器当中的mac路由器地址表的存在时间

 5.2

 发送一个arp请求,目标地址为全f的arp的请求报文,称之为arp的请求报文

5.3

对方也能收到,因为它是一种广播包,才开解封装,发现找的就是我的解封装地址,所以我就会以单播的形式,以自己的mac地址

给对方进行回复,所以我们的主机1就得到了主机2的mac地址

5.4

 最后完成封装,完成通信。


总结

恭喜你,你通过本章的学习ARP地址解析协议,数通王国的第四个关卡,后面还有很多的关卡,数通王国还有很多宝藏等着你去探险,加油!只为成为更好的自己。

相关文章:

ARP协议(地址分析协议)

系列文章目录 数通王国历险记(4) 目录 前言 一,什么是地址解析协议(ARP) 二,封装和解封装 三,为什么需要地址解析协议(ARP) 四,ARP的验证实验 4.1&#x…...

c# websocket client java websocket server

实现功能:c# websocket 客户端 连接 java websocket 服务端 一,c# websocket 客户端 nuget websocketsharp-netstandard Program.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threadi…...

【玩转循环】探索Python中的无限可能性

前言 循环可能是每个编程语言中使用比较多的语法了,如果能合理利用好循环,就会出现意想不到的结果,大大地减少代码量,让机器做那些简单枯燥的循环过程,今天我将为大家分享 python 中的循环语法使用。🚗&am…...

网安学习经历小记

明明自觉学会了不少知识,可真正开始做题时,却还是出现了“一支笔,一双手,一道力扣(Leetcode)做一宿”的窘境?你是否也有过这样的经历,题型不算很难,看题解也能弄明白&…...

MyBatis之慎用association

这里先总结一下 association 存在的问题。 一、内嵌查询时存在报错Id找不到及内存溢出隐患 二、一对多关系数据重复问题 三、多层嵌套内层 association 查询结果为null 或 非预期的值 一、内嵌查询时存在报错Id找不到及内存溢出隐患 参考: https://www.lmlphp.co…...

【Java/大数据】Kafka简介

Kafka简介 Kafka概念关键功能应用场景 Kafka的原理Kafka 的消息模型早期的队列模型发布-订阅模型Producer、Consumer、Broker、Topic、PartitionPartitionoffsetISR Consumer Groupleader选举Controller leaderPartition leader producer 的写入流程 多副本机制replicas的同步时…...

【动手学深度学习】读写文件

【动手学深度学习】读写文件 加载和保存张量 对于单个张量 我么可以直接调用load和save函数分别读写,这两个函数要求我们提供一个名称,save要求保存的变量作为输入 import torch from torch import nn from torch.nn import functional as F# 创建一个…...

http-server 的安装与使用

文章目录 问题背景http-server简介安装nodejs安装http-server开启http服务http-server参数 问题背景 打开一个文档默认使用file协议打开,不能发送ajax请求,只能使用http协议才能请求资源,所以此时我们需要在本地建立一个http服务&#xff0c…...

SQL高级教程

SQL TOP 子句 TOP 子句 TOP 子句用于规定要返回的记录的数目。 对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。 注释:并非所有的数据库系统都支持 TOP 子句。 SQL Server 的语法: SELECT TOP number|percent column_name(s) F…...

9.pixi.js编写的塔防游戏(类似保卫萝卜)-群炮弹发射逻辑

游戏说明 一个用pixi.js编写的h5塔防游戏,可以用electron打包为exe,支持移动端,也可以用webview控件打包为app在移动端使用 环境说明 cnpm6.2.0 npm6.14.13 node12.22.7 npminstall3.28.0 yarn1.22.10 npm config list electron_mirr…...

分布式链路追踪

文章目录 1、背景2、微服务架构下的问题3、链路追踪4、核心概念5、技术选型对比6、zipkin 1、背景 随着互联网业务快速扩展,软件架构也日益变得复杂,为了适应海量用户高并发请求,系统中越来越多的组件开始走向分布式化,如单体架构…...

计算机网络————网络层

文章目录 网络层设计思路IP地址IP地址分类IP地址与硬件地址 协议ARP和RARPIP划分子网和构造超网划分子网构造超网(无分类编址CIDR) ICMP 虚拟专用网VPN和网络地址转换NATVPNNAT 网络层设计思路 网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数…...

el-table刷新后保持高亮并改变状态字段

一、需求&#xff1a; 1、点击左侧右边显示具体内容 2、点击右边确认 左侧依旧高亮并且改变启动状态颜色 3、点击刷新、重置、高级搜索等不高亮 右边也不显示具体内容 二、效果图&#xff1a; 三、具体实施 1、定义highlight-current-row 是否高亮行 <el-table ref&quo…...

ARM Ubuntu内核更新记录

1&#xff0c;系统版本说明&#xff1a;ARM 鲲鹏920 cat /etc/lsb-release DISTRIB_IDUbuntu DISTRIB_RELEASE18.04 DISTRIB_CODENAMEbionic DISTRIB_DESCRIPTION"Ubuntu 18.04.5 LTS" 2&#xff0c; 将source.list中的deb-src打开 # 默认注释了源码镜像以提高 apt…...

【sgUploadTray】上传托盘自定义组件,可实时查看上传列表进度

【sgUploadTray】上传托盘自定义组件&#xff0c;可实时查看上传列表进度 特性&#xff1a; 可以全屏可以还原尺寸可以最小化可以回到右下角默认位置支持删除队列数据 sgUploadTray源码 <template><div :class"$options.name" :show"show" :size…...

改进二进制粒子群算法在配电网重构中的应用(Matlab实现)【论文复现】

目录 ​ 0 概述 1 配电网重构的目标函数 2 算例 3 matlab代码实现 0 概述 配电系统中存在大量的分段开关和联络开关&#xff0c;配电网重构正是通过调整分段开关和联络升大的组合状态来变换网络结构,用于优化配电网某些指标&#xff0c;使其达到最优状态。正常运行时,则通…...

【文章系列解读】Nerf

1. Nerf NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 2020年8月3日 &#xff08;0&#xff09;总结 NeRF工作的过程可以分成两部分&#xff1a;三维重建和渲染。&#xff08;1&#xff09;三维重建部分本质上是一个2D到3D的建模过程&#xff…...

基于springboot,vue网上订餐系统

开发工具&#xff1a;IDEA 服务器&#xff1a;Tomcat9.0&#xff0c; jdk1.8 项目构建&#xff1a;maven 数据库&#xff1a;mysql5.7 前端技术 &#xff1a;VueElementUI 服务端技术&#xff1a;springbootmybatisredis 本系统分用户前台和管理后台两部分&#xff0c;项…...

Nautilus Chain 更换全新测试网,主网即将在不久上线

目前&#xff0c;Nautilus Chain 正在为主网上线前的最后阶段做准备&#xff0c;据悉该链更新了全新的测试网&#xff0c;在此前版本的测试网的基础上进行了全新的技术升级&#xff0c;最新测试网版本与生态发展的技术规划更为贴近。本次测试网升级将会是最后一次测试网版本的迭…...

攻防世界web:Web_php_wrong_nginx_config,python3后门

网上的wp中关于Web_php_wrong_nginx_config的后门代码都是python2的&#xff08;源码来自&#xff1a;Weevely&#xff1a;一个 PHP 混淆后门的代码分析 - Phukers Blog&#xff09; 以下是转换成python3的版本 # encoding: utf-8from random import randint, choice from ha…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

Linux系统部署KES

1、安装准备 1.版本说明V008R006C009B0014 V008&#xff1a;是version产品的大版本。 R006&#xff1a;是release产品特性版本。 C009&#xff1a;是通用版 B0014&#xff1a;是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存&#xff1a;1GB 以上 硬盘&#xf…...

Python 高效图像帧提取与视频编码:实战指南

Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...