DHCP
DHCP即动态主机配置协议(Dynamic Host Configuration Protocal),可以通过DHCP服务器自动为局域网中的主机配置IP地址。
DHCP运行在UDP之上,整个过程如下:
1. 新接入局域网的主机通过UDP广播,发现DHCP服务器。主机发送DISCOVER广播报文。该广播报文的大致内容为:
目标地址为:255.255.255.255(全域广播),目标端口为57(ICANN为DHCP分配的固定端口号)
源地址为:0.0.0.0(表示本机IP,此时该主机还未分配IP地址),源端口号为58(ICANN为DHCP分配的固定端口号)
报文类型为:DHCPDISCOVER,事务ID为654(随机生成)
2. 本局域网内的DHCP服务器收到DISCOVER报文后,会响应OFFER报文。该报文一般也是广播报文。大致内容为:
目标地址为:255.255.255.255(全域广播,此时DHCP服务器不知道是哪个主机发送的DISCOVER报文),目标端口为58
源地址为:223.1.2.5(DHCP服务器的IP地址),源端口号为57
报文类型为:OFFER,事务ID为654(必须与DISCOVER广播报文中的事务ID一致)
yiaddr: 223.1.2.4 (DHCP服务器为主机提供的IP地址) 其实还应该包括子网掩码,图中未给出
Lifetime: 过期时间
3. 主机收到DHCP发送的OFFER报文后,通过事务ID确认该报文是发送给自己的。然后会向DHCP发送正式IP地址请求(REQUEST报文),该报文可以是单播也可以是广播,图示中为广播。该报文大致内容与前面雷同。
4. DHCP服务器收到主机的REQUEST请求后,会检查请求中的IP地址是否分配,如果未分配,则响应ack报文。如果已分配,则响应NACK报文。