简介
DHCP在提供服务时,DHCP客户端是以UDP 68号端口进行数据传输的,而DHCP服务器是以UDP 67号端口进行数据传输的。
过程分为四个阶段:
- 发现阶段(DHCP客户端在网络中广播发送DHCP DISCOVER请求报文,发现DHCP服务器,请求IP地址租约)
- 提供阶段(DHCP服务器通过DHCP OFFER报文向DHCP客户端提供IP地址预分配)
- 选择阶段(DHCP客户端通过DHCP REQUEST报文确认选择第一个DHCP服务器为它提供IP地址自动分配服务)
- 确认阶段(被选择的DHCP服务器通过DHCP ACK报文把在DHCP OFFER报文中准备的IP地址租约给对应DHCP客户端)。
简单来说就是
client广播一个discover包,询问局域网内的dhcp服务器,然后dhcp server收到这个报文回应一个offer报文,表示我这里有ip,使用单播,但是cisco设备用的是广播,但是他是针对发出discover包的client来的,广播报文不具有一个offer回复多个client的功能,第三个包是client发给server的广播报文,表示爸爸今天翻你的牌子,第四个包是server为client明确分配的ip地址,广播单播都可以,cisco用的是广播
为什么要用四个包呢,有些人会说,不是两个报文就够了吗,一个request包,表示我要ip,一个ack表示我给你ip,看吧,多简单,但是局域网内有时候不止一台dhcp服务器,有时候会有很多台,如果使用两个报文,就会出现一台client收到多个offer的问题了