ARP报文头部格式和请求流程

2023-11-13

ARP头部格式

在这里插入图片描述

格式说明:

  • 硬件类型:16位字段,用来定义运行ARP的网络类型。每个局域网基于其类型被指派一个整数。例如:以太网的类型为1。ARP可用在任何物理网络上。
  • 协议类型:16位字段,用来定义使用的协议。例如:对IPv4协议这个字段是0800。ARP可用于任何高层协议
  • 硬件地址长度:8位字段,用来定义物理地址的长度,以字节为单位。例如:对于以太网的值为6。
  • 协议地址长度:8位字段,用来定义逻辑地址的长度,以字节为单位。例如:对于IPv4协议的值为4。
  • 操作码:16位字段,用来定义报文的类型。已定义的分组类型有两种:ARP请求是1,ARP响应是2,RARP请求是3,RARP应答是4。
  • 源硬件地址:这是一个可变长度字段,用来定义发送方的物理地址。例如:对于以太网这个字段的长度是6字节。
  • 源逻辑地址:这是一个可变长度字段,用来定义发送方的逻辑(IP)地址。例如:对于IP协议这个字段的长度是4字节。
  • 目的硬件地址:这是一个可变长度字段,用来定义目标的物理地址,例如,对以太网来说这个字段位6字节。对于ARP请求报文,这个字段为全0,因为发送方并不知道目标的硬件地址。
  • 目的逻辑地址:这是一个可变长度字段,用来定义目标的逻辑(IP)地址,对于IPv4协议这个字段的长度为4个字节。

在以太网中发送ARP请求的时候,以太头的源MAC地址为本地MAC,目的MAC地址为全f;ARP中的源MAC为本地MAC,源IP是本机的IP,目的MAC为0,目的IP为请求的IP地址

ARP请求流程

A主机向请求B主机MAC地址时,会先判断A、B是否属同一网段,分别采用不同的方式发送ARP请求。

  • 同一网段
  1. A发送ARP广播,交换机学习A的MAC地址,并泛洪。
  2. B收到ARP包后发送ARP单播给A,同时交换机学到B的MAC地址,随后A学到B的MAC地址
  • 跨网段
  1. A发送ARP广播,请求网关的MAC
  2. 数据包改成:源:A IP,目的:B IP,源MAC:A MAC,目的MAC:网关MAC
  3. A将ARP数据包发送给A的网关
  4. A的网关查询路由表,修改数据包:源目IP不变,源MAC改成A网关的MAC,目的MAC改成下一跳的MAC,路由递归,最终到达B的网关
  5. B网关查询到本机有B的MAC地址,原路返回B的MAC地址给A

如果AB属于同网段,但是A到B没有直连的路由,那么A也会走跨网段的流程,将数据包发送给网关处理。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ARP报文头部格式和请求流程 的相关文章

