agou专家书院 2019-11-08
DHCP
(动态主机配置协议 Dynamic Host Configuration Protocol
)是一个局域网的网络协议。指的是由服务器控制一段lP地址范围,客户机登录服务器时就可以自动获得服务器分配的lP
地址和子网掩码
DHCP
客户机寻找DHCP
服务器的阶段。DHCP
客户机以广播方式(因为DHCP
服务器的IP
地址对于客户机来说是未知的)发送DHCP discover
信息来寻找DHCP
服务器,即向地址255.255.255.255
发送特定的广播信息。网络上每一台安装了TCP/IP
协议的主机都会接收到这种广播信息,但只有DHCP
服务器才会做出响应。DHCP
服务器提供IP
地址的阶段。在网络中接收到DHCP discover
信息的DHCP
服务器都会做出响应,它从尚未出租的IP
地址中挑选一个分配给DHCP
客户机,向DHCP
客户机发送一个包含出租的IP
地址和其他设置的DHCP offer
信息。DHCP
客户机选择某台DHCP
服务器提供的IP
地址的阶段。如果有多台DHCP
服务器向DHCP
客户机发来的DHCP offer
信息,则DHCP
客户机只接受第一个收到的DHCP offer
信息,然后它就以广播方式回答一个DHCP request
信息,该信息中包含向它所选定的DHCP
服务器请求IP
地址的内容。之所以要以广播方式回答,是为了通知所有的DHCP
服务器,他将选择某台DHCP
服务器所提供的IP
地址。DHCP
服务器确认所提供的IP
地址的阶段。当DHCP
服务器收到DHCP
客户机回答的DHCP request
信息之后,它便向DHCP
客户机发送一个包含它所提供的IP
地址和其他设置的DHCP ack
确认信息,告诉DHCP
客户机可以使用它所提供的IP
地址。然后DHCP
客户机便将其TCP/IP
协议与网卡绑定,另外,除DHCP
客户机选中的服务器外,其他的DHCP
服务器都将收回曾提供的IP
地址。DHCP
客户机每次重新登录网络时,就不需要再发送DHCP discover
信息了,而是直接发送包含前一次所分配的IP
地址的DHCP request
信息。当DHCP
服务器收到这一信息后,它会尝试让DHCP
客户机继续使用原来的IP
地址,并回答一个DHCP ack
信息。如果此IP
地址已无法再分配给原来的DHCP
客户机使用时(比如此IP
地址已分配给其它DHCP
客户机使用),则DHCP
服务器给DHCP
客户机回答一个DHCP nack
否认信息。当原来的DHCP
客户机收到此DHCP nack
否认信息后,它就必须重新发送DHCP discover
发现信息来请求新的IP
地址。DHCP
服务器向DHCP
客户机出租的IP
地址一般都有一个租借期限,期满后DHCP
服务器便会收回出租的IP
地址。如果DHCP
客户机要延长其IP
租约,则必须更新其IP租约。DHCP
客户机启动时和IP
租约期限过一半时,DHCP
客户机都会自动向DHCP
服务器发送更新其IP
租约的信息。为了方便理解,列举一个小例子(可能不太恰当)
我们把DHCP
客户机比做餐馆里的客人,DHCP
服务器比做服务员(一个餐馆里也可以有多个服务员),IP
地址比做客户需要的食物。
那么可以这样描述整个过程:
客人走进餐馆,问:“有没有服务员啊?”(DHCP discover)
,
多个服务员同时回答:“有,我这有汉堡” “有,我这有鸡翅”(DHCP offer)
。
客人说:“好吧,我要一份汉堡”(DHCP request)
(这个客人比较死板,总是选择第一次听到的食物)
端着汉堡的服务员回应了一声:“来啦”(DHCP ack)
,并把食物端到客人面前,供其享用(将网卡和IP地址绑定)。
客人下次来的时候,就直接找上次那个服务员点自己喜欢的汉堡了(DHCP request)
,如果还有汉堡,服务员会再次确认并上菜(DHCP ack)
,而如果已经卖完了,服务员则会告诉客人:“不好意思,已经卖完了”(DHCP nack)
。
当然,服务员隔一段时间会来收拾一次桌子,除非客人特别说明这菜还要继续吃的,服务员会将剩菜端走。