为什么通过DHCP获取IP地址需要几秒钟?

Bor*_*ard 24 dhcp

出于好奇,为什么当 CPU 每秒能够处理数百万次操作并且 ping 路由器需要几毫秒时,为什么通过 DHCP 获取网络配置通常需要几秒钟

在我有一个 WiFi 路由器和大约 5 个设备的家庭环境中,看到 5-10 秒这样的时间并不少见。

Dan*_*Dan 23

除了从 DHCP 服务器实际获取 DHCP 租约(通常不会花费很长时间)之外,一些服务器会在实际分发之前先 ping 它即将分发的 IP 地址,以验证它尚未分发在网络上使用 - 这需要几秒钟才能超时。客户端有时会做同样的事情(同样,为了防止 IP 地址冲突),这会增加一些时间。然后,最重要的是,一些客户端还将注册他们的 DNS 条目等。

  • 我工作中的 dhcp 服务器使用 ARP 请求来检测 IP 冲突。 (3认同)

Dan*_* t. 9

DHCP 可能需要更长的时间,因为它涉及一系列事务,在初始请求期间,它不是与单个服务器,而是与网络上的所有设备,因为它发送广播消息。

如果您检查 RFC 的 DHCP,

http://www.faqs.org/rfcs/rfc2131.html

您可以清楚地看到这一系列谈判所涉及的内容。开始时客户端向局域网内的所有设备发送DHCPDISCOVER,然后运行dhcp服务的服务器返回DHCPOFFER消息。客户端也可能在选择一个之前等待从所有可用的 dhcp 服务器获得响应。然后它发送一个带有标识符的 DHCPREQUEST,该标识符表明它选择了哪个服务器作为其 ip 提供者。最后,它获得带有所有配置参数的 DHCPACK。这只是来自 RFC 的“3.1 客户端-服务器交互 - 分配网络地址”的摘要。

根据我的经验,dhcp 需要很长时间,主要是在连接大量节点的大型 LAN 设置中。在只有一个 dhcp 服务器(例如 WIFI 路由器)和一两台电脑的家庭网络中,速度非常快。