Introduction

非最短路源自适应路由的应用场景

Dragonfly 等低直径网络拓扑在对抗性流量模式(如 ADV+1、ADVc)下易出现特定链路拥塞,需通过非最短路由(如 Valiant 路由)分散流量。然而,非最短路由会显著增加平均路径长度和基础延迟,并导致网络负载上升。虽然缩短非最短路路径可降低延迟,但可能引入新的拥塞点或不公平性问题,尤其在特定流量模式下(如 ADVc),部分链路仍可能成为瓶颈。

现有非最短自适应路由算法的特点与局限性

目前解决上述问题的方案就是非最短自适应路由,即在源路由节点动态决定数据包走“最短路”或“非最短路”。这里有两个关键决策需要解决——1. 何时选择最短路与非最短路?2. 如果选择非最短路,数据包走哪条非最短路?

第一个决策通常使用 UGAL 机制及其扩展方案:

  1. UGAL 机制:基于下一跳缓冲区占用率(QMIN 与 QVLB)动态选择最短或非最短路,但其依赖已接受流量(carried traffic)的估计值,而非实际提供的流量(offered traffic)。在网络饱和时,已接受流量与提供的流量存在差异,导致路由决策次优,无法保障最大吞吐量。
  2. TPR 等计数器方案:利用流量计数器检测流量模式,动态调整 UGAL 参数。然而,其计数器仅反映已接受的流量,未考虑网络饱和时队列积压的影响,可能低估流量强度,错误偏向最短路由,加剧拥塞与不公平性。

第二个决策通常使用 Valiant 路由(VLB):将数据包先发往一个随机的中间交换机,再发往最终目的地,以此打散流量。不过存在一个问题:

  • 路径长度固定:现有非最短路由(如 Valiant 的 LGL 路径)采用固定长路径,无法根据实时流量模式动态缩短路径,导致不必要的延迟。但是盲目缩短路径很危险,如果流量模式不合适,这种缩短会引发“病态拥塞”和加剧不公平性。现有计数器也没有用来判断“缩短非最短路是否安全”,因此路径选择偏向保守。

本文贡献

提出LIA(Latency-Improved Adaptive)路由机制,其是一种基于 UGAL 和交换机本地计数器的自适应路由机制。核心创新如下:

  1. 扩展计数器:跟踪提供的流量(结合新注入的流量与队列积压),避免饱和时的误判,确保路由决策基于真实流量需求。
  2. 动态路径缩短:通过全局计数器(评估源组内全局链路负载)和远程计数器(预测中间组本地链路拥塞风险),自适应决定是否跳过非最短路的第一跳(L1)或第二跳(L2),在避免拥塞的前提下安全地最小化路径长度、降低延迟。
  3. 性能优势:实验表明,LIA 在对抗性与均匀流量下均实现近最优延迟(较现有自适应路由降低 30%),同时维持高吞吐量与公平性,解决了传统方法在饱和后性能下降与负载不均衡的问题。

Background

Dragonfly Topology

任意网络均可应用于两个拓扑层级;我们考虑在两个层级均采用全连接图且直径为三的典型蜻蜓拓扑结构:每组内部一跳加全局互连一跳。关系式 a = 2p = 2h保证了负载均衡流量下的链路均衡使用,这意味着从每组发出的全局链路数量等于终端(或注入点)数量。当组间采用单链路连接时,网络最多包含д = 1 + a · h = 2h² + 1 个组。例如图 2 中 h=6 的蜻蜓拓扑,每个交换机连接 6 个终端,每组含 12 台交换机,最多可扩展至 73 组,共计 5,256 个计算节点。若采用多全局链路(全局链路聚合)可增加组间带宽,但会降低最大组数至д = 1 + a · h/t = 2h²/t + 1(其中 t 为组间链路数)。为简化模型,我们假定每组全局链路数 a·h 是 t 的整数倍。

  • 拓扑结构
    • 分层设计,包含组内(全连接)和组间(全局链路)两级结构,直径固定为 3(源组 1 跳、全局 1 跳、目标组 1 跳)。
    • 关键参数
      • :每个交换机连接的计算主机数;
      • :每组的交换机数;
      • :每个交换机的全局链路数;
      • 交换机端口数
    • 示例配置 时,每组 12 个交换机,最多 73 组,总规模 5,256 主机。
  • 全局链路配置
    • Palmtree 排列:交换机 通过全局链路连接后续 个连续组,确保负载均衡。
    • Trunking(多链路聚合):提升组间带宽( 条链路),但最大组数降至

