AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1536810
Accepted
akellas
akellas
Asked: 2020-03-29 23:05:07 +0800 CST2020-03-29 23:05:07 +0800 CST 2020-03-29 23:05:07 +0800 CST

为什么要广播 DHCP 消息?

  • 772

我正在网络课程中学习 DHCP,作为研究的一部分,我正在观看以下视频:

https://www.youtube.com/watch?v=0UvLRVlPx6A

因此,在上述视频(3:48)的 Wireshark 捕获中,所有 DHCP OFFER、REQUEST 和 ACK 消息都将广播地址作为目标 IP。

另一方面,下面的文章提到除了 DISCOVER 消息之外的所有消息都是单播的:

https://www.grandmetric.com/2017/07/18/what-is-dhcp-and-how-does-it-work/

我的问题是: 1. 其中哪一个是正确的?它真的取决于具体情况吗?

  1. 如果 youtube 视频中提到的所有 DHCP 消息都是广播,那么在初始 DISCOVER 消息之后,当客户端知道 DHCP 服务器 IP 时,为什么客户端不直接使用服务器 IP 作为目标 IP,在其他话说,为什么不使用单播消息进行通信?
networking dhcp
  • 1 1 个回答
  • 1244 Views

1 个回答

  • Voted
  1. Best Answer
    A.B
    2020-03-30T05:08:09+08:002020-03-30T05:08:09+08:00

    DHCP 的权威来源更可能是RFC 2131。以下是第 3.1 节的节选

    1. 客户端在其本地物理子网上广播 DHCPDISCOVER 消息。

    [...]

    1. 每个服务器都可以响应一个 DHCPOFFER 消息

    [...]

    1. 客户端从一台或多台服务器接收一条或多条 DHCPOFFER消息。客户端可以选择等待多个响应。客户端根据 DHCPOFFER 消息中提供的配置参数选择一台服务器来请求配置参数。客户端广播一个 DHCPREQUEST 消息,该消息 必须包含“服务器标识符”选项以指示它选择了哪个服务器

    [...] 4. 服务器接收来自客户端的 DHCPREQUEST 广播。 那些未被 DHCPREQUEST 消息选择的服务器使用该消息作为客户端已拒绝该服务器的提议的通知。

    解释还在继续。每当发送广播时,都会明确说明。

    因此,这主要与以下事实有关:为了实现高可用性,网络广播域上可能有多个 DHCP 服务器。如果通信在初始 DHCPREQUEST 时切换到单播,其他冗余服务器将不知道客户端是否选择了其他服务器(允许他们更快地回收他们自己提供的 IP 地址)或者它是否就消失了。

    4.1 节中描述了更多的使用规则。大多数情况下,一旦客户端开始使用其分配的 IP 地址(而不是源 0.0.0.0),通信就会切换到单播。

    如果 'giaddr' 字段为零且 'ciaddr' 字段不为零,则服务器将DHCPOFFER 和 DHCPACK 消息单播到 'ciaddr' 中的地址。如果 'giaddr' 为零且 'ciaddr' 为零,并且设置了广播位,则服务器将 DHCPOFFER 和 DHCPACK 消息广播到 0xffffffff。如果广播位未设置且“giaddr”为零且“ciaddr”为零,则服务器将DHCPOFFER 和 DHCPACK 消息单播到客户端的硬件地址和“yiaddr”地址。在所有情况下,当 'giaddr' 为零时,服务器将任何 DHCPNAK 消息广播到 0xffffffff。

    注意:单播到 IP 地址首先需要 ARP 解析(因此客户端已经配置了 IP 地址),单播到硬件地址不需要(并且当客户端没有 IP 时将用于初始 DHCPOFFER )。

    此外,例如,第 4.3.2 节解释了 DHCPREQUEST 的各种用例:SELECTION 状态(首次使用)、INIT-REBOOT(缓存信息,但在不再使用之后)或 RENEWING(延长租约)。第三种情况表明应该使用单播发送消息。

    • 3

相关问题

  • 三台电脑,没有路由器/交换机怎么组网?

  • 用户使用 FileZilla 连接到 SFTP 服务器拒绝连接

  • NAT 后面的 NAT 如何工作(路由器的 NAT 和 ISP 的 NAT)?

  • Win10 1803:如何让移动热点成为专用网络?

  • nc如何识别服务名称

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 为什么通过电缆(同轴电缆)的千兆位/秒 Internet 连接不能像光纤一样提供对称速度? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    fixer1234 “HTTPS Everywhere”仍然相关吗? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve