答案1
如果您的上行或下行网络带宽饱和导致延迟飙升,则意味着您的网络路径中的某个盒子(可能是您的宽带调制解调器或您的 ISP 的 CMTS 或 DSLAM)有一个众所周知的错误,称为缓冲区膨胀,盒子上的过度缓冲会增加延迟而没有任何好处。
缓冲区膨胀的修复方法是将有问题的设备的排队算法(又名队列规则、网络调度程序)升级为延迟感知智能排队算法,例如 FQ-CoDel。
如果您无法修复存在问题的实际设备,则可以通过在网络前端设置一个带有 FQ-CoDel 的设备并调整其流量整形以使其成为上行和下行方向的轻微瓶颈来解决这个问题。这样,FQ-CoDel 就可以发挥作用并允许 TCP 拥塞控制工作,然后膨胀的缓冲区队列才能在有问题的设备上累积。
您可以使用开源路由器固件发行版(例如 LEDE(以前称为 OpenWrt))自行完成此操作,但如果您想要一个交钥匙解决方案,请查看 evenroute.com 上的 IQrouter。它显然会在一天内自动调整其带宽形状,从而最大限度地提高吞吐量,同时最大限度地减少延迟。
许多不了解缓冲区膨胀的人错误地认为延迟峰值是网络链路饱和的自然结果。许多人还尝试通过调整 QoS 来解决缓冲区膨胀问题,试图优先处理某些流量而不是引发膨胀的大流量,但这种尝试并不成功。但直接解决缓冲区膨胀要好得多,因为它可以改善所有流量,即使是引发膨胀的大流量。
答案2
每个互联网连接都有两个方向:从用户到互联网和返回。每个方向在 QoS 和数据包传输路由方面都是独立的。
设置传出数据包的优先级不会改变传入数据包的优先级。传入数据包的优先级和 QoS 仍受 ISP 控制。
如果您可以选择在 ISP 端优先处理您的流量 - 您应该尝试一下。否则,您唯一的选择就是限制传入的“尽力而为”流量,这样您就总能有一些带宽用于 ping 或其他“高优先级”流量。
不幸的是,这不是一个解决方案,但我希望它能帮助您理解这个问题。