Dragonfly Routing

基本路由策略

  1. 最短路(MIN)
    • 路径模式:(源组本地跳 → 全局跳 → 目的组本地跳),最长3跳(根据源交换机与目的交换机的位置,可能会出现更短的路径)。
    • 问题:对抗性流量下,MIN 会使部分网络链路饱和,形成瓶颈(如  流量吞吐降至 )。
  2. Valiant负载均衡(VLB)
    • 两阶段的流量随机化
      • Phase A:将流量以 MIN 策略发送到随机的中间节点 (路径记为 Path A,遵循  模式)。
      • Phase B:从  再以 MIN 策略经另一 序列到达目的节点。
    • 总路径:最长 (6跳),但可在Phase A 缩短跳数(如 
  3. 自适应路由:在源路由器处自适应地选择 MIN 或 VLB 策略
    • UGAL 策略:根据各路径下一跳缓冲区队列的占用情况,在转发时动态选择 MIN 或 VLB 策略——当满足  为偏置阈值,调整其大小可以使得 UGAL 偏向于 MIN 或 VLB)时,UGAL 选择 MIN 策略。

Valiant 路径长度优化

VLB 会导致平均路径变长,网络中增加冗余的负载。因此为了缩短平均路径,有以下策略:

  • 限制路径长度:通过 Restricted Valiant 缩短 Path A,但在特定对抗性流量模式(见第 3.2 节分析)下,该方案对流量的随机化不足,导致中间组内的局部链路成为瓶颈1
    • 跳过 (如 ):可能导致源组全局链路竞争(如  流量下的不公平性)。
    • 跳过 (如 ):可能导致中间组本地链路拥塞(如  流量中  或  过载)。
  • ACOR机制:交换机通过维护 ACOR 等级(Adaptive Congestion-Oblivious Routing),动态调整Path A 的长度(),该等级根据网络负载的情况进行调整。
    • 限制:ACOR 机制要求拥塞必须传递至源节点,且仅对预估的流量负载做出响应,无法识别实际流量模式。

基于计数器的自适应路由Traffic Pattern-based adaptive Routing

  • 核心思想:通过检测流量模式的对抗性改进 UGAL 算法
    1. 利用交换机的计数器机制(如本地/组间流量统计),测量通过每个端口转发的本地与非本地组内及组间的流量;
    2. 定义从“良性”到“对抗性”的多级流量强度指标,每个等级对应特定的交换机计数器数值(即发往特定目标组的流量大小),各级阈值通过实证研究确定;
    3. 当向目标发送流量时,TPR 根据该目标关联的流量强度等级动态调整UGAL参数  ——在遭遇高强度对抗性流量模式时更倾向于非最小路径转发,反之则维持最小化路由策略。。
  • 问题:依赖已接受流量(carried traffic),饱和时误判流量强度,导致性能下降。

Traffic Patterns

不同流量模式及其不利影响的总结

  • 均匀随机(UN)
    • 每个数据包的目的地在网络所有节点中均匀分布,
    • 此时 MIN 性能最优,因为能自然地均衡所有网络链路上的流量分布。
  • 对抗性偏移(ADV+i):Fig 4(a)
    • 源组流量定向发送到相距 个组的目标组,
    • MIN 策略下这两个组之间的 条全局链路会成为瓶颈,吞吐量限制为 ,(如 时吞吐限制为 )。
    • 为避免 MIN 策略的瓶颈,应采用非最小化路由——Valiant 路由通过对流量进行随机分流避免拥塞,同时也会因跳数增加而延长平均路径长度和基础时延,路径长度还会影响吞吐(如 路径在 ADV+8 时因中间组本地链路 负载不均,吞吐受限至 25%)。
  • 对抗性连续(ADVc):Fig 4(b)
    • 源组流量分散到连续的 个目标组,这时 MIN 策略就会导致源组内特定交换机(如 )过载,增加拥塞检测的难度,并且吞吐量受限为
    • 全局链路的饱和度略优于 ADV+i 场景,但是 ADVc 中 节点与其他交换机中节点各自观测到的局部流量差异显著,从而引发不公平性。
    • 非最短路需平衡路径长度与中间组负载,如使用 LGL 路径避免 Sout 拥塞。

