朝花夕拾-报文缓存之五

前言
不同时代的数通网络技术,都有着其当时的贡献。让我们进入时光隧道,跟随前辈的足迹,去探访前辈们垦荒的年代吧。
本文既非产品工程技术文档,亦非原厂文宣,乃朝花夕拾,史海拾贝,温故而知新,文笔粗拙,贻笑大方。


<续前文>

数据中心应用背景

近年来,数据中心应用一直在快速发展。新的计算模型,如大数据和实时流处理,以及应用系统,如内存计算和分布式机器学习,已经改变了工作负载和主机通信模式。服务器到服务器流量在现代数据中心中占主导地位。密集的并发通信可能发生在数十到数百甚至数千台服务器之间。分布式应用程序中经常会出现大量扇入流量模式和微突发。所有这些新趋势都要求数据中心网络具有严格的吞吐量、延迟和可扩展性性能。新的数据中心交换机需要设计以满足这些新要求。新交换机设计中的一个重要元素是缓冲区体系结构和管理。交换机必须能够以全吞吐量和低延迟适应混合密集型通信流量,同时还能高效处理瞬时突发流量和微突发,以提供出色的应用性能。

这促使数据中心交换机不断开发新的缓存管理功能,如带大象陷阱(ETRAP)的近似公平丢弃(AFD)和动态数据包优先级(DPP)功能。它使用基于算法的架构方法来满足现代数据中心的缓冲区要求。它提供了一种经济高效且可持续的解决方案,以支持不断增长的网络速度和数据流量负载。

数据中心流量转发和缓存管理

数据中心流量分配和转发,首先要考虑现代数据中心网络中流量的特性和动态。

数据中心流量通常以流量来表征和衡量。流对应于从应用程序源主机到目标主机的报文序列。每个流都由规范的五元组序列唯一标识:源IP地址、目标IP地址、源端口、目标端口和协议。

广泛的研究表明,现代数据中心流量是双峰的,由短流量(通常称为老鼠流)和长流量(通常称为大象流)组成。流量长度的确切分布因数据中心而异,研究表明,数据中心网络中大约80%到90%的流量是短而低速率的老鼠流量。剩下的10%到20%是大象流。但是,只有10%的数据流量负载包含在老鼠流中。即少量的大象流承载了大部分(90 %)的数据流量。老鼠流将突发添加到整体流量负载中。现代数据中心应用程序所引发的incast(也称为微突发)流量模式并不罕见:本质上是大量老鼠流的聚合。大象流和老鼠流执行不同的应用程序作业,因此对带宽、数据包丢失和网络延迟有不同的要求。

大象流对应于执行大型数据传输的应用程序任务:通常是备份、虚拟机迁移和跨大规模分布式系统的数据结构同步。由于它们传输批量数据,因此它们在获取网络带宽方面非常积极。大象流的转发旨在实现高吞吐量,同时保持较低的缓冲区占用率。当多个大象流共享同一拥塞链路时,应以理想的最大-最小公平性控制每个流的带宽分配。

老鼠流由在应用程序主机之间交换的查询、响应和控制消息组成。这些业务需要在最短的时间内完成,因此老鼠流对延迟敏感。在TCP应用程序中,老鼠流不能很好地容忍数据包丢弃。由于老鼠流中的报文数量较少,因此大多数老鼠流在TCP慢启动阶段完成,TCP窗口大小较小。传输中的报文可能不足,无法触发丢失报文的TCP快速重新传输。在这种情况下,在TCP重新传输计时器过期之前,发送方将无法检测到报文丢失。重传超时可能对老鼠流性能有害,并可能严重降低应用程序的整体性能。因此,必须避免老鼠流中的报文丢失。 鉴于现代应用程序的分布式架构和大量应用程序主机之间的密集通信,不可避免地会将大量大象流和老鼠流混合在网络链路上的同一队列中。队列管理方案中应考虑它们不同的转发要求。应保护老鼠流在链路拥塞期间免受报文丢失和长时间排队延迟的影响。大象流可以通过公平的带宽分配实现高吞吐量,但应防止它们因占用过多的缓存空间而导致老鼠流缺乏缓存。这些目标可以通过为大象流提供足够的缓存来实现,以维持拥塞链路上的全部吞吐量,同时通过使用TCP自己的拥塞控制机制限制它们进一步的队列占用。从本质上看,在缓存区包含足够的报文以在拥塞的链路上维持100%的吞吐量后,缓存更多的报文不会提供额外的带宽优势。如果大象流的发送端继续提高其传输速率以将更多报文发送到网络中,则报文最终将在队列中等待并消耗更多缓存空间。更好的方法是通过有意在流中注入少量报文丢弃标识来指示发送方减慢速度。使用TCP快速重传进行快速报文丢失检测和恢复,这少量报文丢弃对大象流的完成时间几乎没有影响。这种方法将有助于控制大象流的缓冲空间,以便交换机可以预留足够的缓存来吸收更多的老鼠流,这将显着提高老鼠流的完成时间。综合起来,所有流的平均流完成时间都将得到改善,从而提高整体应用程序性能。

