DHCP协议原理及实现流程

简介

DHCP(Dynamic Host Configuration Protocol) 动态主机配置协议,简单来说,DHCP主要功能是为自动为每一个Host分配IP协议。DHCP协议是在DHCP客户端和DHCP服务端之间运行的,客户端请求IP地址,服务端分配IP地址

工作流程

1. 发现阶段

即DHCP客户端寻找DHCP服务端的过程。首先,客户端广播DHCP Discover消息来寻找DHCP服务器,也就是向地址255.255.255.255发送特定的广播消息。网络中所有安装了TCP/IP协议的主机都会收到这个消息,但是只有DHCP服务器会响应

2. 提供阶段

即DHCP服务端提供IP地址的阶段。DHCP服务端收到DHCP discover消息后,它会从尚未出租的IP地址中挑选一个分配给客户端,它会发送一个包含分配的IP地址信息和其他配置信息的DHCP offer消息给客户端。

3. 选择阶段

即DHCP客户端选择某台DHCP服务端提供的IP地址阶段。如果有多台DHCP服务端向客户端发送offer消息,客户端只接受第一个收到的DHCP offer消息,同时DHCP客户端会广播发送DHCP Request请求信息,信息中包含了它选择的DHCP服务端的IP地址。

4. 确认阶段

即DHCP服务端确认IP地址的阶段。当DHCP服务端收到DHCP Request消息时,它就向客户端发送一个DHCP ack消息,告诉客户端他可以使用这个IP地址,然后客户端会将TCP/IP协议与网卡绑定。

5. 重新登录

DHCP客户端每次重新登录网络之后,不需要再次发送discover消息,而是直接发送包含上次所分配的IP地址的Request消息,当DHCP服务端收到这个消息,如果这个IP地址可以继续被使用,则向客户端发送ack消息,如果不可用(可能已经分配给其他主机了),此时DHCP服务端则发送一个NACK的消息给客户端。客户端收到NACK消息,则必须重新发起discover流程,来重新申请IP

6. 更新租约

DHCP服务器向DHCP客户端分配的IP地址一般都有一个租借期限,超过期限之后,服务端将回收这个IP地址。如果DHCP客户端要延长其IP租约,则在租约过半时,DHCP客户端会自动向DHCP服务端发送更新租约的消息。

##总结

消息 作用
DHCP DISCOVER 客户端广播寻找DHCP服务端
DHCP OFFER DHCP服务端为客户端分配IP地址
DHCP REQUEST DHCP客户端向服务端确认IP地址
DHCP ACK 服务端告知客户端可以使用分配的IP地址
DHCP NAK 服务端告知客户端不可以使用该IP地址
DHCP RELEASE 客户端向服务端更新租约

参考文献

  1. DHCP
  2. DHCP协议原理及其实现流程
  3. DHCP 协议原理与攻防简介

Reprint please specify: wbl DHCP协议原理及实现流程

Previous
TCP与UDP协议 TCP与UDP协议
UDP(User Data Protocol) UDP是位于传输层中的协议 UDP是一个无连接的协议,也就意味着UDP是不可靠的 UDP不考虑错误控制,流控制 UDP HeaderUDP的头部固定只有8字节 源端口和目标端口都是2字节
Next
网路层之IP协议 网路层之IP协议
IP协议提供一种尽力投递(best-effors,即不提供任何保证)的方法将数据从源端传递到目标端,它不关心源机器和目标机器是否在同样的网路中,也不关心他们之间是否还有其他网路。下面来看下IPv4协议头部组成。 IPv4协议头部IPv4的头