文章目录

  • ARP头部格式
  • ARP请求流程

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也会走跨网段的流程,将数据包发送给网关处理。

ARP报文头部格式和请求流程相关推荐

  1. ICMP报文的格式和种类

    各种ICMP报文的前32bits都是三个长度固定的字段:type类型字段(8位).code代码字段(8位).checksum校验和字段(16位) 8bits类型和8bits代码字段:一起决定了ICMP ...

  2. 网络协议从入门到底层原理(6)应用层 - 域名、DNS、DHCP、HTTP(ABNF、HTTP报文格式、请求方法、头部字段、状态码、跨域)、代理、CDN

    应用层 域名( Domain Name)- 顶级域名.二级域名 DNS - DNS服务器.常用命令 DHCP(DISCOVER.OFFER.REQUEST.ACKNOWLEDGE) HTTP HTTP ...

  3. 一文详解ARP报文格式及工作原理

    ARP(地址解析协议) 作用: 将目的IP解析为目的MAC,用于二层帧结构的目标MAC封装,数据必须封装为帧才能够被网卡发送出去,帧中必须包含MAC. 报文格式: ARP报文不能穿越路由器,不能被转发 ...

  4. 【TCP/IP详解】ARP报文格式 | RARP报文格式

    我将工作中用到的报文格式进行了汇总,方便查阅: [TCP/IP协议]各层报文首部数据格式汇总 ARP报文格式: RARP报文格式: RARP分组的格式与ARP分组基本一致.它们之间主要的差别是RARP ...

  5. HTTP请求/响应报文头部结构

    HTTP请求 一个HTTP请求由四个部分组成:请求行.请求头部.空行.请求数据. -请求行 请求行由请求方法字段.URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔.比如 GET /data ...

  6. packet tracer 学习ARP报文请求

    实现四种效果 转发异网帧 丢弃同网帧 学习源地址 广播未知帧 拓扑如上,配置主机端口IP与网关 路由ARP为空 广播未知帧&学习源地址&转发异网帧 如图所示通信,打开ARP报文,在路由 ...

  7. HTTP请求流程(超级详细)

    HTTP请求流程 文章目录 HTTP请求流程 一.浏览器根据域名解析IP地址 二.浏览器与WEB服务器建立一个TCP连接 三.浏览器给WEB服务器发送一个HTTP请求 请求行 请求方法 GET请求 P ...

  8. 4-4:TCP协议之TCP头部格式详解

    文章目录 一:TCP头部格式详解 (1)4位首部长度 (2)序列号和确认应答号 A:可靠性问题 B:32位序号和确认号 (3)窗口大小 (4)标志位 (5)紧急指针 A:带外数据(out_of _ba ...

  9. HTTP协议报文基本格式

    HTTP协议报文基本格式     HTTP协议(Hypertext Transfer Protocol――超文本传输协议),浏览器端(客户端)向WEB服务器端访问页面的过程和HTTP协议报文的格式. ...

  10. dhcp 续约review报文_DHCP报文及其格式

    DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)使用UDP协议工作,采用67(DHCP服务器文)和68(DHCP客户端)两个端口号.546号端口用于 ...

最新文章

  1. Python3中Pillow(PIL)介绍
  2. java Random类详解
  3. Java-----instanceof、isInstance、isAssignableFrom
  4. Hadoop学习总结:Map-Reduce的过程解析
  5. flink的datastream进行join操作没有输出结果一例
  6. 苹果新手机软件测试,苹果即将发布iOS 14.5正式版,测试工作已进入最后阶段
  7. 会议交流 | IJCKG 2021:Keynotes released!欢迎注册参会
  8. sql右下角图标工具
  9. 为什么拼多多价格那么便宜,他们是怎么赚钱的,货源从哪里来的?
  10. Ubuntu中zabbix 4.2.6监控postgresql数据库
  11. 大学物理实验习题+答案/缓慢更新
  12. AngularJS orderBy 使用要点
  13. python软著申请_软著申请注意事项放心选择
  14. python xml 创建多个同名子节点_果粉有福了!5分钟学会用Python统计自己最爱听的音乐...
  15. 看完这些在HW面试官面前横着走 HW面试常见问题大合集(适合第一次参加)
  16. 宏转录组测序数据菌株层面的分析软件总结
  17. Cookie和Post模拟登陆
  18. 常见密码哈希离线查询工具
  19. android开发用什么操作系统,Android是目前世界上最流行的操作系统
  20. css img图片按比例缩小,保持图片不失真

热门文章

  1. 【期末复习】网络攻击与防御
  2. unity导出fbx模型_三维制作内容,maya模型贴图文件导入untiy,烘焙灯光贴图
  3. 算法程序-通过log重现计算过程
  4. Datawhale组队学习周报(第043周)
  5. ECharts 打造在线个人简历
  6. 计算机键盘突然失灵,笔记本键盘突然用不了怎么办_笔记本键盘突然失灵怎么回事-win7之家...
  7. 微信号可以一年内第二次修改技巧吗?
  8. 【python初学者日记】输入年份:判断是否闰年:闰年:yyyy是闰年,这年有366天;yyyy是平年,这年有365天
  9. [Place 30-58] IO placement is infeasible. Number of unplaced terminals (1) is greate
  10. 初次项目:电子通讯录