ARP协议的工作原理

文章目录

  • ARP协议的工作原理
    • ARP报文(以太网)
    • ARP高速缓存

ARP协议的工作原理

ARP协议的作用是实现任意网络层地址到任意物理地址转换。工作原理是:

  • 主机向自己所在网络广播一个ARP请求,该请求包含目标机器的网络地址。
  • 处于该网络的其他所有机器都将收到这个ARP请求,但是只有被请求的目标机器回应。
  • 此时,目标机器发送一个ARP应答(包含自己的物理地址)。

ARP报文(以太网)

# ARP请求与应答报文格式
| 硬件类型 | 协议类型 | 硬件地址长度 | 协议地址长度 |   操作    | 发送端以太网地址 | 发送端IP地址 | 目的端以太网地址 | 目的端IP地址 |2字节     2字节       1字节          1字节        2字节            6字节         4字节             6字节           4字节

各字段具体释义

  • 硬件类型:定义物理地址类型,1表示为Mac地址。
  • 协议类型:要映射的协议地址类型,0x800表示为IP地址。
  • 硬件地址长度:Mac地址的长度为6。
  • 协议地址长度:IPv4地址的长度为4。
  • 操作:4种类型,ARP请求(值为1)、ARP应答(值为2)、RARP请求(值为3)、RARP应答(值为4)
  • 其余字段表示指定通信双方的以太网地址和IP地址,发送端填充除目的端以太网地址外的三个字段,构建ARP请求发送。
  • 接收端发现ARP请求中目的端IP地址是自己的,就将自己的以太网地址填进去,然后交换两个目的端地址和两个发送端地址,构建ARP应答返回。(操作字段设置为2)

ARP报文的长度计算

# 报文长度  28字节
| 硬件类型 | 协议类型 | 硬件地址长度 | 协议地址长度 |   操作    | 发送端以太网地址 | 发送端IP地址 | 目的端以太网地址 | 目的端IP地址 |2字节  +   2字节  +   1字节    +     1字节     +   2字节     +     6字节     +    4字节    +       6字节     +      4字节    =    28字节# 携带ARP报文的以太网帧
报文长度(28) + 帧首尾(18) = 46字节# 部分要求以太网帧数据长度至少为46,故而有填充字节,即:
46 + 帧首尾(18) = 64字节

ARP高速缓存

ARP会维护一个高速缓存,其中包含经常访问(比如网关地址)或最近访问机器的IP地址到物理地址的映射。(避免重复ARP请求,提升发包速度)

注意:

  • ARP请求与应答是从以太网驱动程序发出的。

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

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

相关文章

【小知识酷】《Matlab》考点精简

在线编译器 https://matlab.mathworks.com/?elqsidumic49viv8wu5r6fckew 第1章 matlab基础知识 第1节 输出函数 1. 使用disp函数 disp函数可用于输出变量的值或者字符串。 % 输出字符串 disp(Hello, MATLAB!); %显示Hello, MATLAB!% 输出变量 x 10; disp(x); %显示10% 输出数…

码蹄集——中庸之道(三个数比较)

MT1112 中庸之道 请编写一个简单程序,输入3个整数,比较他们的大小,输出中间的那个数 格式 输入格式: 输入整型,空格分隔 输出格式:输出整型 样例 1 输入:1 5 3 输出:3 比较…

快速搭建一个vue前端工程

一、环境准备 1、安装node.js 下载地址:Node.js 推荐版本如下: 2、检查node.js版本 node -v npm -v 二、安装Vue脚手架 Vue脚手架是Vue官方提供的标准化开发工具。vue官网:https://cn.vuejs.org/ 全局安装vue/cli (仅第一次…

React Native基础环境配置

React Native基础环境配置 1.引言2.React-Native简介3.项目基础环境搭建1.引言 感觉自己掌握的知识面还是有点太窄了,于是决定看看移动端的框架,搞个react搭一个后端管理项目,然后拿react-native写个小的软件,试着找个三方上架一下应用市场玩玩。毕竟不可能一直在简历上挂一…

PHP和Composer 安装

Composer 是 PHP 的 依赖管理工具,就像: Node.js 用 npm Python 用 pip Java 用 maven 用来安装和管理 PHP 项目中需要用到的第三方库 安装PHP可以理解成 Java解释器 安装PHP PHP For Windows: Binaries and sources Releaseshttps://windows.php.n…

API请求参数有哪些?

通用参数 app_key:应用的唯一标识,用于验证应用身份,调用API时必须提供。 timestamp:请求时间戳,通常为当前时间的毫秒级时间戳,用于防止请求被重放攻击。 format:返回数据的格式,…

并发笔记-条件变量(三)

文章目录 背景与动机30.1 条件变量的定义与基本操作 (Definition and Routines)30.2 生产者/消费者问题 (Bounded Buffer Problem)30.3 覆盖条件 (Covering Conditions) 与 pthread_cond_broadcast30.4 总结 背景与动机 到目前为止,我们已经学习了锁 (Locks) 作为并…

