MST

星途 面试题库

面试题:网络编程之DHCP工作流程

请详细描述DHCP动态主机配置协议的工作流程,包括各个阶段的具体交互过程及涉及的报文类型。
41.4万 热度难度
后端开发网络编程

知识考点

AI 面试

面试题答案

一键面试

DHCP(Dynamic Host Configuration Protocol)动态主机配置协议的工作流程主要分为以下四个阶段:

1. 发现阶段(DHCP Discover)

  • 具体交互过程
    • 当一个新的主机接入网络时,它并不知道任何DHCP服务器的地址。此时主机以广播的形式发送DHCP Discover报文,目的IP地址为255.255.255.255,源IP地址为0.0.0.0。该广播报文会被网络中所有的设备接收。
  • 涉及的报文类型:DHCP Discover报文。

2. 提供阶段(DHCP Offer)

  • 具体交互过程
    • 网络中的DHCP服务器接收到DHCP Discover报文后,检查自己的地址池是否有可用的IP地址。如果有,DHCP服务器会从地址池中选择一个未分配的IP地址,并以单播的方式向发送Discover报文的主机发送DHCP Offer报文。该报文中包含了服务器提供的IP地址、子网掩码、默认网关、DNS服务器地址等配置信息。
  • 涉及的报文类型:DHCP Offer报文。

3. 请求阶段(DHCP Request)

  • 具体交互过程
    • 主机可能会收到多个DHCP服务器发送的DHCP Offer报文(如果网络中有多个DHCP服务器)。主机一般会选择第一个收到的Offer报文,并以广播的形式发送DHCP Request报文,目的IP地址为255.255.255.255,源IP地址仍为0.0.0.0。该请求报文的作用一是向它选择的DHCP服务器请求分配IP地址及其他网络配置参数,二是告知其他未被选择的DHCP服务器,它已经选择了一个服务器,其他服务器可以收回它们提供的IP地址。
  • 涉及的报文类型:DHCP Request报文。

4. 确认阶段(DHCP Ack)

  • 具体交互过程
    • 被主机选择的DHCP服务器接收到DHCP Request报文后,确认该请求中的IP地址仍然可用。然后,DHCP服务器会以单播的方式向主机发送DHCP Ack(Acknowledge)报文,正式确认将IP地址及其他配置参数分配给该主机。主机收到DHCP Ack报文后,就完成了IP地址等网络参数的配置,可以正常使用网络了。
  • 涉及的报文类型:DHCP Ack报文。

此外,如果在上述过程中出现错误,如IP地址已经被占用等情况,DHCP服务器可能会向主机发送DHCP Nak(Negative Acknowledge)报文,通知主机分配失败。