无损以太网中拥塞管理的重新架构-----论文翻译
Re-architecting Congestion Management in Lossless Ethernet
摘要
无损以太网在数据中心和集群系统中有着广泛的应用前景,但其存在的各种性能问题,如不公平性、头阻(head-of-line blocking)和拥塞扩散等,阻碍了其在生产系统中的大规模部署。通过细粒度的实验观察,我们检查了流量控制和拥塞控制之间的相互作用,并意识到性能问题的根本原因是无损以太网拥塞管理体系结构中的无效因素,包括不适当的拥塞检测机制和不适当的速率调整法。
受这些在实验研究中获得的见解和发现的启发,我们修改了拥塞管理体系结构,并提出了光子拥塞通知PCN(Photonic Congestion Notification)方案,该方案由两个基本组件组成:(i)一种新的拥塞检测和识别机制,用于识别哪些流真正导致了拥塞;(ii)一种接收端驱动的速率调整方法,可在短至1个RTT的时间内缓解拥塞。作者使用DPDK NIC实现PCN,并使用试验台实验和仿真进行评估。结果表明,PCN在并发突发负载下显著提高了性能,在实际负载下显著降低了PFC暂停消息,缩短了流完成时间。
1 引言
近年来,在数据中心和集群计算系统中,无损网络已经成为一个有吸引力的趋势。通常,由数据包丢失引起的重传很容易导致吞吐量减少、完成时间增加,甚至错过应用程序截止日期[9,10,50]。此外,通过数据中心扩展传输协议(如远程直接内存访问(RDMA)和光纤通道(FC))需要可靠的传输,而不会因网络拥塞而导致数据包丢失[3,15]。==》数据包丢失引起的重传后果严重;RDMA和FC需要可靠传输。
无损InfiniBand(IB)在HPC(High performance Computing,高性能计算)集群系统中非常流行,但是现代的数据中心已经用IP/以太网技术建立起来,这些技术在传统互联网中也占主导地位。数据中心运营商和云建设者可能会使用一些IB,但远没有以太网那么普遍。此外,他们不愿意在同一个数据中心内同时部署和管理两个独立的网络。IEEE DCB(数据中心桥接)作为以太网的增强功能自然具有吸引力,它使以太网成为一种统一的交换结构(switching fabric),可以取代传统的分离结构用于特殊目的,例如用于存储的FC、用于HPC的IPC(进程间通信)和用于LAN通信的以太网。与维护单独的交换结构相比,聚合以太网具有显著的性能、成本和管理优势。为了实现统一以太网的无损语义,在链路层开发了逐跳流量控制PFC(基于优先级的流量控制)和端到端拥塞控制QCN(量化拥塞通知),以增强传统以太网。可扩展的无损以太网交换结构无疑是构建未来数据中心的潜在候选者之一,以适应有前景的应用,如聚合以太网上的RDMA(RoCE)、结构上的NVMe(NVMe Over Fabrics)和资源分解(resource disaggregation)等。》InfiniBand用在—》HPC中。IP/以太网用在—》现代的数据中心和传统互联网中。IB用在以太网中用的少,商家不想在同一个数据中心用2个独立的网络;我想在以太网中实现无损怎么办? 数据中心桥接》聚合以太网》可扩展的无损以太网交换结构不懂
在过去十年中,各种在线数据密集型(OLDI)应用程序[31]和虚拟化服务[40]的兴起产生了越来越多样化的流量模式和特定特征,例如:**老鼠/大象流的加速、爆发和混合等[12,25,44]。由于目前尚不清楚无损以太网是否能在具有如此复杂流量的大型数据中心中有效工作,因此我们进行了实证和实验研究,以深入了解无损以太网中的拥塞管理(CM)体系结构。详细的观察和联合分析揭示了一些性能问题的根本原因,例如拥塞扩散和易受突发流量的影响。**根据这些见解,我们重新构建了无损以太网中的CM。主要调查结果和主要贡献总结如下。
揭示了现有无损以太网CM体系结构中的不足之处,包括:a)拥塞检测机制无法准确识别在同一队列中搅动的拥塞或未拥塞流,因此不太可能通知不同来源进行区分性速率调整。b) 基于缓慢进化的端到端拥塞控制速率调整与逐跳流量控制的快速操作不匹配。
开发了一种新的CM方案,称为光子拥塞通知(PCN),该方案包括:a)一种微妙的拥塞检测和识别机制,该机制能够区分真实的拥塞流,从而对拥塞或未拥塞流进行适当的调整,即使它们在同一累计队列中被搅动。b) 一种接收端驱动的速率调整规则,该规则可以加快速率调整的收敛速度,对突发流量具有鲁棒性,并对链路容量具有适应性。
使用DPDK NIC实施PCN,并使用试验台实验和ns-3仿真进行评估。在具有真实工作负载合成流量的大规模网络中进行的大量仿真表明,PCN对PFC暂停的抑制率分别比QCN、DCQCN和TIMELY分别提高了12%、47%和90%,延迟降低了10倍、11.3倍和13.2倍。
2 背景
2.1 数据中心的流量特性
数据中心中的各种应用程序生成具有广泛流量模式和分布的流。例如,web搜索服务通常会生成短流和突发流。另一方面,日志文件处理引入了少量但寿命较长的流来传输大量数据。对许多运营数据中心的流量进行的调查显示了有分布广泛的各种流量模式。流的大小可能从0.05KB到超过100MB,**分布非常分散。在所有的流量中,老鼠流(小流)在接收到任何ACK之前就完成了所有数据包的发送,不能通过端到端拥塞控制方案进行调整。**此外,许多测量表明,**老鼠流的发生不仅频繁,而且具有突发性。老鼠流(小流)的高度动态地进入/离开将极大地影响交换机中的队列长度,进而影响端到端延迟。**尽管这些流对拥塞控制方案没有反应,但严重干扰了数据中心或集群系统交换结构拥塞管理的正常运行。==》老鼠流小;快,还没收到ACK之前数据包就发送完了;频繁;突发;高度动态地进入/离开,影响队列长度,影响端到端延迟。
2.2 无损以太网中的拥塞管理
在这种不同的流量模式下,为了保证无损性并提供令人满意的作业完成时间,拥塞管理在无损以太网中变得至关重要且具有挑战性。IEEE DCB[4]规定了一个CM框架,该框架由两个基本功能组成,包括端到端拥塞控制和逐跳流量控制。==》CM框架包括两部分,端到端拥塞控制和逐跳流量控制。
**端到端拥塞控制根据测量变量(如交换机队列长度或RTT)所反映的拥塞信息,主动调节源的发送速率。**代表性的解决方案包括IEEE 802.1 Qau开发的QCN、三层方案DCQCN和基于RTT的方案TIMELY。虽然这些协议可以限制交换队列的长度,从而降低丢包率,但并不能保证零丢包。实际上,在信源意识到网络拥塞之前,不可控突发可能已经导致丢包,特别是当拥塞控制环路时延较大或突发的并发度较大时。更糟糕的是,大量的拥塞控制机制以线速率启动流以加速小流的完成,加剧了丢包问题。==》端到端拥塞控制方案代表QCN,DCQCN,TIMELY。
为了避免由于不可控制的突发而导致的数据包丢失,IEEE 802.1 Qbb定义了基于优先级的流量控制(PFC)来保证无损性。使用PFC,当入口队列长度超过某个阈值时,交换机向其上游设备(交换机或NIC)发送暂停帧以停止传输。当队列耗尽到另一个阈值以下时,发送恢复帧。虽然PFC可以保证由于网络拥塞造成的零丢包,但它会导致一些性能问题,如头阻(head-of-line blocking,HLB)、不公平甚至死锁。当PFC不断触发时,局部拥塞会扩散回拥塞源和非拥塞源,严重影响网络吞吐量和流完成时间。这些性能问题的根本解决方案是通过端到端的拥塞控制方案消除持久的拥塞,这样PFC就不会不断触发。
总之,端到端的拥塞控制需要PFC来防止由于不可控突发的瞬时拥塞而导致的数据包丢失,PFC也需要端到端的拥塞控制来消除持久的拥塞。也就是说,在无损以太网中,端到端拥塞控制和逐跳无损流控制是相辅相成的。
3 实验观察和见解
3.1 观察结果
尽管端到端拥塞控制和逐跳流量控制在不同的流量模式下都能独立地实现各自的目标,但它们之间的相互作用会引发意想不到的问题。(1) 当突发短流进入网络时,网络中的现有流仍将受到PFC相关副作用的影响,即拥塞扩散和不公平。(2) 突发离开网络后,拥塞控制将无法有效、及时地重新分配可用带宽。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C71nXUHH-1636722400011)(C:\Users\dongzhi\Desktop\1数据中心网络\picture\PCN\紧凑且典型的网络场景.png)]
大多数现有工作相当关注无损以太网CM中的单个元素(例如,拥塞控制[36,49])或特殊症状(例如,HLB[7],死锁[28,29,45]),**但无意中忽略了不同流量模式下拥塞控制和流量控制的相互作用,因此,可能会屏蔽上述性能问题的根本原因。**随后,我们首先进行仔细、细致和多变量的观察,然后推断特殊症状和问题的根本原因。
具体来说,我们定义了一个紧凑而典型的网络场景,它不能太复杂从而妨碍我们掌握无损以太网CM中关键元素和核心机制的基本原理。同时,它应具有足够的共同特征,以确保所得到的结论和见解不失一般性。如图1所示,我们选择了数据中心典型网络拓扑的一个基本单元,如CLOS和Fat Tree],其中16个发送方和2个接收方通过两个交换机连接。所有链路均为40Gbps,传播延迟为5us。流量是长流(long-lived flow)和并发突发流的混合。具体而言,H0和H1分别启动到R0和R1的长流。假设F0和F1在模拟开始时实现了从交换机S0到S1的40Gbps瓶颈链路的公平带宽分配。在时间0,H2~H15的每个发送者以线速率(即40Gbps)同时向R1生成16个短流,每个流的大小为64KB。**因为每个老鼠流仅持续12.8us(<1个RTT),它不受端到端拥塞控制机制的控制。这些不可控制的突发流总共持续了3毫秒左右。**我们使用ns-3进行了仿真,研究了各种CM方案,包括PFC、PFC+QCN、PFC+DCQCN和PFC+TIMELY。所有参数均设置为相关标准和文献推荐的默认值。结果如图2所示。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-42wj0APt-1636722400022)(C:\Users\dongzhi\Desktop\1数据中心网络\picture\PCN\PFC和现有拥塞控制之间的相互作用.png)]
**当单独使用PFC时,输入端口P1/S1暂停其上游端口P0/S0以避免丢包,并且端口P2/S1被并发突发流阻塞。随后,“暂停”操作随着长流向上游蔓延,H0和H1最终都暂停。**我们测量暂停速率(即发送暂停消息的速率)和瞬时吞吐量。如图2(a)所示,拥塞树从S1开始,蔓延到H0和H1,出现并持续3.1ms(>100RTT),直到突发的小流结束。在这个过程中,拥塞流F1和未拥塞流F0都面临巨大的吞吐量损失,如图2(b)所示,无论它们是否是P2/S1端口真正拥塞的原因。
当QCN、DCQCN或TIMELY与PFC联合工作时,拥塞树仍然出现,如图2(a)所示。但其持续时间缩短为0.5ms(约17RTT),1.8ms(约57RTT)和1.4ms(约47RTT)。令人惊讶的是,当并发突发流和拥塞树消失后,两个长流F0和F1可能无法快速恢复到其初始吞吐量。如图2(b)所示,即使并发突发流仅持续3ms,QCN、DCQCN和TIMELY的吞吐量损失意外地分别持续12.5ms、25ms和60ms。总的来说,在这种情况下,PFC+QCN、PFC+DCQCN和PFC+TIMELY的性能比PFC差。==》PFC+端到端拥塞控制后拥塞时间变短了,但吞吐量减少时间变长了;
3.2 互动问题
为了理解拥塞树的长持续时间和意外的大吞吐量损失,我们详细分析了流的动态行为,揭示了逐跳流控制和端到端拥塞控制之间的相互作用问题。我们相信,通过对交互行为的仔细分析和严格推理,我们可以从现有工作中发现各种性能问题的根源。
1)**PFC混淆了拥塞检测。**在上述实验中,理想的端到端拥塞控制方案应该只将F1限制在2.5Gbps,并将S0到S1的瓶颈链路剩余带宽(37.5Gbps)分配给F0。然而,即使采用现有的拥塞控制(QCN、DCQCN和TIMELY),也无法实现这种理想的带宽分配。为了探索这种现象的原因,我们记录了端到端拥塞控制所调节的发送速率以及未阻塞流F0和阻塞流F1的实际发送速率。结果如图3(a)所示。当拥塞树存在时,端口P0/S0处的队列长度和RTT都会增加。由于发送方根据反馈信息(即队列长度或RTT)推断拥塞,F0也被认为是拥塞的。因此,F0的发送速率被QCN、DCQCN和TIMELY降低,即使它对P2/S1处的实际拥塞点没有贡献。因此,在拥塞树消失后(如图3(a)中的虚线所示),F0的发送速率非常低,尽管它没有受到PFC的附带损害。
总之,拥塞控制需要一些时间来消除拥塞树。在这个瞬态过程中,由于PFC引起的拥塞扩散而导致的较大队列长度和RTT将误导拥塞控制以降低受害流的发送速率(本例中为F0)。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CoxImcvv-1636722400041)(C:\Users\dongzhi\Desktop\1数据中心网络\picture\PCN\不同拥塞控制的响应.png)]
**2)基于缓慢演化的端到端拥塞控制的速率调整与PFC的快速逐跳操作不匹配。**图3还揭示了为什么拥塞树仍然被创建并持续几十个RTT,其中包括QCN、DCQCN和TIMELY。虽然当并发突发老鼠流(小流)进入时,F0和F1立即被限制(throttled),但QCN、DCQCN和TIMELY需要很长时间才能降低发送速率(图3中标记了不同拥塞控制的调节时间)。然而,PFC是逐跳工作的,因此拥塞传播非常快。在F0和F1的速率下降过程中,PFC不断触发。因此F0和F1的实际发送速率主要由PFC决定,而不是端到端拥塞控制,因此导致F0和F1的吞吐量都很小。这就是为什么即使采用了端到端的拥塞控制,拥塞树仍然会蔓延扩展。
这是由于端到端拥塞控制中基于缓慢进化的速率调整与逐跳流控制的快速操作之间的不匹配造成的。更具体地说,**当可用带宽由于并发突发老鼠流(小流)而突然减少时,端到端拥塞控制方案不知道目标速率,因此只在当前发送速率的基础上一步一步地降低速率,每个更新周期最多50%。**此外,QCN更新周期约为20us(传输100包的时间),DCQCN需要50us和TIMELY至少12.5us(发送64KB段的时间)。另外,当F0和F1的吞吐量很小时,DCQCN可能在一个更新周期内接收不到一个数据包,导致发送速率会自动增加。其结果是,可能需要数十个更新周期来降低F1的速率以接近剩余的可用带宽,如图3所示。
**3) 速率的增加不适应动态网络条件。**在并发突发老鼠流消失,拥塞树消失后,F0和F1的发送速率都被限制,需要逐步增加。QCN和DCQCN以二进制搜索(binary-search)的方式将发送速率提高到以先前存储的速率降低时的目标速率,并周期性地以预先配置的值线性地提高目标速率。在每个更新周期中,TIMELY添加具有固定值的发送速率。**简而言之,所有速率增加方法都是线性的。因此,在并发突发老鼠流受到干扰后,它们无法立即充分利用可用带宽。这就是为什么流F0和F1需要更长的时间才能恢复到图2(b)所示的全部吞吐量。此外,需要根据网络带宽自适应地配置每个更新周期的速率增加步骤。**例如,为40Gbps链路调整的QCN、DCQCN和TIMELY参数对于100Gbps链路可能过于保守,但对于1Gbps链路可能过于激进。参数的调整在实践中会变得困难。==》拥塞消失后,端口的发送速率是线性的,太慢了。
4 原则
所有上述性能问题的根本原因可以归结为现有的端到端拥塞控制方案不能很好地与逐跳流控制配合。为了解决这些问题,我们重新审视了CM的体系结构。我们首先讨论了现有拥塞管理中的哪些元素引入了这些性能问题,然后提出了通过重新设计用于无损以太网的CM来克服这些不一致性的方法。简而言之,这些原则有三个方面。
- 由于现有的拥塞管理无法识别真正的拥塞流,因此未拥塞流成为受害者。PFC的运行会对拥塞产生反压,污染当前的拥塞信号(即队列长度和RTT)。我们需要找到一种新的机制来正确区分哪些流量是造成拥堵的真正原因。
- 拥塞扩散是由基于缓慢进化的速率降低机制引起的,因此快速准确的速率降低解决方案是必不可少的。
- 当突发流量消失时,长流主要依靠线性速率增加来共享释放的带宽,导致收敛缓慢和带宽浪费。因此,应建立一个快速的加速机制。
4.1 拥塞检测和识别
传统的端到端拥塞控制是基于交换机队列长度和RTT等测量变量来检测网络拥塞的。然而,这种拥塞检测机制在无损以太网中被PFC所混淆。我们需要修改拥塞检测和识别机制来避免这种混淆,然后正确地识别哪些流是真正拥塞的。==》检测拥塞和识别真正的拥塞流;
4.1.1 检测拥塞
为了帮助检测拥塞,我们将交换机的出端口分为以下三种状态。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pkvZ01HZ-1636722400060)(C:\Users\dongzhi\Desktop\1数据中心网络\picture\PCN\出口端口的不同状态.png)]
真正拥塞:真正拥塞中的端口充分利用了出口链路,多余的进入数据包在缓冲区中积累,如图4(a)所示。例如,在先前的模拟中,当并发突发老鼠流(小流)开始时,端口P2/S1处于实际拥塞状态。
无拥塞:如图4(b)所示,没有数据包在出口端口的缓冲区中累积,因此,进入的数据包被立即发送。也就是说,出口链路正常工作,利用率低于100%。上述模拟中的P3/S1端口始终处于非拥塞状态。
准拥塞:准拥塞中的端口也保持一定的队列长度,但由于暂停和恢复,相关的出口链路没有得到充分利用,如图4(c)所示。因此,数据包的传入速率是否超过链路容量是未知的。例如,在前面的模拟中,面对PFC触发器,端口P0/S0变成了准拥塞。然而,由于通过该端口的流将遭受较大的队列长度和延迟,现有拥塞控制(如QCN、DCQCN和TIMELY)中的拥塞检测机制会武断地判断这些流经历了拥塞。
因此,为了区分出口端口的不同状态,特别是准拥塞状态,在检测拥塞时应考虑PFC的影响。
==》定义什么是真正拥塞,无拥塞,准拥塞;检测准拥塞状态要考虑PFC影响。
4.1.2 识别拥堵流量
**由于PFC的影响,来自拥塞和未拥塞流的数据包很可能积压在出口端口的相同队列长度中,出口端口被其下游入口端口暂停。**因此,根据出口端口的队列长度预测潜在的拥塞可能是正确的,但做出拥塞判断并向所有流源(如QCN和DCQCN)提供不加区分的信息确实是不明智的。仅通过测量RTT及其变化,TIMELY也很难区分流量是否真正穿过真正的拥挤端口。
为了避免现有CM架构中拥塞信息混乱,干扰流量控制和拥塞控制之间的正常交互,甚至导致相互损害,我们提倡在重构无损以太网CM时解耦拥塞检测和识别功能。交换机负责检测拥塞并通过监控相关网络状态提供拥塞信号。终端系统综合相关信息来判断拥塞,并确定其流量是否真的拥塞。==》解决方法
4.2 接收端驱动的速率下降
**理想的拥塞控制方案应该直接将拥塞的流量控制在一个合适的速率上。**为了达到这个目标,我们首先需要获得这个合适的速率。在无损以太网中,合适的速率不应触发PFC,但仍能保持较高的吞吐量。为了找到这个速率,我们应该回答以下两个子问题:1)拥塞流不损失吞吐量的最小速率是多少?2)拥塞流量不触发PFC的最大速率是多少?
第一个答案是直观的。它应该是接收端的到达率。我们把它定义为接收速率。一方面,拥塞流的路径必须至少有一个真正的拥塞端口,因此所有流的接收速率之和正好达到瓶颈链路的容量。另一方面,如果拥塞流将速率降低到小于其接收速率,则瓶颈链路上一定存在空闲带宽,这意味着该流实际上可以发送更多数据。**因此,接收速率是拥塞流不丢失吞吐量的最小速率。**在最近的设计中,如Fast TCP[32]、NDP[27]和Homa[38]也引入了接收速率的能力。在检测拥塞时,它们都利用接收速率实现快速收敛。
幸运的是,接收率也是第二个子问题的答案。**也就是说,当发送速率不超过接收速率时,拥塞流的分组不会在拥塞交换机的入口端口累积,然后pfc不会被触发。**而且,无论同一交换机的出口端口是否拥塞,都会出现这种现象。
为了生动地说明这一现象,我们在前面的“观察结果”环节中给出的网络场景中重复进行了一些实验. 我们开始时让H2~H4以线路速率模拟不可控的burst。拥塞无关流F0和拥塞相关流F1都由速率限制器控制。F0的发送速率固定在其公平分配(即20Gbps)的速率上,F1的发送速率从20Gbps逐步变化到0。当仿真运行时,两个流都被它们的固定速率限制器和PFC限制。在速率限制器中设置的发送速率和这两个长流在接收端的接收速率,以及入口端口P1/S1上暂停帧的生成速率,如图5所示。显然,当拥塞相关流F1的发送速率超过9.5Gbps时,其接收速率仅为9.5Gbps。同时,入口端口P1/S1产生持续的PFC暂停,并且拥塞无关流F0被附带地损害。相反,当F1的发送速率不超过9.5Gbps时,P1/S1端口不产生暂停帧,拥塞无关流F0可以达到预期的吞吐量。该实验表明,将拥塞流限制在其接收速率上,可以防止相关出口端口上出现更多PFC触发器,从而抑制拥塞树该分支中的拥塞扩散。
因此,我们获得了一个有价值的见解,**即将拥塞流的速率直接降低到它们的接收速率。**它启发我们设计一种接收端驱动的速率降低算法,以便在无损以太网中与PFC协调工作,这将在下文中详细阐述。
4.3 温和到激进的速率增长
速率的增加应该加速非拥塞流,以快速共享可用带宽,然后同时保持充分利用率。在两种情况下需要非阻塞流的速率增加规则。
1 流刚刚从阻塞状态转变为非阻塞状态。根据我们的接收端驱动速率降低原理,流量已降低到其接收速率,这意味着没有PFC触发和吞吐量损失。因此,流速率增加的空间很小。因此,该流量速率应缓慢增加。
2 流量在几个连续更新期间一直保持在非拥塞状态。在这种情况下,流可以更积极地增加以占用可用带宽。由于我们的接收端驱动的速率降低规则可以大幅减少过载流量,因此可以更积极地设计速率增加机制以快速填满网络带宽。
因此,我们得到一个建议,**即先缓慢地增加非阻塞流速率,然后再积极地增加非阻塞流的速率。**它指导我们设计一种温和到激进的速率增长算法,可以同时保证稳定性和快速收敛。
5 PCN
在本节中,根据§4中的原则,我们重新设计了无损以太网的拥塞管理,并提出了光子拥塞通知**(PCN),它是一种基于速率的端到端拥塞控制机制,可与PFC协调工作。如图6所示,PCN由三部分组成:反应点(RP)、拥塞点(CP)和通知点(NP)。通常,CP(总是指拥塞的交换机)使用非暂停ECN(NP-ECN)**方法标记通过的数据包,以检测出口端口是否处于实际拥塞状态。请注意,标记为NP-ECN的数据包并不一定意味着遇到拥塞,它需要NP做出最终决定。NP,即接收方,识别拥塞流,计算其接收速率,并定期向RP发送拥塞通知包(CNP)。RP始终是发送方的NIC,它根据CNP中的信息调整每个流的发送速率。随后,我们详细介绍了PCN的各个部分。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8GP2B8Tw-1636722400064)(C:\Users\dongzhi\Desktop\1数据中心网络\picture\PCN\PCN框架.png)]
5.1 CP 算法
我们设计了NP-ECN方法来检测拥塞并产生拥塞信号。CP算法遵循图7中的状态机。假设当交换机的一个出口从其下游节点接收到恢复帧时,关联的等待队列中有N个数据包。NP-ECN将设置其计数器PN=N。然后端口重新启动以传输数据包。每次发送一个数据包时,计数器将递减一,直到所有N个暂停的数据包都已发送。对于这N个数据包,它们不会被标记。对于以后没有暂停的包,相应的PN=0,交换机会按照传统的方法用ECN标记,阈值为零。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QYIGpbsn-1636722400069)(C:\Users\dongzhi\Desktop\1数据中心网络\picture\PCN\CP状态机.png)]
这样,真正拥塞出口端口中的所有数据包都将标记为ECN。相反,在非拥塞端口中,数据包从不标记ECN。对于准拥塞端口,暂停的数据包不标记ECN。同时,当入口端口队列不为空时,到达和离开处于恢复状态的端口的数据包被标记为ECN,即准拥塞端口中的数据包被部分标记为ECN。在PCN中,CP仅用于在数据包上标记拥塞信号,并让NP节点最终确定流是否拥塞。
需要注意的是,NP-ECN机制可以在同时具备ECN和暂停功能的商用交换机上轻松实现。与商品交换机中的传统ECN方法相比,PCN的NP-ECN方法要求每个端口多一个计数器和多条逻辑线。修改的空间和计算复杂性均为O(1)。==》真正拥塞和准拥塞可以区分开吗?我觉得真正拥塞和准拥塞ECN标记是一样的?
5.2 NP 算法
NP的功能包括识别拥塞流、估计接收速率和定期发送拥塞通知包(CNP)。T表示CNP生成周期。
识别拥塞流:NP根据NP-ECN机制标记的ECN信号识别拥塞流。如果在CNP生成周期T内接收到的95%的数据包被标记为ECN,则认为该流是拥塞流。根据经验设置95%的值,以过滤实践中的一些微小干扰,例如队列振荡和优先级调度,这使得真正拥塞流的一个或多个数据包不太可能标记为ECN。
估计接收速率:直接用T去除以到达的数据包的总大小来计算接收速率。值得注意的是,流的接收速率可能非常小,以至于在几个CNP生成周期中只有一个包到达。为了解决这种特殊情况,PCN还记录了数据包在NP的到达时间间隔。当到达间隔时间大于T时,NP通过用到达间隔时间代替T来估计接收速率。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t4NMFKvU-1636722400089)(C:\Users\dongzhi\Desktop\1数据中心网络\picture\PCN\NP状态机.png)]
生成CNP:NP发送CNP通知流源,接收速率以周期T为单位,T被设置为50us,类似于DCQCN。**此外,当流量需要降低或增加速率时,PCN会显式生成CNP,而DCQCN只生成通知速率降低的CNP不同。**并且当在周期T中没有接收到其数据包时,不会生成CNP。具体而言,CNP包的格式与RoCEv2[15]中的CNP包兼容,如图9所示。CNP封装的主要信息包括IPv4/IPv6报头中的1位ECN和保留段中的32位RecRate,该保留段的接收速率标准化为1Mbps。图8总结了NP算法的状态机。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gzth2b9C-1636722400094)(C:\Users\dongzhi\Desktop\1数据中心网络\picture\PCN\CNP的数据包格式.png)]
5.3 RP 算法
算法1描述了RP如何根据CNP中的信息调整发送速率的伪代码。开始时,流量以线速开始,以改善短流量的流量完成时间(FCT)。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N6gsVT9l-1636722400098)(C:\Users\dongzhi\Desktop\1数据中心网络\picture\PCN\RP算法的伪代码2.png)]
速率降低:当RP接收到带有ECN标记的CNP时,它会按照第6行中的规则进行速率降低,而不是直接将发送速率重置为接收速率,如前面4.2“接收端驱动的减速”中所述,对接收速率设置了一点小折扣 Wmin,这样可以排出交换机中的累积队列。相应的,在排空累计队列期间,接收速率recRate可能大于发送速率sendRate,按照第6行的规则该发送速率应不增加。
速率增加:当RP接收到一个没有ECN标记的CNP时,它会按照第10行和第11行的规则进行速率调整。具体来说,RP通过计算其当前值和线速的加权平均值来增加发送速率。这个速率增长规律在多个方面都是有效的。
(1) 可以达到理想的发送速率,因为它始终保持在当前发送速率和线路速率之间。
(2) 由于所有流的w值都是相同的,因此慢流的增长比快流更为剧烈,这有利于公平性。
(3) 权重w自动从最小值Wmin变为最大值Wmax,这样PCN可以实现§4.3中讨论的从温和到激进的速率增加。例如,当Wmin=1/128时,Wmax=0.5,并且连续接收到没有ECN标记的CNP,图10显示了w和从0到线速率的发送速率的演变过程。在前5个CNP中,发送速率的增长不超过线路速率的10%,但在仅15个CNP之后,发送速率将增加到线路速率的95%。
(4) 为了适应从1Gbps到400Gbps的链路容量升级,不需要任何参数配置。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UnAdHqhS-1636722400102)(C:\Users\dongzhi\Desktop\1数据中心网络\picture\PCN\当发送方收到持续的CNP通知速率增加时,w和带宽速率的演变.png)]
5.4 讨论
如§4所述,当前无损以太网性能问题的**主要根源是PFC和端到端拥塞控制方案之间的不恰当交互。**我们证明了PCN以最小的实现成本解决了无损以太网中的核心问题。
实现要求:为了实现PCN,需要对交换机进行一些修改。与商品交换机中的传统ECN方法相比,PCN的NP-ECN方法(见图7)只需要每个端口多一个计数器和多条逻辑线。修改的空间和计算复杂度均为O(1)。
好处:为了展示PCN的优势,我们启用了PCN并重复§3中的模拟。结果也分别插入到图2和图3中。图2(a)中的结果表明,S0->H0和S0->H1链路中的暂停都被完全避免,S1->S0链路中仅短暂出现少量暂停,但拥塞扩散被迅速抑制,并且不会生成拥塞树。图3中的结果证实,PCN可以帮助未阻塞流快速获取空闲带宽,并正确、及时地将阻塞流调节到适当的速率。PCN增加F0以在并发突发期间充分利用网络带宽。在并发突发消失后,F0和F1公平地共享带宽,而不会浪费网络资源或触发PFC暂停,如图2(b)所示。
6 理论分析和参数设置
6.1 理论分析
6.2 参数设置
7 评价
7.1 基本属性
7.2 突发容忍度
7.3 参数灵敏度
7.4 实际工作量
7.5 外部评价
8 相关工作
9 结论
本文重新构建了无损以太网的拥塞管理,并通过两种巧妙的设计,提出了适用于无损以太网的光子拥塞通知**(PCN):一种新的拥塞检测和识别机制,用于识别哪些流真正导致了拥塞;(ii)接收端驱动的速率调整方案,以尽可能快地在一个环路控制轮中缓解拥塞,即一个RTT。**PCN只需稍加修改即可在商品交换机上轻松实现。大量的实验和仿真证实,PCN极大地提高了性能,显著地缓解了PFC暂停消息,并减少了实际工作负载下的流完成时间。
工作量
7.5 外部评价
8 相关工作
9 结论
本文重新构建了无损以太网的拥塞管理,并通过两种巧妙的设计,提出了适用于无损以太网的光子拥塞通知**(PCN):一种新的拥塞检测和识别机制,用于识别哪些流真正导致了拥塞;(ii)接收端驱动的速率调整方案,以尽可能快地在一个环路控制轮中缓解拥塞,即一个RTT。**PCN只需稍加修改即可在商品交换机上轻松实现。大量的实验和仿真证实,PCN极大地提高了性能,显著地缓解了PFC暂停消息,并减少了实际工作负载下的流完成时间。