stm32实战项目:无刷驱动

目录 系统时钟配置 PWM模块初始化 ADC模块配置 霍尔接口配置 速度环定时器 换相逻辑实现 主控制循环 系统时钟配置 启用72MHz主频:RCC_Configuration()设置PLL外设时钟使能:TIM1/ADC/GPIO时钟 #include "stm32f10x.h"void RCC_Configu…

LC-3 中常见指令

当然可以!以下是 LC-3 中常见指令(汇编格式)与对应的二进制编码格式 的总结表,通俗易懂地介绍每条指令的用途、操作码(opcode)以及格式结构。 ✅ 常见 LC-3 指令与对应的二进制格式 指令名称操作码&#x…

深入解析Docker:核心架构与最佳实践

文章目录 前言一、Docker 解决了什么问题?二、Docker 底层核心架构2.1 Docker 引擎的分层架构2.2 镜像的奥秘:联合文件系统(UnionFS)2.3 容器隔离的核心技术2.3.1 命名空间2.3.2 控制组(Cgroups)2.3.3 内核…

从零打造企业级Android木马:数据窃取与远程控制实战

简介 木马病毒已从简单的恶意软件演变为复杂的攻击工具,尤其在2025年企业级攻击中,木马病毒正成为黑客组织的主要武器之一。 本文将深入探讨如何制作具备数据窃取和远程控制功能的Android木马,从基础原理到企业级防御绕过技术,同时提供详细的代码实现,帮助开发者理解木马…

ES常识5:主分词器、子字段分词器

文章目录 一、主分词器:最基础的文本处理单元主分词器的作用典型主分词器示例 二、其他类型的分词器:解决主分词器的局限性1. 子字段分词器(Multi-fields)2. 搜索分词器(Search Analyzer)3. 自定义分词器&a…

【第三十五周】Janus-pro 技术报告阅读笔记

Janus-Pro 摘要Abstract文章信息引言方法Janus 架构Janus 训练Janus-Pro 的改进 实验结果总结 摘要 本篇博客介绍了Janus-Pro,这是一个突破性的多模态理解与生成统一模型,其核心思想是通过解耦双路径视觉编码架构解决传统方法中语义理解与像素生成的任务…

MySQL 数据操纵与数据库优化

MySQL数据库的DML 一、创建(Create) 1. 基本语法 INSERT INTO 表名 [(列名1, 列名2, ...)] VALUES (值1, 值2, ...); 省略列名条件:当值的顺序与表结构完全一致时,可省略列名(需包含所有字段值)批量插…

(9)被宏 QT_DEPRECATED_VERSION_X_6_0(“提示内容“) 修饰的函数,在 Qt6 中使用时,会被编译器提示该函数已过时

(1)起因是看到 Qt 的官方源代码里有这样的写法: #if QT_DEPRECATED_SINCE(6, 0) //里面的都是废弃的成员函数QT_WARNING_PUSHQT_WARNING_DISABLE_DEPRECATEDQT_DEPRECATED_VERSION_X_6_0("Use the constructor taking a QMetaType inst…

【bibtex4word】在Word中高效转换bib参考文献,Texlive环境安装bibtex4word插件

前言 现已退出科研界,本人水货一个。希望帮到有缘人 本篇关于如何将latex环境中的参考文献bib文件转化为word,和一些踩坑记录。 可以看下面的资料进行配置,后面的文字是这些资料的补充说明。 参考文章:https://blog.csdn.net/g…

Python 自动化脚本开发秘籍:从入门到实战进阶(6/10)

摘要:本文详细介绍了 Python 自动化脚本开发的全流程,从基础的环境搭建到复杂的实战场景应用,再到进阶的代码优化与性能提升。涵盖数据处理、文件操作、网络交互、Web 测试等核心内容,结合实战案例,助力读者从入门到进…

理解反向Shell:隐藏在合法流量中的威胁

引言 在网络安全领域,​​反向Shell(Reverse Shell)​​ 是一种隐蔽且危险的攻击技术,常被渗透测试人员和攻击者用于绕过防火墙限制,获取对目标设备的远程控制权限。与传统的“正向Shell”(攻击者主动连接…

无人机电池储存与操作指南

一、正确储存方式 1. 储存电量 保持电池在 40%-60% 电量(单片电压约3.8V-3.85V)存放,避免满电或空电长期储存。 满电存放会加速电解液分解,导致鼓包;**空电**存放可能引发过放(电压低于3.0V/片会永久…

怎样选择成长股 读书笔记(一)

文章目录 第一章 成长型投资的困惑一、市场不可预测性的本质困惑二、成长股的筛选悖论三、管理层评估的认知盲区四、长期持有与估值波动的博弈五、实践中的认知升级路径总结:破解困惑的行动框架 第二章 如何阅读应计制利润表一、应计制利润表的本质与核心原则1. 权责…