CN116389363A - 使用可部署int针对网络的拥塞控制 - Google Patents

使用可部署int针对网络的拥塞控制 Download PDF

Info

Publication number
CN116389363A
CN116389363A CN202310410579.8A CN202310410579A CN116389363A CN 116389363 A CN116389363 A CN 116389363A CN 202310410579 A CN202310410579 A CN 202310410579A CN 116389363 A CN116389363 A CN 116389363A
Authority
CN
China
Prior art keywords
hop
network
maximum
congestion
int
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310410579.8A
Other languages
English (en)
Inventor
玛绍德·莫什雷福贾瓦迪
王伟涛
李宇亮
高塔姆·库马尔
南迪塔·杜基帕蒂
尼尔·道格拉斯·卡德维尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN116389363A publication Critical patent/CN116389363A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/17Interaction among intermediate nodes, e.g. hop by hop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/35Flow control; Congestion control by embedding flow control information in regular packets, e.g. piggybacking

Abstract

本公开涉及使用可部署INT针对网络的拥塞控制。所公开的技术的一个方面是实现拥塞控制(CC)协议的计算系统,该拥塞控制(CC)协议利用并扩展网络内遥测(INT)以解决例如在端到端算法中通常发现的盲点,确定实际瓶颈跳的CC,实现低排队延迟,和/或实现到网络范围最大最小公平带宽分配的收敛。

Description

