Linux 流量控制实用程序是否会修改数据报、IP 数据包或帧?

Linux 流量控制实用程序是否会修改数据报、IP 数据包或帧?

我正在使用 Linux 的流量控制 ( tc) 实用程序,据我了解,该实用程序用于配置 Linux 内核数据包调度程序。我还使用netem命令 intc来添加延迟、丢弃或损坏流量。

我的主要问题是,是否netem修改传输层数据报、IP 数据包或链路层帧(如以太网)?

我发现这一页它解释了Linux内核中的网络通信流程。它提到整形和排队规则是在“第 2 层:链路层(例如以太网)”中制定的。这是否意味着netem在帧(第 2 层)上增加了损坏、丢失或延迟?

但是,既然tc filter允许您将流量规则应用于某个 IP:端口对,这是否意味着它在传输层数据报(第 4 层)上运行?

答案1

tc影响排队规则,即传出“数据包”发送到硬件的顺序。该实现对sk_buff结构进行操作,并且文档sk_buff似乎暗示数据包格式是特定网络接口使用的任何格式(例如,以太网接口的以太网数据包)。

因此,我假设netem corrupt在这一层上增加了损坏,这应该通过第 2 层校验和来发现(无论第 2 层用于特定接口)。

此外,还sk_buff包含指向更高层有效负载的指针,这解释了为什么tc filter可以对它们进行操作。

相关内容