DHCP(动态主机配置协议)
顾名思义:动态的给主机分配IP地址的协议,一个局域网的网络协议
主要作用:集中的管理,分配IP地址,网关(Gateway)地址,DNS服务器地址等配置信息,有效提升了IPV4地址的使用率,缓解了IP地址的缺乏。
我们主机的IP是如何获取的?
每当我们连上Wifi(无线局域网)准备上网冲浪时,我们发现我们的IP地址就已经存在了,它是怎么获取的呢?这里面存在了一系列的过程去实现IP地址的自动获取的。
这里有几个概念需要定义:
DHCP Client:使用了DHCP协议的客户端(我们的主机)
DHCP Server:使用了DHCP协议的服务器(一般情况下时我们的家庭路由器)
Client --> Server : 发送到服务器端口(Port)67
Server --> Client : 发送到主机端口(Port)68
实现过程:(此过程均以广播的形式实现)
①Client: Discover(发现) —> Server
②Server: Offer(提供) —> Client
③Client: Request (请求) —> Server(选择最先到达的offer包的Server作为 request对象,同时广播宣告自己名花有主)
④Server: Ack (确认) —> Client
⑤Client : arp —> Everybody:有谁的IP和我一样 (排除ip地址冲突)
⑥ if ⑤ is True(IP地址和我一样):Decline(拒绝)—> Server
( 我不要这个IP地址了,别人已经有了。)
实现过程图
工作过程图解
(每次通信其实都以广播的方式发给局域网内的每一个主机,但对于无关的包主机是直接丢弃不以理会的,且把线都画出来不太可能,所以在下图中对于无关的主机广播的线没有画出来了)
Discover过程
Offer过程
Request过程
ACK过程
客户端确认IP地址无人使用过程
Decline过程
DHCP的三种IP地址分配机制:
①动态分配方式:由服务器为我们动态分配IP地址,有使用期限,会过期,租期一到就会回收。
②手工分配方式:我们自己指定要使用哪个IP地址,必须在DHCP Server提供的IP地址的范围内
③自动分配方式:DHCP服务器为我们分配的永久性的IP地址,不存在过期一说,一次分配,永久使用。
我们可以查看本机电脑分配的ip和网关,DNS等配置,电脑IP地址配置 Windows cmd下敲入命令:
ipconfig/all
租约更新
当主机重启或当租约时间到了50%时,此时主机已经分配了IP地址,不用重新发起Discover,主机会对DHCP服务器(单播)发出Request请求租约续期,若是服务器没有理会,则继续使用此ip地址,当时间达到租约时间的75%,再次给服务器发送Request请求,此次以(广播)的形式发送请求,若还是没有应答,客户端就开始(Release)释放IP地址,[当然我们也可以手动提前释放资源Windows cmd下敲下命令:
ipconfig/release]
主机重启(重连网络)
当主机重新连上网络时,此时主机会对DHCP服务器发出Request请求,若其使用的IP地址还未分配给其它主机,服务器会优先把原来分配给此主机的IP地址分配给它,回复ACK,但是若此IP已分配给其他主机,则回复NACK,让其必须重新开始Discover发现,
生活实际
我们的家用路由器其实就内置了DHCP服务器,所以我们的IP地址都是由路由器分配,而我们常用的IP地址分配方式则是动态分配方式,租期一到自动更新