暂停帧会传递到主机吗?

暂停帧会传递到主机吗?

我最近看到一个 Debian 论坛提到 MAC 层应该丢弃暂停帧,如果不是,驱动程序应该丢弃它们。这是真的吗?如果主机从交换机收到暂停帧,它实际上如何限制流量?

我正在尝试更好地理解以太网流量控制。如果上述陈述是正确的,那么传递给主机的真正含义是什么?

答案1

有三种方法可以处理流量控制:

  1. 如果超载,数据就会掉落到地上。
  2. 如果您无法为来自更高层的请求提供服务,通常是因为您的本地队列已满,您会向该更高层返回错误。
  3. 您主动通知更高层他们需要放慢速度。

在以太网层,方法 3 通过暂停帧来支持。通常,较高层不支持方法 3,而是支持方法 2。当某层的下一层支持方法 3,而上一层仅支持方法 2 时,它可以暂时停止将数据传递到较低层,从而导致方法 2 适用于较高层。

或者,更具体地说,当您收到暂停帧时,您会停止发送引擎并设置一个计时器以在适当的时间重新启动发送引擎。当发送引擎停止时,您的本地队列将填满来自更高层的数据。如果它们已满,您会将“忙碌”错误返回给更高层,它们会以适当的方式处理。

答案2

到目前为止,以太网流量控制是一个失败的实验,因为它经常导致队头阻塞问题。交换机不应向主机发送暂停帧。我相信 Cisco 交换机不能配置为发送暂停帧;在 Cisco 交换机上启用以太网流量控制只会使其遵守收到的暂停帧。主机明智的做法是忽略收到的暂停帧。

如果交换机无法处理传输,则应丢弃该帧。更高层(尤其是 TCP)使用丢弃的帧来了解何时发生拥塞以及何时退避。无法丢弃帧会导致 TCP 拥塞控制失败,通常会导致缓冲区膨胀

相关内容