如何倾听多播会伤害我?

时间:2008-09-16 14:52:29

标签: language-agnostic networking network-programming udp boost-asio

我从交换机收到恢复供稿,用于恢复主要供稿中遗漏的数据。

交换强烈建议仅在需要数据时才收听恢复Feed,并在我恢复所需数据后离开多播。

我的问题是,如果我使用的是asio,而不是在我不需要时从NIC读取,那有什么危害?消息有序列号,所以我不能不小心处理卡上“左”的旧消息。

这真的伤害了我的申请吗?

3 个答案:

答案 0 :(得分:5)

很可能损害你的应用程序而不是伤害你的机器 - 因为nic仍然被配置到多播组中,它仍然会在你的软件忽略它们之前监听这些消息然后传递它们他们被丢弃了。这是您的网络堆栈和内核正在进行的大量额外工作,因此通常会在计算机上产生大量额外负载,而不仅仅是您的应用程序。

答案 1 :(得分:4)

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

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

如果您有一个网络团队为您管理您的网络,可能值得从他们那里寻求一些建议吗?如果您认为有必要订阅冗余订阅源,那么找出网络中已存在的冗余级别以及主要订阅源上的邮件丢失的可能性似乎是明智的。

答案 2 :(得分:1)

muz's评论的补充......

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

IGMP要求定期发送和处理组播组成员资格。并且(如muz的评论中提到的)如果您和能够进行igmp snooping的组播源之间有任何交换机或路由器,那么它们就能够禁用给定网络的多播。