ARP协议分析

ARP协议分析

ARP(Address Resolution Protocol ,地址解析协议)是根据IP地址获取物理地址的一个TCP/IP协议。

深入分析ARP工作流程
同网段通信:

假设主机PC1(192.168.0.102)要和PC2(192.168.0.100)通信。

(1)PC1在本地ARP缓存表中检查PC2匹配的MAC地址。

(2)如果PC1没有找到对应的条目,它将询问主机2的MAC地址,从而将ARP请求帧广播到本地网络上的所有主机,如图1。本地网络上的每台主机都会接收到ARP请求并且检查是否与自己的IP地址匹配,如果不匹配,它就会丢弃ARP请求。

如果有对应条目,那么它会发送一个ARP请求单播给PC2,以进行确认,如图3。

(3)主机PC2确定ARP请求中的目的IP地址与自己的IP地址匹配,于是将包含其mac地址的ARP回复(单播)直接发送给PC1。
不过,PC2似乎没有将PC1的IP地址和MAC地址缓存到自己本地,在它发送ICMP响应前还是会广播查询一下PC1的MAC地址,如图2。

(4)当主机PC1收到回复消息时,会将PC2的IP和MAC地址添加到自己的ARP缓存表。

抓包:

图1 当ARP缓存中无对应MAC地址,执行ping命令,抓取ARP协议包
在这里插入图片描述
图2 执行ping命令后,ARP和ICMP报文序列
在这里插入图片描述
图3 当ARP缓存中有对应MAC地址,执行ping命令,抓取ARP协议包
在这里插入图片描述

跨网段通信:

当目标IP与主机不在同一个网段时,主机查询ARP,ARP回应:“我在192.168.0.1/24网段,目标地址在192.168.2.0/24,不属于同一个网段,需要使用默认网关”,主机知道默认网关的地址,但没有网关的MAC地址,需要先进行查询。

一般来说,当我们ping一个不同网关的主机时,并没有ARP请求包(假设可以ping通),这是因为本地主机的ARP缓存中已经有默认网关的mac地址了。当发现目标主机与自己不在同一个网段时,它直接封装默认网关的mac地址为目的物理地址,然后发送单包给网关。

使用 arp -d * 清空缓存表,同时抓包,可看到主机请求网关192.168.0.1的mac地址的过程:
在这里插入图片描述

ARP报文格式

在这里插入图片描述

ARP请求报文(广播)

在这里插入图片描述
帧头部:

目标MAC为ff:ff:ff:ff:ff:ff(广播地址),源MAC地址为70:1c:e7:7e:ef:73

0x0806代表封装的上层协议是ARP协议

ARP协议内容:

硬件类型(2字节):表示协议实现在哪种类型的网络上,这里是以太网

协议类型(2字节):表示解析协议(上层协议),一般是0800,即IP

硬件地址长度(1字节):MAC地址长度,此处为6个字节

协议地址长度(1字节):IP地址长度,此处为4个字节

操作类型(2字节):表示ARP协议数据包类型。1表示ARP请求,2表示ARP应答

源MAC地址:发送端MAC地址,70:1c:e7:7e:ef:73

源IP地址:表示发送端协议地址,192.168.0.102

目标MAC地址:目标端MAC地址,由于还不知道,所以是,00:00:00:00:00:00

目的IP地址:目的端IP地址,192.168.0.100

ARP响应报文

在这里插入图片描述
ARP报文就是蓝色背景的这一串,具体字段的含义,参照请求报文。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wsws100

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值