CN101834790B - 一种基于多核处理器的流量控制方法和多核处理器 - Google Patents
一种基于多核处理器的流量控制方法和多核处理器 Download PDFInfo
- Publication number
- CN101834790B CN101834790B CN2010101556577A CN201010155657A CN101834790B CN 101834790 B CN101834790 B CN 101834790B CN 2010101556577 A CN2010101556577 A CN 2010101556577A CN 201010155657 A CN201010155657 A CN 201010155657A CN 101834790 B CN101834790 B CN 101834790B
- Authority
- CN
- China
- Prior art keywords
- message
- receiving
- token
- intercalated nucleus
- priority
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种基于多核处理器的流量控制方法,包括:多核处理器中的首核对接收到的报文进行优先级排序,并将排序后的报文发送到至少一个中间核,所述中间核为所述多核处理器中除首核之外的其他单核;多核处理器中所述至少一个中间核中的任意一个中间核接收上一个单核发送的报文并转发。与现有技术相比,本发明实施例提供的报文优先级排序不仅可以有效预防微网络内部发生拥塞,而且在微网络内部发生拥塞时,能够丢弃低优先级报文来保障高优先级报文,从而在微网络内部提供了较好的QoS,并进一步为宏观网络的QoS提供了保障。
Description
技术领域
本发明涉及通信领域,尤其涉及一种基于多核处理器的流量控制方法和多核处理器。
背景技术
由于网络总是由有限的资源所组成,包括网络节点内的信息缓冲器、节点处理器和输入/输出链路等。若对数据传输不加任何控制措施,就可能出现网内数据流量不均,有些节点和链路上的数据超过了节点的存储和处理能力,或者超过了链路的传输能力,导致网络的拥塞。通常情况下,网络边缘处的节点设备作为转发单元,负责执行流量/拥塞控制。这些转发单元的核心包括网络处理器、多核处理器和可编程门阵列等。随着网络流量的日益增长,处理器逐渐向多核方向发展,并且由于单核处理的业务日趋复杂,多核处理器内部实际上也形成了以单核为节点的微网络。
与由节点设备构成的宏观网络类似,为了保证微网络内的报文被转发出去时是有序的,通常需要在微网络内就采取一些报文保序的措施,而这些报文保序措施恰恰也构成了微网络内流量突发的原因,导致数据流在未被转发出去之前,微网络就发生了拥塞。
例如,多核处理器的多线程处理机制容易造成同一条数据流的报文乱序,对此,通常的保序做法是采用多线程之间流水线方式传递出发信号量,由得到信号量的线程执行处理,而线程的处理时刻有时并不均匀,由此造成流量突发,进而发生微网络的拥塞。再如,多核处理器中的前端单核在处理报文时增加报文序列号,后端单核需要对报文缓存从而重新排序以实现报文保序,这种报文保序方式也会造成流量突发,进而发生微网络的拥塞。
由于现有技术在处理微网络内传输的报文时,单核之间报文的转发只是采用先进先出(FIFO,First In First Out)的简单转发模式,而构成多核处理器的各个单核性能并非完全一致,例如,可能处于前端的单核性能高于处于后端的单核性能,如此,一旦微网络内的流量突发导致拥塞,进而需要丢弃报文时,单核之间对报文采用的FIFO这种简单转发模式容易造成高优先级报文被丢弃。因此,即使在宏观网络的发送节点执行了服务质量(QoS,Quality of Service)控制,但多核处理器内部(微网络内)发生的上述异常实际上已经破坏了网络的QoS。
发明内容
本发明实施例提供一种基于多核处理器的流量控制方法和多核处理器。
一种基于多核处理器的流量控制方法,包括:多核处理器中的首核对接收到的报文进行优先级排序,并将排序后的报文发送到至少一个中间核,所述中间核为所述多核处理器中除首核之外的其他单核;所述至少一个中间核中的任意一个中间核接收上一个单核发送的报文;判断是否需要对所述收到的报文进行流量整形;
若需要,则所述任意一个中间核在自身的出口处对所述收到的报文进行流量整形后再转发所述报文;
所述判断是否需要对所述收到的报文进行流量整形包括:将所述收到的报文的长度与令牌桶中的令牌数量进行比较,若所述收到的报文的长度与所述令牌桶中的令牌数量限定的流量特性不符,则判断需要对所述收到的报文进行流量整形;所述任意一个中间核在自身的出口处对所述收到的报文进行流量整形后再转发所述报文包括:将所述收到的报文存入缓冲队列,待所述收到的报文的长度与所述令牌桶中的令牌数量限定的流量特性相符后,从所述缓冲队列中取出在数值上与所述令牌桶中的令牌数量相等的报文后转发;或者,所述判断是否需要对所述收到的报文进行流量整形包括:将所述报文到达所述任意一个中间核的速度与向令牌桶中放置令牌的速度进行比较,若所述报文到达所述中间核的速度大于所述向令牌桶中放置令牌的速度,则判断需要对所述收到的报文进行流量整形;所述任意一个中间核在自身的出口处对所述收到的报文进行流量整形后再转发所述报文包括:将所述收到的报文存入缓冲队列,以与向令牌桶中放置令牌的速度相等的速度从所述缓冲队列中取出报文后转发。
一种多核处理器,包括首核和至少一个中间核,所述首核,用于对接收到的报文进行优先级排序并将排序后的报文发送到至少一个中间核;所述至少一个中间核中的任意一个中间核,用于接收上一个单核发送的报文并转发,所述中间核为所述多核处理器中除首核之外的其他单核;所述任意一个中间核包括第一比较单元、第一判断单元、第一缓存单元和第一转发单元,所述第一比较单元,用于将所述收到的报文的长度与令牌桶中的令牌数量进行比较,所述第一判断单元,用于在所述第一比较单元比较的结果为所述收到的报文的长度与所述令牌桶中的令牌数量限定的流量特性不符时,判断需要对所述收到的报文进行流量整形,所述第一缓存单元,用于在所述第一判断单元判断需要对所述收到的报文进行流量整形时,将所述收到的报文存入缓冲队列,所述第一转发单元,用于待所述收到的报文的长度与所述令牌桶中的令牌数量限定的流量特性相符后,从所述缓冲队列中取出在数值上与所述令牌桶中的令牌数量相等的报文后转发;或者,所述任意一个中间核包括第二比较单元、第二判断单元、第二缓存单元和第二转发单元,,所述第二比较单元,用于将所述报文到达所述中间核的速度与向令牌桶中放置令牌的速度进行比较,所述第二判断单元,用于所述第二比较单元比较的结果为所述报文到达所述中间核的速度大于所述向令牌桶中放置令牌的速度,则判断需要对所述收到的报文进行流量整形,所述第二缓存单元,用于在所述第二判断单元判断需要对所述收到的报文进行流量整形时将所述收到的报文存入缓冲队列,所述第二转发单元,用于以与向令牌桶中放置令牌的速度相等的速度从所述缓冲队列中取出报文后转发。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1是本发明实施例提供的一种基于多核处理器的流量/拥塞控制方法基本流程示意图;
图2是现有技术的多核处理器中单核按照FIFO原则转发报文示意图;
图3是本发明实施例提供的优先级映射示意图;
图4是本发明实施例提供的一种通用流量整形示意图;
图5是本发明实施例一提供的一种多核处理器基本逻辑结构示意图;
图6是本发明实施例二提供的一种多核处理器基本逻辑结构示意图;
图7是本发明实施例三提供的一种多核处理器基本逻辑结构示意图;
图8是本发明实施例四提供的一种多核处理器基本逻辑结构示意图;
图9是本发明实施例五提供的一种多核处理器基本逻辑结构示意图。
具体实施方式
下面将结合的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术多核处理器中的单核对所有报文都是无差别地对待,如图2所示,当报文A、报文B和报文C从入口依次进入(报文A先进入,报文B次之,之后是报文C)某一单核时,单核将报文A、报文B和报文C报文送入FIFO队列。在调度时,按照FIFO的原则,报文A先出列,报文B次之,之后是报文C。这种处理方式的结果是:后送入队列的报文,即使其优先级较高,但在微网络内部发生拥塞时仍需要排在先进入队列、但优先级较低的报文之后发送出去,甚至在微网络或宏观网络环境持续恶化时可能先被丢弃。在本发明实施例中,可以通过对报文进行优先级映射来解决现有技术这一问题。
请参阅图1,本发明实施例提供的一种基于多核处理器的流量控制方法基本流程示意图,主要包括步骤:
S101,多核处理器中的首核对接收到的报文进行优先级排序,并将排序后的报文发送到至少一个中间核。
S102,多核处理器至少一个中间核中的任意一个中间核接收上一个单核发送的报文后转发。
显然,多核处理器至少包括两个单核。在本发明实施例中,所谓首核是指多核处理器在收到宏观网络中其他节点设备发送的报文时,该多核处理器中第一个接收到该报文的单核。进一步地,首核对接收到的报文进行优先级排序可以包括:
S1011,首核对接收到的报文进行分类。
报文分类也称作流分类(Traffic Classification),通过采用一定的规则识别出符合某类特征的报文,它是微网络中各个单核对业务进行区分服务的前提和基础,单核对报文所进行的各个处理动作,例如报文流入微网络时进行的流量监管、报文流出单核之前进行的流量整形和微网络发生拥塞时对队列进行的拥塞管理等等都需要和流分类关联起来才有意义。
流分类的规则可以很简单,例如,可以根据报文中报文头(Head)的服务类型(ToS,Type of Service)字段识别出不同类型的流量;流分类的规则也可以采用其它方式,例如,可以综合数据链路层、网络层和传输层的MAC地址、IP协议类型、源地址、目的地址甚至应用程序的端口号等相关信息对报文进行识别。与各种节点设备(例如,路由器、交换机和NodeB等)构成的宏观网络相比,由单核构成的微网络(多核处理器)较为简单,需要处理的也是微网络内部的简单QoS。因此,不必采用灵活度很高的流分类算法,一般来说只要能够区分信令报文和数据报文即可,简单的流分类原则在一定程度上可以减少报文处理的延迟。
以无线控制领域为例进行说明,信令报文承载在传输控制协议/流传输控制协议(TCP/SCTP,Transmission Control Protocol/Stream Transmission ControlProtocol)或者用户数据报协议(UDP,User Datagram Protocol)之上的D通道链路接入协议(LAPD,Link Access Protocol on the D channel),一般采用报文五元组(源地址、源端口号、协议号码、目的地址、目的端口号)即可识别,因此,在本发明实施例中,可以采用五元组的简单HASH算法完成流分类,识别出信令报文和数据报文。
S1012,首核根据分类的结果对分类后的报文进行优先级映射。
对分类后的报文进行优先级映射包括:按照报文的类型,将各个分类后的报文赋予相应的优先级字段。
单核可以根据报文携带的报文头,为报文赋予一种具有本地意义的优先级字段,即,根据报文的类型,将报文打上相应的优先级标记,这些优先级标记就是具有本地意义的优先级字段。例如,信令报文和数据报文在进入单核时,信令报文与数据报文相比具有较高的优先级;此外,同样是信令报文,也可以为不同的信令报文例如信令报文1、信令报文2、......、信令报文n分配高低不同的优先级,如此,每类报文都具有一个相应的优先级,从而完成报文优先级的映射。
考虑到由单核构成的微网络需要处理的是简单QoS,本实施例可以将所有进入单核的报文分成4类(对应4种优先级),在进入中间核时可以根据报文的种类存入4个优先级队列(PQ,Priority Queuing)中的一个队列。如图3所示,4个优先级队列分别为高优先队列、中优先队列、正常优先队列和低优先队列,它们的优先级依次降低。在报文出列的时候,先让高优先队列中的报文出列并发送,直到高优先队列中的报文发送完;然后发送中优先队列中的报文,同样,直到发送完;然后是正常优先队列和低优先队列。这样,分类后属于较高优先级队列的报文将会得到优先发送,使得关键业务的报文(例如,信令报文)能够得到优先处理,非关键业务(例如,E-Mail)的报文在微网络处理完关键业务后得到处理,由此既保证了关键业务的优先,又充分利用了各个单核的资源。
需要说明的是,报文所经过映射后得到的优先级字段可以由首核向中间核传递,中间核也可以将该优先级字段向下一单核或宏观网络的节点设备传递。如此,不必每个中间核再对报文做优先级映射,微网络就可以获得用以决定报文调度顺序的优先级字段,从而可以全面有效地控制报文的转发调度能力。
首核对报文进行优先级映射为下一单核的流量管理提供了前提和基础,其本身并不对微网络内部拥塞(例如,由于微网络内部流量的突发造成的拥塞)做任何处理,但中间核(指多核处理器中除首核之外的任意一个单核)可以对经过优先级排序的报文进行流量整形。
在本发明实施例中,多核处理器至少一个中间核中的任意一个中间核接收上一个单核发送的报文后转发,可以采用两种方式,一种是对从上一单核接收的报文不做任何形式的处理直接转发,另一种是对报文进行流量整形后再转发。流量整形是一种主动调整流量输出速率的措施,其典型作用是限制流出某一单核的全部报文或某一类报文的流量突发,使全部报文或这类报文以比较均匀的速度向下一单核发送。例如,为了预防微网络中的流量突发造成的拥塞,减轻下一级单核的处理压力,多核处理器中的任意一个中间核可以对报文进行流量整形后再转发,任意一个中间核接收上一个单核发送的报文后转发的过程可以包括:
S1021,判断是否需要对任意一个中间核收到的报文进行流量整形;
S1022,若需要,则该任意一个中间核在自身的出口处对收到的报文进行流量整形后再转发。
在图4所示本发明实施例提供的一种通用流量整形(GTS,Generic TrafficShaping)示意图中,令牌桶用于存放令牌,令牌桶中的每一个令牌都代表一个字节,令牌桶控制机制基于令牌桶中是否存在令牌来指示什么时候可以发送流量(报文)。当令牌桶中的令牌数量大于或等于即将被转发的报文的长度时,该报文才可以被转发,即,如果令牌桶中有足够的令牌可以用来发送报文,则报文直接被继续发送下去,同时,令牌桶中的令牌数量按照被转发出去的报文的长度做相应数量的减少。
在判断是否需要对收到的报文进行流量整形时,可以将收到的报文的长度与令牌桶中的令牌数量进行比较,当报文长度与令牌桶中的令牌数量限定的流量特性不符,例如,当令牌桶中的令牌数量减少以致具有某一长度的报文不能再发送时,判断需要对收到的报文进行流量整形。此时,可以将收到该报文存入GTS缓冲队列。当令牌桶中有足够的令牌时,即所述收到的报文的长度与所述令牌桶中的令牌数量限定的流量特性相符后,GTS从缓冲队列中取出与所述令牌桶中的令牌数量相对应长度的报文后转发,例如按一定的周期从队列中取出报文进行发送,直到令牌桶中的令牌数又减少到GTS缓冲队列中的报文不能再发送或是GTS缓冲队列中的报文全部发送完毕为止,具体地,在取出与所述令牌桶中的令牌数量相对应长度的报文时,可以取出在数值上与所述令牌桶中的令牌数量相等的报文。
由于令牌是以事先配置的恒定速度,例如,根据下一级单核的处理能力配置的一个恒定速度向令牌桶存入令牌,在本实施例中,还提供了另一种判断是否需要对收到的报文进行流量整形的方法,该方法可以包括:
S’1021,将报文到达当前中间核的速度与向令牌桶中放置令牌的速度进行比较;
S’1022,若该报文到达中间核的速度大于向令牌桶中放置令牌的速度,则判断需要对收到的报文进行流量整形。这是因为,下一级单核的处理能力,例如,接收报文的速度与令牌存入令牌桶的速度相当,如果以报文到达中间核的当前速度转发至下一级单核,由于下一级单核无法接收,则当前中间核只能将接收到的报文丢弃,因此,在上述情形下,需要对收到的报文进行流量整形。
与前述实施例部分类似,在S’1022中,当判断需要对收到的报文进行流量整形时,中间核将收到的报文存入缓冲队列,并且以与向令牌桶中放置令牌的速度相对应的速度从缓冲队列中取出报文后转发,例如以数值上与向令牌桶中放置令牌的速度相等的速度与从所述缓冲队列中取出报文后转发。
对于步骤S1021、S1022或S’1021、S’1022及其后续流量整形的原理,可以举例如下:
假设令牌桶被配置的平均存入令牌速率为r个/秒,即,每隔1/r秒向令牌桶存入一个令牌,进一步假设令牌桶最多可以存放b个令牌。如果令牌到达时令牌桶已经满了,那么这个令牌会被丢弃。当n个字节(byte)的报文到达中间核时,GTS就从令牌桶中删除n个令牌(被删除的n个令牌可以视为“发放”给了该n个字节的报文),该n个字节的报文从出口被转送出去。
如果令牌桶中少于n个令牌,n个字节的报文在数值上已经大于令牌桶中的令牌数量,那么不会删除令牌,认为这个报文在流量限制之外,即报文长度与令牌桶中的令牌数量限定的流量特性不符,将该n个字节的报文存入GTS缓冲队列,待到令牌桶中累积了足够多的令牌时再转发。因此,本发明实施例提供的GTS可以允许最长b个字节的流量突发,但从长期运行结果看,报文在中间核出口处被转发的速率限制在常量r byte/s(r字节/秒)。如果该中间核的下一单核可以接受的流量极限值是r byte/s,那么,由流量突发造成的拥塞可以被该中间核很好地解决,报文也不会在该中间核的下一单核被丢弃。
需要说明的是,报文在进入GTS缓冲队列之前是经过了优先级映射而具有各自的优先级,而缓冲队列的优先级与报文的优先级相应,即,报文按照其优先级被存入相应优先级的缓冲队列,从GTS缓冲队列中取出的报文也是按照高优先级的先取出、低优先级的后取出这个原则取出后转发至下一单核。如此,可以保证在任何网络环境下(例如,流量突发以及由此造成的网络拥塞),高优先级的报文始终先于低优先级的报文发送。
为了更好地理解本发明实施例对流量整形的说明,可以举一个应用的场景。假设多核处理器的中间核1向该中间核1的下一单核2发送报文,单核2对中间核1发送来的报文进行承诺访问速率(CAR,Committed Access Rate)流量限制,即,单核2对超出了其中的令牌桶限制的CAR流量特性(例如,最高速率是本实施例中的常量r)的报文直接丢弃。
为了减少流量突发时报文在单核2的丢弃,可以在中间核1的出口对报文进行GTS处理,对于超出GTS流量特性的报文,即上述实施例中速率超过常量r的报文将存入中间核1中的GTS缓冲队列。当可以继续发送下一批报文时,GTS再从该GTS缓冲队列中取出报文进行发送。如此,发往单核2的报文将都符合单核2的流量特性规定,从而减少报文在单核2上的丢弃。相反,如果不在中间核1的出口进行GTS处理,则所有超出单核2的CAR流量特性的报文将被单核2丢弃。
由上述本发明实施例可知,尽管随着多核处理器中的单核数量增多以及业务功能的复杂多样化,多核处理器构成的微网络也日益复杂,但采用本发明实施例提供的报文优先级排序、优先级队列调度以及流量整形等拥塞管理,在微网络内部流量突发造成拥塞时,可以防止单核之间性能差异导致的高优先级报文丢弃,进一步为宏观网络的QoS提供了保障。
请参阅图5,本发明实施例一提供的一种多核处理器基本逻辑结构示意图。为了便于说明,仅仅示出了与本发明实施例相关的部分。该多核处理器至少包括两个单核处理器,其中,首核51用于对接收到的报文进行优先级排序,并将排序后的报文发送到至少一个中间核,任意一个中间核52用于接收上一个单核(包括首核51)发送的报文并转发。本实施例中,首核51是指多核处理器作为宏观网络的转发单元在收到其他节点设备发送的报文时,微网络(由多核处理器中单核构成)中第一个接收到该报文的单核,中间核52可以是多核处理器中除首核51之外的任意其他单核。
图5示例的首核51可以进一步包括分类模块611和优先级映射模块612,如图6所示本发明实施例提供的多核处理器,其中:
分类模块611用于对接收到的报文进行分类。即通过采用一定的规则识别出符合某类特征的报文,它是微网络中各个单核对业务进行区分服务的前提和基础,单核对报文所进行的各个处理动作,例如报文流入微网络时进行的流量监管、报文流出单核之前进行的流量整形和微网络发生拥塞时对队列进行的拥塞管理等等都需要和分类模块611执行的流分类关联起来才有意义。在实施例中,分类模块611可以采用报文五元组(源地址、源端口号、协议号码、目的地址、目的端口号)的简单HASH算法完成流分类,识别出信令报文和数据报文。
优先级映射模块612,用于根据分类模块611分类的结果对分类后的报文进行优先级映射。在一个实施例中,其结果是完成了报文所携带的报文头到报文优先级的映射。报文所携带的报文头经过优先级映射模块612映射后得到的优先级字段可以由首核51向中间核52传递,中间核52也可以将该优先级字段向下一单核(例如,单核53等)传递。如此,不必每个单核再对报文做优先级映射,微网络就可以获得用以决定报文调度能力的优先级字段,从而可以全面有效地控制报文的转发调度能力。
图5示例的中间核52可以进一步包括判断模块711和整形模块712,如图7所示本发明实施例三提供的多核处理器,其中:
判断模块711用于判断是否需要对收到的报文进行流量整形;
整形模块712用于在判断模块711判断需要对收到的报文进行流量整形时,在中间核出口处对收到的报文进行流量整形后再将报文转发至下一单核(例如,单核53等)或宏观网络的节点设备。
图7示例的判断模块711可以进一步包括第一比较单元811和第一判断单元812,整形模块712可以进一步包括第一缓存单元813和第一转发单元814,如图8所示本发明实施例提供的多核处理器,其中:
第一比较单元811,用于将收到的报文的长度与令牌桶中的令牌数量进行比较;
第一判断单元812,用于第一比较单元811比较的结果为收到的报文的长度与所述令牌桶中的令牌数量限定的流量特性不符时,判断需要对收到的报文进行流量整形;
第一缓存单元813,用于在第一判断单元812判断需要对收到的报文进行流量整形时,将收到的报文存入缓冲队列;
第一转发单元814,用于待收到的报文的长度与令牌桶中的令牌数量限定的流量特性相符后,从缓冲队列中取出与令牌桶中的令牌数量相对应长度的报文后转发。具体地,第一转发单元可以取出在数值上与所述令牌桶中的令牌数量相等的报文后转发。
在本实施例中,令牌桶按配置的速率向桶中放置令牌,当令牌桶中的令牌数量在数值上大于或等于即将被转发的报文的长度时,该报文才可以被转发,即,如果令牌桶中有足够的令牌可以用来发送报文,则报文直接被继续发送下去,同时,令牌桶中的令牌数量按照被转发出去的报文的长度做相应数量的减少。报文即将被转发出去之前,第一比较单元811将其长度与令牌桶中的令牌数量进行比较,当报文长度与令牌桶中的令牌数量限定的流量特性不符,例如,当令牌桶中的令牌数量减少以致具有某一长度的报文不能再发送时,第一判断单元812判断需要对收到的报文进行流量整形,第一缓存单元813将该报文存入GTS缓冲队列。当令牌桶中有足够的令牌时,第一转发单元814按照一定的周期从队列中取出报文进行发送,直到令牌桶中的令牌数又减少到GTS缓冲队列中的报文不能再发送或是GTS缓冲队列中的报文全部发送完毕为止。
或者,图7示例的判断模块711可以进一步包括第二比较单元911和第二判断单元912,整形模块712可以进一步包括第二缓存单元913和第二转发单元914,如图9所示本发明实施例五提供的多核处理器,其中:
第二比较单元911,用于将报文到达所述中间核的速度与向令牌桶中放置令牌的速度进行比较;
第二判断单元912,用于第二比较单元911比较的结果为报文到达中间核的速度大于向令牌桶中放置令牌的速度,则判断需要对收到的报文进行流量整形;
第二缓存单元913,用于第二判断单元912判断需要对收到的报文进行流量整形时将收到的报文存入缓冲队列;
第二转发单元914,用于以数值上与向令牌桶中放置令牌的速度相对应的速度与从所述缓冲队列中取出报文后转发。具体地,第二转发单元914可以取出在数值上与所述令牌桶中的令牌数量相等的报文。
需要说明的是,对于图5至图9所示实施例,报文在进入GTS缓冲队列之前是经过了优先级映射而具有各自的优先级,而缓冲队列的优先级与报文的优先级相应,即,报文按照其优先级被存入相应优先级的缓冲队列,因此,从GTS缓冲队列中取出的报文也是按照高优先级的先发送、低优先级的后发送这个原则转发至下一单核,这样,可以保证在任何网络环境下(例如,流量突发以及由此造成的网络拥塞),高优先级的报文始终先于低优先级的报文发送。
上述各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的说明,此处不再赘述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
以上对本发明实施例所提供的一种基于多核处理器的流量控制方法和多核处理器进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (7)
1.一种基于多核处理器的流量控制方法,其特征在于,包括:
多核处理器中的首核对接收到的报文进行优先级排序,并将排序后的报文发送到至少一个中间核,所述中间核为所述多核处理器中除首核之外的其他单核;
所述至少一个中间核中的任意一个中间核接收上一个单核发送的报文;
判断是否需要对所述收到的报文进行流量整形;
若需要,则所述任意一个中间核在自身的出口处对所述收到的报文进行流量整形后再转发所述报文;
所述判断是否需要对所述收到的报文进行流量整形包括:将所述收到的报文的长度与令牌桶中的令牌数量进行比较,若所述收到的报文的长度与所述令牌桶中的令牌数量限定的流量特性不符,则判断需要对所述收到的报文进行流量整形;所述任意一个中间核在自身的出口处对所述收到的报文进行流量整形后再转发所述报文包括:将所述收到的报文存入缓冲队列,待所述收到的报文的长度与所述令牌桶中的令牌数量限定的流量特性相符后,从所述缓冲队列中取出在数值上与所述令牌桶中的令牌数量相等的报文后转发;或者
所述判断是否需要对所述收到的报文进行流量整形包括:将所述报文到达所述任意一个中间核的速度与向令牌桶中放置令牌的速度进行比较,若所述报 文到达所述中间核的速度大于所述向令牌桶中放置令牌的速度,则判断需要对所述收到的报文进行流量整形;所述任意一个中间核在自身的出口处对所述收到的报文进行流量整形后再转发所述报文包括:将所述收到的报文存入缓冲队列,以与向令牌桶中放置令牌的速度相等的速度从所述缓冲队列中取出报文后转发。
2.根据权利要求1所述的方法,其特征在于,所述多核处理器中的首核对接收到的报文进行优先级排序包括:
所述首核对接收到的报文进行分类;
所述首核根据分类的结果对所述分类后的报文进行优先级映射。
3.根据权利要求2所述的方法,其特征在于,所述首核根据分类的结果对所述分类后的报文进行优先级映射包括:按照报文的类型,将各个分类后的报文赋予相应的优先级字段。
4.根据权利要求3所述的方法,其特征在于,还包括:
所述首核将所述报文优先级字段传递至所述至少一个中间核,所述中间核中的任意一个中间核将所述优先级字段传递至下一单核。
5.根据权利要求1所述的方法,其特征在于,所述缓冲队列的优先级与所述报文的优先级相对应,所述报文按照所述报文的优先级被存入相应优先级的缓冲队列,在取出报文时优先取出优先级高的报文。
6.一种多核处理器,包括首核和至少一个中间核,其特征在于:
所述首核,用于对接收到的报文进行优先级排序并将排序后的报文发送到至少一个中间核;
所述至少一个中间核中的任意一个中间核,用于接收上一个单核发送的报文并转发,所述中间核为所述多核处理器中除首核之外的其他单核;
所述任意一个中间核包括第一比较单元、第一判断单元、第一缓存单元和第一转发单元,所述第一比较单元,用于将所述收到的报文的长度与令牌桶中的令牌数量进行比较,所述第一判断单元,用于在所述第一比较单元比较的结果为所述收到的报文的长度与所述令牌桶中的令牌数量限定的流量特性不符时,判断需要对所述收到的报文进行流量整形,所述第一缓存单元,用于在所述第一判断单元判断需要对所述收到的报文进行流量整形时,将所述收到的报文存入缓冲队列,所述第一转发单元,用于待所述收到的报文的长度与所述令牌桶中的令牌数量限定的流量特性相符后,从所述缓冲队列中取出在数值上与所述令牌桶中的令牌数量相等的报文后转发;或者
所述任意一个中间核包括第二比较单元、第二判断单元、第二缓存单元和第二转发单元,所述第二比较单元,用于将所述报文到达所述中间核的速度与向令牌桶中放置令牌的速度进行比较,所述第二判断单元,用于所述第二比较单元比较的结果为所述报文到达所述中间核的速度大于所述向令牌桶中放 置令牌的速度,则判断需要对所述收到的报文进行流量整形,所述第二缓存单元,用于在所述第二判断单元判断需要对所述收到的报文进行流量整形时将所述收到的报文存入缓冲队列,所述第二转发单元,用于以与向令牌桶中放置令牌的速度相等的速度从所述缓冲队列中取出报文后转发。
7.根据权利要求6所述的多核处理器,其特征在于,所述首核包括:
分类模块,用于对接收到的报文进行分类;
优先级映射模块,用于根据所述分类模块分类的结果对所述分类后的报文进行优先级映射。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101556577A CN101834790B (zh) | 2010-04-22 | 2010-04-22 | 一种基于多核处理器的流量控制方法和多核处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101556577A CN101834790B (zh) | 2010-04-22 | 2010-04-22 | 一种基于多核处理器的流量控制方法和多核处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101834790A CN101834790A (zh) | 2010-09-15 |
CN101834790B true CN101834790B (zh) | 2012-12-19 |
Family
ID=42718722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101556577A Active CN101834790B (zh) | 2010-04-22 | 2010-04-22 | 一种基于多核处理器的流量控制方法和多核处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101834790B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102035748B (zh) * | 2010-12-31 | 2014-07-30 | 深圳市深信服电子科技有限公司 | 一种基于应用的流量控制方法及流量控制器 |
WO2012106906A1 (zh) * | 2011-07-20 | 2012-08-16 | 华为技术有限公司 | 多核处理器的流分发方法及装置 |
CN102368736B (zh) * | 2011-11-10 | 2014-12-10 | 华为技术有限公司 | 一种报文发送方法和设备 |
CN105763481A (zh) * | 2014-12-19 | 2016-07-13 | 北大方正集团有限公司 | 一种信息缓存方法及装置 |
CN105376175B (zh) * | 2015-12-03 | 2019-01-25 | 北京浩瀚深度信息技术股份有限公司 | 具有带宽保障功能的级联令牌桶实现方法 |
CN107276909B (zh) * | 2016-04-07 | 2021-04-06 | 深圳市中兴微电子技术有限公司 | 端口流量管理方法及装置 |
CN106254274B (zh) * | 2016-09-27 | 2019-04-23 | 国家电网公司 | 变电站交换机goose报文传输减少线头阻塞的方法 |
CN108768873B (zh) * | 2018-05-29 | 2021-09-28 | 腾讯科技(深圳)有限公司 | 一种流量控制方法及相关设备 |
CN108984327B (zh) * | 2018-07-27 | 2020-12-01 | 新华三技术有限公司 | 报文转发方法、多核cpu及网络设备 |
CN113472681A (zh) * | 2020-03-30 | 2021-10-01 | 阿里巴巴集团控股有限公司 | 流量限速方法及装置 |
CN111901248B (zh) * | 2020-07-27 | 2022-05-27 | 新华三信息安全技术有限公司 | 一种负载均衡方法、装置、设备及机器可读存储介质 |
CN113778705A (zh) * | 2021-08-18 | 2021-12-10 | 北京自动化控制设备研究所 | 一种基于amp架构的多核通信方法 |
CN113852559B (zh) * | 2021-09-23 | 2024-01-23 | 北京天融信网络安全技术有限公司 | 一种针对工控流量数据进行管理的方法以及装置 |
CN115225580B (zh) * | 2022-06-10 | 2024-02-02 | 新浪技术(中国)有限公司 | 一种针对多处理器核的业务隔离限速方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101222431A (zh) * | 2008-01-23 | 2008-07-16 | 中兴通讯股份有限公司 | 一种具有强服务质量功能的线卡装置及其设计的方法 |
CN101304322A (zh) * | 2008-06-30 | 2008-11-12 | 杭州华三通信技术有限公司 | 一种网络设备和报文转发方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7571285B2 (en) * | 2006-07-21 | 2009-08-04 | Intel Corporation | Data classification in shared cache of multiple-core processor |
-
2010
- 2010-04-22 CN CN2010101556577A patent/CN101834790B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101222431A (zh) * | 2008-01-23 | 2008-07-16 | 中兴通讯股份有限公司 | 一种具有强服务质量功能的线卡装置及其设计的方法 |
CN101304322A (zh) * | 2008-06-30 | 2008-11-12 | 杭州华三通信技术有限公司 | 一种网络设备和报文转发方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101834790A (zh) | 2010-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101834790B (zh) | 一种基于多核处理器的流量控制方法和多核处理器 | |
US9344369B2 (en) | System and methods for distributed quality of service enforcement | |
US6304552B1 (en) | Memory and apparatus for input based control of discards in a lossy packet network | |
US8467342B2 (en) | Flow and congestion control in switch architectures for multi-hop, memory efficient fabrics | |
KR100644445B1 (ko) | 다-임계값 리키 버킷을 사용하는 클래스-기초 속도 제어 | |
US8638664B2 (en) | Shared weighted fair queuing (WFQ) shaper | |
JP3386117B2 (ja) | マルチレイヤクラス識別通信装置と通信装置 | |
US7020143B2 (en) | System for and method of differentiated queuing in a routing system | |
US6724721B1 (en) | Approximated per-flow rate limiting | |
CN100463451C (zh) | 一种网络数据流的多维队列调度与管理方法 | |
US8520522B1 (en) | Transmit-buffer management for priority-based flow control | |
US7499454B2 (en) | Pipeline scheduler with fairness and minimum bandwidth guarantee | |
US9935884B2 (en) | Application data flow management in an IP network | |
Ahammed et al. | Anakyzing the performance of active queue management algorithms | |
US20030174650A1 (en) | Weighted fair queuing (WFQ) shaper | |
US20030112817A1 (en) | Methods and apparatus for differentiated services over a packet-based network | |
CN103023806B (zh) | 共享缓存式以太网交换机的缓存资源控制方法及装置 | |
Homg et al. | An adaptive approach to weighted fair queue with QoS enhanced on IP network | |
US7369489B1 (en) | Unbiased token bucket | |
CN101834787A (zh) | 调度数据的方法和系统 | |
US20050068798A1 (en) | Committed access rate (CAR) system architecture | |
US8086770B2 (en) | Communication apparatus with data discard functions and control method therefor | |
US20060104294A1 (en) | Router and method of managing packet queue using the same | |
Szilágyi et al. | A review of congestion management algorithms on cisco routers | |
US7391785B2 (en) | Method for active queue management with asymmetric congestion control |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |