23.2. 以太网网络的流控制
在以太网链路上,网络接口和交换机端口之间持续的数据传输可能会导致缓冲区容量满了。缓冲区容量满了会导致网络拥塞。在这种情况下,当发送方传输数据的速度高于接收方的处理能力时,可能会因为链接另一端(其是交换机端口)上网络接口的低数据处理能力而发生数据包丢失。
流控制机制管理以太网链路之间的数据传输,其中每个发送方和接收方都有不同的发送和接收能力。为避免数据包丢失,以太网流控制机制会临时暂停数据包传输,以便管理交换机端口的高传输率。请注意,交换机不会转发交换机端口之外的暂停帧。
当接收(RX)缓冲区变满时,接收方会向传送方发送暂停帧。然后,传送方会停止数据传输一个亚秒时间段,同时继续在此暂停期间缓冲传入的数据。此持续时间为接收方提供了足够时间来清空其接口缓冲区,并防止缓冲区溢出。
注意
以太网链接的任一端都可以向另一个端发送暂停帧。如果网络接口的接收缓冲区已满,网络接口将向交换机端口发送暂停帧。类似,当交换机端口的接收缓冲区已满时,交换机端口会向网络接口发送暂停帧。
默认情况下,Red Hat Enterprise Linux 中的大多数网络驱动程序都启用了暂停帧支持。要显示网络接口的当前设置,请输入:
ethtool --show-pause enp1s0
# ethtool --show-pause enp1s0
Pause parameters for enp1s0:
...
RX: on
TX: on
...
与您的交换机厂商确认您的交换机是否支持暂停帧。