随机推荐

  • 以promise方式调用微信小程序的api

    仅仅适用于部分API需要用到promise方式调用 封装一个方法如下 export const promisify method options gt return new Promise resolve reject gt 将option
  • 用c语言编写lr(1)文法,C语言编写源程序建立LR(1)分析器.pdf

    目 录 前 言2 用C语言编写源程序建立LR 1 分析器3 一 设计目的 要求 算法与设计思想3 1 设计内容3 2 设计要求3 3 设计的基本原理3 1 CLOSURE I 的构造3 2 GO I X 的构造3 3 FIRST集合的构造4
  • Android屏幕适配全攻略(最权威的官方适配指导)

    转载请注明出处 http blog csdn net zhaokaiqiang1992 Android的屏幕适配一直以来都在折磨着我们这些开发者 本篇文章以Google的官方文档为基础 全面而深入的讲解了Android屏幕适配的原因 重要概
  • Java for Web学习笔记(五九):Controller替代Servlet(1)请求匹配

    URL匹配 书写方式 是对DispatcherServlet所匹配的URL进行二次匹配 本例DispatcherServelt的servlet mapping中
  • Echarts隐藏坐标轴

    xAxis show false 不显示坐标轴线 坐标轴刻度线和坐标轴上的文字 axisTick show false 不显示坐标轴刻度线 axisLine show false 不显示坐标轴线 axisLabel show false 不
  • GNU许可证常见问题

    最新在学习开源软件 开源软件的组成最重要的一个就是license 及许可证 开源License在法律上赋予用户相关权利和义务 任何开源应用行为都必须围绕此 游戏规则 进行 其中重点学习了GUN GPL的许可证 本地记录下一个重要的网站 方便
  • 数据库出错提示Duplicate entry * for key *的解决方法

    错误编号 1062 错误提示 查询语句错误 1062 ERR Duplicate entry 16777215 for key PRIMARY SQL INSERT INTO forum attachment SET tid 0 pid 0
  • 揭秘Kaggle神器xgboost

    在 Kaggle 的很多比赛中 我们可以看到很多 winner 喜欢用 xgboost 而且获得非常好的表现 今天就来看看 xgboost 到底是什么以及如何应用 本文结构 什么是 xgboost 为什么要用它 怎么应用 学习资源 什么是
  • CROSS使用说明书 发行和拍卖NFT完整攻略

    鉴于目前去中心化NFT发行和拍卖平台CROSS是英文版本 对部分中国区用户存在操作困难 为了方便投资者和NFT爱好者能及时了解CROSS的相关信息和使用流程 现在CyberVein推出了更加详细的CROSS完整版教程 若还存有疑问 可添加中
  • windows7虚拟拔号服务器,ADSL采用虚拟拨号上网,使用Windows 7如何设置PPPoE宽带连接...

    今天介绍ADSL采用虚拟拨号上网 使用Windows 7操作系统如何设置PPPoE宽带连接 连接网络的方式有很多 现在小伙伴们上网使用的连接方式主要有以下几种 ADSL宽带上网 小区宽带上网 无线局域上网和无线移动上网 其中ADSL宽带上网
  • 使用Python实现二分查找算法及其应用场景详解

    引言 二分查找是一种常用的搜索算法 它可以在有序数组中高效地查找指定元素 本文将详细介绍二分查找算法的原理 实现方法 并探讨其在实际应用场景中的使用 通过深入了解二分查找算法 你将能够更好地理解它的工作原理并灵活应用于各种问题中 目录 引言
  • 像打王者荣耀一样的学习/工作?(转)

    https blog csdn net dataiyangu article details 97544551 depth 1 utm source distribute pc feed none task blog alirecmd 2
  • GET和POST的区别,java模拟postman发post

    题解 空心正方形图案 include
  • MFC对话框中屏蔽Enter键与ESC键

    文章内容无意义 存档用 MFC对话框应用程序中 按下回车键或者ESC键 对话框会自动关闭 原因在于 当用户按下Enter键时 Windows就会自动去查找 输入焦点 落在了哪一个按钮上 获得焦点的按钮的四周将被点线矩形框所包围 如果所有按钮
  • 关于hexo的笔记 以及 常见问题

    在 Hexo 中有两份主要的配置文件 其名称都是 config yml 其中 一份位于站点根目录下 blog config yml 主要包含 Hexo 本身的配置 另一份位于主题目录下 blog themes next config yml
  • 程序员的算法课(15)-分治法获取文件中出现频次最高100词

    一 问题描述 这个问题在大数据面试中容易出现 问题如下 有一个1G大小的一个文件 里面每一行是一个词 词的大小不超过16字节 内存限制大小是1M 要求返回频数最高的100个词 二 思路 此处1G文件远远大于1M内存 分治法 先hash映射把
  • sp3585调试

    最近在调试sp3485目前已调试成功 后续把调试过程补全
  • 用Python获取链家二手房房源数据,做可视化图分析数据

    前言 数据采集的步骤是固定 发送请求 模拟浏览器对于url地址发送请求 获取数据 获取网页数据内容 gt 请求那个链接地址 返回服务器响应数据 解析数据 提取我们需要的数据内容 保存数据 保存本地文件 所需模块 win R 输入cmd 输入
  • 从计组和操作系统详解IO控制方式

    IO控制方式 实际上IO在操作系统和计组里面都有讲到 这两个内容各有侧重 又有很大的重合 这里就整理一下 操作系统里面就讲了一下基本的过程 计组还讲了各个接口电路 1 直接程序控制方式 直接程序控制方式由用户进程直接控制主存或 CPU 和外
  • ARP报文头部格式和请求流程

    文章目录 ARP头部格式 ARP请求流程 ARP头部格式 格式说明 硬件类型 16位字段 用来定义运行ARP的网络类型 每个局域网基于其类型被指派一个整数 例如 以太网的类型为1 ARP可用在任何物理网络上 协议类型 16位字段 用来定义使