Skip to content

什么是 tc,什么是 netem?

Linux 提供了强大的网络流量控制和整形工具,其中最具灵活性的是 tc(流量控制)和 netem(网络仿真器)。

什么是 tc?

tc 是一个用户空间实用程序,用于配置 Linux 内核中的流量控制。它是 iproute2 包的一部分,允许用户整形、调度、管理和优先处理网络流量。

tc 的主要功能:

  1. 整形:延迟数据包以控制输出速率
  2. 调度:重新排序待发送的数据包
  3. 管理:测量并限制流量的输入速率
  4. 丢弃:丢弃流量流中的某些或所有数据包
  5. 标记:更改数据包的 TOS 字段

什么是 netem?

netem 是 tc 的一个组件,允许在发送的数据包中添加各种网络损伤。这对于测试应用程序和协议在不同网络条件下的表现特别有用。

netem 的主要功能:

  1. 延迟:为数据包添加延迟
  2. 丢失:随机丢弃数据包
  3. 重复:创建重复的数据包
  4. 损坏:在数据包数据中引入错误
  5. 重排序:改变数据包的顺序

结论

tc 和 netem 允许对网络条件进行精确控制,使得在各种场景下对应用程序进行全面测试成为可能。无论是开发新的网络协议、优化现有应用程序,还是排查网络问题,这些工具为在 Linux 环境中操控和分析网络流量提供了宝贵的能力。