使用可部署INT针对网络的拥塞控制
相关申请的交叉引用
本申请要求于2022年4月19日提交的美国临时专利申请No.63/332,421的提交日的权益,其公开内容通过引用并入本文。
技术领域
本公开涉及使用可部署INT针对网络的拥塞控制。
背景技术
控制网络拥塞对于网络性能是重要的,这进而对于满足需求和实现客户满意是重要的。拥塞控制(CC)提供一种机制,其通常控制将例如数据分组的数据输入到网络中。随着应用越来越需要数据中心尺度上的低时延操作,CC的重要性增加。这样的应用的示例包括存储器和存储分解、机器学习(ML)和大规模注入。拥塞控制变得更具挑战性,部分因为链路带宽比交换机处的缓冲器增长得更快,并且高吞吐量分组服务器受益于卸载到网络接口卡(NIC)的简单CC算法以节省用于应用的CPU。有效数据中心CC应当提供跨不同工作负载的高吞吐量、低时延、公平性和相对快速收敛中的一个或多个。
拥塞控制协议面临的挑战是对网络的精细时间尺度跳级拥塞状态获得更粒度的可见性。数据中心CC算法通常依赖于端到端信号(例如,延迟)或量化的网络内反馈(例如,显式拥塞通知(ECN))。这些信号包括跨在流的路径上的所有跳被端到端聚合的信息或信号。这些CC算法经常观察到利用率不足、缓慢上升和/或不公平。
发明内容
所公开的技术的一个方面是一种计算系统,该计算系统实现拥塞控制协议,该拥塞控制协议利用并扩展网络内遥测(INT)以解决例如通常以端到端算法找到的盲点;确定实际瓶颈跳的CC;实现低排队延迟;和/或实现到网络范围最大最小公平带宽分配的收敛。
例如,所公开的技术的一个方面是一种用于网络拥塞控制的方法,包括:在沿网络源节点和网络目的地节点之间的路径的每个跳处检测最大跳延迟;在与沿网络源节点和网络目的地节点之间的路径的跳相关联的主机机器处,从在每个跳处检测到的最大跳延迟中确定最大跳延迟值,该最大跳延迟值与沿网络源节点和网络目的地节点之间的路径的瓶颈跳相关联;以及基于与瓶颈跳相关联的最大跳延迟值,在主机机器处实现拥塞控制。
根据所公开的技术的该方面,该方法可以包括:由位于沿网络源节点和网络目的地节点之间的路径的每个跳处的相应网络内遥测(INT)设备在从每个跳发送的相应消息的分组报头中插入每个跳的最大跳延迟。
根据所公开的技术的前述方面,插入包括由启用INT的交换机或启用INT的网络接口卡(NIC)插入。此外,主机机器可以位于与网络源节点相关联的源跳处。
根据所公开的技术的前述方面,瓶颈跳包括拥塞跳,其对以超过其最大最小公平份额速率传输的数据分组流进行限制。此外,实现拥塞控制可以包括仅降低以超过其最大最小公平份额速率传输的那些数据分组流的传输速率。此外,实现拥塞控制可以包括将在每个跳处检测到的最大跳延迟值和与每个相应跳相关联的速率调整后的目标跳延迟进行比较。此外,该方法可以包括基于比较在主机机器处更新拥塞窗口更新函数。此外,该更新可以包括仅在数据分组流在沿网络源节点和网络目的地节点之间的路径的拥塞跳上得到最大最小公平份额速率的情况下来降低拥塞窗口。
在另一示例中,所公开的发明的一个方面可以包括系统。该系统包括:源节点;目的地节点;沿源节点和目的地节点之间的数据路径的一个或多个跳;以及耦合到源节点的主机机器,该主机机器包括存储指令的一个或多个存储器,该指令使一个或多个处理设备:检测在沿源节点和目的地节点之间的数据路径的每个跳处的最大跳延迟;从在每个跳处检测到的最大跳延迟中确定最大跳延迟值,最大跳延迟值与沿数据路径的瓶颈跳相关联;以及基于与瓶颈跳相关联的最大跳延迟值来实现拥塞控制。
根据本公开的该方面,指令可以使一个或多个处理设备通过位于沿数据路径的每个跳处的相应网络内遥测(INT)设备在从每个跳发送的相应消息的分组报头中插入每个跳的最大跳延迟。此外,INT设备可以包括启用INT的交换机或启用INT的网络接口卡(NIC)中的一个。此外,主机机器位于源节点处。
根据本公开的前述方面,瓶颈跳可以包括拥塞跳,其对以超过其最大最小公平份额速率传输的数据分组流进行限制。此外,实现拥塞控制可以包括仅降低以超过其最大最小公平份额速率传输的那些数据分组流的传输速率。此外,实现拥塞控制可以包括将在每个跳检测到的最大跳延迟值与和每个相应跳相关联的速率调整后的目标跳延迟进行比较。
根据本公开的前述方面,指令可以使一个或多个处理设备基于该比较来更新主机机器处的拥塞窗口。此外,更新可以包括仅在数据分组流在沿网络源节点和网络目的地节点之间的路径的拥塞跳上得到最大最小公平份额速率的情况下来降低拥塞窗口。
附图说明
图1说明性地描绘了根据本公开的一方面的方法或过程。
图2说明性地描绘了根据本公开的一方面的与网络相关联的方法或过程。
图3说明性地描绘了根据本公开的一方面的主机机器。
图4说明性地描绘了根据本公开的一方面的与源到目的地分组数据流中的设备相关联的过程或方法。
图5说明性地描绘了根据本公开的一方面的方法或过程。
图6说明性地描绘了根据本公开的一方面的系统。
图7说明性地描绘了根据本公开的一方面的系统。
图8说明性地描绘了延迟和到达速率之间的关系。
图9说明性地描绘了速率和公平份额之间的关系。
图10示出了流速能够如何增加以到达100G的示例。
具体实施方式
所公开的技术包括用于在基于分组的网络中实现拥塞控制的技术。该技术可以体现在过程或方法以及系统中。该技术利用INT技术使基于分组的系统能够对拥塞控制进行分段,使得拥塞控制机制可以仅对瓶颈跳而不是每个拥塞跳处的拥塞作出反应。实际上,所公开的技术可以解决端到端算法中的盲点。
另外,在稳态条件下,该技术实现了网络范围的最大最小公平份额带宽分配(例如,没有流能够通过降低更快的流的速率来增加其速率的状态)。此外,该技术将带宽公平性要求与和性增/乘性减(AIMD)算法解耦,使得该技术有可能收敛快速且平滑带宽振荡。例如,该技术能够在选择适当的增/降函数的情况下在单跳上实现公平性。此外,该技术允许在混合INT和非INT设备的Brownfield类型环境中的增量部署。
该技术包括通过在INT分组中包括参数或元数据字段来利用INT技术,该INT分组收集并报告沿源节点和目的地节点之间的数据路径的最大程度的或最大的最大跳延迟或时延。该信息被返回到源节点,在源节点它被用于控制拥塞。就这一点而言,可以以使得尚未达到其带宽的公平份额的流不因为检测到的拥塞而被惩罚的方式来控制拥塞。
该技术可以在数据中心内使用数据中心内的交换机(或路由器)来应用。它也可以跨数据中心应用。通常,该技术可以被应用在其中实体在交换机或路由器的两端上具有控制的情况。
图1说明性地描绘了根据本公开的一方面的方法或过程100。方法100包括在网络数据路径上的源节点和目的地节点之间的每一跳处检测最大跳延迟的步骤110。通常,源节点和目的地节点分别形成从源节点发送的数据的起始和终止点。在源节点和目的地节点之间遍历时,数据分组可能遇到多跳。通常,每次数据分组从一个设备(例如,路由器或交换机)移动到另一设备时,遇到移动的每个设备可以被认为是跳点或跳。在一些实例中,可以将跳认为是数据中心内的交换机或路由器。在这种实例中,网络接口卡(NIC)操作以在数据中心内发送分组。在其他实例中,跳可以被认为是云计算环境中的数据中心。更一般地,本文讨论的技术可以被应用于其中实体在两端都具有控制的任何地方(例如,沿路径对交换机的控制),使得其可以使能INT或获得反射INT信息。当数据分组遇到跳时,由于其驻留在队列中用于处理的时间和/或其被实际处理的时间,其可能经历特定量的时间延迟。在步骤110处,与数据分组相关联的网络路径中的每个跳检测或测量与该跳相关联的最大跳延迟。
在步骤120处,主机机器确定沿源节点和目的地节点之间的数据路径的最大跳延迟。就这一点而言,注意,源节点和目的地节点可以被认为是数据路径中的跳。例如,可以使用经由到源节点的返回数据路径提供的最大跳延迟值来确定最大跳延迟。例如,每个跳处的交换机可以插入分组所经历的最大跳延迟或时延。这可以包括本地存储从上游节点接收的最大跳延迟值,将该值与交换机所在的当前跳的最大跳延迟值进行比较,以及插入这两个值中较大的最大跳延迟值以及标识与较大的延迟相关联的跳的信息。以这种方式,返回到源的最大跳延迟值将是数据分组沿数据路径经历的最大的最大跳延迟值。
在步骤130处,主机机器基于在源处接收的最大跳延迟值来实现拥塞控制。最大跳延迟的值用于标识瓶颈跳,使得拥塞控制是基于瓶颈跳的拥塞状态来实现的。如下面进一步解释的,可以在不学习流(例如,在源和目的地之间发送的分组或数据)的每个跳的拥塞状态的情况下实现该过程或方法100。这样,瓶颈跳可以被认为是按照最大最小公平分配参数来限制流的速率的跳。就这一点而言,拥塞跳不被认为是通过拥塞跳的所有流的瓶颈跳,而是仅针对以超过其最大最小公平份额速率发送的流的瓶颈跳,并且因此,CC应当理想地增加仅高于它们的公平份额的那些流的速率。通常,公平份额速率是指带宽的公平份额。在这方面,速率通常是指带宽。例如,如果我们假设网络中存在一个具有100千兆字节(100G)的速度和5个流经该链路的流的链路,则公平份额分配应给予每个流20千兆字节。最大最小公平份额的概念通常是指将最小的流最大化。作为示例,这可以导致从具有较高带宽需求的流到具有较低带宽需求(较差的流)的流的重新分布带宽,直到较低带宽的流经历一些其他带宽为止。图7提供了示出该概念可以如何应用的示例系统700。在图7中,链路是100G,并且在交换机1(702)和2(706)之间存在一个链路,以及在交换机2(706)和3(710)之间存在另一链路。红色和蓝色流是最差的流,但是由于它们在交换机1(702)到2(706)处遇到瓶颈,因此红色流的性能不能通过在交换机2(706)到3(710)链路处给予它们更多的带宽(从绿色处获得)而提高。交换机1到2已经是公平的,我们具有100G和5个流,每个流得到20G。这样,在每跳处给定的公平分配中,获得或至少可以达到最大最小网络范围分配。
图2说明性地描绘了根据本公开的一方面的与网络200相关联的方法或过程。关于图2,跳1可以被认为是源节点210、跳2是中间节点220并且跳N是目的地节点230。N可以包括任何整数,这取决于跳2和跳N之间的附加跳的数量。例如,如果N是5,则在跳2和跳5之间将存在两个附加跳作为目的地节点。跳1 210和跳2 220经由数据链路215耦合。跳2连接到数据链路225并且跳N连接到数据链路235。在一些示例中,跳包括数据中心中的交换机或路由器,或者可以包括数据中心。如所指示的,跳1或源节点210耦合到主机设备或机器240。主机240通常包括具有相关联的存储器和指令的处理设备,该存储器和指令用于实现在充当源节点的跳处的拥塞控制。网络200中所示的其他跳通常也将与主机设备相关联,并且在跳是数据中心的情况下,与它们自己的主机设备相关联。
如图所示,主机240根据网络内遥测(INT)机制来生成分组252,该网络内遥测(INT)机制提供用于经由数据平面收集和报告网络状态的框架。例如,在本文公开的技术的方面中,可以利用INT来包括在网络中的一个或多个或所有跳处收集和报告的max_hop_latency元数据或参数。max_hop_latency元数据或参数可以包括与跳相关联的时延。通常,跳时延是从分组到达设备(例如,交换机或路由器)的输入的时间到分组从设备流出时的时间。它可以被认为是例如INT分组的分组在跳内被交换或处理的时间。例如,交换机需要处理分组以知道它应该去哪里。通常交换机具有许多端口并且基于标签(例如,目的地IP)和路由表,它们知道分组应该去哪里。就这一点而言,交换机中的延迟的大部分是排队的。例如,假设来自交换机上的2个端口的业务希望在短时间段内去往1端口。这些分组因此必须形成队列并逐渐进入目标端口。该延迟能够达到数百微秒。如果该拥塞继续,则队列建立可能超过交换机中的缓冲器容量,从而导致丢弃的分组。主机必须通过注意确认消息没有来自目的地而检测这样的丢弃。拥塞控制的作用是避免这种场景。
当主机240驻留在源节点210处时,源节点向跳2(或节点2)220传输INT分组256。然后,跳2更新max_hop_latency元数据或参数以包括与跳2相关联的最大时延跳值。例如,源节点可以最初将max_hop_latency元数据或参数设置为0,使得跳2然后将用在跳2处确定的最大时延跳值来替换值0。然后,跳2将INT分组258中的max_hop_latency元数据或参数连同queue.latency元数据或参数一起传输到网络中的下一跳,例如,未示出的跳3。queue.latency元数据或参数提供了跳在入口和出口之间的队列中保持数据分组的时间量的度量。如果在下一跳(例如跳3)处,max_hop_latency元数据或参数值大于在跳2处的max_hop_latency元数据或参数值,则将max_hop_latency元数据或参数以及queue.latency元数据或参数替换为跳3的值。然后,该过程继续,使得当INT分组262到达跳N230(目的地节点)处时,它包含具有最大max_hop_latency元数据或参数的跳的值,以及该跳的queue.latency元数据或参数值。
在接收到最大max_hop_latency元数据或参数以及queue.latency元数据或参数时,跳230(或目的地节点)生成INT分组270,并且通过中间跳N-1到跳2将具有最大值的跳的最大max_hop_latency元数据或参数以及quequeue.latency元数据或参数值传输回源节点210(或跳1)。这经由INT分组274和276示出。当INT分组到达源210处时,被收集的INT元数据/参数经由分组(例如278)报告给主机240。
现在转到图3,描绘了根据本公开的一方面的主机300。主机300可以包括图2中的主机240。主机300包括在主机中的应用层处操作的应用310。应用310可以生成被提供给联网软件栈320的一个或多个消息316。网络软件栈320包括拥塞控制功能324和分组化/重传功能327。拥塞控制功能324确定拥塞窗口信号或参数330并将其传输到分组化/重传功能327。分组化/重传功能327向拥塞控制功能324传输信号334。拥塞窗口330包括指定能够在不接收确认的情况下被发送到接收器或目的地节点的分组的最大数量的信号或参数。信号334包括当接收器或目的地确认接收到传输数据分组时通知拥塞控制功能324的信号或参数。信号334还包括关于在路径上的拥塞的信号或信息。本质上,信号334将最大跳时延传送到在源处的CC。主机300还包括从网络软件栈320接收分组并将其从网络接收的分组传输到网络软件栈320的网络接口卡340。
CC功能324(我们称其为Poseidon)响应于在瓶颈跳处的数据流(或流)而实现拥塞控制。如上所述,瓶颈跳可以被认为是按照最大最小公平分配参数来限制流的速率的跳。就这一点而言,拥塞跳不被认为是针对通过拥塞跳的所有流的瓶颈跳,而是仅针对以超过其最大最小公平份额速率的流的瓶颈跳,并且因此,CC应当理想地增加仅高于它们的公平份额的那些流的速率。换句话说,CC功能324仅当流在其路径上的拥塞跳上得到公平份额时通过降低拥塞窗口来对瓶颈跳作出反应。通常,CC功能324使用拥塞窗口来调整每个流的速率,并且如果窗口低于值1,则CC功能使用起搏(例如,当拥塞窗口小于1时)。CC功能324将延迟信号与目标进行比较以增加或降低拥塞窗口。更具体地,CC功能324(1)将目标应用于最大每跳延迟(MPD)以允许流对最拥塞的跳做出反应,并且(2)基于流的吞吐量来调整目标以确保仅在跳上得到最高速率的流减小其拥塞窗口。
所公开的技术实现了高链路利用率、低排队延迟和网络范围的最大最小公平性,具有快速收敛和稳定的每流吞吐量。所公开的技术(例如,Poseidon)可以被配置为使得其仅在流在其路径上的拥塞跳上得到公平份额时通过降低拥塞窗口来对瓶颈跳进行反应。如本文所讨论的,这能够在不知道公平份额的情况下完成。Poseidon比较延迟信号与目标以增加或降低窗口。延迟信号和目标能够被定义如下:
1.它将目标应用于最大每跳延迟以允许流对最拥塞的跳作出反应。
2.它基于流的吞吐量来调整目标以确保仅在跳上得到最高速率的流减小其窗口。
更具体地,每个流尝试维持最大每跳延迟(MPD)接近于最大每跳延迟目标(MPT),即,当MPD≤MPT时增加拥塞窗口以保持链路繁忙,并且当MPD>MPT时降低窗口以限制拥塞。MPD向分组增加了小的和固定的开销并且是找到瓶颈跳的重要设计之一。在最大最小公平状态下,具有最大时延的跳是用于Poseidon的流的瓶颈跳;否则,流尚未沿其路径到达其公平份额。前一种情况必须降低拥塞窗口,后者必须忽略拥塞并且增加窗口。这可以通过调整目标来实现。
CC功能324基于每个流的速率来计算每个流的最大每跳延迟目标(MPT):速率越大,MPT将越小。这意味着具有较高速率的流具有较低的目标,因此它们更早或更积极地降低它们的窗口。这通过使用INT变得可能,因为现在在同一队列中竞争的所有流趋向于观察到相同的拥塞信号(每跳延迟)。图8示出了每跳延迟(802)和到达速率(806)对时间的示例图。根据图8,线810和814分别在每跳延迟图802上标识红色目标流和蓝色目标流,因为随着链路上的到达速率在时间t1处超过线速率,队列逐步建立。排队延迟超过更快的流的目标(图806上红色区域820),并且迫使其在t2处减小其窗口。然而,较慢的流(图806上的蓝色区域824)仍然能够增加其窗口。有趣的是,这意味着给定来自网络的相同拥塞信号,一些流增加而一些流降低它们的速率。
根据所公开的技术,可以在单跳上实现公平性。因为所公开的技术利用速率调整后的目标延迟和基于延迟的增加/降低功能性,所以在一些情况下,较快的流将降低它们的速率,而较慢的流将增加它们的速率。如果排队延迟高于较快的流的目标但低于较慢的流的目标,则这可能发生。根据所公开的技术,公平性在所有可能的情况下得到改进:
1.MPD低,并且所有流增加其速率。
2.MPD高,并且所有流降低其速率。
3.MPD高,一些较快的流降低其速率,而其它较慢的流增加其速率。
假设具有两个流A和B的队列,其中B的速率b大于A的速率a(b>a)。因此,A的目标大于B的目标(T(a)>T(b))。我们将更新函数U(T(rate);delay)定义为具有特定流速和网络延迟的乘法因子(其中new_cwnd=cwnd_U())。为了收敛到线速率,如果延迟小于目标,则U()被设置为≥1,并且如果延迟大于目标,则U()被设置为≤1,假设平均,如果到达速率<线速率,则延迟低,并且如果到达速率>线速率,则延迟增加。
Figure BDA0004183047920000111
在所有三种情况下,如果我们想要保证公平性改进或至少保持不变,则更新的速率应当保持在图9所示的红色三角形中。三角形的一侧由速率的当前比率定义,并且另一侧跨公平份额线上对称。如果我们假设a<b并且延迟是D,则该要求能够被写为:
Figure BDA0004183047920000112
如果函数T()和U()满足等式(1)和等式(2),则所公开的技术实现了高的链路利用率和公平性。图9说明性地描绘了等式(1),其用蓝色表示允许全链路利用的更新,以及等式(2),其用红色表示朝向公平性收敛的更新。期望重叠区域以紫色标记。根据所公开的技术,速率(在紫色区域910中)被更新,使得其朝向线速率(蓝色区域930)增加公平性(在红色区域920中)。和性增将与公平份额线平行,并且具有相同比率的乘性增/减停留在节点(a;b)所在的红色三角形的相同边缘上(图9(a))。对于图9(b)中的情况1,红色区域确保公平性被改进,而蓝色区域确保所有流增加它们的速率;对于图9(c)中的情况2,蓝色区域确保所有流降低它们的速率;对于图9(d)中的情况3,蓝色区域确保较慢的流增加其速率,而较快的流降低其速率。
根据所公开的技术,可以使用满足等式(1)和(2)的任何函数。根据所公开的技术的一个方面,以下函数被设计为利用目标和最大跳延迟之间的距离以不仅决定是增加还是降低,而且适应性地调整更新比率以达到稳定性和快速收敛之间的更好权衡。
Figure BDA0004183047920000121
Figure BDA0004183047920000122
rate是cwnd*MTU=RTT。k定义了任何流的最小目标;当速率等于min_rate时,p调谐最大目标,并且决定具有接近速率(close rate)的两个流的目标能够相距多远。在实践中,目标不能低于限制而不降低吞吐量,因为同步的到达能够导致过早的窗口降低。目标也不能非常大,因为a)当目标延迟超过队列容量时,它可能导致交换机中的分组丢弃;b)只要我们实现高利用率,我们优选反压到主机,使得它们利用诸如负载平衡和准入控制的其他机制来隔离。我们使用min_range和max_range以不浪费目标范围而用于区分仅很少发生的速率。m定义了更新速率时的“步骤(step)”。m越大,更新速率越慢。
当|T(rate)-delay|→0时,则U(rate;delay)→1。这意味着当延迟远离目标时,流更剧烈地增加/降低以用于更快的收敛,并且当延迟接近目标延迟时,步骤将更温和以实现稳定的流率。图10示出了流能够如何使用自适应解决方案快速地增加其速率以到达100G。
满足要求的T(rate)的另一选项是
Figure BDA0004183047920000131
这是Swift流尺度的扩展。在所公开的技术中,设计等式(3)以提供所有速率上的流的目标之间的有意义的差异。也就是说,具有速率a和c·a的流的目标具有固定差T(a)-T(c·a)=ln(c)/p,从而提供跨所有速率范围的均匀分辨率(图1006)。
Swift使用
Figure BDA0004183047920000132
用于解决同步分组到达的流尺度,因为它为许多流发送分组的小窗口提供更高的分辨率。类似地,用于更新函数的选项是使用目标与延迟的比率,类似于Swift。
如上所述,如果拥塞窗口下降到1以下,则由CC 324使用起搏。在这点上,拥塞窗口(cwnd)是在导线上可能未完成(已发送但未被远程确认)的分组的数量。现在假设cwnd是1。这意味着发送一个分组,当该分组被确认为接收到时,发送下一个分组。当cwnd<1,例如0.5时,源不能每次都发送半个分组。所做的是基于发送最后分组所花费的时间。为了模拟每100微秒发送半个分组,我们每200微秒发送一个分组。这是通过将分组保持100微秒,然后发送它,它花费另外的100微秒来获得确认,然后我们将下一个分组保持100微秒等来实现的。可以使用如在使用Swift算法完成的起搏的概念。
图4说明性地描绘了根据本公开的一方面的与源到目的地数据流中的设备相关联的过程或方法400。如图所示,源410包括框414,在框414处根据INT机制来封装分组。例如,框414指示源410处的分组包括将packet.max_hop_latency元数据或参数设置为0值的packet.max_hop_latency函数。在源410处生成的分组被传输到包括第一交换机或交换机1420的第一跳。交换机1 420可以驻留在图2的跳2 220中。交换机1 420(以及图4中描绘的其他交换机)可以包括数据中心中的架顶式交换机。交换机1 420还实现packet.max_hop_latency函数424,其提供在与交换机1 420相关联的跳处检测到的max(packet.max_hop_latency,queue.latency)值。该值然后被传输到另一跳,例如图2的跳3,其中交换机430使用packet.max_hop_latency函数434来基于在跳3处检测到的值是否大于在先前跳处检测到的值来更新max(packet.max_hop_latency,queue.latency)值。假设数据流路径中的下一跳是目的地跳440,例如,图2的目的地节点跳N,则目的地节点处的主机维持它接受用于流中的下一分组的INT元数据参数或值,如在框442处所描绘的。另外,框430提供针对从源410传输到目的地节点处的分组化/传输功能的分组检测到的max(packet.max_hop_latency,queue.latency)值,使得能够经由交换机1和2将最大值传输回源410。max(packet.max_hop_latency,quequeue.latency)然后由CC框由主机在源处使用,如前所述。
如图4所示,存在两个参数或元数据字段:packet.max_hop_latency和packet.reflected_info。这两个字段可以如下使用。假设分组从源到目的地,并且现在max_hop时延为100微秒。现在目的地应当向发送方确认(“ack”)这种分组的接收。目的地通常等待很少以查看其是否想要向源发送任何内容,并且因此在数据上搭载确认。否则,发送纯ack。关于本公开,当目的地创建要发送到源的分组时,它将reflected_info设置为100。该分组可以具有其自己的数据(例如,目的地实际上是源),因此它设置max_hop_latency=0。在该分组回到源的行程期间,交换机不应接触reflected_info=100。因为源拥塞控制应当仅得到关于前向路径上的拥塞的信号,而不是反向路径(其中它没有控制)。这样,对更新INT元数据而不是reflected_info(在反向路径上的开关不接触)的引用体现了该概念。
图5说明性地描绘了根据本公开的一方面的方法或过程500。过程500开始于在框510处将延迟设置为最大跳延迟(input.max_hop_delay)。此外,如框510所示,设置诸如往返时间(RTT)、确认计数(acked)、拥塞窗口(cwnd)和速率的其他参数。在决策菱形框520处,在源主机处确定分组是否被确认为成功接收。如果在决策菱形框520处未成功确认分组,那么处理进行到决策菱形框530,其中确定拥塞窗口是否在最后RTT中降低。如果拥塞窗口未在最后RTT中降低,则根据框534更新拥塞窗口参数。另一方面,如果拥塞窗口从拥塞窗口参数降低,则处理结束。
如果在决策菱形框520处确定分组被确认为成功接收,则处理进行到框550。在框550处,根据速率函数(function(rate))来更新目标速率,并且根据基于延迟和速率的更新函数(function(delay,rate))来更新update_ratio。上述等式(3)指定了如何基于速率来找出目标并且等式(4)示出了如何计算更新比率。新的cwnd将是较旧的cwnd乘以更新比率。从框550,处理进行到决策菱形框536,其中确定update_ratio是否小于1。如果update_ratio不小于1,则在框560处更新缩放后的更新比率和拥塞窗口,然后处理结束。另一方面,如果比率小于1,则处理进行到决策菱形框530,其在上面讨论。
图6是根据本公开的各方面的示例云系统600的框图。系统600包括一个或多个计算设备610A-K,其包括设备610A、610K和可选的一个或多个其他设备(未示出)。在一些实施方式中,系统600包括作为主机机器300操作的单个计算设备610A。系统600还包括网络640和一个或多个云计算系统650A-M,其能够包括云计算系统650A和650M。在一些实施方式中,系统600包括单个云计算系统650A。计算设备610A-K可以包括位于利用云计算服务的客户位置处的计算设备。例如,如果计算设备610A-K位于商业企业处,则计算设备610A-K可以使用云系统650A-M作为向计算设备610A-K提供软件或其他应用的一个或多个服务的一部分。
如图6所示,计算机设备610A-K可以分别包括一个或多个处理器612A-K、存储数据(D)634A-K和指令(I)632A-K的存储器616A-K、显示器620A-K、通信接口624A-K和输入系统628A-K,它们被示为通过网络630A-K互连。每个计算设备610A-K能够耦合或连接到相应的存储设备636A-K,该存储设备636A-K可以包括存储数据的本地或远程存储,例如,在存储区域网络(SAN)上。
每个计算设备610A-K可以包括独立计算机(例如,台式计算机或膝上型计算机)或服务器。网络640可以包括计算设备内部的数据总线等,和/或可以包括局域网、虚拟专用网、广域网或以下关于网络640描述的其他类型的网络中的一个或多个。存储器616A-K存储可由一个或多个处理器612A-K访问的信息,包括可由(多个)处理器612A-K执行或以其他方式使用的指令632A-K和数据634A-K。存储器616A-K可以是能够存储可由相应处理器访问的信息的任何类型,包括计算设备可读介质,或存储可借助于电子设备读取的数据的其他介质,诸如硬盘驱动器、存储卡、ROM、RAM、DVD或其他光盘,以及其他可写和只读存储器。系统和方法可以包括上述的不同组合,从而将指令和数据的不同部分存储在不同类型的介质上。
指令632A-K可以是要由处理器直接(诸如机器代码)或间接(诸如脚本)执行的任何指令集。由处理器执行的一个或多个指令能够表示由处理器执行的操作。例如,指令可以被存储为计算设备可读介质上的计算设备代码。在这方面,术语“指令”、“例程”和“程序”在本文中可互换地使用,这些指令由处理器执行以执行对应的操作。指令可以以对象代码格式存储以用于由处理器直接处理,或者以任何其他计算设备语言存储,包括按需解释或预先编译的独立源代码模块的脚本或集合。
数据634A-K可由(多个)处理器612A-K根据指令632A-K检索、存储或修改。作为示例,与存储器616A-K相关联的数据634A-K可以包括在支持一个或多个客户端设备、应用等的服务中使用的数据。这样的数据可以包括支持托管基于web的应用、文件共享服务、通信服务、游戏、共享视频或音频文件或任何其他基于网络的服务的数据。
每个处理器612A-K可以是通用和/或专用处理器的任意组合。处理器612A-K被配置为实现用于识别存储器错误并将存储器错误报告给主机内核的机器检查架构或其他机制。通用处理器的示例包括CPU。可替选地,一个或多个处理器可以是诸如FPGA或ASIC的专用设备,包括张量处理单元(TPU)。尽管图6在功能上将每个计算设备610A-K的处理器、存储器和其他元件示出为在单个框内,但是本领域普通技术人员将理解,处理器、计算设备或存储器可以实际上包括多个处理器、计算设备或存储器,这些处理器、计算设备或存储器可以位于或可以不位于或存储或不存储在同一物理外壳内。在一个示例中,计算设备610A-K中的一个或多个可以包括一个或多个服务器计算设备,该一个或多个服务器计算设备具有多个计算设备,例如,负载平衡的服务器场,其与网络的不同节点交换信息以用于接收、处理和将数据作为客户的业务操作的一部分传输到其他计算设备和从其他计算设备传输该数据。
计算设备610A-K可以包括显示器620A-K,例如具有屏幕、触摸屏、投影仪、电视或可操作以显示信息的其他设备的监视器。显示器620A-K能够提供用户界面,其允许控制计算设备610A-K并访问例如云系统中的主机上的一个或多个云系统650A-M中支持的用户空间应用和/或数据相关联的VM。这样的控制可以包括例如使用计算设备来使数据通过输入系统628A-K被上传到云系统650A-M以进行处理,使数据在存储636A-K上累积,或者更一般地,管理客户的计算系统的不同方面。在一些示例中,计算设备610A-K还可以访问API,该API允许它们指定在云中的虚拟机(VM)上运行的工作负载或作业,作为IaaS(基础设施即系统)或SaaS(服务即系统)的一部分。虽然输入系统628A-K可以用于上传数据,例如USB端口,但是计算设备610A-K还可以包括能够用于接收命令和/或数据的鼠标、键盘、触摸屏或麦克风。
网络640可以包括各种配置和协议,其包括短程通信协议,诸如蓝牙TM、蓝牙TMLE、因特网、万维网、内联网、虚拟专用网络、广域网、局域网、使用一个或多个公司专有的通信协议的专用网络、以太网、Wi-Fi、HTTP等,以及前述的各种组合。这种通信可以由能够向其他计算设备(诸如调制解调器和无线接口)传输数据的任何设备来促进。计算设备610A-K能够通过通信接口624A-K与网络640对接,通信接口624A-K可以包括支持给定通信协议所需的硬件、驱动器和软件。
网络640还可以实现网络切片。网络切片支持为不同服务定制网络的容量和能力,诸如连接的家庭、视频/音频流(缓冲或实时)、地理定位和路线规划、传感器监视、计算机视觉、车辆通信等。边缘数据中心处理和本地数据中心处理增强中央数据中心处理以分配5G、6G和未来网络资源,以启用智能电话、AR/VR/XR单元、家庭娱乐系统、工业传感器、汽车和其他车辆、以及其他无线连接设备。地面网络设备不仅能够支持连接的家庭、视频/音频流(缓冲或实时)、地理定位和路线规划、传感器监控、计算机视觉、车辆通信等,非地面网络设备还能够在诸如海洋、农村、以及经历基站覆盖不足的其他位置的附加环境中实现5G、6G和未来无线通信。作为对计算机视觉、物体计数、入侵检测、运动检测、交通监视、健康监视、设备或目标定位、行人躲避、AR/VR/XR体验、增强自主/地面物体导航、超高清环境成像等的支持,5G、6G和未来无线网络能够实现精细距离感测和亚米精度定位。利用巨大的带宽和无线资源(时间、频率、空间)共享,这些无线网络实现了同时通信和传感功能以支持智能显示器、智能手机、AR/VR/XR单元、智能扬声器、工业传感器、汽车和其他车辆以及其他无线连接设备中的雷达应用。
云计算系统650A-M可以包括可以经由高速通信或计算网络链接的一个或多个数据中心。数据中心可以包括建筑物内的专用空间,该专用空间容纳计算系统及其相关联的组件,例如,存储系统和通信系统。通常,数据中心将包括通信设备、服务器/主机和磁盘的机架。服务器/主机和磁盘包括用于提供诸如VM的虚拟计算资源的物理计算资源。在给定云计算系统包括多于一个数据中心的程度上,那些数据中心可以在彼此相对紧密接近的不同地理位置处,被选择以及时且经济上高效的方式递送服务,以及提供冗余并且维持高可用性。类似地,通常在不同的地理位置提供不同的云计算系统。
如图6所示,计算系统650A-M可以包括主机机器652A-M、存储654A-M和基础设施660A-M。主机机器652A-M可以包括主机机器300。基础设施660A-M可以包括一个或多个交换机(例如,机架交换机(TRO)的顶部)、物理链路(例如,光纤)和用于将数据中心内的主机机器与存储654A-M互连的其他设备。存储654A-M可以包括磁盘或其他存储设备,该磁盘或其他存储设备是可分区的以向在数据中心内的处理设备上运行的虚拟机提供物理或虚拟存储。存储654A-M可以被提供为托管由存储654A-M支持的虚拟机的数据中心内或不与它支持的虚拟机共享物理位置的不同数据中心内的SAN。给定数据中心内的一个或多个主机或其他计算机系统可以被配置为在创建和管理与给定数据中心中的一个或多个主机机器相关联的虚拟机时充当监督代理或管理程序。通常,被配置为用作管理程序的主机或计算机系统将包含例如管理由于针对源自例如计算设备610A-K的服务的请求而向客户或用户提供IaaS、PaaS(平台即服务)或SaaS而引起的操作所必需的指令。
尽管本文中已参考特定实施例描述了本发明,但应理解的是,这些实施例仅说明了本发明的原理和应用。例如,max_hop_latency是本公开适用的一个信号。另一信号可以是最小可用带宽。在这一刻,我们为能够在运行时调整的最小可用带宽设置了目标,并确保我们维持从该目标周围的网络测量的最小可用宽带。因此,应当理解,在不脱离所附权利要求所限定的本发明的精神和范围的情况下,可以对说明性实施例进行许多修改,并且可以设计其他布置。

