数通王国历险记之地址分析协议(ARP)

news2024/11/17 8:31:11

系列文章目录
数通王国历险记(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地址解析协议,数通王国的第四个关卡,后面还有很多的关卡,数通王国还有很多宝藏等着你去探险,加油!只为成为更好的自己。

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

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

相关文章

线程池ThreadPoolExecutor详解以及多种线程池的实现

1、线程池状态含义 ThreadPoolExecutor 使用 int 的高 3 位来表示线程池状态,低 29 位表示线程数量,之所以将信息存储在一个变量中,是为了保证原子性。 具体的高三位与线程池状态如下,引用自网课的图片: 2、构…

【数据库编程】最新版MySQL的JDBC编程(图文演示)

数据库系列文章 1. 零基础带你快速上手SQL语言 2. 玩转表及其数据 3. 上手表设计 4. 索引和事务 5. 最新版MySQL的JDBC编程 文章目录 前言1. 数据库编程的必备条件2. Java的JDBC编程3. JDBC工作原理3.1 数据库驱动包从哪里来 4. JDBC编程4.1 创建 Java 项目4.2 导入数据库驱动包…

使用wkhtmltopdf实现HTML转PDF

wkhtmltopdf注意事项 1.webkit内核的,所以建议使用之前用谷歌浏览器开发好网页 2.目前这个插件不再更新,所以内核老旧,只支持ES5的代码,所以ES6及以上的代码统统不支持,还有字符串拼接的 符号也不能使用&#xff0c…

JMeter录制HTTPS脚本解决办法

目录 前言: 背景 解决方法 前言: 在使用JMeter录制HTTPS脚本时,可能会遇到一些问题,例如SSL证书错误或请求失败等。解决这些问题的一种常见的方法是通过安装并信任服务器的SSL证书来解决。 背景 在对某项目进行脚本录制的时…

银河麒麟服务器v10 sp1 部署 Net6.0 项目

上一篇已经部署了Net6.0环境,本节将实现Net6.0程序部署,打开或新建项目,修改appsettings.json配置: 添加:"urls": "http://*:8061",//linux部署使用,端口可根据需求修改为自己的 在项…

快速幂与64位整数乘法(位运算)

矩阵快速幂和64位整数乘法 矩阵快速幂64位整数乘法 矩阵快速幂 问题链接: AcWing 90. 64位整数乘法 问题描述: 分析 快速幂需要用到位运算的思想,求 a b a^b ab,我们将 b b b转换成二进制的形式,假设 b 7 b7 b7&…

GB50254-2014电气装置安装工程低压电器施工及验收规范

为保证低压电器的安装质量,促进施工安装技术进步,确保设备安装后的安全运行,制定本规范。 本规范适用于交流 50Hz或60Hz额定电压为 1000V 及以下,直流额定电压为 1500V 及以下通用低压电器的安装与验收。不适用于: 1、无需固定安装的家用电器、电工仪器…

数据结构第一章 绪论——走进数据的世界

名人说:唯一可以确定的是,明天会使我们所有人大吃一惊。——阿尔文托夫勒 本篇笔记整理:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) ✔ 课件资料及视频课程学习:王道 数据结构&#xff08…

哪家好用?四款国内外远程桌面软件横测:ToDesk、向日葵、TeamViewer、AnyDesk

一、前言 远程桌面软件对于职场人来说并不陌生,可以说是必备的办公软件之一。在经历过新冠疫情后,大家对于远程办公的认识越来越深入,也就在这段期间,远程桌面软件大范围的应用起来,真正走进大众视野并融入我们的工作和…

探索RabbitMQ的特色功能:释放RabbitMQ尖端特性的潜力

d1、简介 RabbitMQ 是一个功能强大的开源消息中间件,采用 AMQP(Advanced Message Queuing Protocol)协议来实现可靠的消息传递。它提供了可靠性、灵活性和可扩展性,被广泛应用于分布式系统、微服务架构和异步通信等场景。本文将介…