Analysis and Motivation

这一节探讨过去工作的局限性:

Traffic Counters Measure Carried Traffic

计数器机制的局限性

  • TPR 依赖多个流量计数器在源端调节最小化与非最小化路由的选择,而现有计数器基于已接受流量carried traffic,即实际被路由的流量),而非提供的流量offered traffic,即假设无限资源时的流量需求)这种循环依赖可能导致饱和状态下自适应路由机制产生误导性结果,如下例所示:
  • 图5展示了采用TPR路由机制和不同仲裁策略(轮询[RR]作为基线方案、最近最少服务[LRS]和基于时效[AGE]的方案)时,Dragonfly网络在ADVc流量模式下的吞吐量与施加负载关系曲线。
  • 问题:当网络饱和时,输入队列积压导致注入流量受限,数据包转发短暂停滞,此时计数器值可能错误地降至“高强度”阈值之下,误判流量强度为“中等”,进而错误地偏向最短路由(MIN),最终加剧拥塞与不公平性,甚至恶性循环地减少既定目标组的注入流量和计数器数值。
  • 实验结果
    • 图 5(a):TPR 在 ADVc 流量下,饱和后吞吐下降(该现象与计数器实现机制相关,因此在考察的三种仲裁策略中均有显现);
    • 图 5(b):这种拥塞在各交换机间并非均匀分布——该图采用 RR 仲裁策略展示了发往组 1 的每交换机流量最大值、平均值与最小值,可见显著波动性。在饱和后,最高与最低注入节点间的差值随负载增加而扩大,导致严重的负载不均衡。

带给 LIA 的动机:必须设计一种能够估算“offered traffic”的计数器。

Impact of Valiant Phase A Path Length

前面可以看到,Path A 的优化是重中之重,本小节继续讨论其影响。若源节点与目标节点同属一个组,路径 A 仅为单跳本地链路 L;但本文聚焦全局流量场景——当目标节点位于远端组时,必须引入非最短路径的全局跳 以消除因对抗流量导致的全局链路瓶颈,因此 Valiant 路由的 A 阶段可考虑四种路径组合:(全局跳+本地跳)、(双全局跳,需注意含双全局跳的路径将使吞吐量降至 50%)。