具有简单缓冲区管理的交换机平台面临的挑战

处理链路拥塞的方法需要交换机以不同的方式处理队列中的老鼠流和大象流。然而,具有简单缓存管理的传统数据中心交换机无法区分鼠标流和大象流。队列中的所有流都受相同的先进先出(FIFO)调度和相同的队列管理方案(如随机早期检测 (RED)或加权随机早期检测(WRED))的约束。但是,FIFO队列调度并不能防止老鼠流在缓存溢出时拥塞或尾部丢弃期间遇到长时间的排队延迟。RED和WRED是主动队列管理机制,通过使用主动报文丢弃来触发传送端的TCP拥塞控制来缓解拥塞。但是,当队列深度超过拥塞阈值时,RED和WRED会随机丢弃队列中的报文,这也会影响老鼠流,因此它不是保护老鼠流的理想解决方案。

为了避免老鼠流中的报文丢失,传统交换机需要在拥塞链路上缓存所有报文,因为它们无法选择性地缓存老鼠流。因此,一些新的交换机平台内置了深度大缓存,以帮助确保拥有充足的缓存空间。除了具有更大缓存空间的交换机的成本明显较高之外,这种方法的直接缺点是扩展的队列深度导致更长的排队延迟。延迟将增加所有报文的流完成时间,从而危及应用程序的整体性能。此外,即使交换机打算在拥塞期间缓冲所有报文,少量长期存在的大型大象流也可能耗尽整个可用缓存空间,从而不会为老鼠流留下缓存空间。TCP在设计上是一种”贪婪”的协议,倾向于填充链接和缓存。除非启用显式拥塞通知(ECN),否则TCP会将报文丢弃用作隐式拥塞通知,以触发其在发送端的拥塞控制机制,以自行降低报文传输速度。如果未检测到报文丢弃,TCP发送端可以不断提高其传输速率并继续向网络发送报文,这最终可能导致拥塞链路上的缓存溢出。当这种情况发生时,到达队列的新的老鼠流将受到尾部丢弃的影响。因此,尽管缓存资源很多,但简单的深度大缓存方法并不能为处理大象流和老鼠流的链接拥塞提供最终的解决方案。

新一代的具有智能缓冲区管理功能的交换机芯片

新一代的交换机芯片适量的片上缓存空间,可在高速10/25/40/50/100/400 Gbps链路上实现100%的吞吐量,并具有智能缓存管理功能,可高效地为混合老鼠流和大象流提供服务。智能缓存管理的关键概念是能够区分老鼠流和大象流,并在链路拥塞时根据其网络转发要求对其应用不同的队列管理方案。此功能允许大象流和老鼠流实现其最佳性能,从而提高整体应用程序性能。

新一代的交换机芯片内置了智能缓存管理功能,可实现硬件加速性能。主要功能包括带有大象陷阱(ETRAP)的近似公平丢弃(AFD)和动态数据包优先级(DPP)。AFD专注于通过限制侵袭性大象流的缓存使用来保留缓存空间以吸收老鼠流,特别是聚集老鼠流的微爆发。它还旨在在大象流中强制实施带宽分配公平性。DPP提供了将老鼠流和大象流分离到两个不同队列中的功能,以便可以独立地为它们分配缓存空间,并且可以对它们应用不同的队列调度。例如,可以将老鼠流映射到低延迟队列(LLQ),而大象流可以发送到加权公平队列。AFD和DPP可以单独部署或联合部署。它们相辅相成,可提供最佳的应用程序性能。后文将解释AFD和DPP的工作原理,并讨论了它们对数据中心应用的好处。

