我最近看到一个 Debian 论坛提到 MAC 层应该丢弃暂停帧,如果不是,驱动程序应该丢弃它们。这是真的吗?如果主机从交换机收到暂停帧,它实际上如何限制流量?
我正在尝试更好地理解以太网流量控制。如果上述陈述是正确的,那么传递给主机的真正含义是什么?
答案1
有三种方法可以处理流量控制:
- 如果超载,数据就会掉落到地上。
- 如果您无法为来自更高层的请求提供服务,通常是因为您的本地队列已满,您会向该更高层返回错误。
- 您主动通知更高层他们需要放慢速度。
在以太网层,方法 3 通过暂停帧来支持。通常,较高层不支持方法 3,而是支持方法 2。当某层的下一层支持方法 3,而上一层仅支持方法 2 时,它可以暂时停止将数据传递到较低层,从而导致方法 2 适用于较高层。
或者,更具体地说,当您收到暂停帧时,您会停止发送引擎并设置一个计时器以在适当的时间重新启动发送引擎。当发送引擎停止时,您的本地队列将填满来自更高层的数据。如果它们已满,您会将“忙碌”错误返回给更高层,它们会以适当的方式处理。