关于QoS,我们有两种模式:整形或监管。监管丢弃数据包,同时整形将数据包放入缓冲区。
一般来说,整形似乎是更好的解决方案,那么,为什么要使用 policing 呢?
对于实时应用程序和关于质量(语音、视觉等),延迟的数据包比丢弃的数据包更糟糕?在其他哪些示例中,应该首选警务?
关于QoS,我们有两种模式:整形或监管。监管丢弃数据包,同时整形将数据包放入缓冲区。
一般来说,整形似乎是更好的解决方案,那么,为什么要使用 policing 呢?
对于实时应用程序和关于质量(语音、视觉等),延迟的数据包比丢弃的数据包更糟糕?在其他哪些示例中,应该首选警务?
在某些情况下,给定的平台根本无法成形或不在所需的方向上。在我遇到的(Cisco)平台上,入口QoS 通常能够进行监管,但不能进行整形,而出口QoS 可以排队/整形和/或监管。
整形/排队需要每个端口的缓冲区内存(这在某些平台上可能是非常有限的资源),并且一旦这些(出口)缓冲区开始填满,就会导致延迟和抖动。
在某些情况下,变化多端的 RTT(读取:抖动)对应用程序的伤害比丢失的数据包还多。此外,并非所有 TCP 拥塞避免算法都是相同的 - 有些只考虑丢失的数据包,有些则考虑 RTT/抖动。
我发现https://blog.ipspace.net/2016/09/policing-or-shaping-it-depends.html和http://packetlife.net/blog/2008/jul/30/policing-versus-shaping/非常清楚地显示差异。
简而言之:在两种情况下需要监管: