0

这可能是一个愚蠢的查询,但我正在寻找确认。

我计划根据一些典型的客户需求来实现一个 DHCP 服务器。为此目的,我在使用 RAW 套接字和 DGRAM 套接字之间有点困惑。我的理解是服务器可以通过 DGRAM 套接字实现,假设所有 DHCP 回复都可以处理,而 DHCP 客户端需要一个 RAW 套接字,因为在服务器提供 IP 地址之前它没有 IP 地址。

我对这些点的理解正确吗?

伙计们,

在进一步挖掘之后,服务器正在发送 DHCP OFFER 消息,其中包含客户端的 Mac 地址作为一个选项 (chaddr)。AFAIK; 使用 RAW Sockets 的服务器应用程序只能获取 DHCP 客户端机器的 MAC 地址。有没有可能。我们可以请求内核(TCP/IP 堆栈)将 mac 地址传递给通过 DGRAM 套接字运行的应用程序吗?感谢您的关注 !!!

4

1 回答 1

0

好的。经过进一步的协议分析;dhcp client it-self 在 DISCOVER Packet 中发送 mac 地址。因此; 不需要 RAW Socket 并且使用 DGRAM Socket 本身我们可以实现 DHCP 服务器。

于 2012-07-04T00:30:32.090 回答