• wareshark网络协议分析之ARP


    一、ARP协议简介

    简单的说ARP协议就是实现ip地址到物理地址的映射。当一台主机把以太网数据帧发送到位于同一局域网上的另一台主机时,是根据48bit的以太网地址(物理地址)来确定网络接口的。

    ARP高效运行的关键在于每个主机上都有一个ARP高速缓存,这个缓存中存放了最近的ip地址和物理地址的映射记录(缓存中,每页的生存时间一般为20分钟)。

    ARP分组格式:

    分组格式分为以太网首部部分和arp请求/应答部分,各部分细节如下:

    以太网目的地址:指的是这条数据帧要发送到以太网中的哪些地方(物理地址)。

    以太网源地址:发送这条数据帧的以太网地址(自己的物理地址).

    帧类型:区分这是一个干啥用的帧,如arp请求或应当的帧类型号为0x0806,arap的类型号为0x8035

    硬件类型:1表示是以太网

    协议类型:表示要映射的协议地址类型。(0x0800表示ip地址)

    硬件地址长度和协议地址长度,对于arp请求/应答来说始终是6和4.

    op:1-arp请求,2-arp应当,3-rarp请求,4-rarp应答

    发送端以太网地址:发送端的物理地址

    发送端ip地址:就是发送端的ip地址

    目的以太网地址:目的的物理地址

    目的ip地址:目标ip地址

    二、wareshark抓包分析

    抓取下面几个包,然后通过过滤器过滤只看arp相关的包。

    从中可以简单的看出arp请求和响应的过程了,显示两个请求问谁知道192.168.1.102的物理地址告诉192.168.1.1,然后后面有主机发送告诉说192.168.1.102的物理地址是d0:7e:35:83:c1:88

    具体过程如下:

    请求包:

     

    这是一个请求arp数据包(已知一个ip地址,想知道其对应的物理地址),所以其op的值为1,既然是请求,那么事先就不知道目的的物理地址,所以以太网目的地址是全ff(广播地址),而目的以太网地址,由于不知道目的以太网地址,所以设置为全0表示全网段(这个我是根据结果猜的,如有错误请及时指出,谢谢),其他对应arp分组格式即可。

    应答包:

    与请求包相比,应答包是知道目的地址的(请求包的地址),所以这里不是广播而是单播,操作码op为2表示这是一个应答包,其他对应arp协议分组格式即可。

  • 相关阅读:
    tkinter学习-Lable&Button
    Shell—常见报错问题
    Linux—修改ssh远程登录信息
    Linux—网络管理
    Linux—磁盘管理
    Python—创建进程的三种方式
    Shell—引入外部脚本文件
    Mysql—数据恢复
    Shell—文件内容操作
    Shell—各种括号的用法
  • 原文地址:https://www.cnblogs.com/bewolf/p/5678303.html
Copyright © 2020-2023  润新知