ping包过程之arp(地址解析协议)

news2024/11/28 4:26:35

0,怎么引出arp地址解析协议的呢?

在硬件层次上进行的数据帧交换必须有正确的接口地址既是MAC地址)。但是, T C P / I P有自己的地址: 32 bitI P地址。知道主机的 I P地址并不能让内核发送一帧数据给主机。内核(如以太网驱动程序)必须知道目的端的硬件地址MAC地址)才能发送数据。 A R P的功能是在32 bitI P地址和采用不同网络技术的硬件地址之间提供动态映射,既是通过相应的IP地址找到相应的MAC地址。

1,场景描述:

设备R1: ip 10.10.10.1

[Huawei] ip address 10.10.10.1 255.255.255.0

[Huawei]display arp
IP ADDRESS      MAC ADDRESS     EXPIRE(M) TYPE        INTERFACE   VPN-INSTANCE 
                                          VLAN/CEVLAN PVC                      
------------------------------------------------------------------------------
10.10.10.1      5489-98c2-7867            I -         Eth0/0/0
10.10.10.2      5489-9811-5cbb  9         D-0         Eth0/0/0
------------------------------------------------------------------------------
Total:2         Dynamic:1       Static:0     Interface:1  

设备R2: ip 10.10.10.2

<Huawei>system-view     

[Huawei] ip address 10.10.10.2 255.255.255.0

[Huawei]  ping 10.10.10.1

  PING 10.10.10.1: 56  data bytes, press CTRL_C to break
    Reply from 10.10.10.1: bytes=56 Sequence=1 ttl=255 time=1 ms
    Reply from 10.10.10.1: bytes=56 Sequence=2 ttl=255 time=1 ms
    Reply from 10.10.10.1: bytes=56 Sequence=3 ttl=255 time=1 ms
    Reply from 10.10.10.1: bytes=56 Sequence=4 ttl=255 time=1 ms
    Reply from 10.10.10.1: bytes=56 Sequence=5 ttl=255 time=20 ms

  --- 10.10.10.1 ping statistics ---
    5 packet(s) transmitted
    5 packet(s) received
    0.00% packet loss
    round-trip min/avg/max = 1/4/20 ms

[Huawei]display arp
IP ADDRESS      MAC ADDRESS     EXPIRE(M) TYPE        INTERFACE   VPN-INSTANCE 
                                          VLAN/CEVLAN PVC                      
------------------------------------------------------------------------------
10.10.10.2      5489-9811-5cbb            I -         Eth0/0/0
10.10.10.1      5489-98c2-7867  7         D-0         Eth0/0/0
------------------------------------------------------------------------------
Total:2         Dynamic:1       Static:0     Interface:1 

2,ARP的分组格式结构 

两个字节长的以太网帧类型表示后面数据的类型。对于 A R P请求或应答来说,该字段的值为0 x 0 8 0 6 

