• Wireshark数据抓包分析之动态主机配置协议


    预备知识

    什么是DHCP

    DHCP(Dynamic Host Configuration Procotol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作。DHCP的前身是BOOTP,属于TCP/IP的应用层协议。DHCP有3个端口,其中UDP67和UDP68为正常的DHCP服务端口,分别作为DHCP Server和DHCP Client的服务端口;546端口用于GHCP v6 Client,而不用于DHCPv4,是为DHCP failover服务。该服务是需要特别开启的服务,用来做双机热备的。

    DHCP的作用

    DHCP为互联网上主机提供地址和配置参数。DHCP是基于Client/Server工作模式,DHCP服务为主机分配IP地址和提供主机配置参数。DHCP主要作用如下所示:
    (1)保证任何IP地址在同一时刻只能由一台DHCP客户机使用。
    (2)DHCP可以给用户分配永久固定的IP地址。
    (3)DHCP允许用其他方法获得IP地址的主机共存,如手动配置IP地址的主机。
    (4)DHCP服务器向现有的BOOTP客户端提供服务。
    DHCP有3种分配IP地址方式,分别是自动分配、动态分配和手工配置。它们的区别如下:
    自动分配(Automatic Allocation):DHCP给客户端分配永久性的IP地址。
    动态分配(Dynamic Allocation):DHCP给客户端分配的IP地址过一段时间后会过期,或者客户端可以主动释放该地址。
    手动配置(Manual Allocation):由用户手动为客户端指定IP地址。

    DHCP工作流程

    使用DHCP时,网络上首先必须有一台DHCP服务器,而其他计算机则是DHCP客户端。当DHCP客户端程序发出一个消息,要求一个动态IP地址时,DHCP服务器将根据目前配置的IP地址池,从中提供一个可供使用的IP地址和子网掩码给客户端。下面将介绍下DHCP的工作流程。
    DHCP工作流程如下图:
    在这里插入图片描述
    从上图中,可以看出DHCP的工作过程分为4个阶段。分别表示发现阶段(DHCP Discover)、提供阶段(DHCP Offer)、选择阶段(DHCP Request)和确认阶段(DHCP Ack)。下面详细介绍这四个阶段:
    (1)发现阶段,即DHCP客户端寻找DHCP服务器的阶段。DHCP客户端以广播方式(因为客户端不知道DHCP服务器的IP地址)发送DHCP Discover包,来寻找DHCP服务器,即向地址255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP协议的主机都会接收到该广播信息,但只有DHCP服务器才会做出响应,如下:
    在这里插入图片描述
    上图表示本局域网中有3台DHCP服务器,都收到了客户端发送的DHCP Discover包。接下来就是服务器响应客户端了,即提供阶段。
    (2)提供阶段,即DHCP服务器提供IP地址的阶段。在网络中收到DHCP Discover包的DHCP服务器,都会做出响应。这些DHCP服务器从尚未出租的IP地址中挑选一个给客户端,向客户端发送一个包含IP地址和其他设置的DHCP Offer包,如下图。
    下面图中,局域网中的3个DHCP服务器都向客户端发送了DHCP Offer包。但是客户端只能接收一个服务器提供的信息,所以需要选择要接收的数据包信息。
    在这里插入图片描述
    (3)选择阶段,即DHCP客户机选择某台DHCP服务器提供的IP地址阶段。从上面图中可以看到,3台DHCP服务器都向客户端发送了DHCP Offer包。此时,DHCP客户机只接收第一个收到的DHCP Offer包。然后,以广播方式回答一个DHCP Request请求信息,该信息中包含向它所选定的DHCP服务器请求的IP地址的内容。这里使用广播方式回答,就是通知所有的DHCP服务器,它选择了某台DHCP服务器所提供的IP地址,如下图:
    在这里插入图片描述
    这时候,局域网中的所有DHCP服务器,都会收到DHCP客户端发送的DHCP Request信息。通过查看包信息,可以确定客户端是否选择了自己提供的IP地址。如果选择的是自己的,则发送一个确认包。否则,不进行响应。
    (4)确认阶段,即DHCP服务器确认所提供的IP地址阶段。当DHCP服务器收到客户端发送的DHCP Request请求信息之后,便向DHCP客户端发送一个包含它提供的IP地址和其他设置的DHCP Ack信息,告诉DHCP客户端可以使用它所提供的IP地址,如下图。然后DHCP客户端将其TCP/IP协议与网卡绑定。另外,除了客户端选择的DHCP服务器外,其他的DHCP服务器都将收回曾提供的IP地址。
    在这里插入图片描述
    从上图中,也可以看出,只有一台DHCP服务器向客户端发送了DHCP Ack包。表示客户端选择了该服务器提供的IP地址及其他配置信息。

    实验目的

    1)熟悉并掌握Wireshark的基本操作。
    2)加深对常用网络协议的理解,提高就业机会。
    3)培养学生理论联系实践的研究兴趣。

    实验环境

    在这里插入图片描述
    测试者:windows系统,IP地址:随机。
    实验中,我们使用一台PC机器和路由器,即可产生DHCP数据包。现在的路由器都自带了DHCP功能,这样可以通过直接连接路由器来获取DHCP包。

    实验步骤一

    获取DHCP数据包

    1.在windows平台上获取DHCP数据包

    在windows平台上,可以使用两种简单的方法实现,其原理一样。
    (1)在cmd上,使用ipconfig命令来获取。
    在这里插入图片描述
    执行完上述命令后,将释放当前使用的地址信息。重新获取地址信息,执行命令如下:
    在这里插入图片描述
    执行完上面的命令后,将重新获取地址信息。在获取地址时,将会经过上面讲述的DHCP的4个阶段。这样,我们就能获取到DHCP数据包了。
    (2)通过禁用和启用网卡获取DHCP数据包:
    在windows平台上,也可以通过禁用和启用网卡获取DHCP数据包。其中,禁用网卡,相当于上面的“ipconfig /release”命令,

  • 相关阅读:
    mulesoft Module 8 quiz 解析
    客户文章|南方医科大学李克玄团队破解肠道宏病毒与心肌病关系
    技术分享 | 接口自动化中如何完成接口加密与解密?
    终于解决VScode中python/C++打印中文全是乱码的问题了
    java刷题day 04
    vsCode 格式化配置
    网络协议:透彻解析HTTPS协议
    Abbexa丨Abbexa 脱落酸 (ABA) ELISA试剂盒方案
    【踩坑】.NET 8.0 自定义IExceptionHandler不生效
    不使用IDE编译和启动main方法
  • 原文地址:https://blog.csdn.net/ChuMeng1999/article/details/126851409