31.14. 以太网网络的流控制
在以太网链路上,网络接口和交换机端口之间的持续数据传输可能会导致缓冲区满了。缓冲区满了会导致网络阻塞。在这种情况下,当发送方以高于接收方处理能力的速度传输数据时,可能会因为链接的另一端(其是一个交换机端口)上网络接口的数据处理能力较低而发生数据包丢失。
流控制机制管理以太网链路之间的数据传输,其中每个发送方和接收方都有不同的发送和接收能力。为避免数据包丢失,以太网流控制机制会临时暂停数据包传输,以便从交换机端口管理更高的传输率。请注意,交换机不会将暂停帧转发到交换机端口之外。
当接收(RX)缓冲区已满时,接收方会向传输方发送暂停帧。然后,传输方会在较短的亚秒时间帧内停止数据传输,同时继续在此暂停期间缓冲传入的数据。此持续时间为接收方清空其接口缓冲区提供了足够的时间,并防止缓冲区溢出。
注意
以太网链接的任一端都可以向另一端发送暂停帧。如果网络接口的接收缓冲区已满,则网络接口将向交换机端口发送暂停帧。同样,当交换机端口的接收缓冲区已满时,交换机端口会向网络接口发送暂停帧。
默认情况下,Red Hat Enterprise Linux 中大多数网络驱动程序都启用了暂停帧支持。要显示网络接口的当前设置,请输入:
# ethtool --show-pause enp1s0
Pause parameters for enp1s0:
...
RX: on
TX: on
...
与您的交换机厂商进行验证,以确认您的交换机是否支持暂停帧。
其他资源
-
您系统上的
ethtool (8)
手册页 - 什么是网络链路控制以及它如何在 Red Hat Enterprise Linux 中工作?(红帽知识库)