主页 > 游戏开发  > 

计算机网络:应用层——动态主机配置协议DHCP

计算机网络:应用层——动态主机配置协议DHCP

文章目录 什么是 DHCP?DHCP 的产生背景DHCP 的工作过程工作流程地址分配机制 DHCP 中继代理总结

什么是 DHCP?

动态主机配置协议(DHCP,Dynamic Host Configuration Protocol)是一种网络管理协议,用于自动分配IP地址及其他网络配置参数(如子网掩码、默认网关、DNS服务器地址等)给网络中的设备。它基于客户端/服务器架构,通过集中管理IP地址池,简化了网络设备的配置过程。

DHCP 协议允许网络管理员通过中央服务器来动态分配和管理 IP 地址以及其他网络配置参数,从而减少了网络管理的复杂性。

DHCP 的产生背景

在 DHCP 出现之前,网络管理员需要手动为每台设备配置 IP 地址,这种方式不仅繁琐,还容易导致 IP 地址冲突和资源浪费。随着网络规模的扩大和设备数量的增加,这种手动配置的方式已无法满足需求。因此,IETF 设计了 DHCP 协议,以实现动态、自动化的 IP 地址分配。

DHCP 的工作过程

DHCP 使用客户/服务器方式:

在 DHCP 服务器上运行 DHCP 服务器进程,也可简称为 DHCP 服务器

在用户主机上运行 DHCP 客户进程,也可简称为 DHCP 客户。

DHCP 是 TCP/IP 协议体系应用层中的协议,它使用运输层的 UDP 所提供的服务。DHCP报文在运输层会被封装成为 UDP用户数据报,DHCP 服务器使用的UDP端口是67,DHCP 客户使用的UDP端口是68,这两个 UDP 端口都是熟知端口。

封装有 DHCP 报文的 UDP 用户数据报,在网络层会被封装成 IP 数据报,然后再根据所使用的网络接口,封装成相应的数据链路层的帧进行发送,如封装为以太网帧。

工作流程

DHCP 的工作流程主要包括以下四个阶段:

发现阶段(DHCP Discover):客户端以广播方式发送 DHCP Discover 报文,寻找可用的 DHCP 服务器。

提供阶段(DHCP Offer):服务器收到请求后,从地址池中选择一个可用的IP地址,并向客户端发送 DHCP Offer 报文。

请求阶段(DHCP Request):客户端收到 Offer 后,选择一个服务器的 Offer,并发送 DHCP Request 报文,请求确认分配的IP地址。

确认阶段(DHCP Ack):服务器确认客户端的请求,发送 DHCP Ack 报文,正式分配IP地址及其他配置信息。

这是一个四步的交互过程,包括客户端的广播请求、服务器的提供回应、客户端的确认地址和服务器的确认并更新数据库。

客户端广播请求(Discover)

当 DHCP 客户端(如计算机、路由器等)启动时,它会在网络上广播一个 DHCP Discover 消息(因为主机现在并不知道网络中有哪几个DHCP服务器),请求可用的 IP 地址和其他网络配置参数。这个广播消息会被网络上的所有设备接收,但只有DHCP服务器会对此作出响应。

DHCP Discover 消息报文封装有事务ID、DHCP 客户端的 MAC 地址等信息

DHCP服务器提供回应(Offer)

当 DHCP 服务器接收到客户端的 DHCP Discover 广播后,它会从预定义的IP地址池中选择一个未使用的IP地址,根据其中封装的 DHCP 客户端的 MAC 地址实查找自己的数据库,看是否有针对该 MAC 地址的配置信息。

如果有,则使用这些配置信息来构建并发送 DHCP 提供报文;则采用默认配置信息来构建并发送 DHCP 提供报文。并通过广播或单播方式向客户端发送一个 DHCP Offer 消息。

DHCP 服务器从自己的 IP 地址池中挑选待租用给主机的IP地址时,会使用ARP确保所选IP地址未被网络中其他主机占用。

这个 Offer 消息中包含了分配的 IP 地址、子网掩码、地址租期、默认网关、DNS 服务器地址等配置信息。

