Udp 多播组成员优先级

Udp 多播组成员优先级,udp,multicast,winsock2,Udp,Multicast,Winsock2,我遇到了一个问题,具体如下: 我有一个多播组,我在其中观察到,多播组中的一个成员发送的udp数据包由其他成员根据其加入该组的顺序接收 例如:如果服务器1、2、3、4以各自的顺序加入组,那么如果在组中接收到数据包,则首先由1接收,然后由2接收,依此类推 我也通过一些测试应用程序检查了这种行为 我正在使用Winsock2,请让我知道它们是否在内核级别排序,并尽可能对组成员进行优先级排序。成员按照多播到达成员主机的顺序接收多播。多播数据报只发送一次,而不是多次,因此每个成员的到达时间不会有显著差异。到

我遇到了一个问题,具体如下:

我有一个多播组,我在其中观察到,多播组中的一个成员发送的udp数据包由其他成员根据其加入该组的顺序接收

例如:如果服务器1、2、3、4以各自的顺序加入组,那么如果在组中接收到数据包,则首先由1接收,然后由2接收,依此类推

我也通过一些测试应用程序检查了这种行为


我正在使用Winsock2,请让我知道它们是否在内核级别排序,并尽可能对组成员进行优先级排序。

成员按照多播到达成员主机的顺序接收多播。多播数据报只发送一次,而不是多次,因此每个成员的到达时间不会有显著差异。到达时间与加入时间无关:它更多地与各自路径中的延迟、路由器的数量等有关。如果所有成员都位于相同的线路末端,那么它们将同时获得多播


话虽如此,如果您担心多播的接收顺序,并且认为需要重新确定它们的优先级,那么您就大错特错了。多播本质上是UDP数据报,可以无序接收、多次接收或根本不接收。

多播由成员按照多播到达成员主机的顺序接收。多播数据报只发送一次,而不是多次,因此每个成员的到达时间不会有显著差异。到达时间与加入时间无关:它更多地与各自路径中的延迟、路由器的数量等有关。如果所有成员都位于相同的线路末端,那么它们将同时获得多播


话虽如此,如果您担心多播的接收顺序,并且认为需要重新确定它们的优先级,那么您就大错特错了。多播本质上是UDP数据报,可能会被无序接收、多次接收或根本不接收。

是的,数据报只发送一次,但我现在想知道的是,它是否取决于成员加入组时创建的多播路由表。@RohitJ所以你的问题不完整。如果有这样一个表,它只存在于路由器中。你无法在路由器内部看到它是如何实现的,即使你可以,它也可能在明天随着下一次固件更新而改变。你不应该依赖这种东西,哪怕是一点点。对不起,这个问题不完整。这就是我所担心的,我不知道在应用程序级别我必须做些什么来克服这个问题。@RohitJ我已经告诉过你了。别把它当作问题了。事实并非如此。多播是否以任何顺序到达成员。您对此无能为力。再次为信息不足感到抱歉,我忘了提到一件事,即所有多播侦听器都在同一台机器上(即,同一应用程序的三个不同实例从同一台机器本身加入多播组)。为了更具体地隔离问题区域,我们尝试在同一台机器上运行UDP多播发送器(1个发送器)和侦听器(3个侦听器)。然而,我们可以在10次中的7次中观察到上述行为。是的,数据报只发送一次是真的,但我现在想知道的是,它是否取决于成员加入组时创建的多播路由表。@RohitJ所以你的问题是不完整的。如果有这样一个表,它只存在于路由器中。你无法在路由器内部看到它是如何实现的,即使你可以,它也可能在明天随着下一次固件更新而改变。你不应该依赖这种东西,哪怕是一点点。对不起,这个问题不完整。这就是我所担心的,我不知道在应用程序级别我必须做些什么来克服这个问题。@RohitJ我已经告诉过你了。别把它当作问题了。事实并非如此。多播是否以任何顺序到达成员。您对此无能为力。再次为信息不足感到抱歉,我忘了提到一件事,即所有多播侦听器都在同一台机器上(即,同一应用程序的三个不同实例从同一台机器本身加入多播组)。为了更具体地隔离问题区域,我们尝试在同一台机器上运行UDP多播发送器(1个发送器)和侦听器(3个侦听器)。然而,我们可以在10次中的7次中观察到上述行为。您一次只能发送到一个组,而您可以在一个套接字上订阅多个组。问题无效。您一次只能发送到一个组,而您可以在一个套接字上订阅多个组。这个问题是无效的。