0

我正在做一些与 UDP 发送应用程序的 QOS 相关的研究。

我的应用程序正在通过可能加载的网络发送 UDP 数据包。与 UDP 上的 BitTorrent 相比,它对带宽的要求很小。由于我的流的带宽相当低,当我的 UDP 数据包和 BitTorrent UDP 数据包之间存在决定时,我想避免我的 UDP 数据包被丢弃。

似乎有一种方法可以在 Windows 上尝试一些 QOS 信号,使用WSAIoctl()withSIO_SET_QOS发送FLOWSPECwith ServiceTypeset toSERVICETYPE_QUALITATIVE等。

我无法找到为 Linux(或任何其他 *NIX 平台)设置任何此类 QOS 信号的方法。在 Linux 上是否可以使用每个应用程序的 QOS 信号?如果是,怎么做?

4

1 回答 1

2

如果您的网络实现了 DiffServ,那么您可以使用带有 IP_TOS 的 setsockopt() 将数据包上的 DiffServ 代码点 (DSCP) 设置为合适的值。(在指定 DiffServ 之前,这些位被解释为服务类型 (TOS) 和优先级字段,因此得名。)

请注意,现代 BitTorrent 实现中基于 UDP 的传输协议 (uTP) 已经表现得好像它的优先级低于“正常”流量,并且在检测到拥塞时会退出。

于 2013-08-25T18:08:25.300 回答