Language agnostic 听广播对我有什么伤害?

Language agnostic 听广播对我有什么伤害?,language-agnostic,networking,network-programming,udp,boost-asio,Language Agnostic,Networking,Network Programming,Udp,Boost Asio,我正在从exchange接收一个恢复源,用于恢复从其主源丢失的数据 exchange强烈建议仅在需要数据时侦听恢复提要,并在恢复所需数据后退出多播 我的问题是,如果我正在使用asio,并且在我不需要的时候不从NIC读取数据,那么有什么害处?这些消息都有序列号,所以我不能意外地处理卡片上的旧消息“left” 这真的会伤害到我的应用程序吗?很可能不会伤害到你的应用程序,而会伤害到你的机器-因为nic仍然配置在多播组中,所以它仍然在侦听这些消息并将其传递给你的软件,以免你的软件忽略它们并将它们丢弃。这

我正在从exchange接收一个恢复源,用于恢复从其主源丢失的数据

exchange强烈建议仅在需要数据时侦听恢复提要,并在恢复所需数据后退出多播

我的问题是,如果我正在使用asio,并且在我不需要的时候不从NIC读取数据,那么有什么害处?这些消息都有序列号,所以我不能意外地处理卡片上的旧消息“left”


这真的会伤害到我的应用程序吗?

很可能不会伤害到你的应用程序,而会伤害到你的机器-因为nic仍然配置在多播组中,所以它仍然在侦听这些消息并将其传递给你的软件,以免你的软件忽略它们并将它们丢弃。这是您的网络堆栈和内核正在做的大量额外工作,因此,机器上通常会有大量额外负载,而不仅仅是应用程序。

收听您的恢复提要也可能对网络级别产生潜在影响。正如pjz所提到的,NIC和IP堆栈将有更多的帧/数据包需要处理。此外,更多的可用带宽被应用程序未使用的数据占用;如果链接出现拥塞,这可能会导致帧丢失。是否可能出现拥塞取决于服务器是否连接100Mb或1Gb、主机发送/接收的其他流量等

另一个潜在问题是对其他主机的影响。如果您的主机连接到的交换机未启用,则同一VLAN上的所有主机都将接收额外的多播流量,这可能导致它们遇到与上述相同的问题

如果你有一个网络团队为你管理你的网络,也许值得从他们那里寻求一些建议?如果您觉得有必要订阅冗余源,那么明智的做法是确定网络中已经存在的冗余级别以及主源上的消息丢失的可能性。

添加注释

这不太可能对您的系统产生任何影响,但值得注意的是,维护多播成员资格会带来开销(假设您使用的是IGMP,考虑到“退出多播”的限制,这可能是合理的)

IGMP需要定期发送和处理多播组成员身份。以及(正如muz评论中提到的)如果您与多播源之间有任何交换机或路由器能够进行igmp窥探,则它们能够禁用给定网络的多播