QoS不适用于两个以上的实例

时间:2019-12-05 17:38:17

标签: c windows qos

Microsoft的QoS对可以使用多少个连接有限制?

我正在github上使用Microsoft的示例

我在这里正在做的是编译。运行程序,以某种比特率将数据包发送到网络上的任何计算机。 define BURSTS_PER_SECOND设置为1000,而DATAGRAM_SIZE设置为150 * 150

// Size of the data part of each datagram that is exchanged between the
// client and the server. This does not count the IP and UDP header.
#define DATAGRAM_SIZE       150 * 150

// Number of bursts we are aiming for per second
#define BURSTS_PER_SECOND   1

运行一个程序时,我可以看到:

         3 |     540000 |     N/A     |     N/A    |
         3 |     540000 |     N/A     |     N/A    |
         3 |     540000 |     N/A     |     N/A    |
         3 |     540000 |     N/A     |     N/A    |
         3 |     540000 |     N/A     |     N/A    |
         3 |     540000 |     N/A     |     N/A    |
         3 |     540000 |     N/A     |     N/A    |
         3 |     540000 |     N/A     |     N/A    |

如您所见,比特率始终是恒定的,数据包的数量也是恒定的。当我打开第二个实例,使用相同的参数发送相同的数据时,一切正常。

但是当我再打开一个时,我可以看到:

         3 |     540000 |     N/A     |     N/A    |
         0 |          0 |     N/A     |     N/A    |
         3 |     540000 |     N/A     |     N/A    |
         3 |     540000 |     N/A     |     N/A    |
         3 |     540000 |     N/A     |     N/A    |
         0 |          0 |     N/A     |     N/A    |
         3 |     540000 |     N/A     |     N/A    |
         3 |     540000 |     N/A     |     N/A    |

有时我在一秒钟内收到3个数据包,其他0个数据包。突发时间设置为1秒,但是在3个实例(三个不同的进程)下,时间增长到1500ms。而且每个新实例都会使问题更加严重。当我关闭所有只允许两个或一个的实例时,一切都会像以前一样运行良好。

我的问题是:Windows在QoS方面有一些限制吗?为什么我不能打开3个QoS实例?我的网络不忙(我正在发送小数据)。

我做错了什么?

0 个答案:

没有答案