操作字段指出四种操作类型,它们是 A R P请求(值为1)、 A R P应答(值为 2)、 R A R P请求(值为3)和R A R P应答(值为4

arp报文数据结构: 

定义以太网arp字段
typedef struct arphdr
{
//arp首部
unsigned short arp_hrd;    /* format of hardware address */
unsigned short arp_pro;    /* format of protocol address */
unsigned char arp_hln;    /* length of hardware address */
unsigned char arp_pln;    /* length of protocol address */
unsigned short arp_op;     /* ARP/RARP operation */

unsigned char arp_sha[6];    /* sender hardware address */
unsigned long arp_spa;    /* sender protocol address */
unsigned char arp_tha[6];    /* target hardware address */
unsigned long arp_tpa;    /* target protocol address */
}ARPHDR;

3,四种常用的表简介:

(1)mac地址表:简单的说,MAC地址表是交换机等网络设备记录MAC地址和端口的映射关系(见下图),代表了交换机从哪个端口学习到了某个MAC地址,交换机把这个信息记录下来,后续交换机需要转发数据的时候就可以根据报文的目的MAC地址去根据MAC地址表转发数据。

Port

Mac-address

Port-vlan

type

Ethernet0/0/0(10.10.10.1)

00-1a-b6-33-44-01

dynamic

Ethernet0/0/0(10.10.10.2)

10-26-e6-bc-10-78

dynamic

(2)ARP表:简单的说,ARP表就是路由器等网络设备记录IP地址和MAC地址对应关系的表项。

        广播报文:目的地址全1(FF-FF-FF-FF-FF-FF).

        组播报文:目的地址第六字节的最低位为1(X1-XX-XX-XX-XX-XX).

        单播报文:除了上面两种之外 的报文.

        Mac地址学习:把未知mac地址转为arp表里面的已知地址。

        Mac地址老化:

Port

Mac-address

ip-adress

Port-vlan

type

Ethernet0/0/0(10.10.10.1)

00-1a-b6-33-44-01

10.10.10.1

dynamic

Ethernet0/0/0(10.10.10.2)

10-26-e6-bc-10-78

10.10.10.2

dynamic

   (3), 路由表(暂无,后续介绍)。

4,报文分析:

 流程分析:

设备1: ip 10.10.10.1     设备2: ip 10.10.10.2

当设备1 ping 设备2时,设备1发送arp request 报文,而且我们看到设备1发送的是广播报文,目的地址为FF-FF-FF-FF-FF-FF,此时我们给所有的用户发送报文(既是泛洪),当ip不为10.10.10.2的设备收到该报文时,因为发现目标ip不是发给自己的,所以他会丢掉该报文,而ip为10.10.10.2的设备2收到该报文时,发现对端是给自己发送报文的,他会将自己(设备2)和设备1的mac地址和ip保存在arp表项中(该过程称为mac地址学习),并且此时设备2同时会发送arp reply报文他此时已经知道了对端的ip+mac地址(通过arp表)。

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

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

相关文章

二十、Zipkin持久化链路跟踪

目录 Zipkin持久化 使用mysql数据库持久化 1、创建zipkin数据库 2、启动zipkin使用以下脚本 3、访问接口&#xff08;配置了sleuth链路跟踪&#xff09; 使用ElasticSearch持久化 zipkin启动脚本 Zipkin持久化 Zipkin server默认会将追踪数据信息保存在内存中&#xff0…

NoSQL之Redis配置与数据库常用命令

目录 一、关系型数据库与非关系型数据库概述1.1 关系型数据库1.2 非关系型数据库 二、关系型数据库与非关系型数据库的区别2.1 数据的存储方式不一样2.2 扩展的方式不同2.3 对事务性的支持不同 三、非关系型数据库产生背景四、Redis简介4.1 Redis的单线程模式4.2 Redis优点4.3 …

B2B 客户支持,如何做好?

多年来&#xff0c;基于尖端技术的现代和个性化客户体验一直主导着企业对消费者&#xff08;B2C&#xff09;领域。然而&#xff0c;在企业对企业&#xff08;B2B&#xff09;行业中&#xff0c;出色的客户体验变得比以往任何时候都更加重要。许多组织正在开发类似于B2C市场中个…

无延迟直播/超低延迟直播快速接入的示例

简要说明 接入无延迟直播/超低延迟直播播放前&#xff0c;需确保直播间频道是无延迟频道&#xff0c;SDK中使用无延迟与常规播放无异&#xff0c;只需加入若干配置就可以快速接入。 什么是无延迟/超低延迟直播&#xff0c;可参见我的这篇文章&#xff1a; 无延时直播/超低延时…

Java 基础进阶篇(十四)—— File类常用方法

File 类的对象代表操作系统的文件&#xff08;文件、文件夹&#xff09;&#xff0c;File 类在 java.io.File 包下。 File 类提供了诸如&#xff1a;创建文件对象代表文件&#xff0c;获取文件信息&#xff08;大小、修改时间&#xff09;、删除文件、创建文件&#xff08;文件…

【软件测试与质量保证】期末复习2(HITWH)(软件测试部分)

更多复习资料在下方链接获取&#xff1b;包括复习笔记&#xff08;有具体习题&#xff09;、习题答案以及设计题示例 链接&#xff1a;复习资料 复习笔记里的习题不包含答案&#xff0c;具体答案在【云班课答案】文件夹中&#xff0c;顺序都是一一对应的&#xff0c;喜欢刷题可…

进程间通信之管道篇

&#x1f3c6;一、进程间通信目的 1.1什么是通信 进程是具有独立性的&#xff0c;而我们要实现进程间通信的目标&#xff0c;是需要开辟空间和创造方法的。 通信目的&#xff1a; 1、数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程 2、资源共享&#xff1a;…

CSAPP 第六章存储器的结构层次

源程序 执行程序 空间代码都要存在外存上&#xff0c;程序运行的时候操作系统要把外存的东西加载到内存里&#xff0c;CPU要从内存一行一行的读、译码和分析 我们来看一个例子&#xff1a; 指令位于内存中的代码段中&#xff0c;必须从内存中读出来进行译码分析之后才能运行 指…

细说java动态代理及使用场景

一、定义 Java代理模式是一种结构型设计模式&#xff0c;它允许通过创建一个代理对象来间接访问另一个对象&#xff0c;从而控制对原始对象的访问。 1.1 作用 1、在访问原始对象时增加额外功能&#xff0c;如访问前或访问后添加一些额外的行为。 2、控制对原始对象的访问。 J…

热水智能控制系统有什么优点?

热水智能控制系统是一种先进的技术&#xff0c;可以极大地提高家庭和商业场所的热水使用效率&#xff0c;降低能源消耗和运营成本。这种系统利用现代化的传感器、控制器和通讯技术&#xff0c;可以智能地监测和控制热水的温度、流量和使用情况&#xff0c;并根据实际需求来调节…

ASEMI代理ADI亚德诺ADM706SARZ-REEL原厂芯片

编辑-Z ADM706SARZ-REEL参数描述&#xff1a; 型号&#xff1a;ADM706SARZ-REEL VCC工作电压范围&#xff1a;1.0-5.5V 电源电流&#xff1a;100μA 重置阈值滞后&#xff1a;20 mV 复位脉冲宽度&#xff1a;200 ms PFI输入阈值&#xff1a;1.25V PFI输入电流&#xff…

Linux 部署 scrapydweb

一、 创建虚拟环境&#xff0c;在虚拟环境下操作 1、安装scrapyd pip install scrapyd2、安装scrapyd-client pip install scrapyd-client3、安装scrapydweb pip install scrapydweb4、安装Logparser pip install Logparser二、新建一个scracyd的配置文件 sudo mkdir /etc/scr…

MySql.Data.dll 因版本问题造成报错的处理

NetCore 链接MySQL 报 Character set ‘utf8mb3‘ is not supported by .Net Framework 异常解决_character set utf8mb3_csdn_aspnet的博客-CSDN博客 查看mysql版本号&#xff0c;两种办法&#xff1a; 第一种在数据库中执行查询&#xff1a;SELECT version; 第二种使用工具…

数据治理和合规性:如何确保大数据应用遵守法规和标准

第一章&#xff1a;引言 在数字时代&#xff0c;大数据的应用日益普遍&#xff0c;对企业和组织的决策、运营和创新产生了深远的影响。然而&#xff0c;随着数据规模的不断增长&#xff0c;以及数据泄露和滥用事件的频繁发生&#xff0c;数据治理和合规性问题愈发突显。企业和…

推荐系统用户长序列建模

目录 一、背景 二、技术方案 2.1 DIN 简介 论文细节 优缺点 2.2 DINE 简介 论文细节 2.3 MIMN 简介 论文细节 2.4 SIM 简介 论文细节 优缺点 2.5 DSIN 简介 论文细节 一、背景 阿里巴巴的精排模型从传统lr&#xff0c;到深度学习&#xff0c;再到对用户长历…

使用云服务器可以做什么?十大使用场景举例说明

使用阿里云服务器可以做什么&#xff1f;阿里云百科分享使用阿里云服务器常用的十大使用场景&#xff0c;说是十大场景实际上用途有很多&#xff0c;阿里云百科分享常见的云服务器使用场景&#xff0c;如本地搭建ChatGPT、个人网站或博客、运维测试、学习Linux、跑Python、小程…

6年测试,不断磨炼升级打怪自动化测试,一路晋升他终于冲出月35k+

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Python自动化测试&…

ViT 论文逐段精读

https://www.bilibili.com/video/BV15P4y137jb Vision Transformer 挑战了 CNN 在 CV 中绝对的统治地位。Vision Transformer 得出的结论是如果在足够多的数据上做预训练&#xff0c;在不依赖 CNN 的基础上&#xff0c;直接用自然语言上的 Transformer 也能 CV 问题解决得很好…

如何学习web前端开发?这样学前端事半功倍,能救一个是一个!

非常理解想要自学前端的伙伴&#xff0c;因为好程序员的学员一开始也是自学插画的&#xff0c;很多同学&#xff0c;自学到最后真的非常枯燥乏味&#xff0c;且走了很多弯路。小源想着能帮一把是一把的原则&#xff0c;这两天整理了一份前端的高效学习路线&#xff0c;想学web前…

接口测试常用工具及测试方法(基础篇)

首先&#xff0c;什么是接口呢&#xff1f; 接口一般来说有两种&#xff0c;一种是程序内部的接口&#xff0c;一种是系统对外的接口。 系统对外的接口&#xff1a;比如你要从别的网站或服务器上获取资源或信息&#xff0c;别人肯定不会把数据库共享给你&#xff0c;他只能给…