当1.1 等价多路径冲突
通过散列流标识符来选择路径,这样的做法很简便,但缺乏考虑路径本身是否拥塞。如图1所示,很容易发生多个流被散列到相同的路径上的情况,从而导致链路过载。此外,流量的大小通常呈双模态分布:大多数的流是老鼠流,而大部分传输字节则来自大象流。ECMP选择路径时不会考虑流量的大小,而对ECMP的改善应该涉及选择路径时的拥塞感知和细粒度的流量负载均衡。
1.2 显性拥塞通知的控制环路延时
大型的网络拥有更多的跳数,因此ECN控制回路的往返时间(Round-Trip Time,RTT)会更长。大型的网络也会支撑更多的数据传输,在ECN生效前很难处理突发流量。通过增加交换机缓存去处理突发流量是不可取的,因为这样不仅会增加成本,也会增加那些正常流的排队时间。端到端的拥塞控制对有序的网络至关重要,但为确保网络可以有效地避免丢包损失,额外的帮助也同样重要。
1.3 基于优先级的流控引起的队头阻塞
PFC是一种避免丢包的技术,但这一技术应该作为最后的手段使用。当交换机的某一个出口发生拥塞时,数据被缓存到备份里,并同时调用PFC。由于PFC会阻止特定等级的所有流量,所以流向其他端口的流量也有可能会被阻隔,这种现象被称为队头阻塞。为了避免队头阻塞,很有必要去尽早识别引起拥塞的流,并提供针对流特征(一般引起拥塞的流通常是大象流)的拥塞缓解技术。
队头阻塞可能会引起上游的额外阻塞。由于PFC隔离了所有流,包括那些发往没有拥塞路径的流。这使得所有流必须在上游交换机处排队,产生的队列延时反过来又会引起上一个上游交换机的拥塞。如果上游交换机的缓存被填满,一个新的PFC信息会被调用并发送到网络,循环往复,造成更多的队头阻塞和拥塞现象,这被称为拥塞扩散。