概述
文章目录
- 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请求。
- 同一网段
- A发送ARP广播,交换机学习A的MAC地址,并泛洪。
- B收到ARP包后发送ARP单播给A,同时交换机学到B的MAC地址,随后A学到B的MAC地址
- 跨网段
- A发送ARP广播,请求网关的MAC
- 数据包改成:源:A IP,目的:B IP,源MAC:A MAC,目的MAC:网关MAC
- A将ARP数据包发送给A的网关
- A的网关查询路由表,修改数据包:源目IP不变,源MAC改成A网关的MAC,目的MAC改成下一跳的MAC,路由递归,最终到达B的网关
- B网关查询到本机有B的MAC地址,原路返回B的MAC地址给A
如果AB属于同网段,但是A到B没有直连的路由,那么A也会走跨网段的流程,将数据包发送给网关处理。
最后
以上就是粗犷麦片为你收集整理的ARP报文头部格式和请求流程ARP头部格式ARP请求流程的全部内容,希望文章能够帮你解决ARP报文头部格式和请求流程ARP头部格式ARP请求流程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复