我是靠谱客的博主 粗犷麦片,最近开发中收集的这篇文章主要介绍ARP报文头部格式和请求流程ARP头部格式ARP请求流程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 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报文头部格式和请求流程ARP头部格式ARP请求流程的全部内容,希望文章能够帮你解决ARP报文头部格式和请求流程ARP头部格式ARP请求流程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部