近似公平丢弃(AFD)与大象陷阱

AFD是主动队列管理方案,其基本目标是在共享公共出口队列的流之间提供公平的带宽分配。公平有两个方面。首先,AFD将长寿命的大象流与短寿命的老鼠流区分开来,并将老鼠流从下降算法中排除,以便小鼠流将获得公平的带宽份额,而不会被带宽饥渴的大象流所饿死。其次,AFD跟踪大象流的流量,并让它们在出口队列中接受AFD算法,以授予它们公平的带宽份额。

大象陷阱

AFD使用ETRAP来区分长寿命的大象流和短寿命的老鼠流。可以使用多个参数定义流,但通常使用5元组。ETRAP在交换机的入口端运行。它测量传入流的字节计数,并将其与以字节为单位定义的ETRAP阈值进行比较。字节数低于阈值的流被视为老鼠流。在一个流越过阈值后,它变成了大象流,并被移动到大象流表上进行跟踪。ETRAP阈值是用户可配置的,以允许客户流量模式决定什么构成大象流。

大象流表和跟踪大象流

测量表中的大象流量以确定其数据到达率和活跃度。测量的数据速率被传递到出口队列上的缓冲区管理机制,AFD算法使用这些速率来计算每个流的丢弃概率。如果大象流不保持一定程度的活跃度,它们就会老化。用户配置的老化段计时器和带宽阈值用于评估大象流的活跃度。当大象流在老化段内的平均带宽低于配置的带宽阈值时,大象流将被视为非活动状态,并将超时并从大象流表中删除。

AFD算法

AFD算法的核心特征是根据其数据速率在大象流中公平分配带宽的智能。此功能有两个主要元素:

●数据速率测量:ETRAP测量入口端口上每个大象流的到达速率,并将其传递到出口端口上的缓存管理机制。

●公平率计算:AFD算法使用基于出口端口队列占用情况的反馈机制,动态计算出口队列的每流公平率。当大象流报文进入出口队列时,AFD算法会将测量的流到达率与计算出的每流公平份额率进行比较。如果到达速率小于公平速率,则报文将排队并最终传输到出口链路。如果到达速率超过公平速率,则报文将从该流中随机丢弃,其数量将与其超过公平速率的量成比例。因此,使用公平率和测量的流速计算掉落概率。流量超过公平率的次数越多,下降概率就越高。结果,所有大象流量都达到了公平率。

下图显示了AFD的整体效果:

8e0895d76658f359688d0a37c9685082

通过仅将大象流提交给早期丢弃算法,AFD能够防止老鼠流中不必要的报文丢弃,并保留足够的缓存余量来适应突发流量,特别是由大量同时发生的老鼠流(微突发)引起的突发流量。在长寿命的大象流中,AFD算法通过根据数据到达速率应用公平的早期丢弃来提供公平的带宽分配。

AFD与随机早期检测 (RED)或加权随机早期检测(WRED)的区别

AFD是一种流感知的早期丢弃机制,它发出网络拥塞信号,并通过丢弃报文在应用程序主机上采用TCP拥塞机制。在AFD之前,加权随机早期丢弃是用于相同或类似目的的主要技术。WRED将加权随机早期丢弃应用于基于类的队列,但它在类中没有流感知。所有报文(包括报文丢失敏感的老鼠流)都受到相同的丢弃概率的影响。因此,来自老鼠流的报文与来自大象流的报文一样容易被丢弃。虽然大象流可以使用丢弃作为拥堵信号来反压,但丢弃会对老鼠流产生不利影响。此外,相同的丢弃概率会导致具有较高速率(由于往返时间短[RTT])的大象流获得更多带宽。因此,在遍历同一拥塞链路的大象流之间,出口带宽不是平均分配的。结果,老鼠流的流完成时间变差,大象流无法公平访问链路带宽和缓存资源。相比之下,AFD在做出丢弃决定之前会考虑流量大小和数据到达率。丢弃算法旨在保护老鼠流,并在带宽争用期间在大象流之间提供公平性。

