DHCP协议及工作流

37次阅读

共计 1697 个字符,预计需要花费 5 分钟才能阅读完成。

概述

DHCP(动态主机配置协议 Dynamic Host Configuration Protocol)是一个局域网的网络协议。指的是由服务器控制一段 lP 地址范围,客户机登录服务器时就可以自动获得服务器分配的 lP 地址和子网掩码

工作流

  1.  发现阶段 ,即DHCP 客户机寻找 DHCP 服务器的阶段。DHCP客户机以广播方式(因为 DHCP 服务器的 IP 地址对于客户机来说是未知的)发送 DHCP discover 信息来寻找DHCP 服务器,即向地址 255.255.255.255 发送特定的广播信息。网络上每一台安装了 TCP/IP 协议的主机都会接收到这种广播信息,但只有 DHCP 服务器才会做出响应。

  2. 提供阶段 ,即DHCP 服务器提供 IP 地址的阶段。在网络中接收到 DHCP discover 信息的 DHCP 服务器都会做出响应,它从尚未出租的 IP 地址中挑选一个分配给 DHCP 客户机,向 DHCP 客户机发送一个包含出租的 IP 地址和其他设置的DHCP offer 信息。

  3.  选择阶段 ,即DHCP 客户机选择某台 DHCP 服务器提供的 IP 地址的阶段。如果有多台 DHCP 服务器向 DHCP 客户机发来的 DHCP offer 信息,则DHCP 客户机只接受第一个收到的 DHCP offer 信息,然后它就以广播方式回答一个DHCP request 信息,该信息中包含向它所选定的 DHCP 服务器请求 IP 地址的内容。之所以要以广播方式回答,是为了通知所有的 DHCP 服务器,他将选择某台 DHCP 服务器所提供的 IP 地址。
  4.  确认阶段 ,即DHCP 服务器确认所提供的 IP 地址的阶段。当 DHCP 服务器收到 DHCP 客户机回答的 DHCP request 信息之后,它便向DHCP 客户机发送一个包含它所提供的 IP 地址和其他设置的 DHCP ack 确认信息,告诉 DHCP 客户机可以使用它所提供的 IP 地址。然后 DHCP 客户机便将其 TCP/IP 协议与网卡绑定,另外,除 DHCP 客户机选中的服务器外,其他的 DHCP 服务器都将收回曾提供的 IP 地址。

  5. 重新登录 。以后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 地址。

  6. 更新租约 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)
当然,服务员隔一段时间会来收拾一次桌子,除非客人特别说明这菜还要继续吃的,服务员会将剩菜端走。

正文完
 0