DHCP协议笔记
- [ ] 推荐这篇文章,原理及抓包都分析的很好:
https://blog.csdn.net/andy_93/article/details/78238931
1、DHCP_Client 发给 DHCP_Server:DHCP DISCOVER(寻找服务器)(广播包)
当DHCP客户端开机的时候,就会广播寻找DHCP服务器。 由于客户端此时还不知道自己属于哪一个网路,所以封包的来源地址会为0.0.0.0, 目的地址则为255.255.255.255,然后再附上DHCP discover的包信息。
2、DHCP_Server 发给 DHCP_Client:DHCP OFFER(分配IP信息)
当DHCP服务器监听到客户端发出的DHCP Discover广播后, 会从自己的IP池里分配一个IP地址,再加上客户端的硬件地址 (MAC)、XID编号(用于识别)等信息,封装为一个DHCP OFFER包,发送给客户端。
3、DHCP_Client 发给 DHCP_Server:DHCP REQUEST(请求使用具体的IP)(广播包)
假如客户端接收到多个服务器发来的DHCP OFFER包,会选择最先接收到的包信息,然后以广播的方式发送一个DHCP REQUEST,相当于广播给所有服务器:我接受了这个服务器的包。其他被拒绝的服务器就不会继续建立连接啦。
4、DHCP_Server 发给 DHCP_Client:DHCP ACK(分配确认)
当DHCP服务器收到DHCP客户端回答的DHCP Request请求信息之后, 它便向DHCP客户端发送一个包含它所提供的IP地址和其他设置的DHCP Ack确认信息。以确认IP地址的正式生效。然后DHCP客户端便将其TCP/IP协议与自己的网卡绑定。
PS:如果第3步request包DHCP server判断不合法,会恢复回复DHCP NAK包,这样可以马上重新进行1~4步骤。