本博文介绍DHCP的原理,帮助大家更好的理解和学习计算机网络知识。
计算机网络知识脑图
计算机网络——计算机网络知识脑图_庄小焱的博客-CSDN博客_计算机网络面试题总结计算机网络大厂面试问题集合
计算机网络——大厂面试问题集合_庄小焱的博客-CSDN博客计算机网络基础知识
计算机网络——网络基础知识_庄小焱的博客-CSDN博客_数据转发服务器IP相关基础原理
计算机网络——IP协议基础原理_庄小焱的博客-CSDN博客_ip网络技术HTTP协议原理
计算机网络——HTTP协议原理_庄小焱的博客-CSDN博客_http协议原理HTTP的优化方式
计算机网络——HTTP的优化方式_庄小焱的博客-CSDN博客HTTPS协议原理
计算机网络——HTTPS协议原理_庄小焱的博客-CSDN博客_https协议原理HTTPS的优化方式
计算机网络——HTTPS的优化方式_庄小焱的博客-CSDN博客TCP可靠性传输原理
计算机网络——TCP可靠性传输原理_庄小焱的博客-CSDN博客_tcp的可靠性是如何实现的TCP/IP三次握手四次挥手原理
计算机网络——HTTP的三次握手与四次挥手原理_庄小焱的博客-CSDN博客_三次握手和四次挥手原理TCP的优化方式
计算机网络——TCP的优化方式_庄小焱的博客-CSDN博客_tcp协议优化技术DNS协议(域名解析)原理
计算机网络——DNS协议(域名解析)原理_庄小焱的博客-CSDN博客_计算机网络dnsARP协议(地址解析)原理
计算机网络——ARP协议(地址解析)原理_庄小焱的博客-CSDN博客_地址解析协议的工作原理ARQ协议(自动重传请求)原理
计算机网络——ARQ协议(自动重传请求)原理_庄小焱的博客-CSDN博客_连续arq协议的原理DHCP协议原理
计算机网络——DHCP(动态获取IP)原理_庄小焱的博客-CSDN博客_计算机网络dhcpNAT协议原理
计算机网络——NAT协议(网络地址转换)原理_庄小焱的博客-CSDN博客ICMP/IGMP协议原理
计算机网络——ICMP/IGMP协议原理_庄小焱的博客-CSDN博客_计算机网络igmpHTTP网络访问全流程
计算机网络——HTTP网络访问全流程_庄小焱的博客-CSDN博客_网络访问流程虚拟网路模型原理
计算机网络——虚拟网路模型原理_庄小焱的博客-CSDN博客其他网络知识
计算机网络——select/poll/epoll底层原理_庄小焱的博客-CSDN博客
计算机网络——cookie/session/token原理_庄小焱的博客-CSDN博客
计算机网络——网络通信加密原理_庄小焱的博客-CSDN博客_网络通信加密
计算机网络——GRPC通信原理_庄小焱的博客-CSDN博客_grpc原理
计算机网络——tcpdump/Wireshark抓包实战_庄小焱的博客-CSDN博客_网络抓包
计算机网络——TCP抓包连接实战_庄小焱的博客-CSDN博客_tcp全连接和半连接
一、DHCP工作原理DHCP 在生活中我们是很常见的了,我们的电脑通常都是通过 DHCP 动态获取 IP 地址,大大省去了配IP 信息繁琐的过程。先说明一点,DHCP 客户端进程监听的是 68 端口号,DHCP 服务端进程监听的是 67 端口号。
- 客户端首先发起 DHCP 发现报文(DHCP DISCOVER) 的 IP 数据报,由于客户端没有 IP 地址,也不知道 DHCP 服务器的地址,所以使用的是 UDP 广播通信,其使用的广播目的地址是255.255.255.255(端口 67) 并且使用 0.0.0.0(端口 68) 作为源 IP 地址。DHCP 客户端将该IP 数据报传递给链路层,链路层然后将帧广播到所有的网络中设备。
- DHCP 服务器收到 DHCP 发现报文时,用 DHCP 提供报文(DHCP OFFER) 向客户端做出响应。该报文仍然使用 IP 广播地址 255.255.255.255,该报文信息携带服务器提供可租约的 IP 地址、子网掩码、默认网关、DNS 服务器以及 IP 地址租用期。
- 客户端收到一个或多个服务器的 DHCP 提供报文后,从中选择一个服务器,并向选中的服务器发送 DHCP 请求报文(DHCP REQUEST进行响应,回显配置的参数。
- 最后,服务端用 DHCP ACK 报文对 DHCP 请求报文进行响应,应答所要求的参数。
- 一旦客户端收到 DHCP ACK 后,交互便完成了,并且客户端能够在租用期内使用 DHCP 服务器分配的IP 地址。
- 如果租约的 DHCP IP 地址快期后,客户端会向服务器发送 DHCP 请求报文:
- 服务器如果同意继续租用,则用 DHCP ACK 报文进行应答,客户端就会延长租期。
- 服务器如果不同意继续租用,则用 DHCP NACK 报文,客户端就要停止使用租约的 IP 地址。
可以发现,DHCP 交互中,全程都是使用 UDP 广播通信。DHCP用的是广播,那如果 DHCP 服务器和客户端不是在同一个局域网内,路由器又不会转发广播包,那不是每个网络都要配一个 DHCP 服务器?所以,为了解决这一问题,就出现了 DHCP 中继代理。有了 DHCP 中继代理以后,对不同网段的 IP 地址分配也可以由一个 DHCP 服务器统一进行管理。
DHCP 客户端会向 DHCP 中继代理发送 DHCP 请求包,而 DHCP 中继代理在收到这个广播包以 后,再以单播的形式发给 DHCP 服务器。服务器端收到该包以后再向 DHCP 中继代理返回应答,并由 DHCP 中继代理将此包广播给DHCP 客户端 。因此,DHCP 服务器即使不在同一个链路上也可以实现统一分配和管理IP地址。
博文参考