Claims (18)

1.一种用于网络拥塞控制的方法,包括:
检测在沿网络源节点和网络目的地节点之间的路径的每个跳处的最大跳延迟;
在与沿所述网络源节点和所述网络目的地节点之间的所述路径的一个跳相关联的主机机器处,从在每个跳处检测到的所述最大跳延迟中确定最大跳延迟值,所述最大跳延迟值与沿所述网络源节点和所述网络目的地节点之间的所述路径的瓶颈跳相关联;以及
基于与所述瓶颈跳相关联的所述最大跳延迟值,在所述主机机器处实现拥塞控制。
2.根据权利要求1所述的方法,还包括:由位于沿所述网络源节点和所述网络目的地节点之间的所述路径的每个跳处的相应网络内遥测INT设备在从该跳发送的相应消息的分组报头中插入每个跳的最大跳延迟。
3.根据权利要求2所述的方法,其中,所述INT设备包括启用INT的交换机或启用INT的网络接口卡(NIC)中的一个。
4.根据权利要求1所述的方法,其中,所述主机机器位于与所述网络源节点相关联的源跳处。
5.根据权利要求1至4中任一项所述的方法,其中,所述瓶颈跳包括拥塞跳,所述拥塞跳对以超过其最大最小公平份额速率传输的数据分组流进行限制。
6.根据权利要求5所述的方法,其中,实现拥塞控制包括仅降低以超过其最大最小公平份额速率传输的那些数据分组流的传输速率。
7.根据权利要求5所述的方法,其中,实现拥塞控制包括将在每个跳处检测到的所述最大跳延迟值和与该跳相关联的速率调整后的目标跳延迟进行比较。
8.根据权利要求7所述的方法,还包括基于所述比较在所述主机机器处更新拥塞窗口更新函数。
9.根据权利要求8所述的方法,其中,更新所述拥塞窗口更新函数包括仅在所述数据分组流在沿所述网络源节点与所述网络目的地节点之间的所述路径的拥塞跳上得到所述最大最小公平份额速率的情况下来降低所述拥塞窗口。
10.一种系统,包括:
源节点;
目的地节点;
沿所述源节点和所述目的地节点之间的数据路径的一个或多个跳;以及
耦合到所述源节点的主机机器,所述主机机器包括存储指令的一个或多个存储器,所述指令使所述主机机器执行操作,所述操作包括:
检测在沿所述源节点和所述目的地节点之间的所述数据路径的每个跳处的最大跳延迟;
从在每个跳处检测到的所述最大跳延迟中确定最大跳延迟值,所述最大跳延迟值与沿所述数据路径的瓶颈跳相关联;以及
基于与所述瓶颈跳相关联的所述最大跳延迟值来实现拥塞控制。
11.根据权利要求10所述的系统,其中,所述操作还包括:通过位于沿所述数据路径的每个跳处的相应网络内遥测INT设备在从该跳发送的相应消息的分组报头中插入每个跳的最大跳延迟。
12.根据权利要求10所述的系统,其中,所述INT设备包括启用INT的交换机或启用INT的网络接口卡(NIC)中的一个。
13.根据权利要求10所述的系统,其中,所述主机机器位于所述源节点处。
14.根据权利要求10至13中任一项所述的系统,其中,所述瓶颈跳包括拥塞跳,所述拥塞跳对以超过其最大最小公平份额速率传输的数据分组流进行限制。
15.根据权利要求14所述的系统,其中,实现拥塞控制包括仅降低以超过其最大最小公平份额速率传输的那些数据分组流的传输速率。
16.根据权利要求15所述的系统,其中,实现拥塞控制还包括将在每个跳处检测到的所述最大跳延迟值和与该跳相关联的速率调整后的目标跳延迟进行比较。
17.根据权利要求16所述的系统,其中,所述操作还包括:基于所述比较在所述主机机器处更新拥塞窗口。
18.根据权利要求17所述的系统,其中,更新所述拥塞窗口包括:仅在所述数据分组流在沿所述网络源节点和所述网络目的地节点之间的所述路径的拥塞跳上得到所述最大最小公平份额速率的情况下来降低所述拥塞窗口。
CN202310410579.8A 2022-04-19 2023-04-17 使用可部署int针对网络的拥塞控制 Pending CN116389363A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202263332421P 2022-04-19 2022-04-19
US63/332,421 2022-04-19

