TC QoS 原理一句话介绍:出去慢一点,回来丢下包

7 阅读1分钟

出去慢一点,回来丢下包

第一性原理分析:流量控制的底层逻辑

在 Linux 内核网络协议栈中,流量控制(TC)的工作位置如下:

  1. Egress (出向): 数据包离开网络层进入驱动队列前,由内核的 qdisc(排队规则)处理。因为拥有对发送队列的完全控制权,可以实现流量整形(Shaping),即延迟发送过快的包。
  2. Ingress (入向): 数据包由硬件驱动接收后直接上送。内核无法“减慢”物理链路传来的速度。因此,入向限速本质上只有两种手段:丢弃(Police)重定向(Redirect)IFB 等 到虚拟接口模拟出向。

丢包的问题

Egress 有队列,可以缓冲,包发慢一点没关系

Ingress 就只能丢包了,这就只能重传了,毕竟重传率高了算是一种错误。

那怎么办,重定向大法 IFB 等,搞一个虚拟接口,利用它的 Egress 队列。