CN105052095A - 交换机内部流控制 - Google Patents

交换机内部流控制 Download PDF

Info

Publication number
CN105052095A
CN105052095A CN201380074554.XA CN201380074554A CN105052095A CN 105052095 A CN105052095 A CN 105052095A CN 201380074554 A CN201380074554 A CN 201380074554A CN 105052095 A CN105052095 A CN 105052095A
Authority
CN
China
Prior art keywords
packet
counter
window
bandwidth
data
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.)
Granted
Application number
CN201380074554.XA
Other languages
English (en)
Other versions
CN105052095B (zh
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.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
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 Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CN105052095A publication Critical patent/CN105052095A/zh
Application granted granted Critical
Publication of CN105052095B publication Critical patent/CN105052095B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/826Involving periods of time
    • 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/22Traffic shaping
    • H04L47/225Determination of shaping rate, e.g. using a moving window
    • 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/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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

在一个实施例中,网络设备被配置成实施交换机内部传输协议。所述交换机内部传输协议被配置成根据预定带宽以及多个入口端口与一出口端口之间的往返时间来确定窗口大小。网络设备被配置成在无需首先接收来自出口端口的任何确认的情况下从入口端口发送至少一个数据分组到出口端口。网络设备继续发送数据分组并且相应地使计数器增量直到计数器达到所述窗口大小。网络设备基于计数器超过窗口大小停止传输后续数据分组并且/或者使后续数据分组排队。

Description

交换机内部流控制
技术领域
本公开总体上涉及互联网协议(IP)通信领域,更具体地讲,涉及用于数据交换机内的数据传输的传输协议。
背景技术
IP通信涉及以一个或多个数据分组的形式传输消息。数据分组包括源地址和至少一个目的地址。交换机是引导通信量去往目的地址的网络设备。交换机包括多个输入和多个输出。纵横式交换机包括从多个输入的每个输入到多个输出的每个输出的可选连接。纵横式交换机在任何特定时间仅允许一个数据分组传输到任何一个输出。
仲裁方案调节数据流。在一个示例中,输入必须请求发送数据并且接收可以发送数据的确认。交换机内的这些通信需要时间,这增加了数据分组延迟。此外,在输入、输出或纵横式交换机处可能发生拥堵。
附图说明
本文中参照附图描述了本实施例的示例性实施例。
图1示出了用于交换机中的内部通信的示例网络。
图2示出了在图1的网络中的输入与输出之间的通信。
图3示出了图2的输入的示例入口序列。
图4A示出了数据分组的示例。
图4B示出了确认消息的示例。
图5A示出了示例探测消息。
图5B示出了示例重发请求。
图5C示出了示例丢弃通知。
图6示出了用于入口的操作的示例流程图。
图7示出了入口的示例状态图。
图8示出了用于窗口分派的示例流程图。
图9示出了用于交换机内部传输控制的示例网络设备。
图10示出了用于交换机内部传输控制的示例流程图。
具体实施方式
概览
在一个示例中,一种方法包括:在无需首先接收来自出口端口的任何确认的情况下从入口端口发送至少一个数据分组到所述出口端口;根据所述至少一个数据分组使计数器增量;经由控制器将所述计数器与用于所述出口端口的默认窗口大小进行比较;并且响应于所述计数器超过用于所述出口端口的默认窗口大小的停止传输后续数据分组。
在另一个示例中,一种非瞬态计算机可读介质包括指令以在无需首先接收来自出口端口的任何确认的情况下从入口端口发送至少一个数据分组到所述出口端口。所述指令被配置成根据所述至少一个数据分组使计数器增量并且将所述计数器与用于所述出口端口的带宽延迟乘积进行比较。后续数据是当所述计数器小于所述带宽延迟乘积时发送并且当所述计数器超过所述带宽延迟乘积时排队的数据分组。
在另一个示例中,一种方法包括:存储用于出口装置的出口计数水平,其中出口计数水平涉及挂起数据传输;基于出口计数水平选择出口队列;在控制器处生成与出口队列对应的确认消息;访问出口队列中的数据分组大小;并且使后续的确认消息的传输延迟与数据分组大小成比例的一段时间。
示例性实施例
以下实施例涉及用于数据交换机中的数据传输的传输协议、交换结构或另一种网络拓扑结构。这些示例包括经由交换机(例如纵横式交换机)耦接的多个级中的多个节点。
术语交换结构(fabric)或交换机(switch)可以用于指包括内部节点的交换结构和排布(arrangement)或者网络设备的排布的网络设备。在任一种情况下,排布包括从一端到另一端经过多个节点的多个路径。以下实施例中所述的特征可以应用于任一种情况。术语交换结构涉及以矩阵排布使多个输入连接到多个输出的纵横式交换机的网格状图案。纵横式交换机可以称作交叉点交换机或矩阵交换机。纵横式交换机可以连接M个输入和N个输出,其包括M×N个交叉点,使得每个输入可选地连接到每个输出。交叉点使输入线可选地连接到输出线。在一个示例中,纵横式交换机可以具有100个输入、100个输出以及10000个交叉点。纵横式交换机可以包括晶体管网络,或者其他实施方式是可能的。当启用交叉点的晶体管时,输入通过交叉点连接到输出上。
仲裁器或调度器防止在同一时间多个输入连接到单个输出上,否则被配置成控制交叉点。仲裁器或调度器可以包括被配置成输出选择性地激活交叉点的控制信号的逻辑或硬件。控制信号可以启动或激活每个交叉点处的晶体管。物理连接(例如,电线或迹线)将仲裁器连接到每个交叉点。仲裁器决定数据分组从输入队列离队的顺序。
通过数据交换机的延迟应当尽可能小。随着端口密度增加以及数据流竞争经过交换结构的路径,交换结构带宽成为稀缺资源。以下实施例通过高效地使用交换结构资源来允许低延迟和高端口密度。
当前的仲裁方案要求入口设备(例如,线卡专用集成电路(ASIC))发送请求并且在数据帧可以发送到目的地之前接收授权,这可以称为请求授权回路延迟。请求授权回路延迟的往返时间使数据分组传输的开始被延迟。以下实施例允许立即开始数据分组传输。出口设备(例如,线卡ASIC)仅在出口设备接收来自入口的数据分组之后仲裁并管理入口设备的交换结构允许。控制反馈允许系统在不需要大量多余的交换结构带宽的情况下收敛并且仍然允许低延迟。每个入口设备与一个或多个入口端口相关联,并且每个出口设备与一个或多个出口端口相关联。在一个实施例中,每个入口设备包括一个入口端口,并且每个出口设备包括一个出口端口。术语入口端口可以指的是入口设备以及(一个或多个)相关联的端口的结合,并且术语出口端口可以用于指的是出口设备和(一个或多个)相关联的端口的结合。
入口装置包括较大的缓冲器(例如,10兆字节、500兆字节、1吉字节)。在入口装置处通过使数据分组排队而引入的延迟最初不会导致分组的丢失。入口装置可以吸收数据的大量流入。然而,如果持续拥堵,那么数据分组累积在入口装置并且最终可能发生丢失。在内部网络中,在入口装置与出口装置之间,缓冲器较小(例如,10千字节、100千字节、1兆字节)。丢失发生在内部,但是可以通过由入口装置重发来恢复。对于数据交换机外的网络,分组似乎仅仅只是花费了更长的时间通过数据交换机。以下实施例通过数据交换机发送分组,具有发生丢失但是在发生丢失时可以提供快速恢复的可能性。然而,当丢失的可能性高时,不发送数据分组,入口装置等待更好的时间发送数据分组。
图1图示了用于交换机中的内部通信的示例性网络。数据交换机包括可以称为入口装置的输入10a、10b,以及可以称为出口装置的输出11a、11b。在输入10和输出11之间是纵横式交换结构,其包括具有第一级节点100a、100b的第一级,具有第二级节点102a-n、103a-n的第二级以及具有第三级节点104a、104b的第三级。数据分组在输入10被接收并且通过交换机传送到输出11。输入10、输出11和纵横式交换结构可以布置成形成克洛斯网络,如图1中展开所示,或者可以使用另一种排布。可以提供其他数量的节点、级、输入和/或输出。
入口装置使源数据分组进入纵横式交换机。出口装置是这些数据分组的目的地并且可以称为目的地。入口装置和出口装置在物理上可在相同的ASIC中实现。图1的箭头所示的链路是双向的。数据分组可以包括数据帧和控制帧。数据帧在图1所示的网络中可以从左到右移动,并且控制帧可以在相反方向上从右到左移动。
输入10中的一个或多个输入可以包括多个虚拟输出队列。虚拟输出队列可以被分派到出口装置,并且输入10可以包括被分派到不同的出口装置的多个虚拟输出队列。因为入口装置包括用于每个出口装置的虚拟输出队列,每个入口装置可以与不同的出口装置单独通信,并且属于每个流的数据帧可以独立地负载平衡。由于负载平衡涉及无序数据分组传输,所以出口装置将源自每个入口的传送到出口装置的数据帧进行重排序。
最初的请求授权回路延迟被消除,因为至少一个源(例如,入口装置)被配置成在无需等待从输出或目的地接收确认消息(ACK)的情况下发送一定数量的字节。源还在无需首先生成发送数据的请求的情况下发送一定数量的字节。在发送这个初始突发(initialburst)之后,源可以被配置成在继续进行进一步数据传输之前等待一个或多个ACK。例如,每个源可以接收窗口,该窗口定义在分组到达时可以立即发送多少字节(或数据分组)。当窗口变满时,源可以等待接收ACK。ACK的接收触发窗口滑动。响应于窗口中的更多空间,入口装置被配置成发送更多的分组。例如,入口装置可以根据在未收到ACK的情况下发送的数据分组的大小来使计数器增量。入口装置在发送更多数据到出口端口之前将计数器与用于出口端口的默认窗口大小进行比较。入口装置基于计数器超过用于出口端口的默认窗口大小停止传输后续数据分组。
目的地以预定速率发送确认到不同的源。可以选择该速率以便刚好足以维持目的地的输出缓冲器占有量。在一个示例中,选择该速率以保持输出缓冲器大约半满。因此,甚至在突发通信量期间也避免了交换结构中的拥堵。目的地在缓冲器为空时可以比端口速度更快地发送确认,并且在缓冲器半满时逐渐减慢到端口速度。
在最快设置下,目的地发送ACK,这导致仍然慢于交换结构容量的相应的部分的出口装置处的总到达速率。这允许正确量的数据进入交换结构,并且数据进入的速率平滑,从而将交换结构中的队列延迟减少到最小值。如果到达目的地的总通信量小于端口速率,那么输出缓冲器保持为空或者缓存很少的数据,所以达到低延迟。
图2图示了图1的网络中的输入和输出之间的通信。例如,每个输入10可以包括入口仲裁器201,每个输出11可以包括出口仲裁器202。在出口仲裁器202处生成并且发送到输入10的消息被称为上行消息211。在入口仲裁器201处生成并且发送到输出11的消息被称为下行消息210。以下描述了下行消息210和上行消息211的几个示例。入口仲裁器201和出口仲裁器202可以使用单个控制器或单独的控制器来实施。
构成数据流的数据分组是下行消息210的一个示例。入口仲裁器201被配置成在无需首先收到来自输出的允许的情况下发送数据分组到输出。然而,仅在不太可能造成拥堵的特定时间发送这些投机数据分组传输。例如,在当前的窗口大小小于最大窗口大小时,可以发生投机数据传输。最大窗口大小可以由控制器根据带宽和从入口装置到出口装置的往返时间来计算。带宽可以是装置的已知性能或者由用户输入选择。小于最大的窗口大小可以被分配到入口装置。
控制器可以接收一个或多个入口端口中的每个入口端口的虚拟输出队列值。虚拟输出队列值描述前往出口端口的入口端口之一的数据量。控制器基于最大窗口大小以及多个入口端口之一的虚拟输出队列值计算多个入口端口之一的被分派的窗口值。基于被分派的窗口值,控制器生成包括用于多个入口端口之一的被分派的窗口值的确认消息。
图3图示了入口序列。入口仲裁器201存储发送队列250和确认队列251。发送队列250和确认队列251可以存储在单独的存储器或单个存储器中。确认队列251可以包括整个分组或分组列表。
确认队列251包括从PKT0至PKTN-1的发送分组。要从发送队列250发送的下一个分组是PKTN,并且其他分组(例如PKTN+1等等)可以排成一行。当前窗口可以定义为分组0至N-1的大小的总和。最大窗口大小可以根据目的地的带宽以及从入口装置到出口装置的往返时间进行定义并且根据调节因子进行调节。换句话讲,最大窗口是数据分组从入口装置传到出口装置并且ACK从出口装置返回到入口装置的时间量乘以目的地的带宽或容量,并且通过调节因子被调节。调节因子可以是交换结构中拥堵的指示。调节因子可以由出口装置通过以下更详细讨论的算法来确定。标记为IGSndSeqNum的分组是将用于流的发送的下一分组的分组。标记为IGUnackedSeqNum的分组是作为入口装置等待接收ACK的按顺序的下一个分组的分组。
当前的窗口大小可以以字节或最大传输单元(MTU)来测量。最大窗口大小可以是具有1MTU的剩余集的预定字节数。例如,考虑1100字节的最大窗口大小,一系列分组均具有500字节的大小。如果发送两个500字节的分组,并且下一个分组是500字节,那么窗口中没有用于整个第三分组的空间。然而,入口仲裁器201无论如何都可以发送该分组。换句话讲,分组被发送,除非达到或超过最大窗口大小。入口仲裁器201最多超过最大窗口大小1MTU。如果小于当前窗口大小的最大窗口大小大于0,那么入口仲裁器201从发送队列250发送另一个分组。可以使用其他的窗口空间方法。当从出口仲裁器202接收到确认消息时,入口仲裁器201从确认队列251移除分组,这允许分组从发送队列250滑过。
图4A图示了流的数据分组210a的示例。数据分组210a不是控制消息。除有效负载及路由信息之外,数据分组210a还包括大小字段、虚拟输出队列大小字段、序列号或ID以及片段号或ID。路由信息可以包括源地址、目的地址和优先信息。可以包括或不包括不同的格式和/或信息。
序列ID表示数据流中的数据分组的位置。出口装置使用序列号来对分组进行重排序。序列ID用于对分组进行排序并且组装分组。当出口装置接收分组时,分组可以在发送到端口并且离开数据交换机之前根据序列ID被重排序。序列ID还用于实施基于滑动窗口的拥堵控制。出口装置从接收的数据分组提取序列ID并且将序列ID插入ACK中。当入口装置接收ACK时,入口装置根据ACK中的序列ID确定哪个分组被确认。
虚拟输出队列大小字段存储VOQ长度。VOQ长度可以用于确定最大窗口大小或者被分派到每个入口端口的最大窗口大小的份额。数据分组存储在入口的虚拟输出队列中,并且每个虚拟输出队列对应于可能的出口装置之一。在用于出口装置之一的一个入口装置处也可以有多个虚拟输出队列,每个虚拟输出队列对应于不同的优先级。虚拟输出队列大小字段包括表示作为数据分组的来源的虚拟输出队列的当前大小的数据。
出口装置被配置成根据虚拟输出队列的当前大小生成窗口分派。针对每个虚拟输出队列可以生成窗口分派以便适当地共享输出链路的容量,这在以下更详细地进行讨论。
片段ID将数据分组识别为多部分数据分组。高于最大大小水平(例如,2500字节)的数据分组必须由数据交换机分解成片段。入口装置分派片段ID(例如,4部分的1部分)给过大的数据分组的每个部分。出口装置基于片段ID重新组装数据分组。序列ID和片段ID可以组合成单个字母数字或二进制值。过大的数据分组可以是由源自虚拟输出队列之一的多个网络分组组成的超帧。
数据分组210a也可以包括最大队列字段。图1中的每个节点维持表示最近穿过节点的数据量的队列水平。当数据分组210a到达节点时,最大队列字段写有当前节点的队列水平。后续的节点将它们的队列水平与最大队列字段进行比较,并且如果它们的队列水平超过最大队列字段中当前存储的值就重写最大队列字段。因此,数据分组210a取得一路上满足的最大队列水平。出口装置被配置成从最大队列域提取数据以确定纵横式交换机中是否有拥堵以及有何种程度的拥堵。
图4B图示了确认消息211b的示例。确认消息211b包括分派窗口值、拥堵值、序列ID和路由信息。路由信息可以包括源地址、目的地址和优先信息。另外,可以包括不同或更少的信息。确认消息211b是从出口装置到入口装置的消息,提醒入口装置已经接收到包括序列ID的分组。入口装置还可以假设具有在此之前的序列ID的所有分组也已经被接收。因此,入口装置可以从确认队列251移除序列ID小于或等于ACK中接收的序列ID的每个分组。因此,窗口滑动到左侧,并且从发送队列250发送更多的数据。
分派的窗口值是向入口装置表明入口装置应当正在使用的最大窗口大小的数据。分派的窗口值可以是在等待从出口装置返回相应的ACK之前入口装置可以发出的数据的字节数。分派的窗口值可以被分派成与虚拟输出队列大小成比例。分派的窗口大小可以使用另一种算法基于最大窗口大小和最近的分配数来分派,以下更详细地进行讨论。
拥堵值表明出口装置或交换结构是否正在经历拥堵。拥堵值可以是一位(例如,1表示在任何位置处的拥堵的阈值水平,0表示没有有问题的拥堵)。在另一示例中,拥堵值可以是多位值,它们指明入口装置或交换结构是否正在经历拥堵,已经检测到多少拥堵,或者交换结构中的具体位置。入口装置可以被配置成基于拥堵值生成并发送探测消息,以下更详细地进行讨论。
因为确认消息最终控制入口装置释放多少数据,所以出口装置通过控制ACK的时序来控制每个源可以注入数据到交换结构中的速率。装置的带宽乘以通过装置的往返时间限定了带宽延迟乘积作为达到带宽所需的最大窗口大小。最大窗口大小可以大于最小带宽延迟乘积的要求。然而,从长远看来,源速率不能偏离窗口的左边缘前进的速率。如果入口装置使用所有的最大值窗口大小,那么两个速率相同,并且出口装置不仅控制速率,而且控制分组被注入到交换结构中的实际时间。当入口装置由于任何原因没有立即使用所有窗口时,那么幅值高达等于最大窗口大小的突发是可能的。然而,速率性能维持在平均值。出口装置可以根据出口端口速度和出口缓冲器占用量来平衡所有源的速率。当出口缓冲器占用量低时,出口装置以稍快的节奏生成ACK。当出口缓冲器占用超过阈值水平时,出口装置以较慢的节奏生成ACK。因此,在没有太多数据进入交换结构中并且引起拥堵的情况下,出口缓冲器占用量被维持在目标水平或附近。
此外,拥堵值可以表明生成确认消息211a的出口装置是否正在经历拥堵。拥堵值是从出口装置到入口装置的消息,其通知入口如果发送更多数据分组,就可能造成拥堵。入口装置被配置成停止或减缓一段时间(例如,10毫秒、1毫秒或另一个可配置的时间段)的数据分组传输。
图5A图示了示例探测消息210b。探测消息210b由入口装置生成并且发送到出口装置。当存在新的流时,探测消息210b通知出口装置入口装置要发送分组。探测消息210b包括分组大小和序列ID。分组大小是表示入口装置请求发送多少数据到出口装置的数据。分组大小可以是发送队列250中的下一个分组的大小。分组大小可以是发送队列250中任意数量的分组的总大小。
在使用探测消息时,可以针对每个数据分组,或者仅针对突发中的第一分组发送探测消息。探测消息最低程度地造成拥堵,因为探测消息小。探测消息也可以用高优先级发送,使得探测消息可以穿过交换结构中的拥堵被发送。
入口装置可以被配置成在拥堵水平高时生成探测消息。可以根据最近的确认消息211a确定拥堵水平。入口装置可以将拥堵水平与阈值水平进行比较。当拥堵水平超过阈值水平时,预测到使用最大窗口大小将导致交换结构拥堵。探测消息210b通知出口装置存在流,并且出口装置可以正确地调节流。探测消息210b可能被交换结构或出口装置丢弃并且使用与正常数据分组相同的机制被恢复。响应于探测消息210b生成的确认消息211a可以允许发送几个分组(例如,当存在少量流时)。
入口装置可以被配置成在几种情况下生成探测消息。如上所述,当接收的拥堵值表明拥堵或者超过预定阈值时可以生成探测消息。拥堵可以由设置成1的一个位来指示。
此外,当建立的流经历超时并且变成不活跃时,并且如果经过一段时间没有发送分组,就不会发送新的分组直到探测被发送并被确认以便重新建立流。在一个示例中,在一段时间的不活跃之后发送的要求分段的任何分组需要探针消息以及相应的确认。分段消息特别容易受到拥堵。因此,分段的分组可以在交换机内部传输协议中没有推测的情况下被处理。
在一个实施例中,探测消息可以仅当指示存在拥堵并且已经满足时间要求时被触发。时间要求可以指明仍在使用默认窗口。使用默认窗口直到在入口装置处接收闲置时间段之后的第一ACK。当出口装置的虚拟输出队列为空或者接近空、已经确认所有发送分组并且自从接收到最后一个ACK起经过了预定的等待时间段时,时间要求可以被满足。
存在拥堵的指示可以被包括在确认分组211a的拥堵值中。拥堵指示可以是被配置成表明交换结构或目的地拥堵的证据的每个流的拥堵状态位。因为拥堵指示通过ACK传达,所以消耗零或有限的额外带宽。
在确认或重发请求消息或两者中,可以由出口装置设置每个流的拥堵状态位。入口装置根据相关联的出口装置或虚拟输出队列接收并存储拥堵状态位。在重置时间段过后,可以重置每个流的拥堵状态位,从而表明不活跃的数据流。
入口装置被配置成基于过去的消息停止发送分组到存储器中标记为拥堵的目的地。在一个示例中,当分组正在等待被列为拥堵的目的地时,入口装置反而生成并发送探测。入口装置仅在收到探测ACK时继续发送到目的地。入口装置可以存储用于耦接至入口装置的一组出口装置的拥堵值的位图。
当发生趋向于引发交换结构拥堵的某些条件时,探测可以用于避免拥堵。这些条件可以包括:在尚未用出口建立流时使用入口默认窗口来发送分组;在入口装置处超过分派的窗口一个分组;以及因为数据流闲置而使用旧的分派的窗口来改变分组大小(多于出口装置期望的数据被发送)。
入口装置被配置成在接收最后一个挂起的ACK时开启窗口定时器。入口装置继续使用分派的窗口值直到窗口定时器过期。如果定时器过期,那么入口装置恢复到入口默认窗口大小。时间是可变的。如果默认窗口大小被设置成大的值,那么将定时器设置得更高将导致更保守的行为,因为与出口所分派的低的窗口大小相比,对流的瞬态效果持续更长。将定时器设置更低导致流更早恢复到默认窗口大小。如果默认的窗口大小是小的,那么定时器的意义相反。默认情况下,算法并不冒进,并且将定时器设置为低值是最不冒进的选项,而将定时器设置为高值导致入口装置使用可能高的分派窗口达更长时间。
图5B图示了示例重发请求211b。重发请求211b包括拥堵值,该拥堵值可类似于确认消息211a的拥堵值。重发请求211b还包括指明应当再次发送的分组的序列ID。重发请求211b还包括路由信息,该路由信息包括源地址、目的地址和优先信息。
出口装置通过检测分组序列号的列表中的间隔来检测分组是否已在交换结构中被丢弃或以其他方式被误转。重发请求211b是用于使入口装置再次发送遗漏的分组的请求。重发请求211b可以是出口装置接收来自交换结构的丢弃通知消息的结果。可替代地,遗漏的分组可能是由于出口装置执行的丢弃或者是由于出口装置的超时。重发请求使目的地能明确请求以所需节奏重新发送。与入口装置单方面决定的重发相比,优点在于能调节前往交换结构的分组的流入并且避免进一步拥堵。
图5C示出了示例丢弃通知消息210c。丢弃通知消息210c包括被丢弃的分组的序列ID。当分组被分成多个部分时,丢弃通知消息210c也可以包括片段ID和片段大小。丢弃通知消息210c还包括路由信息,该路由信息包括源地址、目的地址和优先信息。丢弃通知消息210c可以由纵横式交换机生成并且发送到出口装置或者由出口装置生成。
响应于接收到丢弃通知,出口装置可以转发重发请求信息211b到入口装置,该入口装置可以再次发送分组。这保持控制回路不受损并且有助于更快地从分组丢失恢复(而不是仅依赖于基于交换结构中最差情况延迟而设置的入口定时器)。该消息携带已丢弃的分组的大小。当然,交换结构无法保证递送丢弃通知,所以也可以使用入口定时器。
图6图示了虚拟输出队列仲裁器的操作的示例流程图。入口VOQ仲裁器在为访问交换结构纵横式交换机而竞争的入口队列当中进行选择,并且确定何时给定的VOQ可以进行发送并且可以发送多少数据。
在动作S101处,入口装置在不发出任何发送请求的情况下或者在没有对确认进行任何延迟的情况下从入口VOQ发出至少一个数据分组。入口VOQ可以继续发送额外的数据分组,同时累计在当前数据窗口值中发送的数据的总量的度量。
当VOQ被认为适于继续发送分组时,有四种示例情形。一个示例出现在入口VOQ尚未发送最大窗口大小时。这在第一次建立流时发生,或者在建立的流已经超时从而使目的地的任何最后一个分配的窗口无效时发生这种情况。在动作S103,入口装置根据数据分组使得用于窗口的计数器增量,计数器可以基于分组的大小来计数。
在动作S105,入口装置将用于当前数据窗口的计数器与最大窗口大小或默认窗口进行比较。最大窗口大小可以是可变的并且可以首先根据默认最大窗口大小并且随后根据来自确认分组211a的分派窗口值被设置。如果使用的窗口小于或等于入口默认窗口,那么VOQ是合适的。当使用入口默认窗口时,也可以应用基于额外的数据分组的上限。入口默认窗口可以由一些字节、一些分组或两者定义。
在动作S107,在当前的数据窗口满足或超过默认窗口大小时,入口装置使数据分组排队,或者停止传输后续数据分组。
另一个示例包括可以称为正常传输的情形。入口VOQ在非空并且当前窗口(发送但是尚未确认的数据量)小于或等于如动作S103处确定的最大窗口大小时适于进行发送。等式约束的意思是允许源超过分派的窗口大小1个MTU。当分派的窗口小于分组大小时,这防止入口锁死。当大量流为相同的输出而竞争时,输出可以分派非常小的窗口(甚至0)到所有输入。由于这种宽松的规则,而不是所有入口被锁死,每个入口被允许发送至少一个分组。在动作S105,在当前的数据窗口满足或超过最大窗口大小时,入口装置使数据分组排队。
入口装置接收来自出口装置的确认消息。入口装置被配置成从确认消息提取序列ID以便识别与出口装置相关联的当前的数据窗口。因此,入口装置根据确认消息调节当前的数据窗口。当前的数据窗口可以被减小确认消息中指定的分组大小。此外或可替代地,入口装置被配置成从确认窗口提取分派的窗口值。最大窗口大小可以根据确认消息的分派窗口值进行调节。
当入口VOQ已经历超时,出现第三示例。入口VOQ在等待从目的地接收确认消息时可经历超时。入口装置被配置成调度特定的序列ID或序列ID范围的数据的重发。在一个示例中,仅重发尚未确认的最旧的序列ID。
在接收重发请求之后发生第四示例。当入口装置接收来自出口装置的重发请求时,入口装置根据重发请求中包含的序列ID再次发送相应的数据分组。入口装置可以被配置成维持正常发送队列和重发队列以允许从正常发送队列发送任一个。发送仅从任一队列的头部开始。从发送队列发送的任何分组被附加到重发队列的尾部。一旦确认相应的序列号,就从重发队列的头部删除分组,这发生在ACK中的序列号紧接着数据分组时。
图7图示了入口仲裁器的示例状态图。入口仲裁器包括至少四种状态:闲置状态261、不活跃状态262、ACK等待状态263和建立状态264。当这个流没有发送任一分组或者流处于闲置状态261的时间段大于不活跃超时时间段时发生不活跃状态262。
当一个或多个分组已经发送到出口装置并且入口装置正在等待从出口装置返回ACK时,入口仲裁器从不活跃状态262过渡到ACK等待状态263。分组可以是探测消息或流的数据分组。
当从出口装置接收到第一有效的ACK消息时,入口仲裁器从ACK等待状态263过渡到建立状态264。此时已经建立用于流的最大窗口大小。当没有发送尚待确认的分组并且没有挂起的分组要发送时,入口仲裁器从建立状态过渡到闲置状态261。如果在发送队列中接收到任何分组,那么入口装置返回到建立的状态264。如果当前窗口为空并且预定的闲置时间段内没有新分组到达,那么入口装置返回到不活跃状态262。预定的闲置时间段可以被配置在10微秒与1毫秒之间。
确认消息211b包括分派的窗口值,该窗口值是指示入口装置应当使用的最大窗口大小的数据。可以由出口装置确定分派的窗口值。分派的窗口值限制入口装置的最大发送速率,而窗口的滑动速率(由出口装置发送并且入口装置接收ACK的频繁程度控制)控制入口装置的发送速率。由于出口装置确认数据接收,出口装置将分派的窗口值动态地分派到入口装置。如上所述,出口装置被配置成从数据分组提取VOQ长度信息并且以基于VOQ长度的方式(例如,与VOQ长度成比例)分派窗口到每个入口装置。此外,出口装置被配置成根据最近的数据流计算分派的窗口值。
图8图示了用于根据最近的流值确定窗口值的示例流程图。可以包括额外的、更少的或不同的动作。图8的动作可以结合根据上述VOQ长度的窗口值分派。
在动作S201处,出口装置根据该装置的带宽延迟乘积计算最大窗口大小。带宽延迟乘积可以是装置的带宽乘以入口装置与出口装置之间的往返时间。可以使用采用相同或不同变量的其他计算。往返时间是从数据分组离开入口装置直到在入口装置处接收到确认消息为止的最小的可能的时间量。最大窗口大小被分派使得入口装置总是被分派等于或小于单个源获得全部速率所需的窗口大小。如果大于带宽延迟乘积的时间用于最大窗口值,那么装置无法达到更大的速度,但是拥堵的风险增大。如果仅一个入口装置被分派给出口装置,那么最大窗口大小可以用作分派的窗口值。然而,多个入口装置可以正在发送流到出口装置。
在动作S203,出口装置分派出口默认窗口值到多个入口装置。分派是在数据分组被接收并且确认消息被生成并被返回到入口装置时依序进行的。出口默认窗口可以通过在多个入口装置之间划分最大窗口大小来计算。然而,可能最初不知道入口装置的数量。出口装置可以在接收数据分组时分派预定默认窗口大小到入口装置。默认窗口大小可以是带宽延迟乘积的百分比或其他函数(例如,10%、20%或小于50%的任何百分比)。默认窗口大小可以在不活跃的时间段(例如,50微秒、100微秒、1000微秒或任意值)之后使用。因为可用于所有入口装置的窗口大小是有限的,所以最大窗口大小是当数据分组穿过装置时被分配给入口装置并从入口装置回收的窗口池。
一个示例的情况包括50千字节的最大窗口大小。有六个入口装置,具有用于出口装置的队列。出口默认窗口大小设置成10千字节。当出口装置接收来自第一入口装置的数据分组时,出口装置生成包括10千字节的分派的窗口值的确认消息。出口装置针对接收的第二、第三、第四和第五数据分组重复此分派,使得每个入口装置被分派10千字节。然而,如果第六入口装置有数据分组要发送,那么第六入口装置无法被分派任何窗口,因为在最大窗口中没有额外的空间。在动作S205,出口装置被配置成识别何时最大窗口大小已经被完全分配到分派的默认窗口值。直到从入口装置接收到数据分组时才分派额外的窗口。
当从最初分派的窗口值的入口装置接收数据分组时,出口装置回收最大窗口大小的这一部分并且将这部分返回到可用窗口池中。然而,当分派第二窗口值到入口装置时,出口装置不再次分配默认的窗口大小。相反,出口装置计算在具有用于出口装置的虚拟输出队列的多个入口装置之间分配的平均窗口大小。此计算考虑到没有被分配窗口的这些入口装置。
返回到上述示例,当从前五个入口装置之一接收到数据分组时,出口装置回收10千字节。然而,在后续的确认消息中,出口装置不将所有10kb分派回入口装置。出口装置分派分配的平均窗口的最大值。在此示例中分配的平均窗口是50,000/6,或8.33kb。在动作S207,出口装置被配置成响应于接收数据分组计算作为基于当前分配的平均窗口发送数据分组的入口装置的分派窗口值。
随后,如果此前未分派窗口值的第六入口装置请求发送数据分组,1.77kb可以分配到第六入口装置。因为每个入口装置被允许超过一个分组,所以第六入口装置发送至少一个数据分组。在动作209,出口装置分派另一个较小的窗口值到此前未被分派窗口的多个入口装置之一。较小的窗口值小于默认窗口值。
在接收额外的数据分组时,重复此过程。一般来讲,出口装置继续给每个入口装置不大于过去可用的平均值的分派的窗口值。在进行几轮分派窗口值到每个入口装置之后,达到均衡。发送到目的地的分派到源的窗口的总和大致等于目的地的带宽乘以流的往返时间。在接收有序数据后,目的地从需要确认的一组流中选择一个流,给它分派窗口,并且生成一个确认,从而使所选择的流的窗口滑动一个分组。
每次生成确认消息时,出口装置更新可用于分派给入口装置的最大窗口大小。在整个上述过程中,当入口装置在一段时间内未使用分派的窗口时,出口回收分派的窗口。超时设置应当是至少一个往返时间(RTT)。
可以针对数据分组的优先级单独执行窗口分配过程。出口装置维持每个优先级的平均可用窗口量。平均值通过供应瞬时可用窗口到一阶滤波器来维持。如果共享的可用窗口池为正,瞬时可用窗口仅仅是保留且共享的可用窗口池的总和,如果剩余共享的可用窗口池变为负,瞬时可用窗口等于保留的窗口池。
图9图示了用于交换机内部传输协议控制的示例网络设备101。网络设备101可以包括被编程或设计成转发数据分组的一个或多个集成电路。例如,网络设备101可以包括专用集成电路(ASIC)。可以使用不同于ASIC的其他装置,例如,现场可编程门阵列或通用处理器。网络设备101至少包括控制器300、存储器302、输入通信接口304和输出通信接口305。网络设备101还可以与工作站309通信。
控制器300可以被配置成控制入口装置,或在替代方式中控制出口装置,或作为单个控制器控制入口装置和出口装置二者。控制器300被配置成执行在上述实施例中描述的操作和功能。存储器302可以是根据上述实施例中描述的队列分配且分布的单个存储器或多个存储器。
在一个示例中,关于网络设备101的出口装置方面,存储器302被配置成根据预定带宽以及多个入口端口与一出口端口之间的往返时间来存储最大窗口大小。最大的窗口大小可以由控制器300来计算或者可以预存储在存储器302中。
控制器300被配置成基于最大窗口大小计算多个入口端口之一的分派窗口值。分派窗口值可以根据入口装置之间的最大窗口大小的平均分布来初步设置。随后,控制器300可以被配置成根据入口装置的使用来调节分派的窗口值。与具有较大的流(在VOQ队列中高水平)的入口装置相比,具有较小的流(在VOQ队列中低水平)的入口装置被分派较小的窗口。此外,分派的窗口值根据平均分配的窗口值被分派。也就是说,未来的窗口分派不能超过相关联入口装置之间的当前平均分配。
控制器300被配置成生成包括用于多个入口端口之一的分派窗口值的确认消息。确认消息是用于使入口装置滑动分派的窗口并且发送一个或多个新的数据分组的单个消息。确认消息也可以包括拥堵的指示。拥堵的指示可以基于来自已经丢失分组或者存在拥堵的交换结构中的节点的消息。拥堵的指示可以基于作为未来拥堵的预测器的滞后的出口队列。
在一个示例中,关于网络设备101的入口装置方面,存储器302被配置成存储用于出口装置的出口计数水平。出口计数水平是存储在出口队列中的数据量,其涉及过去的数据传输。
控制器300被配置成检测数据分组在出口队列处到达并且根据数据分组的大小计算延迟时间段。延迟时间段与数据分组大小成比例。例如,延迟时间段可以根据计数器来确定,该计数器根据数据分组大小而增量并且随时间变化以漏出速率减量。控制器300也被配置成生成与过了延迟时间段之后生成的数据分组对应的确认消息。漏出速率可以是由控制器300根据交换结构拥堵和出口队列的存储大小的函数计算的可变速率。
控制器300可以包括通用处理器、数字信号处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、模拟电路、数字电路、它们的组合或者其他现在已知的或以后开发的处理器。控制器300可以是单个装置或装置的组合,例如,与网络、分布式处理或云计算相关联。
存储器302可以是易失存储器或非易失存储器。存储器302可以包括一个或多个只读存储器(ROM)、随机存取存储器(RAM)、闪存、电可擦除编程只读存储器(EEPROM)或其他类型的存储器。存储器302可以是可从网络设备101移除的,例如,安全数据(SD)存储卡。
除了入口端口和出口端口之外,输入通信接口304和输出通信接口305可以包括任何可操作连接。可操作的连接可以是其中可以发送并且/或者接收信号、物理通信和/或逻辑通信的连接。可操作的连接可以包括物理接口、电气接口和/或数据接口。
图10图示了用于交换机内部流控制的出口装置的操作的示例流程图。在动作S301,出口装置存储与挂起的数据传输相关的出口计数水平。出口计数水平可以描述出口队列中的当前存储水平。出口计数水平可以以分配给出口队列的存储器的大致一半为目标。
在动作S303,出口装置基于出口计数水平选择出口队列处的数据分组。例如,可以选择来自一组出口装置的最小的计数水平。可替代地,选择算法可以半随机地选择数据分组。半随机的意思是出口装置首先确定一组合适的出口队列,然后在该组中随机选择一个出口队列。选择的数据分组在出口端口可用时立即被转发。
在动作S305,出口装置生成与数据分组对应的确认消息。确认消息列出被转发的数据分组的分组标识,并且可以任选地包括拥堵信息和窗口信息。在步骤S307,出口装置被配置成将下一个ACK的传输延迟与数据分组的大小成比例的时间段。通过使用根据数据分组大小而增量并且随时间变化以漏出速率减量的计数器可以执行延迟。
延迟是定步确认消息的示例。即使分派的窗口不精确,定步ACK也允许精确的速率控制。要使源达到速率R,需要比带宽乘以系统的往返时间更大的窗口。更大的窗口不会自动导致交换结构中存在更多的数据分组。在稳态下,当源使用整个可用窗口时,过量的窗口作为目的地处接收的(可能发出的)、但仍待确认的数据存在。然而,分派大窗口增加了源进行突发的风险。
在多路径交换结构中,分组可以无序到达出口。如果目的地缓冲器填满了无序分组,就会发生锁死情形。有可能目的地的缓冲器已经填满并且序列中存在空隙。在这种情况下无法出列。因为新的数据无法进入,缓冲器永远保持满的状态。如果目的地可以丢弃尚待确认的分组以腾出用于完成分组重排序的空间,这个问题就会消失。为了在控制目的地缓冲器大小的同时保留端对端无丢失行为,源可以具有重发丢失的分组的能力以确保目的地最终获得数据。重发的另一个益处在于交换结构可以丢弃分组以通过减少线端拥塞来保持其高效率。这将缓冲器要求推至源虚拟输出队列。用于覆盖往返延迟的额外缓冲器容量是入口缓冲器大小的一小部分。
网络设备101可以是网络中的节点。网络设备101可以是交换机内的节点。网络设备可以是目的地节点或源节点,或者包括目的地节点和源节点两者。一般来讲,源节点通过各种路径发送通信量到目的地节点。从目的地节点到源节点的周期性的一系列分组包括表示拥堵值的数据。拥堵值可以以分组(数量)、带宽(位/秒)或总容量(字节)来测量。目的地节点限定可接受量的通信量,使得它不会超过源节点与目的地节点之间的链路的速度。可以有多个通信路径贯穿源节点与目的地节点之间的多个中间节点。中间节点可能具有不同水平的拥堵。
多播可以通过一组输出队列复制用于目的地的接收的数据分组到一组输出口端口来实施。多路传送数据分组包括用于多路传送组的标签,该标签限定用于多路传送数据分组的目的地。位图(例如,交换结构出口(FPOE)位图)可以限定多路传送数据分组将要转发到哪组输出队列以便达到目的地。
网络可以包括有线网络、无线网络或它们的组合。无线网络可以是蜂窝电话网络,802.11、802.16、802.20或WiMax网络。另外,网络可以是公用网络(例如,互联网)、专用网络(例如,内联网)或它们的组合,并且可以利用现在可用的或以后开发的各种网络协议,包括但不限于基于TCP/IP的网络协议。
尽管计算机可读介质被示出为单个介质,但术语“计算机可读介质”包括单个介质或多个介质,例如,集中式或分布式数据库,和/或存储一个或多个指令集的相关联缓存和服务器。术语“计算机可读介质”还应当包括能存储、编码或执行由处理器执行的指令集或者使计算机系统执行本文公开的任何一种或多种方法或操作的任何介质。
在具体的非限制性示例实施例中,计算机可读介质可以包括固态存储器,例如,存储卡,或容纳一个或多个非易失性只读存储器的其他封装。另外,计算机可读介质可以是随机存取存储器或其他易失性可重写存储器。另外,计算机可读介质可以包括磁光介质或光介质,例如,磁盘或磁带或捕获载波信号(例如,通过传输介质传送的信号)的其他存储装置。电子邮件的数字文件附件或其他自包含(self-contained)信息文档或文档组可以被认为是作为有形存储介质的分布式介质。因此,本公开被认为包括其中可以存储数据或指令的计算机可读介质或分布式介质和其他等同物和继承介质中的任意一个或多个。计算机可读介质可以是非瞬态的,其包括所有有形的计算机可读介质。
在替代实施例中,专用硬件实施方式,例如,专用集成电路、可编程逻辑阵列和其他硬件装置,可以被构造成实施本文所述的一个或多个方法。可以包括各种实施例的设备和系统的应用可以宽泛地包括各种电子设备和计算机系统。本文所述的一个或多个实施例可以使用两个或更多个特定互连硬件模块或具有可以在模块之间并且通过模块传送的相关控制和数据信号的装置或者作为专用集成电路的一部分来实施功能。因此,本系统包括软件、固件、和硬件实施方式。
根据本公开的各种实施例,本文所述的方法可以由计算机程序执行的软件程序来实施。另外,在示例性的非限制性实施例中,实施方式可以包括分布式处理、组件/对象分布式处理和并行处理。可替代地,虚拟计算机系统处理可以被构造成实施如本文所述的一个或多个方法或功能。
尽管本说明书参照具体标准和协议描述了可以在具体实施例中实施的部件和功能,但是本发明不限于这些标准和协议。例如,互联网和其他分组交换网络传输的标准(例如,TCP/IP、UDP/IP、HTML、HTTP、HTTPS)代表现有技术的示例。这些标准周期性地被本质上具有相同功能的更快或更高效的等同物取代。因此,具有与本文公开的标准和协议相同或相似的功能的替代标准和协议被认为是其等同物。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以写成任何形式的编程语言,包括编译或解释语言,并且可以配置成任何形式,包括作为单独的程序或作为模块、组件、子程序或适合在计算环境中使用的其他单元。计算机程序未必与文件系统中的文件对应。程序可以存储在容纳其他程序或数据(例如,存储在标记语言文件中的一个或多个脚本)的文件的一部分中,存储在讨论中的程序专用的单个文件中,或者存储在多个协调文件(例如,存储一个或多个模块、子程序或代码的部分的文件)中。计算机程序可以被部署成在一个计算机或多个计算机上被执行,这些计算机位于一个站点或者分布在多个站点并且由通信网络互联。
本说明书中描述的过程和逻辑流可以由一个或多个可编程处理器执行,所述可编程处理器执行一个或多个计算机程序以通过操作输入数据并且生成输出来执行功能。过程和逻辑流也可以由专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))执行,并且设备也可以实施为所述专用逻辑电路。
如本申请中所用,术语“电路”或“回路”指的是所有以下各项:(a)仅硬件电路实施方式(例如,仅在模拟和/或数字电路中的实施方式),和(b)电路和软件(和/或固件)的组合,例如(如适用):(i)(一个或多个)处理器的组合,或(ii)一起工作以使诸如移动电话或服务器的设备执行各种功能的(一个或多个)处理器/软件(包括(一个或多个)数字信号处理器)、软件和(一个或多个)存储器的一部分;以及(c)电路,例如,要求软件或固件(即使软件或固件并非物理上存在)以便操作的(一个或多个)微处理器或(一个或多个)微处理器的一部分。
“电路”的定义适用于此术语在本申请中的所有使用,包括任何权利要求中的使用。作为另一个示例,如本申请中使用的,术语“电路”也将涵盖仅处理器(或多处理器)或者处理器及其(或它们的)伴随的软件和/或固件的一部分的实施方式。术语“电路”也将涵盖(例如并且如适用于具体的权利要求要素)基带集成电路或用于移动电话的应用处理器集成电路或服务器、蜂窝网络设备或其他网络设备中的类似集成电路。
适用于执行计算机程序的处理器包括(举例来说)通用和专用微处理器以及任何类型的数字计算机的任何一个或多个处理器。一般来讲,处理器将接收来自只读存储器或随机存取存储器或两者的指令和数据。计算机的必要元件是用于执行指令的处理器以及用于存储指令和数据的一个或多个存储装置。一般来讲,计算机还将包括用于存储数据的一个或多个大容量存储装置(例如,磁盘、磁光盘或光盘),或与该存储装置可操作地耦接以接收来自该存储装置的数据或传递数据到该存储装置或者接收来自该存储装置的数据并传递数据到该存储装置。然而,计算机不一定具有这些装置。此外,计算机可以嵌入另一个装置中,例如,移动电话、个人数字助理(PDA)、移动音频播放器、全球定位系统(GPS)接收器,等等。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非瞬态存储器、介质和存储装置,包括(举例来说)半导体存储装置,例如,EPROM、EEPROM和闪存装置;磁盘,例如,内部硬盘或可移动磁盘;磁光盘;以及CDROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或结合到专用逻辑电路中。
本说明书描述的主题的实施例可以在计算系统中实施,所述计算系统包括后端组件(例如,作为数据服务器),或者所述计算系统包括中间件组件(例如,应用服务器),或者所述计算系统包括前端组件(例如,具有用户可以与本说明书描述的主题的实施方式交互的图形用户界面的客户端计算机或者网页浏览器)或者一个或多个这些后端组件、中间件组件或前端组件的任意组合。系统的组件可以通过数字数据通信的任何形式或介质(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般彼此距离远并且通常通过通信网络交互。通过在各个计算机上运行并且彼此具有客户端-服务器关系的计算机程序出现了客户端和服务器的关系。
本文所述的实施例的图示旨在提供对各种实施例的结构的一般理解。图示并非旨在用作利用本文所述的结构或方法的设备和系统的所有元件和特征的完整描述。本领域技术人员在查阅本公开后将明白许多其他实施例。可以利用并且从本公开得到其他的实施例,在不偏离本公开的范围的情况下可以作出结构和逻辑替换及改变。另外,图示仅仅是代表性的并且未必按比例绘制。图示中的某些比例可能被放大,而其他比例可能被缩小。因此,本公开和附图应当被认为是说明性的而不是限制性的。
尽管本说明书包含许多细节,但是这些细节不应该被理解成限制本发明或可以要求保护的内容的范围,而是理解为对本发明的具体实施例的特定特征的描述。在单独实施例的上下文中,在本说明书中描述的某些特征也可以结合在单个实施例中实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中分开实施或者在任何合适的子组合中实施。此外,尽管特征可在以上描述为在某些组合中起作用并且甚至是最初要求保护的那样,但来自要求保护的组合的一个或多个特征在一些情况下可以从组合去除,并且要求保护的组合可以针对子组合或子组合的变型。
类似地,尽管以具体顺序在附图中描绘并且在本文中描述了操作,但是这不应当理解成要求按照所示的具体顺序或依次顺序执行这些操作,或者执行所有图示的操作以获得所需的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统部件的分离不应该理解成在所有实施例中要求这种分离,并且应当理解的是,描述的程序组件和系统总体上可以一起集成在单个软件产品中或封装在多个软件产品中。
本公开的一个或多个实施例在本文中可以单独地并且/或者共同地称为术语“发明”,仅仅为了方便的目的,而不是旨在主动限制本申请的范围为任何特定的发明和创造性概念。此外,尽管本文中图示并描述了具体的实施例,但是应当理解的是,被设计成实现相同或相似目的的任何后续排布均可替代所示的具体实施例。本公开旨在涵盖各种实施例的任何和所有后续适应或变型。本领域技术人员在查阅说明书后将明白上述实施例以及本文中未具体描述的其他实施例的组合。
提供本公开的摘要符合37C.F.R.§1.72(b),提交摘要时理解它不会用于解释或限制权利要求书的范围或含义。此外,在上述具体实施方式中,为了使本公开合理化(streamlining)的目的,各种特征可以组合起来或者在单个实施例中描述。本公开不应当被解释为反映这样的意图:要求保护的实施例需要比每个权利要求中明确阐述的特征更多的特征。相反,如以下权利要求书所体现的,具有创造性的主题可以涉及少于任何公开的实施例的所有特征。因此,以下权利要求书并入具体实施方式中,使每个权利要求独立地限定单独要求保护的主题。
其目的是,以上详细描述被视为说明性的而不是限制性的,并且应当理解的是,包括所有等同物的以下权利要求书旨在限定本发明的范围。除非另有说明,否则权利要求书不应当理解成局限于所述顺序或要素。因此,落入以下权利要求书及其等同物的范围和精神内的所有实施例作为本发明要求保护。

Claims (20)

1.一种方法,包括:
在无需首先接收来自出口端口的任何确认的情况下从入口端口发送至少一个数据分组到所述出口端口;
根据所述至少一个数据分组使计数器增量;
经由控制器将所述计数器与用于所述出口端口的默认窗口大小进行比较;
以及
响应于所述计数器超过用于所述出口端口的默认窗口大小,停止传输后续数据分组。
2.根据权利要求1所述的方法,还包括:
访问来自存储器的带宽延迟值,其中所述带宽延迟值基于带宽以及所述入口端口与所述出口端口之间的往返时间,其中所述默认窗口大小基于所述带宽延迟值。
3.根据权利要求1所述的方法,还包括:
接收包括分组大小的确认消息。
4.根据权利要求3所述的方法,还包括:
根据所述分组大小使所述计数器减量。
5.根据权利要求1所述的方法,还包括:
从所述确认消息提取拥堵值,其中所述拥堵值指示所述出口装置是否正在经历拥堵。
6.根据权利要求1所述的方法,其中所述计数器是基于待传输的分组的发送队列以及已经传输的分组的确认队列的滑动窗口。
7.根据权利要求1所述的方法,其中所述至少一个数据分组是在不太可能导致拥堵时发送的预测的数据分组传输。
8.根据权利要求1所述的方法,其中所述计数器与用于所述出口端口的默认窗口大小之间的差值超过最大传输单元。
9.一种设备,包括:
存储器,被配置成存储用于当前窗口大小的计数器;
通信接口,被配置成在无需首先接收来自出口端口的任何确认的情况下从入口端口发送至少一个数据分组到所述出口端口;以及
控制器,被配置成根据所述至少一个数据分组使计数器增量并且响应于所述计数器超过用于所述出口端口的默认窗口大小使后续数据分组排队。
10.根据权利要求9所述的设备,其中所述控制器被配置成将所述计数器与用于所述出口端口的默认窗口大小进行比较。
11.根据权利要求9所述的设备,其中所述控制器被配置成根据带宽延迟值计算所述默认窗口,所述带宽延迟值基于带宽以及所述入口端口与所述出口端口之间的往返时间。
12.根据权利要求9所述的设备,其中所述控制器被配置成根据在确认消息中接收的分组大小使所述计数器减量。
13.根据权利要求9所述的设备,其中所述控制器被配置成从所述确认消息提取拥堵值,其中所述拥堵值指示所述出口设备是否正在经历拥堵。
14.根据权利要求9所述的设备,其中所述计数器是基于待传输的分组的发送队列以及已经传输的分组的确认队列的滑动窗口。
15.根据权利要求9所述的设备,其中所述至少一个数据分组是在不太可能导致拥堵时发送的预测的数据分组传输。
16.根据权利要求9所述的设备,其中所述控制器被配置成确定所述计数器是否超过所述默认窗口达最大传输单元大小。
17.一种包括指令的非瞬态计算机可读介质,所述指令在被执行时可操作来:
在无需首先接收来自出口端口的任何确认的情况下从入口端口发送至少一个数据分组到所述出口端口;
根据所述至少一个数据分组使计数器增量;
将所述计数器与用于所述出口端口的带宽延迟乘积进行比较;
当所述计数器小于所述带宽延迟乘积时发送后续数据分组;以及
当所述计数器超过所述带宽延迟乘积时使后续的数据分组排队。
18.根据权利要求17所述的非瞬态计算机可读介质,其中所述带宽延迟值基于带宽以及所述入口端口与所述出口端口之间的往返时间。
19.根据权利要求17所述的非瞬态计算机可读介质,所述指令可操作来:
接收确认消息;并且
根据所述确认消息使所述计数器减量。
20.一种方法,包括:
存储用于出口装置的出口计数水平,其中所述出口计数水平涉及挂起数据传输;
基于所述出口计数水平选择出口队列;
在控制器处生成与所述出口队列对应的确认消息;
访问所述出口队列中的数据分组的大小;以及
使后续的确认消息的传输延迟与所述数据分组的大小成比例的一段时间。
CN201380074554.XA 2013-03-13 2013-12-03 用于操作纵横式交换机的方法和设备 Active CN105052095B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/798,724 US9628406B2 (en) 2013-03-13 2013-03-13 Intra switch transport protocol
US13/798,724 2013-03-13
PCT/US2013/072760 WO2014158246A1 (en) 2013-03-13 2013-12-03 Intra switch flow control

Publications (2)

Publication Number Publication Date
CN105052095A true CN105052095A (zh) 2015-11-11
CN105052095B CN105052095B (zh) 2018-11-02

Family

ID=49911784

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380074554.XA Active CN105052095B (zh) 2013-03-13 2013-12-03 用于操作纵横式交换机的方法和设备

Country Status (4)

Country Link
US (1) US9628406B2 (zh)
EP (1) EP2974183B1 (zh)
CN (1) CN105052095B (zh)
WO (1) WO2014158246A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114244852A (zh) * 2021-11-09 2022-03-25 北京罗克维尔斯科技有限公司 数据传输方法、装置、设备及存储介质
US11477129B2 (en) * 2018-06-29 2022-10-18 Huawei Technologies Co., Ltd. Data transmission method, computing device, network device, and data transmission system

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105337893B (zh) * 2014-05-30 2020-12-01 索尼公司 电子设备、中心节点和网络侧设备、传输方法和配置方法
WO2018127982A1 (ja) * 2017-01-06 2018-07-12 富士通株式会社 無線通信装置、無線通信システム、および無線通信方法
US10547532B2 (en) * 2017-02-27 2020-01-28 Netscout Systems, Inc. Parallelization of inline tool chaining
US9847949B1 (en) 2017-03-17 2017-12-19 Hewlett Packard Enterprise Development Lp Arbitrating data packets
US10476810B1 (en) 2018-04-26 2019-11-12 Hewlett Packard Enterprise Development Lp Network source arbitration
US11444886B1 (en) * 2018-09-21 2022-09-13 Marvell Asia Pte Ltd Out of order packet buffer selection
CN109787910B (zh) * 2019-03-01 2021-01-15 烽火通信科技股份有限公司 一种流量管理方法、系统及织状网络处理器
WO2022035935A1 (en) * 2020-08-11 2022-02-17 Georgia Tech Research Corporation Multi-packet sliding window scheduler and method for input-queued switches
US20230062889A1 (en) * 2021-09-01 2023-03-02 Google Llc Off-Chip Memory Backed Reliable Transport Connection Cache Hardware Architecture
CN114363370B (zh) * 2021-12-29 2023-12-26 中汽创智科技有限公司 车载设备通信方法、装置、系统和车辆
CN116233031B (zh) * 2023-01-04 2024-03-22 北京科技大学 一种时间敏感网络交换机模型的实现方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546106A (zh) * 2011-12-28 2012-07-04 南京邮电大学 面向卫星网络的多路径并行传输方法

Family Cites Families (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2540930B2 (ja) 1988-02-19 1996-10-09 日本電気株式会社 輻輳制御装置
US5163046A (en) * 1989-11-30 1992-11-10 At&T Bell Laboratories Dynamic window sizing in a data network
JP2639335B2 (ja) 1993-12-22 1997-08-13 日本電気株式会社 Atm網における輻輳制御方式
US5592627A (en) * 1994-10-11 1997-01-07 Emprise Technologies, L.P. Pipelined, sliding-window, flow control for end-to-end communication sessions
FI98023C (fi) * 1995-05-09 1997-03-25 Nokia Telecommunications Oy Liukuvaan ikkunaan perustuva datavuonohjaus, joka käyttää säädettävää ikkunakokoa
CN1104686C (zh) 1996-05-10 2003-04-02 富士通网络通信公司 在具有不同流量控制能力的多个网络上实现流量控制的方法和装置
US6256675B1 (en) 1997-05-06 2001-07-03 At&T Corp. System and method for allocating requests for objects and managing replicas of objects on a network
US6105064A (en) * 1997-05-30 2000-08-15 Novell, Inc. System for placing packets on network for transmission from sending endnode to receiving endnode at times which are determined by window size and metering interval
US6249530B1 (en) * 1997-12-22 2001-06-19 Sun Microsystems, Inc. Network bandwidth control
US6563837B2 (en) 1998-02-10 2003-05-13 Enterasys Networks, Inc. Method and apparatus for providing work-conserving properties in a non-blocking switch with limited speedup independent of switch size
JP3602972B2 (ja) 1998-07-28 2004-12-15 富士通株式会社 通信性能測定装置及びその測定方法
US6504842B1 (en) 1998-07-30 2003-01-07 Alcatel Internetworking, Inc. Hardware copy assist for data communication switch
US6430153B1 (en) 1998-09-04 2002-08-06 Cisco Technology, Inc. Trunk delay simulator
CA2249152C (en) * 1998-09-30 2003-07-08 Northern Telecom Limited Apparatus for and method of managing bandwidth for a packet-based connection
US6728210B1 (en) * 1998-12-21 2004-04-27 Nec America, Inc. Multi-logical access for a serial data link
US6603772B1 (en) 1999-03-31 2003-08-05 Cisco Technology, Inc. Multicast routing with multicast virtual output queues and shortest queue first allocation
US6775280B1 (en) 1999-04-29 2004-08-10 Cisco Technology, Inc. Methods and apparatus for routing packets using policy and network efficiency information
US7010611B1 (en) * 1999-12-21 2006-03-07 Converged Access, Inc. Bandwidth management system with multiple processing engines
CA2292828A1 (en) 1999-12-22 2001-06-22 Nortel Networks Corporation Method and apparatus for traffic flow control in data switches
US6654363B1 (en) 1999-12-28 2003-11-25 Nortel Networks Limited IP QOS adaptation and management system and method
JP2001237882A (ja) * 2000-02-23 2001-08-31 Nec Corp パケットデータ転送におけるパケットサイズ制御装置及びその制御方法
EP1133110B1 (en) 2000-03-06 2006-06-21 International Business Machines Corporation Switching device and method
US6751219B1 (en) 2000-04-20 2004-06-15 Aztech Partners, Inc. Multicast packet duplication at random node or at egress port with frame synchronization
US6717945B1 (en) 2000-06-19 2004-04-06 Northrop Grumman Corporation Queue size arbitration method and apparatus to enhance performance of crossbar cell switch
DE60119866T2 (de) 2000-09-27 2007-05-10 International Business Machines Corp. Vermittlungseinrichtung und verfahren mit getrennten Ausgangspuffern
FR2817687B1 (fr) 2000-12-01 2003-02-14 Thomson Csf Procede de dimensionnement d'un reseau de transmission a commutation par paquets de type deterministe
US7023841B2 (en) 2000-12-15 2006-04-04 Agere Systems Inc. Three-stage switch fabric with buffered crossbar devices
US7002980B1 (en) 2000-12-19 2006-02-21 Chiaro Networks, Ltd. System and method for router queue and congestion management
US6999453B1 (en) 2001-07-09 2006-02-14 3Com Corporation Distributed switch fabric arbitration
US7274659B2 (en) 2001-07-27 2007-09-25 Western Digital Ventures, Inc. Providing streaming media data
US7151744B2 (en) 2001-09-21 2006-12-19 Slt Logic Llc Multi-service queuing method and apparatus that provides exhaustive arbitration, load balancing, and support for rapid port failover
US8213322B2 (en) 2001-09-24 2012-07-03 Topside Research, Llc Dynamically distributed weighted fair queuing
US7085846B2 (en) * 2001-12-31 2006-08-01 Maxxan Systems, Incorporated Buffer to buffer credit flow control for computer network
US7245626B1 (en) 2002-01-17 2007-07-17 Juniper Networks, Inc. Systems and methods for permitting queues to oversubscribe
US7142555B2 (en) 2002-03-22 2006-11-28 Mindspeed Technologies, Inc. Method and apparatus for switching data using parallel switching elements
US7616571B1 (en) * 2002-07-03 2009-11-10 Netlogic Microsystems, Inc. Method and apparatus for calculating packet departure times
US7292529B1 (en) 2002-07-31 2007-11-06 Juniper Networks, Inc. Memory load balancing for single stream multicast
US7301943B2 (en) 2002-07-31 2007-11-27 Industrial Technology Research Institute QoS-oriented burstification method supporting various grades of burstification delay guarantee
US7391785B2 (en) 2002-09-02 2008-06-24 Motorola, Inc. Method for active queue management with asymmetric congestion control
WO2004023718A2 (en) 2002-09-03 2004-03-18 4198638 Canada Inc. Systems and methods for packet flow regulation and transmission integrity verification of a switching entity
WO2004036844A1 (en) 2002-10-21 2004-04-29 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement in a packet switch for congestion avoidance using a common queue and several switch states
US7630305B2 (en) 2003-07-29 2009-12-08 Orbital Data Corporation TCP selective acknowledgements for communicating delivered and missed data packets
KR100460958B1 (ko) 2002-12-04 2004-12-09 삼성전자주식회사 비대칭 네트워크 환경에서의 tcp의 데이터 전송효율을향상시킬 수 있는 통신시스템 및 그 방법
US7583594B2 (en) * 2003-01-31 2009-09-01 Texas Instruments Incorporated Adaptive transmit window control mechanism for packet transport in a universal port or multi-channel environment
EP1738545A4 (en) 2004-04-20 2012-04-04 Nortel Networks Ltd METHOD AND SYSTEM FOR SERVICE QUALITY ASSISTANCE FOR ETHERNET MULTI-SERVICE INTERWORKING VIA MULTIPROTOCOL LABEL SWITCHING (MPLS)
US7656800B2 (en) * 2004-07-30 2010-02-02 Cisco Technology, Inc. Transmission control protocol (TCP)
US7706261B2 (en) 2004-08-27 2010-04-27 Jinshen Sun Queue-based active queue management process
US7626926B2 (en) * 2004-12-09 2009-12-01 Airvana, Inc. Traffic management in a wireless data network
US7519054B2 (en) 2005-01-27 2009-04-14 Intel Corporation Replication of multicast data packets in a multi-stage switching system
JP4147534B2 (ja) * 2005-02-03 2008-09-10 日本電気株式会社 通信装置および通信方法
US7701853B2 (en) * 2005-09-30 2010-04-20 Alcatel-Lucent Usa Inc. Method for policing-based adjustments to transmission window size
US9344533B2 (en) * 2012-10-23 2016-05-17 Microsoft Technology Licensing, Llc Receive window auto-tuning
ATE511258T1 (de) * 2005-09-30 2011-06-15 Research In Motion Ltd Verfahren und vorrichtungen zum dynamischen justieren einer datenpaket-fenstergrösse für die datenpaketübertragung in einem drahtlosen kommunikationsnetz
US8150995B2 (en) * 2005-09-30 2012-04-03 Microsoft Corporation Receive window auto-tuning
US7760633B2 (en) * 2005-11-30 2010-07-20 Cisco Technology, Inc. Transmission control protocol (TCP) congestion control using transmission delay components
US7809009B2 (en) 2006-02-21 2010-10-05 Cisco Technology, Inc. Pipelined packet switching and queuing architecture
US7643418B1 (en) * 2006-03-24 2010-01-05 Packeteer, Inc. Aggregate rate control using PID
US7733781B2 (en) 2006-04-24 2010-06-08 Broadcom Corporation Distributed congestion avoidance in a network switching system
US7675857B1 (en) 2006-05-03 2010-03-09 Google Inc. Method and apparatus to avoid network congestion
US9189303B2 (en) 2006-08-10 2015-11-17 International Business Machines Corporation Shadow queues for recovery of messages
US8189476B1 (en) 2007-08-20 2012-05-29 F5 Networks, Inc. Dynamic trunk distribution on egress
US8719398B2 (en) * 2008-02-29 2014-05-06 Microsoft Corporation Network performance monitor
US7787379B2 (en) * 2008-06-03 2010-08-31 Cisco Technology, Inc. Integrated flow control
US9270595B2 (en) 2008-10-10 2016-02-23 Hewlett Packard Enterprise Development Lp Method and system for controlling a delay of packet processing using loop paths
US20120327779A1 (en) 2009-06-12 2012-12-27 Cygnus Broadband, Inc. Systems and methods for congestion detection for use in prioritizing and scheduling packets in a communication network
WO2010144833A2 (en) 2009-06-12 2010-12-16 Cygnus Broadband Systems and methods for intelligent discard in a communication network
US8340099B2 (en) * 2009-07-15 2012-12-25 Microsoft Corporation Control of background data transfers
JP5365415B2 (ja) 2009-08-25 2013-12-11 富士通株式会社 パケット中継装置および輻輳制御方法
US8767752B1 (en) 2010-05-03 2014-07-01 Pluribus Networks, Inc. Method and system for resource coherency and analysis in a network
IT1400169B1 (it) 2010-05-24 2013-05-17 Selex Communications Spa Procedimento e sistema di controllo di banda per il rispetto di una predeterminata qualità di servizio presso un punto di accesso ad una rete di comunicazioni operante una aggregazione di flussi di traffico eterogenei.
US8873385B2 (en) * 2010-12-07 2014-10-28 Microsoft Corporation Incast congestion control in a network
US8787378B2 (en) * 2010-12-28 2014-07-22 The Chinese University Of Hong Kong Systems and methods to improve performance of TCP over large bandwidth-delay-product networks
US9380005B2 (en) 2011-11-03 2016-06-28 Cisco Technology, Inc. Reliable transportation of a stream of packets using packet replication
US10292066B2 (en) * 2011-11-04 2019-05-14 Cisco Technology, Inc. System and method of modifying congestion control based on mobile system information
US8797877B1 (en) 2012-08-09 2014-08-05 Juniper Networks, Inc. Virtual output queue allocation using dynamic drain bandwidth
US9253121B2 (en) 2012-12-31 2016-02-02 Broadcom Corporation Universal network interface controller

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546106A (zh) * 2011-12-28 2012-07-04 南京邮电大学 面向卫星网络的多路径并行传输方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ANDREW S.TANENBAUM等: "《COMPUTER NETWORKS》", 31 March 2012 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11477129B2 (en) * 2018-06-29 2022-10-18 Huawei Technologies Co., Ltd. Data transmission method, computing device, network device, and data transmission system
US20220337528A1 (en) * 2018-06-29 2022-10-20 Huawei Technologies Co., Ltd. Data Transmission Method, Computing Device, Network Device, and Data Transmission System
US11799790B2 (en) * 2018-06-29 2023-10-24 Huawei Techologies Co., Ltd. Data transmission method, computing device, network device, and data transmission system
CN114244852A (zh) * 2021-11-09 2022-03-25 北京罗克维尔斯科技有限公司 数据传输方法、装置、设备及存储介质
CN114244852B (zh) * 2021-11-09 2024-01-30 北京罗克维尔斯科技有限公司 数据传输方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN105052095B (zh) 2018-11-02
US20140269294A1 (en) 2014-09-18
EP2974183B1 (en) 2019-08-14
WO2014158246A1 (en) 2014-10-02
EP2974183A1 (en) 2016-01-20
US9628406B2 (en) 2017-04-18

Similar Documents

Publication Publication Date Title
CN105052095A (zh) 交换机内部流控制
CN105191233A (zh) 交换机内部传输协议
US11985060B2 (en) Dragonfly routing with incomplete group connectivity
US8223650B2 (en) Express virtual channels in a packet switched on-chip interconnection network
US6859435B1 (en) Prevention of deadlocks and livelocks in lossless, backpressured packet networks
CN104854831B (zh) 基于输入队列的设备的输出队列延迟行为
US9699095B2 (en) Adaptive allocation of headroom in network devices
CN104813620B (zh) 一种结构负载平衡方法和设备
US11349761B2 (en) Cost effective congestion isolation for lossless ethernet
CN102090030A (zh) 通过网络传输数据的方法
US20080298397A1 (en) Communication fabric bandwidth management
Zahavi et al. Distributed adaptive routing for big-data applications running on data center networks
US10044632B2 (en) Systems and methods for adaptive credit-based flow
EP3485618B1 (en) Device and method for managing end-to-end connections
US20150131446A1 (en) Enabling virtual queues with qos and pfc support and strict priority scheduling
US11677673B1 (en) Low latency flow control in data centers
US11563687B2 (en) Controlling distributed buffers in a network to manage data packets
WO2018082788A1 (en) Efficient handling of loss and/or delay sensitive sporadic data traffic
US10757038B2 (en) Reservation-based switching devices
CN110300069A (zh) 数据传输方法、优化装置及系统
Zhao et al. A New TCP Specialized for Data Center
WO2012056335A1 (en) Method and system for transmitting data packets in a network

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant