什么是DHCP?
DHCP(Dynamic Host Configuration Protocol) —–动态主机配置协议,顾名思义:动态的给主机分配IP地址的协议,一个局域网的网络协议;使用UDP协议工作;
DHCP使用C/S的架构,基于UDP实现交互,端口号:67(dhcp服务器)68(dhcp客户端)
UDP和TCP协议比较:
UDP: 用户数据报协议。
TCP: 传输控制协议。
TCP | UDP | |
---|---|---|
连接性 | 面向连接的协议,传输数据之前先建立连接,确保数据的顺序性和完整性; | 无连接的协议,数据包可以独立发送,无需建立连接。 |
速度 | 速度较慢,因为需要三次握手建立连接、确认和错误恢复; | 速度较快,因为没有建立连接、确认和错误恢复的过程; |
头部开销 | TCP头部开销较大,至少需要20字节的头信息; | UDP头部开销较小,头部信息只有8字节; |
用途 | 由于其可靠性,常用于:web浏览,电子邮件、文件传输; | 由于其速度,用于:视频会议、在线游戏和语音传输; |
流控制 | TCP使用流控制,可以控制数据的传输速率,防止网络阻塞; | UDP没有流控制,发送方可以以任何速率发送数据; |
拥塞控制 | TCP有拥塞控制机制,可以避免网络拥塞; | UDP没有拥塞控制,不会对网络做出响应; |
数据边界 | TCP是字节流协议,没有数据边界; | UDP保留消息边界,是消息(数据报)导向的; |
应用 | TCP适用于对可靠性较高的场景,如网页、浏览数据传输; | UDP适用于对实时性要求较高的场景,如即时通讯、在线游戏; |
主要用途
用途一:用于内部网或网络服务供应商自动分配IP地址给用户;
用途二:用于内部网管理员作为对所有计算机作中央管理的手段。
DHCP向客户端提供什么
通常DHCP服务服务器至少向客户端提供以下信息:
1.IP地址
2.子网掩码
3.默认网关
DHCP分配IP的三种形式:
1、手动分配:管理员将一个IP地址固定分配给一个客户端。
2、自动分配:随机地将地址永久性分配给客户端。
3、动态分配:随机地将地址分配给客户端使用一段时间
第三种是最常见的使用形式。地址的有效使用时间段称为租用期,租用期满之前,客户端必须向服务器请求继续租用。服务器接受请求后才能继续使用,否则无条件放弃。
DHCP工作原理
DHCP主要是通过四个步骤来实现自动分配IP地址和其他网络配置信息给设备,这四个步骤分别是发现DISCOVER、提供OFFER、请求REQUEST和确认ACK。
DHCP获得ip地址的4步骤:discover>offer>request>ack(nak)
DHCP刷新租期的步骤:request>ack(nak)
DHCP释放ip的步骤:release
1.发现阶段:DHCP客户端以广播方式发送DHCP discover报文,来发现DHCP服务器。
DHCP discover报文中携带了客户端的MAC地址、请求参数项、广播标志位等信息。
2.提供阶段:DHCP服务器收到DHCP discover报文后,会选择跟接收DHCP discover 报文接口的IP地址处于同一网段的地址池,并且从中选择一个可用的IP地址,然后通过DHCP offer报文发送给DHCP客户端。
3.请求阶段:DHCP客户端一般只接收第一个收到的DHCP OFFER报文,然后以广播方式发送DHCP REQUEST报文,该报文中包含客户端想选择的DHCP服务器标识符和客户端IP地址。DHCP客户端广播发送DHCP REQUEST报文,通知所有的DHCP服务器,它将选择某个DHCP服务器提供的IP地址,其他的DHCP服务器则会将分配给该DHCP客户端的IP地址重新分配给其他DHCP客户端。
4.确认阶段:DHCP服务器收到DHCP REQUEST报文后,会回应DHCP ACK报文,表示DHCP REQUEST报文中请求的IP地址已经分配给客户端使用。DHCP客户端收到DHCP ACK报文后,会广播发送免费ARP报文,探测是否有其他终端使用服务器分配的IP地址。如果地址冲突,DHCP服务器会重新分配一个IP地址给客户端。
工作原理图解:
DHCP客户机租期续约
【来源:百度】
1、在使用租期过去50%时刻处, 客户端向服务器发送单播DHCP REQUEST报文续延租期。
2、如果收到服务器的DHCP ACK报文,则租期相应向前延长,续租成功。如果没有收到DHCP ACK报文,则客户端继续使用这个IP地址。在使用租期过去87.5%时刻处,向服务器发送广播DHCP REQUEST报文续延租期。
3、如果收到服务器的DHCP ACK报文,则租期相应向前延长,续租成功。如果没有收到DHCP ACK报文,则客户端继续使用这个IP地址。在使用租期到期时,客户端自动放弃使用这个IP地址,并开始新的DHCP过程。