Character is the ability to carry out a good resolution long after the excitement of moment has passed.--------毅力是兴奋的片刻久久过后,继续执行优秀决策的能力。

1, ARP协议

ARP(Address Resolution Protocal,地址解析协议)是将IP地址解析为以太网的MAC地址(或者称
为物理地址)的协议。在局域网中,当主机或其他网络设备有数据要发送给另一个主机或设备时,它
必须知道对方的网络层地址(即IP地址)。但是仅仅有IP地址还是不够的,因为IP数据报文必须封装
成帧才能通过物理网络发送,因为发送站还必须有接收站的物理地址,所以需要一个从IP地址到物理
地址的映射。ARP就是实现这个功能的协议。

2, ARP报文格式

ARP是一个独立的三层协议,所以ARP报文在向数据链路层传输时不需要经过IP协议的封装,而是直
接生成自己的报文,其中包括ARP报头,到数据链路层后再由对应的数据链路层协议(如以太网协
议)进行封装。ARP报文分为ARP请求和ARP应答报文两种,它们的报文格式可以统一为下图所示。
在这里插入图片描述

2.1 ARP部分

  • 硬件类型:占两字节,表示ARP报文可以在哪种类型的网络上传输,值为1时表示为以太网地址。

  • 上层协议类型:占两字节,表示硬件地址要映射的协议地址类型,映射IP地址时的值为0x0800。

  • MAC地址长度:占一字节,标识MAC地址长度,以字节为单位,此处为6。

  • IP协议地址长度:占一字节,标识IP得知长度,以字节为单位,此处为4。

  • 操作类型:占2字节,指定本次ARP报文类型。1标识ARP请求报文,2标识ARP应答报文。

  • 源MAC地址:占6字节,标识发送设备的硬件地址。

  • 源IP地址:占4字节,标识发送方设备的IP地址。

  • 目的MAC地址:占6字节,表示接收方设备的硬件地址,在请求报文中该字段值全为0,即00-00-
    00-00-00-00,表示任意地址,因为现在不知道这个MAC地址。

  • 目的IP地址:占4字节,表示接受方的IP地址。

2.2 以太网帧头

ARP报文不是直接在网络层上发送的,它还是需要向下传输到数据链路层,所以当ARP报文传输到数
据链路层之后,需要再次进行封装。以以太网为例,ARP报文传输到以太网数据链路层后会形成ARP
帧。ARP帧如下图所示,他就是在ARP报文前面加了一个以太网帧头。
以太网帧头的三个字段说明

  • 目的MAC地址 占6字节,如果是ARP请求帧,因为它是一个广播帧,所以要填上广播MAC地址
    (FF-FF-FF-FF-FF-FF),其目标主机是网络上的所有主机。

  • 源MAC地址 占6字节,这是发送ARP帧的节点MAC地址。

  • 帧类型 占两字节,这里用来标识帧封装的上层协议,因为本帧的数据部分是ARP报文,所以直
    接用ARP的协议号0x0806表示就可以了。

2.3 ARP映射表

无论是主机,还是交换机都会有一个用来缓存同一网段设备IP地址和MAC地址的ARP映射表,用于数
据帧的转发。设备通过ARP解析到目的MAC之后,将会在自己的ARP映射表中增加IP地址到MAC地址
的映射表,以用于后续到同一目的地数据帧的转发。ARP表项分为动态ARP表项和静态ARP表项。

3, 使用wireshark分析ARP

3.1 搭建模拟环境

其实就是需要连接在同个路由器下的一台电脑和一台手机就可以完成发送ARP请求包和应答包的过程。
接下来我们将电脑当作发送方,手机当作接收方。

3.2 登录路由器查看电脑和手机的IP

一般家里的路由器地址是192.168.1.1,因为我家是二级路由,所以就是0.1
在这里插入图片描述

3.2 管理者身份运行cmd

  • 然后先查看手机一下arp缓存表,然后清除缓存表
    在这里插入图片描述
  • 我们发现我们的手机已经被删除。
    在这里插入图片描述
  • 打开wireshark软件,先双击以太网,如果你的电脑是wifi连接,那就选择WLAN,
  • 然后在显示过滤器输入ARP, 为了不显示其他抓到的报文
  • 然后点击抓捕,就是那个鲨鱼的标志。
    在这里插入图片描述

在这里插入图片描述

3.3 ping手机IP

然后我们在CDM 中ping手机的IP,到了这一步实验差不多完成了,我们接下来查看缓存表。

在这里插入图片描述

3.4 查看缓存表

在这里插入图片描述

  • 我们发现手机的ip和MAC地址重新添加到了缓存表中。

3.5 wireshark分析报文

  • 首先我们了解一下界面
    在这里插入图片描述

3.5.1 请求报文

在这里插入图片描述

  • 下面我们分析报文,其实就是对照着文章一开头给出的ARP报文的格式。
  • 在这里插入图片描述

3.5.2 应答报文

在这里插入图片描述

  • 同样与开头的格式对应起来,分析这个报文,我们发现应答报文不是广播的,而是1对1的。
    在这里插入图片描述
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