听多播如何伤害我?

时间:2020-03-05 18:56:12  来源:igfitidea点击:

我正在从交易所收到恢复提要,用于恢复其主要提要中丢失的数据。

交易所强烈建议仅在需要数据时收听恢复供稿,并在恢复所需数据后离开多播。

我的问题是,如果我使用的是asio,并且在不需要时不从NIC读取数据,会有什么危害?消息具有序列号,因此我不能不小心处理卡上"左"的旧消息。

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

解决方案

回答

由于nic仍被配置到多播组中,它可能不会对应用造成太大的伤害,而对应用程序造成的损害可能不会对计算机造成太大的伤害,在软件将其忽略并丢弃之前,它仍在侦听这些消息并向上传递它们。网络堆栈和内核正在做大量的额外工作,因此通常在机器上不仅是应用程序,还会增加很多额外的负载。

回答

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

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

如果我们有一个网络团队为我们管理网络,那么值得向他们寻求建议吗?如果我们觉得有必要订阅冗余提要,那么明智的做法是弄清网络中已经存在的冗余级别以及主提要上的消息丢失的可能性。

回答

除了muz的评论...

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

IGMP需要定期发送和处理多播组成员身份。并且(如在muz的评论中提到的那样),如果我们和多播源之间有任何能够进行igmp侦听的交换机或者路由器,那么他们就可以为给定的网络禁用多播。