LAN 中的 DHCP 消息

LAN 中的 DHCP 消息

我运行 Mac 并使用以下命令释放/更新我的 IP:

sudo ipconfig set en0 DHCP

在 wireshark 中,我使用 udp.port==67 作为过滤器获得以下内容:

http://i.imgur.com/uyLBTmQ.png?1

为什么我的电脑发送的消息是广播的,但服务器直接将它们发送给我。我所读到的文献说一切都是广播的。为什么这里不是这样?

答案1

DHCP 请求是广播流量。您的 PC 不知道本地子网上有哪些 DHCP 服务器可用,因此它必须广播 IP 请求。然后,任何可用的 DHCP 服务器都会直接向您的工作站响应 IP 请求。然后,您的工作站将正式向 DHCP 服务器请求 IP。最后,服务器将接受请求并将 IP 分配给您的工作站。

该过程概述如下步骤:

  1. 发现
  2. 提供
  3. 要求
  4. 承认

回答评论中的问题,服务器可以通过第 2 层的工作站的 MAC 地址与工作站进行通信。在收到 IP 之前,工作站将使用 IP 0

但是,流量被发送到工作站的 MAC(该 MAC 在原始广播消息中从工作站发送discocver)。

您可以在 wireshark 跟踪中看到这一点。本地子网上的设备使用 MAC 地址进行通信。

来自RFC2131:

客户端在获取其 IP 地址之前广播的 DHCP 消息必须将 IP 标头中的源地址字段设置为 0。

相关内容