如果网络中存在多个 DHCP 服务器,客户端可能会收到多个 Offer 消息。在这种情况下,客户端通常会选择第一个收到的Offer或根据其他标准(如服务器优先级)选择一个Offer。

DHCP客户端确认地址(Request)

客户端在收到 DHCP Offer 后,DHCP 客户会根据 DHCP 提供报文中的事物 ID,来判断该报文是否是自己所请求的报文,然后发送一个 DHCP Request 消息给选定的 DHCP 服务器,表示它接受该服务器提供的IP地址和其他配置参数。

这个 Request 消息是一个广播消息(目的IP地址为广播地址),因为首先需要征得该服务器的同意,之后才能正式使用向该DHCP服务器租用的IP地址。

DHCP 请求报文中封装有事物 ID、DHCP 客户端的 MAC 地址、接受的租约中的 IP 地址、提供此租约的 DHCP 服务器端的 IP 地址等信息。

DHCP服务器确认并更新数据库(Ack/Decline)

当 DHCP 服务器收到客户端的 DHCP Request 消息后,它会发送一个 DHCP Ack 消息作为响应(目的IP地址为广播地址),确认客户端可以使用请求的IP地址和其他配置参数。这个 Ack 消息也会更新DHCP服务器的数据库,标记该 IP 地址已经被分配出去。

此时,DHCP 服务器仍会使用 ARP 检测所分配到的 IP 地址是否已被网络中其他主机占用,如果 DHCP 服务器提供的 IP 地址已经被其他客户端使用(由于某种原因),则服务器会发送一个 DHCP DECLINE 消息给客户端,撤销地址租约,表示IP地址分配失败,客户端需要重新发送 DHCP Discover 消息以获取新的IP地址。

若未被占用,则可以使用租约中的IP地址与网络中其他主机通信了

地址分配机制

DHCP 提供了两种主要的地址分配机制:

动态分配:为客户端分配一个有使用期限的IP地址(租期)。租期到期前,客户端需要续租。这种方式适用于临时接入网络的设备。

静态分配:网络管理员可以为特定设备分配固定的IP地址,避免手动配置错误

在工作过程中:

DHCP客户端更新租约(Request/Discover)

当 DHCP 客户端已经和某个 IP 地址绑定后,经过 0.5 倍的租用期时间后,为了更新 IP 地址的租约,它会发送 DHCP REQUEST 单播报文。在这种情况下,客户端知道服务器的具体地址,因此可以直接向该地址发送单播请求。

DHCP 服务器若同意,则发回 DHCP ACK 确认报文,这样,DHCP 客户就得到了新的租用期。

DHCP 服务器若不同意,则发回DHCP NACK否认报文,这时,DHCP 客户必须立即停止使用之前租用的IP地址,并重新发送 DHCP Discover 发现报文来重新申请IP地址。

DHCP 服务器者未做出响应,则在租用期过了 87.5% 时,DHCP 客户必须重新发送 DHCP REQUEST 请求报文,然后继续等待 DHCP 服务器可能做出的反应。

若 DHCP 仍未做出响应,当租用期到期后,DHCP 客户必须立即停止使用之前租用的 IP 地址,并重新发送 DHCP 发现报文来重新申请 IP 地址。

DHCP客户终止租用期(Release)

DHCP 客户可以随时提前终止 DHCP 服务器所提供的租用期,这时只需向 DHCP 服务器发送 DHCP RELEASE 释放报文段即可。 DHCP 中继代理

在每一个网络上都设置一个 DHCP 服务器会使 DHCP 服务器的数量太多。因此,在实际应用中,是使每一个网络至少有一个DHCP中继代理(通常是一台路由器),它配置了 DHCP 服务器的 IP 地址信息,作为各网络中计算机与 DHCP 服务器的桥梁。

总结

DHCP 是一种高效的网络管理协议,通过自动分配 IP 地址和网络配置信息,极大地简化了网络管理流程,提高了网络的灵活性和可扩展性。它在现代网络中扮演着不可或缺的角色,尤其是在局域网、无线网络和云计算环境中。

标签:

计算机网络:应用层——动态主机配置协议DHCP由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“计算机网络:应用层——动态主机配置协议DHCP