2

服务质量 (QoS) 旨在管理带宽使用,这隐含地假设应用程序竞争该(有限)资源。这些天来,对于任何应用程序来说,这真的是一个问题吗?

它还假设 QoS 协议和 Internet 协议选项在客户端和服务器端都实现,并且在它们之间的每个网络元素(例如,所有交换机、路由器、代理和 NAT)上都得到认可和遵守。除了可能在同一子网中的两台主机之间或在高度管理的企业网络上之外,这是否真的如此?

最后,有没有人使用过 QoS API 并确定了实际的好处?换句话说,它是否曾经“挽救了一天”,并避免了一个肯定会发生的问题?

谢谢,鲍勃

4

2 回答 2

2

显然,答案是否定的,Winsock QoS API 没有用处。并不是 QoS 本身没用,只是套接字级别的 QoS 不需要由应用程序开发人员设置。

某些设备(例如基于 SIP 的电话)在传出数据包的 Internet 协议标头中设置 ToS 位(差分服务代码点),以便为流量聚合提供基于类的 QoS。然而,大多数情况下,流量分类是由路由器完成的,路由器在按(第 3 层、TCP 或 UDP)端口号等进行分类后设置 DSCP。因此,QoS 主要是网络管理员关心的问题,而不是应用程序开发人员关心的问题。

有关区分服务适用于何处的更多信息,请参阅 IETF RFC 4594 “DiffServ 服务类指南”

于 2013-10-02T02:15:35.137 回答
1

Skype for Business使用两个不同的 DSCP 值标记其两种不同类别的流量:

  • 音频: EF(加速转发,DSCP 46)
  • 视频: AF41(确保转发,DSCP 34)

而且,在某一时刻,Steam 和 Blizzard 都使用 DSCP 标记了他们的批量下载流量。

这是一件有用的事情,没有人因为没有人尊重它而没有人这样做,也没有人因为没有人这样做而尊重它。唯一的办法就是教育。

另请注意,在 Windows 2000 之后默认情况下,您不能手动设置 IP_TOS 标头值,除非您是管理员。允许非管理员程序设置自己的 QoS 将违反 QoS 策略。

在基于 Windows 2000、基于 Windows XP 或基于 Windows Server 2003 的主机设备上,通用服务质量 (GQOS) 实现确定 DSCP 标记。Winsock GQOS 程序触发 RSVP 服务提供商提交策略和资源检查以确定策略控制和网络数据路径上资源的可用性。如果预期的资源使用得到批准,QOS 数据包调度程序服务会在 IP 数据包标头中标记 DSCP 优先级。具有 setsockopt 功能的 IP_TOS 选项将绕过 Windows 2000、Windows XP 或 Windows Server 2003 QOS 策略控制,因此在这些版本的 Windows 上默认禁用。

Microsoft 建议您在 Winsock 程序中实现 GQOS 以利用 Windows 2000、Windows XP 和 Windows Server 2003 GQOS 功能。

这就是创建通用 QoS api 的原因;请求 QoS,如果获得批准,您将获得它。

于 2019-01-05T21:04:06.373 回答