1

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

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

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

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

我正在使用 Winsock2,请让我知道他们是否在内核级别进行排序,并在可能的情况下优先考虑组成员。

4

1 回答 1

1

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

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

于 2012-10-23T07:37:45.997 回答