gpt4 book ai didi

sockets - 我不明白关于多播的段落

转载 作者:行者123 更新时间:2023-12-03 11:58:17 25 4
gpt4 key购买 nike

本段如果来自 UNP,
第 21.3 章 第 555 页

  • 运行已加入某个多播组的应用程序的主机
    相应的以太网地址恰好是接口(interface)的一个
    当它被编程为接收 01:00:5e:00:01:01 时接收(例如,
    接口(interface)卡执行不完善的过滤)。此帧将被丢弃
    通过数据链路层或 IP 层。

  • 我只是不知道作者在谈论哪种特殊情况。你能帮我解释清楚吗?

    最佳答案

    在 IPV4 中。多播地址(旧的 D 类)由 4 位固定组成,用于将其标识为多播(1110),其余 28 位用于标识组。

    由于 MAC 地址中只有 23 位可用(高 25 位是固定的),当您将多播地址的低 23 位映射到 mac 的低 23 位时,您会丢失 5 位寻址信息。因此,多个组播地址都具有相同的 MAC 地址。

    例如

    237.138.0.1
    238.138.0.1
    239.138.0.1

    所有映射到 MAC 地址:01:00:5e:0a:00:01 (还有更多,这只是一个子集来说明)

    因此,如果您加入组 237.138.0.1,您的以太网卡将开始向该 MAC 的堆栈发送帧。由于它是不完美的匹配(因为我们丢弃了这 5 位),以太网卡也会将 238.138.0.1 和 239.138.0.1 发送到堆栈中。但是由于您对这些帧不感兴趣,当它们可以完全匹配时,它们将在第 2 层(数据链路)或第 3 层(网络)被丢弃。

    所以特殊情况是,如果您有多个多播流占用相同的低 23 位地址空间,则网段上的所有主机都必须处理堆栈中更高的数据包,因此需要做更多的工作来判断是否他们得到的数据包是他们感兴趣的数据包)。

    通常,您只需要确保在规划多播部署时,尽量避免地址重叠。

    关于sockets - 我不明白关于多播的段落,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16194512/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com