具有显式拥塞通知(ECN)的AFD

默认情况下,AFD根据AFD算法计算的丢弃可能性,将早期报文丢弃应用于大象流。报文丢弃用作源主机的隐式拥塞通知。如果需要避免报文丢弃,可以同时启用AFD和显式拥塞通知或ECN。AFD可以与ECN协同工作,在不丢弃报文的情况下发送ECN显式拥塞通知。根据AFD算法计算的标记可能性,交换机上的 ECN 函数可以在报文中标记ECN拥塞(CE)。之后,报文将继续传输到目的主机,而不是丢弃。CE位将一直传递到接收主机。接收主机将使用TCP报文包头中的ECN回显(ECE)标志将此拥塞指示回显给发送端。当源主机从设置了ECE标志的接收主机接收报文时,它将以与报文丢弃相同的方式减少其传输窗口。通过这种方式,AFD可以提供包括公平的带宽分配和网络拥塞缓解的预期的功能,而无需使用ECN丢弃报文。

动态数据包优先级(DPP)

动态数据包优先级(DPP)采用单独管理同一流量类中的老鼠流和大象流以进行排队的机制。尽管它们属于同一流量类,它有效地将它们隔离在两个单独的队列中。使用传统的简单队列管理技术无法实现这种分离,因为它们在类中缺乏流感知。

DPP机制

DPP采用简单的机制来实现其功能。该机制跟踪流量以区分入口端口上的老鼠流和大象流,然后对出口端口上的老鼠流和大象流应用单独的排队策略。

在入口端口上,流由其五元组标识,并且监视其初始报文计数器。然后根据流的大小,将流中的报文分类到老鼠流QoS组或流量类的原始QoS组中。在DPP机制中,使用最大报文计数器来确定分类。如果将DPP最大报文计数器定义为N,则每个流中的前N个报文将分类到老鼠流QoS 组中,N+1及以后的报文将分类到流所属的流量类的原始QoS组中。从本质上讲,新流始终以老鼠流的形式启动,直到它发送的报文数超过DPP最大报文计数器的值。

DPP将老鼠流和大象流区分为入口端口上的单独QoS组后,可以在出口端口上对它们应用不同的排队控制,以满足对老鼠流和大象流的不同转发要求。下图显示DPP机制:

0ae6d331572fb0ac714cf4c92e1c0230

应根据数据中心网络中的流量模式仔细选择最大报文器的N值,以便它可以有效地分离老流和大象流。即应将其设置为捕获老鼠流队列中的老鼠流突发流量时,将大象流的大部分数据负载留在常规队列中。

老鼠流队列应该是优先级队列,而大象流的常规队列是加权队列,其带宽是为这些流的需求分配的。这是因为,对于大多数数据中心应用程序,老鼠流对报文丢失和网络延迟非常敏感,而大象流对带宽有更高的要求。如果使老鼠流队列成为优先级队列可以保证优先转发到老鼠流。其次,将优先级排队应用于老鼠队列还可以防止在大象流中对报文进行重新排序,因为大象流中的初始报文也会发送到老鼠队列。在同一类中单独提供老鼠流和大象流的灵活性使得可以同时为短期老鼠流提供低延迟优势,并为大象流保持全链路带宽利用率,这可以显着提高整体应用程序性能。

为了给老鼠流保留缓存余量或在队列中的大象流之间提供带宽公平性,可以针对同一流量类与AFD一起实现DPP。DPP和AFD的组合提供了微爆发(聚集的老鼠流)与少数大象流混合的最佳处理。DPP使用流表来跟踪入口端口上的活动流。如果流表中的流保持非活动状态的时间超过为DPP期限计时器设置的值,则该流将超时并从流表中删除。下次具有相同五元组的报文到达入口端口时,它们将被标识为全新的流。

<未完待续>

希望本文能对了解数通网络设备提供一点粗浅的感性认识。
本文有关信息均来自公开资料。

en_USEnglish
Scroll to Top