Publications (1)

Publication Number Publication Date
CN116389363A true CN116389363A (zh) 2023-07-04

Family

ID=86053633

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310410579.8A Pending CN116389363A (zh) 2022-04-19 2023-04-17 使用可部署int针对网络的拥塞控制

Country Status (3)

Country Link
US (1) US20230336483A1 (zh)
EP (1) EP4266645A1 (zh)
CN (1) CN116389363A (zh)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210060187A (ko) * 2019-11-18 2021-05-26 포항공과대학교 산학협력단 네트워크 제어 방법 및 장치
US11258684B2 (en) * 2020-01-09 2022-02-22 Arista Networks, Inc. Interval flow-based inband telemetry

Also Published As

Publication number Publication date
US20230336483A1 (en) 2023-10-19
EP4266645A1 (en) 2023-10-25

Similar Documents

Publication Publication Date Title
US10320684B2 (en) Method and system for transferring data to improve responsiveness when sending large data sets
CN114145001B (zh) 速率优化的拥塞管理
US10116574B2 (en) System and method for improving TCP performance in virtualized environments
US8873385B2 (en) Incast congestion control in a network
EP2959645B1 (en) Dynamic optimization of tcp connections
KR101143172B1 (ko) 웹 서비스를 위한 신뢰성 있는 메시징 프로토콜을 이용한메시지의 효율적인 전송
US8989005B2 (en) Monitoring endpoint buffer occupancy to determine congestion in an Ethernet network
JP2020502948A (ja) パケット伝送システムおよび方法
US20050213507A1 (en) Dynamically provisioning computer system resources
US8521901B2 (en) TCP burst avoidance
US8942094B2 (en) Credit-based network congestion management
US20180176136A1 (en) TCP Bufferbloat Resolution
CN113141314B (zh) 一种拥塞控制方法及设备
CN109104742A (zh) 拥塞窗口调整方法及发送设备
KR20180013597A (ko) 이종 망에서 다중 경로 전송제어프로토콜(tcp)의 혼잡 윈도우 제어 방법
US10063489B2 (en) Buffer bloat control
CN116389363A (zh) 使用可部署int针对网络的拥塞控制
JP3853784B2 (ja) データ通信管理方法
Sreekumari et al. A simple and efficient approach for reducing TCP timeouts due to lack of duplicate acknowledgments in data center networks
Nandhini et al. Exploration and Evaluation of Congestion Control Algorithms for Data Center Networks
RU2543565C1 (ru) Способ формирования канала передачи данных
Das et al. A Dynamic Algorithm for Optimization of Network Traffic through Smart Network Switch Data Flow Management
US20230246966A1 (en) Flexible load balancing on multipath networks
Tahiliani et al. Tcp congestion control in data center networks
US20230379397A1 (en) Distributed proxy for encrypted transport protocol with efficient multi-priority multiplexed transport for improving user&#39;s traffic qos

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination