CN106062726B - 用于数据中心交换机的流感知缓冲区管理 - Google Patents

用于数据中心交换机的流感知缓冲区管理 Download PDF

Info

Publication number
CN106062726B
CN106062726B CN201580011696.0A CN201580011696A CN106062726B CN 106062726 B CN106062726 B CN 106062726B CN 201580011696 A CN201580011696 A CN 201580011696A CN 106062726 B CN106062726 B CN 106062726B
Authority
CN
China
Prior art keywords
traffic
type
buffer
flow control
threshold
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.)
Active
Application number
CN201580011696.0A
Other languages
English (en)
Other versions
CN106062726A (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 CN106062726A publication Critical patent/CN106062726A/zh
Application granted granted Critical
Publication of CN106062726B publication Critical patent/CN106062726B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/29Flow control; Congestion control using a combination of thresholds
    • 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/31Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits
    • 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/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6215Individual queue per QOS, rate or priority
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3808Network interface controller

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

提供了实现流感知的缓冲区管理的系统和方法。该方法包括:在缓冲区的队列中存储第一类型的业务,在缓冲区的队列中存储第二类型的业务,其中第一类型的业务与第二类型的业务相比对延迟较不敏感,以及当第一类型的业务的量达到或超过第一阈值时,实现对第一类型的业务的流控制以减慢第一类型的业务的流进入缓冲区。流控制可以通过分组标记或通过丢弃分组来被实现。这种方法在与网络交换机中的大象流和鼠标流相关的方面有独特的实用性。

Description

用于数据中心交换机的流感知缓冲区管理
技术领域
本公开涉及数据通信以及通过电子数据网络的交换单元的业务流。
背景技术
近几年,除了其它方面以外,数据中心通过合并之前在企业范围内实现的大规模计算机功能以及通过启用云计算服务来转变计算服务。然而,随着数据中心使用的日益增加,运行这些数据中心的成本也日益增加。同时,消费者对不断提高带宽和处理能力的需求也在持续增长。因此,数据中心运营商尤其注重提供数据中心服务的成本,并且继续寻找控制这些成本和维持消费者满意度的方法。
研究表明,针对穿过数据中心的数据通信业务,至少可以定义两种主要类别或类型的的业务流。第一类别或类型的业务流与诸如搜索请求、社交网络和零售应用之类的服务相关联,这种服务倾向于产生穿过数据中心的大量“小的”请求和回应。这种第一类型的业务通常在所属领域被称为“鼠标”业务或“鼠标流”,并且它以对每一个短请求/响应流需要低延迟的应用为特征。第二类别或类型的业务流与诸如备份、复制、媒体流、数据挖掘等等之类的服务相关联,这种服务倾向于产生穿过数据中心的“大的”流,并且常提供数据中心内内部数据结构的持续更新。这种第二类型的业务通常在所属领域被称为“大象”业务或“大象流”,并且它以可以处理更高延迟但一般依靠更高吞吐量的应用为特征。重要的是,大象流“霸占”给定数据中心的带宽(特别是数据中心中被选择的交换单元的缓冲区资源)并不罕见。更具体地,数据中心内的交换单元包括存储器,该存储器用于与确定哪里应当发送业务(比如,确定传入的数据应从交换单元的哪一个端口被发送)相联系地缓冲传入的业务。但是,当由于已经接收的数据比可以从缓冲区适当发送或移除的数据多而导致缓冲区填满时,这种交换单元处新传入的业务通常会被丢失或丢弃,导致整个处理时间更长,对于端点进程,尤其是依靠鼠标流的端点进程,该更长的处理时间尤其对用户体验乃至整个客户满意度不利。
附图说明
图1描绘了包含可以根据本文所描述的示例实施例配置的机架式交换机的顶部的示例数据中心结构;
图2描绘了通过根据本文所描述的示例实施例被配置的交换机的使用传输控制协议(TCP)/互联网协议(IP)的数据通信;
图3描绘了包含缓冲区的交换机,该缓冲区可以被监控来实现根据示例实施例的数据业务控制机制。
图4是描绘了实现根据本文所描述的示例实施例的缓冲区管理的示例操作的流程图。
图5是描绘了实现根据本文所描述的示例实施例的缓冲区管理的示例操作的另一流程图。
图6描绘了根据本文所描述的示例实施例操作的交换机的一种可能实施方案。
具体实施方式
概览
本公开提供了可以实现流感知的缓冲管理系统和方法。该方法包括:在缓冲区的队列中存储第一类型的业务,在缓冲区的队列中存储第二类型的业务,其中第一类型的业务与第二类型的业务相比对延迟较不敏感,以及当第一类型的业务的量达到或超过第一阈值时,实现对第一类型的业务的流控制以减慢第一类型的业务的流进入缓冲区。流控制可以通过分组标记或通过丢弃分组来被实现。这种方法在与网络交换机中的大象流和鼠标流相关的方面有独特的实用性。
示例实施例
图1描绘了包含可以根据本文所描述的实施例被配置的机架式交换机的顶部的数据中心结构。如图1所示,数据中心100例如可以与数据中心边缘路由器110通信。除了其他可能的连接可能之外,数据中心边缘路由器110可以与在同一个数据中心的其他路由器(未示出)、其他数据中心(未示出)或云计算环境(未示出)通信。数据中心边缘路由器110可以与数据中心边缘(其一般也可以被当作聚合或行的末端)交换机120通信,在该具体实现方式中,边缘交换机120负责在多个服务器170中通过机架式交换机的顶部150交换数据通信流,其中,机架式交换机的顶部150控制去往和来自被布置在多个机架180上的多个服务器170的流。如图所示,每个机架180例如包括机架式交换机的顶部150(a)、150(b)、150(c),其后被表示为150。在该具体的实现方式中,机架式交换机的顶部150负责确保到达的来自数据中心边缘交换机120的数据通信被路由到给定机架180中合适的服务器170。同样的,在该具体的实现方式中,机架式交换机的顶部150负责确保到达的来自给定机架180中给定服务器170的数据通信被传送到例如同一个机架180内的其他服务器或者在数据中心120中的其他服务器,或者被传送到数据中心边缘路由器110。
如将在以下更详细地解释的,机架式交换机的顶部150包括缓冲区管理逻辑300,该逻辑被配置来更好地控制被缓冲在机架式交换机的顶部150的缓冲区中的数据的量和类型,以针对不同形式的数据通信(例如,鼠标流和大象流)提供改善的服务质量。虽然该描述着重于机架式交换机的顶部,所属领域技术人员将理解本文所描述的技术可应用于包含数据中心边缘交换机120或者路由器(包括数据中心边缘路由器110)的任何网络交换单元。为了描述的目的,机架式交换机的顶部此后将被简称为“交换机”150。
在许多情况下,以上提到的数据通信用若干协议中的任何一种被实施。在本公开的上下文中,传输控制协议(TCP)被用来确保两个给定进程间的可靠连接。也就是说,结合互联网协议(IP)一起使用TCP,以通过网络连接发送和接收以分组形式(预定的字节组)的数据通信,尤其是两个给定的端点进程间(例如,在用户计算机上运行的正从网页服务器(例如,数据中心100中示出的服务器170中的一个)请求信息的浏览器)的数据通信。
具体来说,参照图2,在计算机(其可以是一个服务器)上运行的进程210使用TCP220和IP 230来将数据通信发送到进程260(也在计算机上运行),或从进程260接收数据通信,其中,进程260也使用TCP 250和IP 240,除了其他组件外,以上操作都通过交换机150。如图2中进一步所表明,TCP 220、250实现两个进程210、260间的可靠连接,而所示的IP连接由不可靠的IP数据报组成。
更具体地,TCP提供面向连接的、可靠的字节流服务(而IP不提供)。术语面向连接的意思是使用TCP的两个应用(例如,进程210、260)在它们交换数据之前与彼此建立TCP连接。实现可靠性是因为TCP为被发送的每个分组分配序列号,并且针对被这样接收的每个分组预期来自接收TCP实例的肯定的确认(ACK)。如果ACK没有在超时时间间隔或周期内被接收,数据将被再次发送并且数据传输速率可能被发送者TCP实例降低。当片段乱序地到达时,接收TCP实例使用序列号来重排片段并且删除重复的片段。
当接收TCP实例将ACK发送回TCP发送者实例时,还向TCP发送者实例指示除了最后接收到的TCP片段之外,在不在其内部缓冲区引起超限或溢出的情况下它还可以接收的字节数。
换句话说,TCP被配置来实现针对数据通信的流控制。仍然参考图2,可以看出如果一个或多个IP数据报没有在例如TCP 250处被接收,则TCP 250不会向TCP 220发送回针对丢失的数据报的ACK。值得注意的是,交换机150本身可能是造成没能向IP 240适当地传送给定IP数据报的原因,它导致了TCP 250没能接收到TCP片段使得TCP 250没能向TCP 220返回ACK的情形。
交换机150没能传送给定IP数据报的一个原因是交换机150内的缓冲区可能被装满,使得在交换机150处出现的任何新业务由于在其缓冲器内已没有多余的空间而被丢弃。处理缓冲区溢出以及因此导致的接下来的分组丢失的一种方法是增加缓冲区的大小。然而,这种方法不仅是处理缓冲区溢出的更高成本的解决方案,而且这种解决方案可能实际上并不能处理根本问题,该根本问题与被交换机150处理的业务类型关系更紧密,而不是被交换机150处理的整体业务的多少。更具体地,并且如接下来将更详细地解释的,通过跟踪在给定时刻处与鼠标流相比大象流在缓冲区中的范围,有可能以减少甚至消除TCP超时(尤其是鼠标流的TCP超时)的方式实现(即,引起)对大象流的流控制,其中TCP超时由TCP接收实例处未能接收TCP片段引起。如图2所示,缓冲区管理逻辑300被提供来管理交换机150的缓冲区,以将导致丢失TCP片段并导致TCP超时的IP数据报的丢弃减到最少。
根据本文所描述实施例的流控制可以通过有目的的丢弃一个或多个分组或者通过适当地标记一个或多个分组来实现。在TCP连接中无论分组是被非故意地还是被故意地丢弃,其结果是一样的:TCP连接的发送侧不会接收到ACK,因而可能降低传输速率,并且至少可能要重新发送其ACK没有被接收到的片段。
标记例如可以通过使用显式拥塞通知(ECN)来实现。ECN是互联网协议和TCP的扩展,它允许端到端网络拥塞通知而不会丢失分组。如果按照本文描述的实施例被配置,ECN感知的网络设备(比如交换机150)可以在IP分组头部设置标记而不是丢掉分组,以便用信号通知即将发生的拥塞。IP分组的接收者将拥塞指示回送给发送者TCP实例,这会降低传输速率,就像其检测到丢失的分组。
所属领域技术人员将理解的是,TCP被设计以保持提高其吞吐量,除非收到反馈。该反馈既不是分组丢失也不是ECN标记。它确保TCP持续地评估可用带宽并使用它。如果TCP什么都不做,大象流将填满交换机缓冲区,因为那是TCP操作的自然效应。
现在参考图3,它描述了包含可以被监控以实现本文所描述的业务控制机制的缓冲区350的交换机150。也就是说,本文所描述的方法使得流控制在其可能以别的方式被执行之前被执行。
如图所示,交换机150包括多个人站端口310、多个出站端口320、缓冲区350和缓冲管理逻辑300。入站端口310被配置来接收传入的例如以IP数据报或分组的形式的数据通信业务,其可以被进一步解构成多个字节。这种字节接下来被暂时地存储在缓冲区350直到交换机150通过多个出站端口中的一个或多个将这些字节发送出去。
当每个传入字节被存储在缓冲区350中时,缓冲区字节计数器360增加。并且,当每个字节被从缓冲区350移除时,缓冲区字节计数器360减小。照此,缓冲区字节计数器360在任何时刻都维持存储在缓冲区350中的字节数的最新值。
图3还示出了大象流陷阱380。大象流陷阱380被配置为确定给定的传入数据通信流是否可以被指定为大象流,即,与诸如备份、复制或数据挖掘之类的服务相关联的流。换言之,大象流陷阱380被配置为区分大象流和鼠标流。可以联系本文所描述的方法实现多种大象流陷阱的设计。一种可能的设计使用布隆过滤器。另一种设计将流散列到表格中并且对大于某些持续时间的空闲周期进行计数。另一种可能的设计根据采样的时间窗中分组的数量来定义大象流。在另一种可能的实现方案中,大象流陷阱380在入站端口310处运行,并且当大象流被检测到时,大象流陷阱生成指示,该指示表示在适当的时候例如经由描述符块被传递到出站端口320的大象流。大象陷阱380的具体设计并不关键,只要设计可以有效地识别大象流,和/或区分大象流和鼠标流。
通过指定给定的数据通信流作为大象流(使用大象流陷阱380),维持大象流字节计数器370因此是可能的。就像缓冲区字节计数器360一样,大象流字节计数器370保持对字节的最新的字节计数,但在此情况下,字节计数与任意时刻被大象流陷阱380标识并被存储在缓冲区350处的大象流相关联。
由于交换机150的缓冲区350经常会被与大象流相关的业务(字节)填满(因为,这种流本质上字节更密集),缓冲区管理逻辑300被采用,以通过某种控制回路的方式来更好地控制大象流,比如,通过在大象流填满缓冲区350而不留任何空间鼠标流(如所记录的,其对延迟更敏感)之前优先地丢弃或标记大象流的分组来更好地控制大象流。
更具体地,一旦被大象流消耗的缓冲区的量超过标记阈值,可以在所有离开的属于大象流的分组上发出拥塞反馈(例如,ECN)。如果被大象流消耗的缓冲区的量超过丢弃阈值(例如,大于标记阈值),到达的属于大象流的分组被丢弃。在一种实施方案中,分组的标记和/或丢弃依概率被执行。
现在参照图4和图5来更详细地描述这种丢弃,图4描述了由交换机与缓冲区管理逻辑300联合执行的一系列操作400。在410处,数据通信业务在比如交换机150处被接收。在412处,确定所接收的数据通信业务是否应当被认为是大象流(与鼠标流相反地)。可选地,表明给定流是大象流的指示符可以被存储在与流相关联的分组描述符内。在414处,与数据通信业务相关联的字节被存储在交换机150的缓冲区350内。值得注意的是,无论此时业务被当作大象流还是鼠标流,与业务相关联的字节被一同存储在同一缓冲区和同一逻辑队列内,使得分组被接收顺序将与它们离开交换机的顺序相同。在416处,与大象流相关的字节数通过使用比如计数器370来被跟踪。通过使用此信息,在418处,缓冲区管理逻辑300根据预定的标准实现对大象流的速率控制。在一种可能的实现方式中,如上所提,预定的标准可以是计数器阈值,该计数器阈值使离开交换机150的分组被标记(例如,使用ECN),或使随后接收的分组在它们被存储在缓冲区前被丢弃。
图5示出了可被例如缓冲区管理逻辑300执行的一系列操作500。操作500例如可以被认为是图4的操作418的更详细的实现。如图5所示,在510处确定大象流的字节计数器是否大于第一(标记)阈值。如果不是,操作510被重复。操作500被执行的频率与计数器中的计数器值改变(即,字节/分组到达和离开交换机150)的频率一样。也就是说,每次计数器360或370改变了值,除了一系列操作500中的其他可能操作外,操作510会被执行。可替代地,频率可以视情况被配置成每隔10μs、100μs一次等。
如果在510处大象流字节计数器比第一阈值大,接下来在512处,针对速率或流控制,离开缓冲区的分组(或字节)被标记。ECN例如可以被用来标记分组。在一种实施方案中,标记是依概率被执行的,使得例如每100个分组里的一个分组被标记(与之相反的是,例如,标记每个分组)。此外,随着大象流字节计数器中的计数值越来越大于第一阈值,标记被执行的速率也可以被提高。也就是说,如果大象流字节计数器中的计数值比另一阈值大,则用每100个分组里标记两个分组来代替每100个分组里标记一个分组。以这种方法,动态的和加强的大象流限流可以在这些大象流将填满缓冲区时(留给鼠标流的空间很小乃至没有)被实现。
在514处,确定大象流字节计数器中的值是否大于第二(例如,丢弃)阈值。如果不是,则操作510被重复。如果大象流字节计数器的值大于第二(例如,丢弃)阈值,则在516处分组(即,与大象流相关联的分组和相关字节)被丢弃,使得它们根本不被存储到缓冲区。在一种实施方案中,丢弃依概率被执行,使得例如每100个分组里丢弃一个分组(与之相反的是,例如,丢弃每个分组)。此外,随着大象流字节计数器中的计数值越来越大于第二阈值,丢弃被执行的速率也可以被提高。也就是说,如果大象流字节计数器大于第三或第四等丢弃阈值,则每100个分组里丢弃两个、或三个、或更多个分组(或者甚至丢弃所有分组)。以这种方法,加强的大象流限流可以在这些大象流将填满缓冲区时(留给鼠标流的空间很小乃至没有)被实现。
应指出的是,本文所描述的若干阈值(即,标记和丢弃中的每一者的一个或多个)可以作为用户可配置的参数。以这种方式,数据中心管理者可以监控穿过给定数据中心的数据通信业务类型并且然后相应地设置阈值和任何相关的概率。
应注意的是,每当ECN不可用或者不可被实现时,例如,本文所描述的方法可以仅依靠被强行丢弃的分组来完成对已存储在缓冲区350中的大象流的期望的限制。
通过以上述方式操作交换机,无需合并到数据中心交换机设计中的大缓冲区就可以避免TCP超时。
此外,当给定流被分类为大象流或鼠标流时,以所描述的方式配置的交换机不会遇到乱序传送的问题,因为队列中的变化不需被实现。也就是说,流被放置在同一缓冲区和同一队列中。不需为鼠标流和大象留提供单独的队列。此外,因为通过有效地控制大象流维持了充足的缓冲区空间量,鼠标流的延迟可以被处理。
最后,如所指示的,本文所描述的缓冲区流控制方法基本上仅依靠两个计数器,即总的缓冲区字节计数器和大象流字节计数器。因此,与已包含总的缓冲区字节计数器的缓冲区相比,本文所描述的实施方案不会向交换机设计增加显著的复杂性或开销。
所描述的方法的附带利益是它可以帮助避免TCP的“慢启动”。TCP的慢启动影响鼠标流,因为这种流涉及多次往返延迟来完成给定传送。用这种方法,鼠标流可以更好地被处理,因为缓冲区维持了充足的空间。相应的,TCP可以全速开启(在给定窗内)来更快的完成鼠标流。
虽然以上描述针对监控交换机缓冲区内的大象流,所属领域的技术人员将理解的是,同样的技术可以被应用于鼠标流或可以在多个不同类型的流中被区分的任何其他数据通信流。换句话说,交换机可以被配置为使用一个或多个标记阈值和/或一个或多个丢弃阈值来控制鼠标流(或其他流)的分组/字节,并且标记和/或丢弃发生的程度可以依概率被应用。
现在参照图6,图6示出了被配置为实现根据本文所描述的技术的流感知缓冲区管理的交换机150的示例框图。交换机150包括网络接口610、处理器620和存储器630。网络接口610被配置为接收用于存储到缓冲区350的输入数据,并且还被配置为从缓冲区350输出数据。网络接口610包括多个端口(未示出),在该多个端口处传人的分组被接收并且和传出的分组被发送。
处理器620可以是被配置来运行用来执行本文描述的各种操作和任务的程序逻辑指令的微处理器或微控制器。例如,处理器620可以运行存储在存储器630中的缓冲区管理逻辑300(例如,如软件)以执行本文描述的缓冲区管理技术。存储器630可以包括只读存储器(ROM)、随机存取存储器(RAM)、磁性存储介质、光存储介质、闪存、电的或其他物理/有形(非暂时性)的存储器。
处理器620的功能可以被在一个或多个非暂时性有形计算机可读介质中编码的逻辑(例如,诸如专用集成电路、数字信号处理器指令、由处理器执行的软件之类的嵌入式逻辑等)实施,其中存储器630存储本文所描述的操作所用的数据并且存储被运行以执行本文所描述的操作的软件或处理器可执行指令。
缓冲区管理逻辑300可以采用各种形式中的任何一种形式,以便被编码在一个或多个非暂时性有形计算机可读存储介质或存储设备(例如,存储器630)中以供执行,其例如为固定逻辑或可编程逻辑(例如,由处理器执行的软件/计算机指令)。在一些实施例中,处理器620是包含固定数字逻辑、可编程逻辑或其组合的专用集成电路(ASIC)。例如,处理器620可以用固定或可编程数字逻辑集成电路中的数字逻辑门阵列来实现,其中数字逻辑门被配置为执行缓冲区管理逻辑300的指令。在另一种形式中,缓冲区管理逻辑300可以在编码有包含计算机可执行指令的软件的一个或多个有形计算机可读存储介质中被实现,其中该计算机可执行指令在被执行时可操作来执行本文描述的操作。
总而言之,本文描述的实施例是针对用于实现流感知缓冲区管理的系统和方法。该方法包括:在缓冲区的队列中存储第一类型的业务,在缓冲区的队列中存储第二类型的业务,其中第一类型的业务与第二类型的业务相比对延迟较不敏感,以及当第一类型的业务的量达到或超过第一阈值时,实现对第一类型的业务的流控制以减慢第一类型的业务的流进入缓冲区。流控制可以通过分组标记或通过丢弃分组来被实现。这种方法在与网络交换机中的大象流和鼠标流相关的方面有独特的实用性。
虽然本文示出和描述的装置、系统和方法在一个或多个具体示例中被实现,然而它并不旨在被限制于所示细节,因为可以在其中进行各种不同的修改和结构改变而不背离装置、系统和方法的范围并在权利要求的等同物的范围内。数据中心可以表示支持实现所展示的服务传递能力的任何位置。提供商边缘路由节点表示被配置为接收、存储或分布所展示信息的任何系统以及被配置为根据同样的信息进行路由的任何系统。相应的,所附权利要求被广义地并且以与以下陈述的装置、系统和方法的范围一致的方式解释。

Claims (15)

1.一种方法,包括:
在缓冲区的队列中存储第一类型的业务;
在所述缓冲区的所述队列中存储第二类型的业务,其中所述第一类型的业务与所述第二类型的业务相比对延迟较不敏感;
维持指示存储在所述缓冲区内的字节总数的第一计数器,以及维持指示存储在所述缓冲区内的属于所述第一类型的业务的字节总数的第二计数器,其中,所述第二计数器响应于如下指示:该指示由被配置为检测所述第一类型的业务的陷阱生成并经由描述符块传递;以及
当基于所述第二计数器的值的所述第一类型的业务的量达到或超过第一阈值时,实现对所述第一类型的业务的流控制以减慢所述第一类型的业务的流进入所述缓冲区,
其中,实现对所述第一类型的业务的流控制包括:当所述第一类型的业务的量达到或超过所述第一阈值时根据第一概率实现所述第一类型的业务的流控制,以及当所述第一类型的业务的量达到或超过第二阈值时根据比所述第一概率高的第二概率实现所述第一类型的业务的流控制,并且
其中,实现流控制被执行的频率是独立于分组进入和离开所述缓冲区的时间来设置的。
2.如权利要求1所述的方法,其中,实现所述第一类型的业务的流控制包括标记与所述第一类型的业务相关联的分组。
3.如权利要求2所述的方法,其中,标记包括根据显式拥塞通知(ECN)来标记与所述第一类型的业务相关联的分组。
4.如权利要求1所述的方法,其中,实现所述第一类型的业务的流控制包括丢弃与所述第一类型的业务相关联的分组。
5.如权利要求1所述的方法,其中,实现所述第一类型的业务的流控制包括:当所述第一类型的业务的量达到或超过所述第一阈值时以第一预定方式实现所述第一类型的业务的流控制,以及当所述第一类型的业务的量达到或超过第三阈值时以第二预定方式实现所述第一类型的业务的流控制。
6.如权利要求5所述的方法,其中,所述第一预定方式包括标记分组,所述第二预定方式包括丢弃分组。
7.一种装置,包括:
被配置为通过网络通信的网络接口;
包含缓冲区的存储器;以及
与所述网络接口和所述存储器以通信方式耦接的处理器,
其中,所述处理器被配置为:
在所述缓冲区的队列中存储通过所述网络接口接收的第一类型的业务;
在所述缓冲区的所述队列中存储通过所述网络接口接收的第二类型的业务,其中所述第一类型的业务与所述第二类型的业务相比对延迟较不敏感;
维持指示存储在所述缓冲区内的字节总数的第一计数器,以及维持指示存储在所述缓冲区内的属于所述第一类型的业务的字节总数的第二计数器,其中,所述第二计数器响应于如下指示:该指示由被配置为检测所述第一类型的业务的陷阱生成并经由描述符块传递;以及
当所述第一类型的业务的量达到或超过第一阈值时,通过以下方式实现对所述第一类型的业务的流控制以减慢所述第一类型的业务流的进入所述缓冲区:当所述第一类型的业务的量达到或超过所述第一阈值时根据第一概率实现所述第一类型的业务的流控制,以及当所述第一类型的业务的量达到或超过第二阈值时根据比所述第一概率高的第二概率实现所述第一类型的业务的流控制,并且
其中,实现流控制被执行的频率是独立于分组进入和离开所述缓冲区的时间来设置的。
8.如权利要求7所述的装置,其中,所述处理器还被配置为:
通过标记与所述第一类型的业务相关联的分组来实现所述第一类型的业务的流控制。
9.如权利要求8所述的装置,其中,所述处理器还被配置为:
根据显式拥塞通知(ECN)来标记与所述第一类型的业务相关联的分组。
10.如权利要求7所述的装置,其中,所述处理器还被配置为:
通过丢弃与所述第一类型的业务相关联的分组来实现所述第一类型的业务的流控制。
11.如权利要求7所述的装置,其中,所述处理器还被配置为:
通过以下方式实现所述第一类型的业务的流控制:当所述第一类型的业务的量达到或超过所述第一阈值时以第一预定方式实现所述第一类型的业务的流控制,以及当所述第一类型的业务的量达到或超过第三阈值时以第二预定方式实现所述第一类型的业务的流控制。
12.如权利要求11所述的装置,其中,所述第一预定方式包括标记分组,所述第二预定方式包括丢弃分组。
13.一个或多个用包括计算机可执行指令的软件编码的计算机可读存储介质,当所述软件被执行时,可操作以:
在缓冲区的队列中存储第一类型的业务;
在所述缓冲区的所述队列中存储第二类型的业务,其中所述第一类型的业务与所述第二类型的业务相比对延迟较不敏感;
维持指示存储在所述缓冲区内的字节总数的第一计数器,以及维持指示存储在所述缓冲区内的属于所述第一类型的业务的字节总数的第二计数器,其中,所述第二计数器响应于如下指示:该指示由被配置为检测所述第一类型的业务的陷阱生成并经由描述符块传递;以及
当所述第一类型的业务的量达到或超过第一阈值时,通过以下方式实现对所述第一类型的业务的流控制以减慢所述第一类型的业务的流进入所述缓冲区:当所述第一类型的业务的量达到或超过所述第一阈值时根据第一概率实现所述第一类型的业务的流控制,以及当所述第一类型的业务的量达到或超过第二阈值时根据比所述第一概率高的第二概率实现所述第一类型的业务的流控制,并且
其中,实现流控制被执行的频率是独立于分组进入和离开所述缓冲区的时间来设置的。
14.如权利要求13所述的计算机可读存储介质,其中,所述指令还可操作以:
通过以下方式实现所述第一类型的业务的流控制:当所述第一类型的业务的量达到或超过所述第一阈值时以第一预定方式实现所述第一类型的业务的流控制,以及当所述第一类型的业务的量达到或超过第三阈值时以第二预定方式实现所述第一类型的业务的流控制。
15.如权利要求14所述的计算机可读存储介质,其中,所述第一预定方式包括标记分组,所述第二预定方式包括丢弃分组。
CN201580011696.0A 2014-03-21 2015-03-10 用于数据中心交换机的流感知缓冲区管理 Active CN106062726B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/221,373 2014-03-21
US14/221,373 US9705808B2 (en) 2014-03-21 2014-03-21 Flow aware buffer management for data center switches
PCT/US2015/019620 WO2015142568A1 (en) 2014-03-21 2015-03-10 Flow aware buffer management for data center switches

Publications (2)

Publication Number Publication Date
CN106062726A CN106062726A (zh) 2016-10-26
CN106062726B true CN106062726B (zh) 2020-10-13

Family

ID=52727437

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580011696.0A Active CN106062726B (zh) 2014-03-21 2015-03-10 用于数据中心交换机的流感知缓冲区管理

Country Status (4)

Country Link
US (1) US9705808B2 (zh)
EP (1) EP3120253B1 (zh)
CN (1) CN106062726B (zh)
WO (1) WO2015142568A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10069763B2 (en) * 2016-05-10 2018-09-04 Netscout Systems, Inc. Method to establish a non-disruptive communications path between multiple devices
US10439952B1 (en) 2016-07-07 2019-10-08 Cisco Technology, Inc. Providing source fairness on congested queues using random noise
US10574546B2 (en) 2016-09-27 2020-02-25 Mellanox Technologies Tlv Ltd. Network monitoring using selective mirroring
US10498612B2 (en) * 2016-09-27 2019-12-03 Mellanox Technologies Tlv Ltd. Multi-stage selective mirroring
US10476803B2 (en) * 2017-12-18 2019-11-12 Mellanox Technologies, Ltd. Elephant flow detection in network access
US10560391B2 (en) 2018-01-18 2020-02-11 Cisco Technology, Inc. Adaptive acknowledgement control
US10462060B2 (en) 2018-02-14 2019-10-29 Mellanox Technologies, Ltd. Ability to detect unlimited elephant flows
CN108391289B (zh) * 2018-05-31 2021-05-18 京信通信系统(中国)有限公司 一种拥塞控制方法和基站
US10749803B1 (en) * 2018-06-07 2020-08-18 Marvell Israel (M.I.S.L) Ltd. Enhanced congestion avoidance in network devices
KR102128015B1 (ko) * 2018-11-20 2020-07-09 울산과학기술원 네트워크 스위칭 장치 및 이를 이용한 마킹 수행 방법
US11902092B2 (en) 2019-02-15 2024-02-13 Samsung Electronics Co., Ltd. Systems and methods for latency-aware edge computing
SG11202107970QA (en) 2019-02-22 2021-08-30 Huawei Tech Co Ltd Early termination for optical flow refinement
EP3934184A4 (en) * 2019-04-04 2022-04-20 Huawei Technologies Co., Ltd. DATA PACKET MARKING METHOD AND DEVICE, DATA TRANSMISSION SYSTEM
US11575609B2 (en) * 2019-07-19 2023-02-07 Intel Corporation Techniques for congestion management in a network
CN110868359B (zh) * 2019-11-15 2023-03-24 中国人民解放军国防科技大学 一种网络拥塞控制方法
CN111865812B (zh) * 2020-07-06 2023-04-07 北京合众方达科技有限公司 一种分布式网络中sdn支撑高性能业务混传的方法
CN113765812A (zh) * 2020-09-16 2021-12-07 北京京东尚科信息技术有限公司 一种标记报文的方法和装置
TWI763261B (zh) * 2021-01-19 2022-05-01 瑞昱半導體股份有限公司 數據流分類裝置
US11888747B2 (en) * 2022-01-12 2024-01-30 VMware LLC Probabilistic filters for use in network forwarding and services
CN117424864B (zh) * 2023-12-18 2024-02-27 南京奕泰微电子技术有限公司 一种用于交换机的队列数据管理系统及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6788697B1 (en) * 1999-12-06 2004-09-07 Nortel Networks Limited Buffer management scheme employing dynamic thresholds
US20040223452A1 (en) * 2003-05-06 2004-11-11 Santos Jose Renato Process for detecting network congestion
US20050286488A1 (en) * 1998-06-05 2005-12-29 British Telecommunications Public Limited Company Communications network
US20070237082A1 (en) * 2006-03-31 2007-10-11 Woojong Han Techniques for sharing connection queues and performing congestion management
CN103222242A (zh) * 2010-11-18 2013-07-24 思科技术公司 用于避免线端阻塞的动态流重新分布

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6842802B2 (en) * 2001-11-30 2005-01-11 Aftg-Tg, L.L.C. Programmatic time-gap defect correction apparatus and method
US7499437B2 (en) * 2004-09-13 2009-03-03 Alcatel-Lucent Usa Inc. Wireless communications system employing a network active set formed from base stations operable as primary and secondary agents
US7944829B2 (en) * 2005-03-28 2011-05-17 Netlogic Microsystems, Inc. Mechanism for managing access to resources in a heterogeneous data redirection device
CA2695010A1 (en) * 2007-07-06 2009-01-15 Telefonaktiebolaget L M Ericsson (Publ) Congestion control in a transmission node
US10158538B2 (en) * 2013-12-09 2018-12-18 Nicira, Inc. Reporting elephant flows to a network controller

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050286488A1 (en) * 1998-06-05 2005-12-29 British Telecommunications Public Limited Company Communications network
US6788697B1 (en) * 1999-12-06 2004-09-07 Nortel Networks Limited Buffer management scheme employing dynamic thresholds
US20040223452A1 (en) * 2003-05-06 2004-11-11 Santos Jose Renato Process for detecting network congestion
US20070237082A1 (en) * 2006-03-31 2007-10-11 Woojong Han Techniques for sharing connection queues and performing congestion management
CN103222242A (zh) * 2010-11-18 2013-07-24 思科技术公司 用于避免线端阻塞的动态流重新分布

Also Published As

Publication number Publication date
WO2015142568A1 (en) 2015-09-24
CN106062726A (zh) 2016-10-26
EP3120253B1 (en) 2020-02-12
US9705808B2 (en) 2017-07-11
EP3120253A1 (en) 2017-01-25
US20150271081A1 (en) 2015-09-24

Similar Documents

Publication Publication Date Title
CN106062726B (zh) 用于数据中心交换机的流感知缓冲区管理
EP3516833B1 (en) Methods, systems, and computer readable media for discarding messages during a congestion event
CN114145001B (zh) 速率优化的拥塞管理
US10218620B2 (en) Methods and nodes for congestion control
EP2979407B1 (en) Re-marking of packets for queue control
CN110661723B (zh) 一种数据传输方法、计算设备、网络设备及数据传输系统
US8437252B2 (en) Intelligent congestion feedback apparatus and method
WO2018210117A1 (zh) 一种拥塞控制方法、网络设备及其网络接口控制器
JP5258938B2 (ja) 通信装置
US20140043994A1 (en) Providing Feedback To Media Senders Over Real Time Transport Protocol (RTP)
US20070226375A1 (en) Plug-in architecture for a network stack in an operating system
US10868839B2 (en) Method and system for upload optimization
CN110138678B (zh) 数据传输控制方法和装置、以及网络传输设备和存储介质
US20070226347A1 (en) Method and apparatus for dynamically changing the TCP behavior of a network connection
Tam et al. Preventing TCP incast throughput collapse at the initiation, continuation, and termination
CN107852372B (zh) 数据分组网络
US10063489B2 (en) Buffer bloat control
US9178834B1 (en) Interconnect flow control
JP2015002397A (ja) 通信装置及び通信システム及び通信方法
Guduru et al. Reliable Session Initiation Protocol (RSIP) signaling with UDP transport using piggybacking method
JP6450176B2 (ja) パケット伝送装置
Kulkarni et al. Addressing TCP Incast

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