一、基本概念
- 前身:DHCP的前身是BOOTP(Bootstrap Protocol)协议。
- 协议层次:DHCP协议存在于应用层(OSI模型),使用UDP(User Datagram Protocol,用户数据报协议)工作。
- 端口号:常用的两个端口号是67(DHCP服务器)和68(DHCP客户端)。
二、主要功能
DHCP协议的主要功能是给网络快速自动地分配IP地址,以及相关的IP信息(如子网掩码、默认网关、DNS服务器地址等),帮助网络中的计算机能够与其他IP网络通信。
三、工作原理
DHCP协议的工作过程通常包括以下几个阶段:
- 发现阶段(DHCP DISCOVER):
- 当DHCP客户端首次接入网络时,由于没有IP地址,它会以广播方式发送DHCP DISCOVER报文,寻找DHCP服务器。
- 报文的目的IP地址为255.255.255.255,表示这是一个广播地址,请求网络中的所有DHCP服务器响应。
- 提供阶段(DHCP OFFER):
- 接收到DHCP DISCOVER报文的DHCP服务器会从尚未分配的IP地址池中挑选一个IP地址,连同其他网络配置参数(如子网掩码、默认网关、DNS服务器地址等),通过DHCP OFFER报文发送给客户端。
- 由于此时客户端还没有IP地址,所以DHCP OFFER报文是以广播方式发送的。
- 选择阶段(DHCP REQUEST):
- DHCP客户端可能会收到多个DHCP服务器的OFFER报文,但它通常只会选择第一个收到的OFFER报文,并以广播方式发送DHCP REQUEST报文,确认接受该服务器的IP地址分配。
- DHCP REQUEST报文中包含客户端的MAC地址、接受的IP地址以及提供该IP地址的DHCP服务器地址等信息。
- 确认阶段(DHCP ACK):
- 收到DHCP REQUEST报文的DHCP服务器会发送DHCP ACK报文进行确认,告知客户端可以使用分配的IP地址和相关配置参数。
- 至此,客户端成功获取到IP地址和相关配置信息,并完成网络初始化过程。
DHCP报文格式
报文类型-----八种--6种
discover报文-----发现报文,用来发现网络中的DHCP服务器
offer报文--------由服务器进行回复,当收到discover报文后,并且服务器本地存在可用IP地址,则回复信息
request报文------正式向服务器请求IP地址
ack报文----------服务器同意使用该IP地址
decline报文------当客户端检测到IP地址冲突时,发送给服务器,用以告知服务器,IP不可用nak报文----服务器拒绝客户端使用该IP地址----一般看不到
release报文-----客户端主动释放IP地址。
四、租约机制
DHCP协议还引入了租约机制,即分配给客户端的IP地址和相关配置参数不是永久有效的,而是有一个租约期限。在租约期限内,客户端可以使用分配的IP地址;租约到期后,客户端需要重新申请IP地址或续租。
五、地址冲突检测
为了防止IP地址冲突,DHCP客户端在获取到IP地址后,会进行地址冲突检测。如果发现该IP地址已被其他设备使用,客户端会发送DHCP DECLINE报文给DHCP服务器,拒绝接受该IP地址,并重新申请新的IP地址。
综上所述,DHCP协议是一种高效、自动的网络管理协议,能够集中管理和动态分配网络中的IP地址和相关配置信息,极大地简化了网络配置过程。