6.3.4 利用Wireshark进行协议分析(四)----ARP协议解析

6.3.4 利用Wireshark进行协议分析(四)----ARP协议解析

我们知道对于单跳网络内部的数据传输,使用的是网络接口层的技术,比如以太网技术,以太网将报文数据封装在数据帧中进行传送,帧头指明发送方网卡的地址和接收方网卡的地址。(5.2.6 地址解析协议ARP)为了获得接收方的MAC地址,就需要使用ARP协议,ARP协议负责将IP地址转换成硬件地址或MAC地址,一般情况下主机都会在本地设置ARP高速缓存,存放已经解析好的IP地址和响应的硬件地址,在封装数据帧时首先是根据下一跳协议的地址来查看本地ARP的高速缓存,如果能够找到对应的硬件地址直接将地址填入到帧头,如果没有找到才会启动ARP的地址解析过程。

一、查看本地ARP高速缓存

进入命令行窗口,输入

arp -a

该命令返回的是缓存中包含的所有的地址对信息,每一行都显示了IP地址对应的物理地址以及地址的类型。如图

6.3.4 利用Wireshark进行协议分析(四)----ARP协议解析_第1张图片

地址类型有静态和动态之分,他们的区别在于是否参与到缓存的定时维护过程中,动态的地址具有时效性,如果在一段时间内没有更新或使用过会被删除掉,而静态地址则可以一直保留在缓存中。

二、ARP报文的捕获过程

  1. 启动Wireshark,并设置Wireshark的捕获条件为arp

  2. 点击开始按钮,为确保能够捕获到网络中的arp报文,先清空本地的ARP缓存

    在命令行中输入命令

    arp -d
    

    这里会出现一个问题,如果直接运行cmd命令行,会提示报错如图,提示ARP 项删除失败: 请求的操作需要提升。

    6.3.4 利用Wireshark进行协议分析(四)----ARP协议解析_第2张图片

    这是因为没有管理员权限,解决方法是,开始找到cmd右键以管理员身份运行,再次输入上述命令即可。如图

    6.3.4 利用Wireshark进行协议分析(四)----ARP协议解析_第3张图片

运行结果如图所示

6.3.4 利用Wireshark进行协议分析(四)----ARP协议解析_第4张图片

  1. 回到Wireshark中查看报文捕获情况,我们看到捕获面板中的arp数据包列表中出现了两个arp报文

    如图6.3.4 利用Wireshark进行协议分析(四)----ARP协议解析_第5张图片

    第一条报文是由本机所产生的广播请求,它的含义是我的地址是192.168.184.133,谁的地址是192.168.184.2

    第二条arp报文给出了我们所要解析的结果,告诉我们192.168.184.2所对应的硬件地址

  2. 查看arp报文的结构

    如图6.3.4 利用Wireshark进行协议分析(四)----ARP协议解析_第6张图片

    选择第一条报文,分组详情窗口显示了两层封装结构,帧头和arp报文,说明arp报文是直接封装在数据帧中进行传输的,这个帧长42个字节,帧的头部是14个字节,目的MAC地址是6个字节全部为1,类型字段是16进制的0806表示帧里面包含的是arp报文。

    展开arp报文里面包含的内容如图

    6.3.4 利用Wireshark进行协议分析(四)----ARP协议解析_第7张图片

    1. 硬件类型
    2. 协议类型
    3. 硬件地址长度
    4. 协议地址长度
    5. 操作码,操作码取值为1表示是请求报文
    6. 后面是两对地址信息,源MAC地址,源IP地址,目的MAC地址以及目的IP地址,其中源MAC地址正是发送arp请求的主机的MAC地址。目的IP地址是网关的地址,目的MAC地址全零。
  3. 对照查看第二个报文

    与第一个报文相比第二个报文当中操作码为2如图

    6.3.4 利用Wireshark进行协议分析(四)----ARP协议解析_第8张图片

    表示这是一个应答报文,两对地址信息中源MAC地址正是我们所要解析的结果,是网关网卡的地址,从中我们可以看到ARP协议的解析过程,是基于问答形式的,以广播的方式请求,以单播的形式做出应答,而且ARP报文是直接封装在数据帧内进行传送的

你可能感兴趣的:(网络技术与应用,wireshark,测试工具,网络)