利用抓包分析ICMP协议与DHCP协议

EXPT 4:利用抓包分析ICMP协议与DHCP协议

实验要求

利用Wireshark截取数据包,并对数据包进行解析。

方案设计

ICMP

  • 关于ICMP

    ICMP (Internet Control Message Protocal) 为因特网控制报文协议,属于网络层协议。

  • 关于ping命令

    ping程序发送一个ICMP类型8编码0的报文到指定主机。看到该回显 (echo) 请求,目的主机发回一个类型0编码0的ICMP回显回答。

DHCP

DHCP (Dynamic Host Configuration Protocal)为动态主机配置协议,属于应用层协议,因此我们在抓包过程中需要关注其运输层所采用的协议种类。

DHCP在客户与服务器交互之间的主要四个步骤如上图所示:

  1. DHCP服务器发现:client向server发送一个discover报文。
  2. DHCP服务器提供:server向client返回一个offer报文。
  3. DHCP请求:client向server发送一个request报文。
  4. DHCP确认:server向client发送ACK报文。

具体实现

ICMP

首先我们执行ping -c 10 zhangxueyao.com的指令,向目的主机zhangxueyao.com发送10个报文。

之后,我们利用wireshark抓包工具,筛选ICMP网络协议,观察到相应的数据包。

上面两图分别展示了ping程序的请求报文,与目的主机的回显报文

可以看到:

  • request报文的类型为8,编码为0
  • reply报文的类型为0,编码为0

DHCP

在MacOS系统下,我们利用Network设置,可以关闭默认的DHCP网络配置:

在关闭DHCP之后,我们重新进行DHCP的配置:

在wireshark中,我们利用bootp筛选出DHCP协议的数据包:

可以看到:

  • 一共有ReleaseDiscoverOfferRequestACK五个数据包。
  • 数据包的SourceDestination中出现的地址:
    • 192.168.1.102:DHCP服务器为当前客户所分配的IP地址。
    • 192.168.1.1:DHCP服务器的IP地址。在上方Networks的配置图中我们可以看到,这个地址也是Router的地址,即:路由器作为局域网中的DHCP服务器
    • 0.0.0.0:在未分配地址之前,客户的源地址。
    • 255.255.255.255:广播的目的地址。
  • 在本例中,应用层协议为DHCP,运输层协议为UDP