下面将通过选择适当 来量化分析路径 A 中节省每跳本地链路带来的影响:

  • 第一本地跳()在 VLB 阶段 A 中的影响:(在 ADVc 流量模式场景下的分析)

    • 图 6 展示了在 ADVc 流量下,采用 oblivious VLB 和 TPR 两种不同策略时组内各交换机的吞吐量,其中 Valiant 路径采用 两种模式进行对比。
    • 使用 VLB 时,所有注入节点均随机化流量,其全部流量均通过 Path A( )被接收;而采用自适应的 TPR 时,交换机 的部分流量会以最短路径发往 (即 Fig 4(b) 中的 ),这些流量通过 条全局链路转发。
    • 后果:若省略 (如采用 路径),源组全局链路直接用于非最短路,与最短路由竞争资源, 节点(负责转发组内全局流量)的全局链路过载,导致其自身注入流量受限,引发不公平性问题。
    • 解决方案:保留 (如 路径),通过调用组内的全部 global 链路分散流量(即 VLB 流量通过 路由到组内其他交换机,并使用全组的全局链路),避免 拥塞,提升公平性。

    带给 LIA 的动机:不能总是省略 。当一个交换机检测到自己的全局链路由于 MIN 流量而高度饱和时,它的 VLB 流量必须包含

  • 第二本地跳()在阶段 A 中的影响:(考虑所有交换机按相同模式收到流量,如此视作多个 ADV+i 流量模式的叠加,每个原始流量都在 global 链路上有一定偏移)

    • 对每个 ADV+i 流量产生的拥塞进行独立分析,在图 7 中展示了标准 Dragonfly 拓扑(h=6、t=1)中,提供负载为 且采用VLB路由时,各可能 值()下ADV+i流量的接受负载情况。曲线表示各 Path A的实测吞吐量,TPR 路由结果与此相似(原论文中没有给出具体图表)。
    • 消除第二跳 的后果:若省略 (如 路径),中间组的本地链路(如 )因流量集中成为瓶颈,导致吞吐率下降(明显低于 两类路径)。
      • 这说明应在低负载时采用 路径以降低延迟,而当负载超过与偏移量 相关的特定阈值时,则应切换至 路径以避免网络饱和(该阈值随ADV+i模式的偏移量变化,当 的整数倍时阈值最小,在 的中间值时达到最大)
    • 模型分析:考虑不使用 trunking 模式()、 的流量模式,其中 (负值情况对称)
      • 采用 LIA 中的Palmtree拓扑结构时,中间组通过交换机 接收的流量需经由交换机 转发至目标组。因此,交换机 接收的流量仅由 跳的两个本地链路 转发。具体而言: 条全局链路接收的流经本地链路 转出,其余 条链路的流量则由本地链路 转发。由于 的吞吐上限均为 中的较大值将决定哪类本地链路先饱和并限制负载上限。当 时, 的吞吐最低——此时本地链路 需承载 所有条入向全局链路的聚合流量,平均吞吐被限制为。当全局偏移量处于的中间值时,流量在两条本地链路间均匀分配,此时吞吐达到最高。需注意当时,部分流量使用转发,另一部分则无需本地跳数直接转出(不存在),从而缓解拥塞。
      • 流量偏移为 时,中间组的本地链路负载由 决定,最大负载链路限制吞吐(如 ADV+8 时,l₁和 l₂分别承载 4/6 和 2/6 流量,吞吐上限 25%)。
    • 实验结果
      • 图 7:使用-G-路径时,ADV+i 吞吐随偏移量变化(如 i=6 时吞吐仅 1/6 ≈16.7%,i=3 时达 50%),而保留 L₂(如-GL 路径)可维持接近 50%吞吐。
      • 图 8:ADV+8 流量下,中间组本地链路 l₁和 l₂因负载不均成为瓶颈(吞吐限制 25%)。
      • Trunking 缓解:当 时,中间组内多链路分散负载,允许更高负载下省略 L₂。

    带给 LIA 的动机:可以在低负载时省略以降低延迟,但必须在上述瓶颈出现之前切换回包含的长路径 80。LIA需要一种方法来预测这个瓶颈(即LIA的“远程计数器”)。

Latency-Improved Adaptive Routing for Dragonfly Networks

LIA Overview

LIA 实现了源节点自适应路由。首先,源交换机基于受限版本的 Valiant 路由算法选择合适的中间节点 ,该路径可能跳过其路径 A 中的两个本地跳 L1 和 L2。随后,基于 UGAL 算法的变体,根据各路径的占用状态选择最小或非最小路径。两种决策均依赖于对当前注入流量的估算,该估算通过扩展的流量计数器实现。而扩展流量计数器是 LIA 在每个交换机中部署的全局计数器远程计数器。全局计数器用于判定是否可安全跳过第一个本地跳 并调节 UGAL 算法,而远程计数器用于跳过 。计数器数值在各交换机本地计算,不进行计数器信息分发。

核心工作流程如下:

  1. 估算流量: 交换机使用“扩展计数器”(详见 4.2 节)来估算“应发流量”(Offered Traffic),而不是“已承载流量”。
  2. 计算两组专用计数器:
    • 全局计数器 (): 每个交换机维护 个全局计数器 (对应每个远程组),每个计数器对应一个远程目标组。它基于注入端口的流量计算计算,衡量的是本交换机要发往“目标组 ”的应发流量。源交换机根据这些计数器判定是否跳过 L1。
    • 远程计数器 (): 每个交换机维护 个远程计数器 ,每个计数器对应一种类型的远程本地链路()。它不是直接测量,而是根据全局计数器的值推算出来的。 的作用是预测:如果省略了非最小路径的 (第二本地跳),本交换机发送的流量将对远程组的 链路造成多大的拥塞贡献。
  3. 决策非最小路径长度(选择 ):
    • 是否跳过 LIA 使用“全局计数器”来判断(详见 4.3.1 节)。
    • 是否跳过 LIA 使用“远程计数器”和一个阈值(RCTh)来判断(详见 4.3.2 节)。
    • 这个决策是逐交换机的。在同一时刻,交换机A可能因为其流量模式而决定跳过 ,而交换机B则决定保留
  4. UGAL 路径选择:
    • 确定了“最短的安全非最小路径”后(即选定了 ),LIA 使用标准的 UGAL 机制来比较“最小路径”和“非最小路径”的拥塞情况。
    • 关键改进: LIA 使用“全局计数器”的值来动态调整 UGAL 方程 中的 阈值。它定义了三个流量负载级别(例如:良性、混合、对抗性),每个级别对应一个 值,从而使 UGAL 决策能感知到流量的“对抗性”强度。