前台-GoEasy即时通讯

1.先去GoEasy官网下载源码 第一步 App.vue <script setup lang"ts">import { watch, ref, markRaw, reactive, nextTick, provide, InjectionKey } from vueimport headerIndex from /Layout/header/headerIndex.vueimport purchaseHeaderBig from /Layout/hea…

OpenCV(Mat类)

目录 1、什么是Mat类 2、Mat类组成 3、Mat类能存储的数据类型 4.Mat类的创建 4.1 利用矩阵宽、高和类型参数创建 4.2 利用矩阵Size()结构和数据类型参数来创建 4.3 利用已有Mat类来创建 5、Mat类的赋值 5.1 创建时赋值 5.2 类方法赋值 5.3 枚举赋值 6、Mat类数据的读取 …

【Linux】Redis 集群部署

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 Redis 集群部署 Redis 主从复制主从复制的作用主从复制的流程搭建Redis 主从复制安装 Redis修改 Redis 配置文件&#xff08;Master节点操作&#xff09;修改 Redis 配置文件…

基于redhat发行版mysql8.0的卸载与重装mysql5.7

文章目录 一、软件的选择与下载二、卸载mysql8.01.查看my.cnf中的部署信息2.卸载mysql8.03.卸载完毕安装包后删除相关数据 三、mysql5.7的安装1.解压安装包2.初始化mysql数据库3.修改root密码 四、安装mysql5.7客户端附&#xff1a;创建数据库以及用户 本次案例是卸载mysql8.0然…

Michael.W基于Foundry精读Openzeppelin第1期——Address.sol

Michael.W基于Foundry精读Openzeppelin第1期——Address.sol 0. 版本0.1 Address.sol 1. 目标合约2. 代码精读2.1 isContract(address)2.2 sendValue(address, uint256)2.3 functionCall(address, bytes memory) && functionCall( address, bytes memory, string memor…

JavaSE基础(上)

目录 第一章 java入门 环境配置 常用cmd命令 打开cmd 安装JDK&#xff1a;Java工具包 IDEA 1 IDEA概述&#xff08;1&#xff09;IDEA概述&#xff1a;IDEA全称IntelliJ IDEA&#xff0c;是用于Java语言开发的集成环境&#xff0c;是业界公认的目前用于Java程序开发最…

ABeam News | 乘云而上,扬帆起航——ABeam Consulting 2023 RISE+BTP私享会圆满落幕

当今中国&#xff0c;数字经济大潮风起云涌&#xff0c;数字化转型已经成为企业发展的“必修课”。对于企业来说&#xff0c;如何在数字化浪潮中奋楫扬帆&#xff0c;借助技术和管理手段助力企业“提质、降本、增效”&#xff0c;成为发展中所亟待解决的问题。 6月1日&#xf…

LED显示屏四大连接方式

LED显示屏的四大连接方式是数据连接、电源连接、信号输入连接和控制系统连接。以下是对每种连接方式的详细说明&#xff1a; 1,数据连接&#xff1a; 数据连接用于传输显示内容的数据信号到LED显示屏。常见的数据连接方式包括&#xff1a; 串行连接&#xff08;Serial Connecti…

离开Kubernetes也能玩转Dapr

Dapr 被设计成一个面向开发者的企业级微服务编程平台&#xff0c;它独立于具体的技术平台&#xff0c;可以运行在“任何地方”。Dapr本身并不提供“基础设施&#xff08;infrastructure&#xff09;”&#xff0c;而是利用自身的扩展来适配具体的部署环境。就目前的状态来说&am…

nacos身份认证绕过漏洞

1.影响范围 Nacos < 2.0.0-ALPHA.1 2.验证漏洞是否存在 http://example/nacos/v1/auth/users/?pageNo1&pageSize5 如果列出了用户名密码,即证明此漏洞存在 3.向系统中添加一个新的用户 http://example/nacos/v1/auth/users/?usernamesectest&passwordsectest…