假设我有一个多播组 239.0.0.1。
如果 A 和 B 是该组的成员并侦听端口 6000,我可以将数据发送到 (239.0.0.1, 6000) 并且 A 和 B 都将接收。现在,如果 A 在端口 6000 上侦听,B 在端口 7000 上侦听,如何在一次传输中将数据发送给两个成员?
如果上述情况是不可能的,那么是否意味着组播组不仅由其组播组地址标识,还由 2 元组组播组地址和端口号标识?我在任何地方都找不到多播组的此类定义。
假设我有一个多播组 239.0.0.1。
如果 A 和 B 是该组的成员并侦听端口 6000,我可以将数据发送到 (239.0.0.1, 6000) 并且 A 和 B 都将接收。现在,如果 A 在端口 6000 上侦听,B 在端口 7000 上侦听,如何在一次传输中将数据发送给两个成员?
如果上述情况是不可能的,那么是否意味着组播组不仅由其组播组地址标识,还由 2 元组组播组地址和端口号标识?我在任何地方都找不到多播组的此类定义。
订阅多播组和监听多播地址和端口是两件不同的事情。如果您订阅了多播组,则所有具有该目标地址的流量都应发送到您的主机。侦听特定端口并处理该流量是另一个步骤。
在您的示例中,目标为 239.0.0.1:6000 的流量将发送到两台主机,但由于只有主机 A 有一个正在侦听的应用程序,因此只有主机 A 会对该流量执行任何操作。
不可能发送到所有端口号或发送到*端口。TCP/UDP 中不存在这样的概念。如果您使用的是不同的协议,也许有类似的东西。