Traffic Estimation Using Extended Counters

本节解决了第 3.1 节中发现的“测量已承载流量”导致饱和时吞吐量下降的问题。

  • 问题: 传统计数器 () 只统计成功注入(转发)的数据包。网络饱和时,注入受阻, 下降,算法错误地认为负载降低。
  • LIA 的方案:扩展计数器 (Extended Counters)
    • 扩展计数器结合了两个信息源:
      1. :在采样间隔内新注入(转发)的数据包。这个数值与采样间隔和数据包密集度都有关系。
      2. :瞬时存储在“注入队列”中的数据包。这个值在饱和前很小,饱和后会迅速增长。
    • 计算公式 (Equation 2):
    • (权重因子): 这是一个关键的调节参数。 的设置必须非常小心,目标是:
      • (i) 避免在“均匀(UN)流量”饱和时, 过高导致算法误判为“对抗性流量”。
      • (ii) 确保在“对抗性流量”饱和时, 的增长能被有效计入,防止算法误判为“中低强度流量”。

Non-minimal Paths in LIA

本节详细说明了 LIA 如何利用计数器来安全地缩短 VLB Phase A 的路径(即 )。

Global Counters and First Local Hop

  • 动机(回顾 3.2.1 节): 由于首个非最短跳转为全局跳转,中间组的选择仅限于通过源交换机全局链路直连的组群。在 ADVc 等流量下,某些交换机(如 )的全局链路可能被其他交换机发来的 MIN 流量占满。如果此时 自己的非最短路 VLB 流量还试图省略 (即直接使用自己饱和的全局链路),将会导致其自身流量完全无法发出,造成不公平。
  • LIA 的决策规则:当交换机检测到自己直连的多个全局链路即将因 MIN 流量而饱和时,交换机 必须使用 (即把 VLB 流量先发给组内其他交换机)。
  • 实现机制:
    1. 交换机监视其 个直连远程组对应的“扩展全局计数器”。
    2. LIA 设置了两个阈值:
      • GPSTh (Global Port Saturation Threshold):全局端口饱和阈值。
      • SGC (Saturated Global Counters):饱和全局计数器个数。
    3. 决策: 如果超过 SGC 个全局计数器的值 > GPSTh,则 LIA 强制使用
    4. 否则,LIA 将跳过 ,将 VLB 的中间组限制在 个直连组内,以降低延迟。

Remote Counters and Second Local Hop

  • 动机(回顾 3.2.2 节): 省略 可能会导致 VLB Phase B 的 (中间组的本地链路)出现“病态拥塞”。具体来说,发往全局偏移量为 的流量,会集中使用中间组的 两种本地链路。

  • LIA 的决策规则: 交换机必须在上述 拥塞发生 之前,预先切换回包含 的长路径。

  • 实现机制(远程计数器 ):

    1. 的目的是估算中间组 型链路的潜在负载。
    2. 计算
      • 一个发往偏移量为 的数据包,有 的概率使用 ,有 的概率使用
      • 因此, 链路的负载估计)需要汇集所有 可能 使用 的流量。这包括了从偏移量 的所有流量。
      • 由于全局计数器 已经估算了发往各目标组 的应发流量,LIA 可以直接使用 来推算
      • 公式 (Equation 3):
        • 是其周边 个全局计数器 的加权和(权重为 ,其中 是距中心偏移 的距离)。
      • 示例: 在 的网络中, 的值是通过 这 11 个全局计数器的加权和计算出来的( 从 -5 到 +5)。
    3. 决策:
      • 当交换机要发送一个偏移量为 的数据包时,它会检查 (如果 ) 这两个相关的远程计数器。
      • 如果 超过 预设的 RCTh (Remote Congestion Threshold) 阈值,LIA 认为省略 是安全的,于是跳过 以降低延迟。
      • 如果 中有 任何一个 超过了 RCTh,LIA 认为存在病态拥塞风险,于是强制使用

Evaluation

Results

Footnotes

  1. 因此,核心目标是寻找不引发病态性能限制的短 Valiant 路径。