ARP协议详解

ARP协议详解

ARP协议介绍

ARP(Address Resolution Protocol)是一种用于将网络层地址(如IP地址)转换为数据链路层地址(如MAC地址)的协议,当一个主机需要向另一个主机发送数据包时,它需要知道目标主机的MAC地址。在发送数据包之前,发送主机将发送一个ARP请求广播,询问目标主机的MAC地址。目标主机会在ARP响应中回复自己的MAC地址,发送主机就可以将数据包发送到目标主机了。

ARP抓包

  • 下载安装wireshark

  • 查看应该抓包的端口,以ubuntu18.04为例,直接发送命令进行查看当前的arp缓存

    arp -a
    

在这里插入图片描述

  • 从上面我们知道其中一个arp包发送的ip地址为192.168.1.1,其发送的网口是enp2s0f1

    所以我们可以可以手动发送一条命令来发送arp请求

    arping -c 1 -I enp2s0f1 192.168.1.1
    

在这里插入图片描述

  • 打开wireshark,根据上面命令的结果我们知道缓存的mac地址的arp包是从enp2s0f1上发送的,所以我们选择抓取enp2s0f1网口,在过滤处填写arp

在这里插入图片描述
在这里插入图片描述

  • 从上面的arp -a的结果我们知道其中一个arp包发送的ip地址为192.168.1.1,其发送的网口是enp2s0f1所以我们可以可以手动发送一条命令来发送arp请求,抓到的包如下图所示
arping -c 1 -I enp2s0f1 192.168.1.1

在这里插入图片描述
在这里插入图片描述

ARP包解析

ARP协议发送ARP包的流程是这样的,源主机广播一个ARP请求数据包,其中包含源主机的IP地址和MAC地址,以及目标主机的IP地址。该数据包会被发送到本地网络的所有主机。其他主机收到该数据包后会检查其中的目标IP地址是否为自己的IP地址,如果是,则返回一个ARP响应数据包,其中包含自己的MAC地址,发送给源主机;否则,忽略该数据包。

所以我们在源主机处抓包如果能ping通的话会抓到两个包,一个是发送出去的包,request

请添加图片描述

一个是收到回复主机的包reply

请添加图片描述

两个包的结构都一样,只是内容不一样,抓取包中常见字段意思如下

请添加图片描述

  1. Hardware Type(硬件类型):表示发送方的网络接口类型,例如以太网。
  2. Protocol Type(协议类型):表示上层协议类型,通常为IP协议。
  3. Hardware Address Length(硬件地址长度):表示硬件地址的长度,例如MAC地址长度为6个字节。
  4. Protocol Address Length(协议地址长度):表示协议地址的长度,例如IPv4地址长度为4个字节。
  5. Operation Code(操作码):表示ARP包的类型,包括ARP请求、ARP响应、RARP请求、RARP响应等。
  6. Sender Hardware Address(发送方硬件地址):表示发送方的MAC地址。
  7. Sender Protocol Address(发送方协议地址):表示发送方的IP地址。
  8. Target Hardware Address(目标硬件地址):表示目标主机的MAC地址。
  9. Target Protocol Address(目标协议地址):表示目标主机的IP地址。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值