CN1777145A - 路由器及使用其管理分组队列的方法 - Google Patents
路由器及使用其管理分组队列的方法 Download PDFInfo
- Publication number
- CN1777145A CN1777145A CNA2005101204098A CN200510120409A CN1777145A CN 1777145 A CN1777145 A CN 1777145A CN A2005101204098 A CNA2005101204098 A CN A2005101204098A CN 200510120409 A CN200510120409 A CN 200510120409A CN 1777145 A CN1777145 A CN 1777145A
- Authority
- CN
- China
- Prior art keywords
- memory cell
- grouping
- stream
- memory
- packet
- 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
Links
- 238000000034 method Methods 0.000 title claims description 28
- 238000003860 storage Methods 0.000 claims abstract description 27
- 230000015654 memory Effects 0.000 claims description 177
- 230000015572 biosynthetic process Effects 0.000 claims description 25
- 230000008676 import Effects 0.000 claims description 7
- 238000012217 deletion Methods 0.000 claims description 4
- 230000037430 deletion Effects 0.000 claims description 4
- 230000000052 comparative effect Effects 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 abstract description 9
- 238000012545 processing Methods 0.000 abstract description 3
- 230000003139 buffering effect Effects 0.000 description 36
- 238000007726 management method Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000005314 correlation function Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/56—Routing software
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/60—Router architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/15—Flow control; Congestion control in relation to multipoint traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
Abstract
提供了一种用于对分组传输执行队列管理的路由器,其包括:第一存储单元,用于存储并输出所输入的分组,其中所述分组请求从源设备发送到目的地设备;第二存储单元,用于存储关于所述第一存储单元中所存储的分组的信息;和分组处理确定单元,用于基于所述第一存储单元中是否存在可用存储容量,来确定是否将输入分组存储在所述第一存储单元中,并且将关于分组的信息更新到所述第二存储单元中。
Description
技术领域
本发明涉及一种路由器及使用其管理分组队列的方法,更具体地,涉及一种能够在维持公平缓冲区占用同时控制分组传输的路由器及使用其管理分组队列的方法。
背景技术
一般来说,在因特网上流动的业务量的大小和传输速率不同。使用队列管理以及调度方案来最小化当业务量在因特网上流动时可能发生的诸如拥塞之类的问题。
一个这样的问题是业务量的不公平。术语“不公平”是指这样一种现象:少数特定业务量占用路由器中大部分的缓冲区容量,而不考虑公平性。
图1图示了因特网上的业务量的不公平现象的示例。
如图1所示,在路由器30与路由器40之间的网络的链路带宽为10Mbps。
在图1中,当分别使用传输控制协议(TCP)和用户数据报协议(UDP)的应用A10和应用B20处于对路由器30的缓冲区的竞争条件时,使用UDP的应用B20最终占用路由器30中大部分缓冲区容量。
也就是说,当使用UDP的应用B20向B的接收器(sink)60发送大于10Mbps的分组时,随着时间流逝,其将占用大部分链路带宽。因此,即使使用TCP的应用A10希望向A的接收器50发送分组,也没有剩余带宽用来进行传输,这导致了传输的不公平。
已经提出了队列管理以及调度方案来解决前述问题。
一个这样的示例是基于去尾队列管理的FIFO(先进先出)或先来先服务(FCFS)调度。其优点在于,简单分组转发使分组处理的开销最小化,并且易于实现。然而,基于去尾的FIFO调度仅支持尽力而为的服务。换言之,该方案具有这样的结构缺陷:不保证服务质量,并且路由器的缓冲区可能被生成许多业务量的某些流占用。
已经提出了多种队列管理算法和分组调度机制来改进基于去尾的FIFO调度的缺点。这当中,IntServ(集成服务)模型除了尽力而为的服务之外还加入了新的服务类。为了加入这些服务,路由器应该获取必要的资源来保证流的服务质量。所获取的资源包括带宽、存储器等。诸如RSVP(资源预留协议)之类的协议用来获取资源。
然而,IntServ模型的问题在于,没有足够的可扩展性,并且需要许多资源,因为其预先为服务获取资源,并且保留所有流的信息。
引入了DiffServ(区分服务)模型来解决IntServ模型的问题。在DiffServ模型中,将各种流分类为数个服务类,并且在中介路由器中对各个服务类进行处理。DiffServ模型不需要对所有路由器进行流状态管理和通告。DiffServ模型在分组头部的特定位中指定所需的服务类。这种方案基于所需的QoS(服务质量)来对所有业务量进行分类,并且相应地聚集相关业务量,以解决调度问题。
另外,提出了使用局部状态方案的RED(LRU-RED)(最近最少使用-随机早期检测)和FQ(LRU-FQ)(最近最少使用-公平排队)作为IntServ模型与DiffServ模型之间的中间模型。术语“局部状态”是指,与IntServ模型不同,路由器不保留所有流的信息,而是仅使用有限的存储器来保留特定流的信息。这些流的信息的存储器管理遵循LRU算法。
由于LRU算法的特性,在相对长的时间中频繁发送分组的流,该流中的信息存储在存储器中的概率较高。这里,其信息存储在存储器中的流被定义为比其信息没有存储在存储器中的流发送相对较多分组的流,即,破坏公平性的流。
路由器分析输入分组。当分组对应于存储器中所包含的流时,这些分组经历指定调整。这里,在LRU-RED的情形中,应用这样的RED算法:将存储器中所存储的流丢弃的概率高。LRU-RED使用两个存储器。对存储在存储器中的流,分组被存储在一个队列中,而对没有存储在存储器中的流,分组存储在一个队列中,然后应用同等调度,来抑制不公平性。
然而,IntServ模型需要每一个路由器存储流的状态信息。这又在路由器中需要大容量的存储装置,并且大大影响大多数流中的处理速度。另外,对控制相关功能(例如,接入管理和批准/许可)的处理带来了高开销。最后,中途的所有路由器应该支持IntServ模型,这样降低了可扩展性。
同时,DiffServ模型中所使用的业务量聚集模型具有很差的预测性。因此,对于DiffServ模型而言,非常难以保证一定水平的服务。因此,DiffServ模型基于每个聚集的规则来提供相对服务,而不是保证一定水平的服务。换言之,某些聚集接收数据要好于或差于其他聚集。
LRU-RED同样具有RED队列管理的缺点。其降低了缓冲区的整体使用率。另外,难以建立可靠的调整策略,因为调整是基于概率的。
LRU-FQ在存在许多流交换少数分组的网络中引起分组记录的问题以及公平性问题。
发明内容
做出本发明是为了解决上述问题。本发明的目的是通过使用局部状态提供能够对缓冲区保持公平而不会使特定流占用路由器中所有缓冲区的路由器及使用其管理队列的方法。
本发明的另一目的是通过使用局部状态方案提供能够减轻对使用存储空间的需求的路由器及使用其管理队列的方法。
根据本发明的一个方面,提供了一种用于对分组传输执行队列管理的路由器,包括:第一存储单元,用于存储并输出所输入的分组,其中所述分组请求从源设备发送到目的地设备;第二存储单元,用于存储关于所述第一存储单元中所存储的分组的信息;和分组处理确定单元,用于基于所述第一存储单元中是否存在可用存储容量,来确定是否将输入分组存储在所述第一存储单元中,并且将关于分组的信息更新到所述第二存储单元中。
优选地,所述第二存储单元可以包括:流ID(F),这是关于请求发送分组的源设备的信息;命中计数(H),指示相同源设备请求发送的次数;以及p_pos_queue(P),指示关于所述第一存储单元中存储的分组位于何处的信息。
当在所述第一存储单元中没有存储空间,并且所述命中计数的总和小于设置阈值时,所述分组处理确定单元可用丢弃输入分组,并且根据最近最少使用(LRU)算法更新所丢弃的分组的流ID。
当在所述第一存储单元中存在存储空间来存储分组时,所述分组处理确定单元可以将输入分组存储在所述第一存储单元中,并且根据LRU算法更新包含所述分组的流ID的信息。
当在所述第一存储单元中没有存储空间,并且所述命中计数的总和大于设置阈值时,所述分组处理确定单元可以从所述第一存储单元中检测在所述第二存储单元中具有最大命中计数的流ID的分组,将输入分组存储到所述第一存储单元的空余空间中,并且将关于所存储的分组的信息更新到所述第二存储单元中。
当输入分组的流ID存储在所述第二存储单元中,并且所述命中计数为最大值时,所述分组处理确定单元可以根据LRU算法更新所述流ID。
当输入分组的流ID存储在所述第二存储单元中,并且所述命中计数不是最大值时,所述分组处理确定单元可以将所述第二存储单元中存储的命中计数的最大值减“1”,并且将输入分组的命中计数加“1”,同时根据LRU算法更新所述流ID。
当输入分组的流ID没有存储在所述第二存储单元中,并且存在空间来更新时,所述分组处理确定单元可以将与输入分组相对应的条目存储到所述第二存储单元中。
当输入分组的流ID没有存储在所述第二存储单元中,并且没有空间来更新时,所述分组处理确定单元可以根据LRU算法删除最近最少使用的条目,并且在删除后的空间处更新输入分组的相应条目。
根据本发明的另一方面,提供了一种使用路由器来管理分组传输的队列的方法,该方法包括如下步骤:从源设备接收请求发送的分组;确定第一存储单元中是否存在可用存储空间来存储所述分组;当所述第一存储单元中没有存储空间时,基于所述源设备发送分组的重复次数与设置阈值的比较结果,确定是存储还是丢弃所述分组;以及将关于根据确定结果所处理的分组的信息更新到第二存储单元中,所述第二存储单元存储关于分组的信息。
当在所述第一存储单元中没有存储空间,并且所述命中计数的总和小于设置阈值时,更新信息的步骤包括:丢弃输入分组,并且根据最近最少使用(LRU)算法更新所丢弃的分组的流ID。
当在所述第一存储单元中存在存储空间来存储分组时,更新信息的步骤包括:将输入分组存储在所述第一存储单元中,并且根据LRU算法更新包含所述分组的流ID的信息。
当在所述第一存储单元中没有存储空间,并且所述命中计数的总和大于设置阈值时,更新信息的步骤包括:从所述第一存储单元中检测在所述第二存储单元中具有最大命中计数的流ID的分组;将输入分组存储到所述第一存储单元的空余空间中,并且将关于所存储的分组的信息更新到所述第二存储单元中。
根据本发明,使用局部状态方案,减轻了对存储空间的需求,并且基于这种方案,可以将缓冲区占用的不公平性控制在通过阈值定义的水平上,因此,可以更公平地控制分组的缓冲区占用。另外,当缓冲区中没有存储空间时,对相关分组执行队列管理,由此最大化缓冲区利用。另外,如果必要的话,通过基于阈值来调节对缓冲区的调整,易于改变缓冲区管理策略。
附图说明
结合附图,参考下面的详细描述,对本发明的更彻底的认识及本发明所带有的许多优点将变得更好理解,因此将变得非常清楚,在附图中相似的标号标识相同或相似的部件,其中:
图1图示了因特网上业务量的不公平现象;
图2示出了根据本发明实施例的具有关于从相应源设备输入的流的信息的高速缓冲存储器的结构;
图3示出了根据本发明实施例的用于最近最少使用-最长队列丢弃(LRU-LQD)队列管理的路由器;
图4是示出了使用根据本发明的路由器的示例性队列管理方法的流程图;
图5是示出了在从高速缓冲存储器中检测具有最大命中计数的流ID的过程之后处理输入分组的流程图;
图6是具体示出将分组相关信息以及缓冲区中存储的分组的流ID更新到高速缓冲存储器中的过程的流程图;以及
图7示出了使用根据本发明实施例的路由器的LRU-LQD队列管理方法的伪代码的示例。
具体实施方式
下面,将参考附图更详细地描述本发明实施例的配置和操作。在附图中,相似的标号表示相似的元件。另外,当对已知的相关功能或配置的详细描述将会使本发明的主旨变得含糊时,将省略这样的描述。
根据本发明,提出并公开了最近最少使用-最长队列丢弃(LRU-QD)队列管理方法,该方法通过使用局部状态(仅使用特定的有限信息,而不是所有流的信息),能够维持路由器中缓冲区利用的公平性。
图2示出了根据本发明实施例的具有关于从相应源设备输入的流的信息的高速缓冲存储器的结构。
如图2所示,高速缓冲存储器100包括:流ID(F)120,这是关于请求发送相关分组的源设备的信息;命中计数(hit count)(H)140,指示相同源设备请求发送该分组的次数;以及p_pos_queuse(P),指示关于该队列中相关分组位于何处的信息。这里,术语“命中”表示在分组输入到路由器时,发送该输入分组的源设备于缓冲100中设置的流ID(F)120匹配。换言之,命中计数(H)140是指从相同源将请求发送的分组输入的次数。
图3示出了根据本发明优选实施例的用于最近最少使用-最长队列丢弃(LRU-LQD)队列管理的路由器。
如图3所示,路由器包括分组处理确定单元101、队列200、高速缓冲存储器300、以及先进先出(FIFO)单元400。
分组处理确定单元101基于队列200的缓冲区是否可用,确定是存储还是丢弃输入分组。
队列200存储并输出其缓冲区中从分组处理确定单元101接收到的分组。这里,在将输入分组存储到缓冲区中之后,队列200基于是否可以输出分组,顺序将所存储的分组输出到FIFO单元400。
高速缓冲存储器300也在分组处理确定单元101的控制下存储关于队列中所存储的分组的信息310、330和350。高速缓冲存储器300以分组为基础,分别存储与队列中相应缓冲区210、230和250中所存储的每个分组相对应的信息310、330和350。例如,在分组处理确定单元101的控制下,高速缓冲存储器300存储队列200的第一缓冲区210中所存储的分组的信息310,包括流ID(F)312、命中计数(H)314、以及分组存储位置(P)316。
队列200在逻辑上具有由多个缓冲区构成的单个缓冲单元。图3图示了作为缓冲区210、230和250的这些缓冲区中的一些,其中缓冲区210、230和250分别对应于高速缓冲存储器300的信息310、330和350,并且对应于请求发送分组的各自的源设备。队列200还包括下面将要讨论的缓冲区270作为其缓冲单元的一部分。如上所述,缓冲区被视为单个缓冲单元。
FIFO单元400以先进先出的方式示出从队列200的各个缓冲区210、230、250和270接收到的分组。输出分组通过传输线分别发送到目的地设备。
同时,在确定是丢弃还是存储输入分组时,分组处理确定单元101基于队列200中是否存在可用存储空间,并且基于将高速缓冲存储器300中存储的各个分组的命中计数信息H的总和与设置阈值进行比较的结果,来做出确定。
换言之,在接收分组时,如果在路由器的队列200中的缓冲单元中没有可用存储空间,并且高速缓冲存储器的命中计数H的总和小于阈值,则分组处理确定单元101丢弃输入分组,并根据最近最少使用(LRU)算法将丢弃分组的流ID(F)更新到高速缓冲存储器300。这种情形意味着分组对缓冲区占用的不公平性不会超过用户定义的范围。
当路由器的队列200中的缓冲单元中没有可用存储空间,并且高速缓冲存储器的命中计数H的总和大于设置阈值时,分组处理确定单元101在队列200中的分组中检测流ID(F)与最大命中计数(H)相对应的分组。丢弃所检测到的分组,并且将当前输入分组存储在队列200的缓冲单元中。当高速缓冲存储器300中与当前输入分组相对应的命中计数(H)是最大命中计数(H)时,分组处理确定单元101不执行上述过程,相反,丢弃该流。
缓冲300中的相应变化包括下列三种情形:
第一种情形是输入分组的流ID(F)已经存储在高速缓冲存储器300中并且其命中计数(H)最大。在这种情形中,只执行这样的过程:根据LRU算法更新高速缓冲存储器300中关于分组的信息,例如,信息310。
第二种情形是输入分组的流ID已经存储在缓冲300中但是其命中计数(H)不是最大。在这种情形中,高速缓冲存储器300中存储的另一分组的最大命中计数(H)减“1”,而与输入分组的流ID相对应的命中计数(H)加“1”。接着,根据LRU算法更新高速缓冲存储器300。
第三中情形是输入分组的流ID(F)不在高速缓冲存储器300中。此时,分组处理确定单元101确定高速缓冲存储器300中是否有可用存储空间来存储输入分组及其信息。
当存在可用存储空间时,分组处理确定单元101在高速缓冲存储器300中存储相应条目。当高速缓冲存储器300中没有存储空间时,分组处理确定单元101根据LRU算法删除最近最少使用的条目,然后存储关于当前输入分组的信息。
图4是示出了使用根据本发明的路由器来管理队列的示例性方法的流程图。
首先,当分组处理确定单元101从源设备接收到分组时(S110),其确定队列200的缓冲单元中是否有空余空间来存储分组(S120)。如果确定存在存储接收分组的空间,分组处理确定单元101将该分组存储到队列200的缓冲区270中(S210)。分组处理确定单元101将分组相关信息以及缓冲区270中存储的该流的流ID更新到高速缓冲存储器300中(S220)。
同时,当在步骤S120中确定队列200中没有缓冲区空间来存储分组时,分组处理确定单元101确定高速缓冲存储器300的命中计数(H)的总和是否大于阈值(S130)。当确定命中计数的总和小于阈值时,分组处理确定单元101丢弃输入分组(S140),并且将相关信息以及该分组的流ID更新到高速缓冲存储器300中(S150)。
另一方面,当在步骤S130中确定命中计数的总和大于阈值时,分组处理确定单元101检测高速缓冲存储器300中命中计数最大的分组的流ID(F)(S160)。
分组处理确定单元101然后从队列200的缓冲单元中检测并丢弃所存储的与所检测到的流ID(F)相对应的分组(S170),除非当前接收到的分组对应于已存储的具有最大命中计数(H)的分组(这种情形见图5的过程)。
此时,分组处理确定单元101将当前接收到的分组存储到丢弃后的队列200中腾出的缓冲区中(S180)。另外,分组处理确定单元101将包括该分组的流ID(F)在内的信息更新到高速缓冲存储器300中(S190)。
图5是示出了作为图4的步骤S160的子进程的、处理输入分组的过程的流程图。
首先,分组处理确定单元101确定当前接收到的分组是否对应于具有最大命中计数的流ID(F)的分组(S310)。当确定当前输入分组不对应于具有最大命中计数(H)的流ID(F)时,该进程前进到图4的步骤S170。
在当前输入分组对应于具有最大命中计数(H)的流ID(F)时,分组处理确定单元101丢弃当前输入分组(S320)。然后,分组处理确定单元101确定高速缓冲存储器中是否存在与当前丢弃分组相对应的流ID(F)(S330)。
当确定高速缓冲存储器中存在当前丢弃分组的流ID(F)时,分组处理确定单元101确定命中计数(H)是否是高速缓冲存储器300中存储的命中计数中最大的一个(S340)。当确定与当前丢弃分组相对应的相关流ID(F)的命中计数(H)不是最大时,分组处理确定单元101将最大命中计数值减“1”(S350)。即,另一分组的命中计数(H)被确定为最大命中计数,并且将该计数值减“1”。
另外,分组处理确定单元101将与当前丢弃分组相对应的相关流ID(F)的命中计数(H)加“1”(S360)。此时,分组处理确定单元101根据LRU算法更新流ID(F)(S370)。
在S340中,当确定与当前丢弃分组相对应的相关流ID的命中计数(H)最大时,分组处理确定单元101根据LRU算法将包括流ID(F)在内的分组相关信息更新到高速缓冲存储器300中(S380)。
另一方面,当在步骤S330中确定当前丢弃分组的流ID不在高速缓冲存储器中时,分组处理确定单元101确定是否存在空间来将关于当前输入分组的信息更新到高速缓冲存储器300中(S410)。当确定存在空间来更新分组信息时,分组处理确定单元101将与该分组相对应的条目存储到高速缓冲存储器300中(S420)。
在S410中,当确定在高速缓冲存储器300中没有空间来更新分组信息时,分组处理确定单元101根据LRU算法,从高速缓冲存储器300中删除最近最少使用的条目(S430)。此时,分组处理确定单元101将与该分组相对应的条目存储到删除后的空间中(S440)。
图6是具体示出图4的步骤S220的流程图。
首先,分组处理确定单元101确定输入分组的流ID(F)是否已经在高速缓冲存储器300中(S221)。如果确定流ID(F)在高速缓冲存储器300中,则分组处理确定单元101将高速缓冲存储器300中存储的相应命中计数(H)加“1”(S222)。此时,分组处理确定单元101根据LRU算法将该分组的流ID(F)更新到高速缓冲存储器300中(S223)。
同时,当在S221中确定输入分组的流ID(F)不在高速缓冲存储器300中时,分组处理确定单元101确定在高速缓冲存储器300中是否存在空间来更新或存储关于输入分组的信息(S224)。当确定在高速缓冲存储器300中存在空间来更新关于分组的信息时,分组处理确定单元101将与输入分组相对应的条目存储到高速缓冲存储器300中(S225)。
当在S224中确定在高速缓冲存储器300中没有空间来更新关于分组的信息时,分组处理确定单元101根据LRU算法从高速缓冲存储器300中删除最近最少使用的条目。此时,分组处理确定单元101将与输入分组相对应的条目存储到高速缓冲存储器300中现在空出的空间中(S227)。
在图4的步骤S150或S190,或者图6的步骤S223、S225或S227之后,分组处理确定单元101确定是否输出队列200的缓冲单元中存储的分组之一用于传输(S228)。如果从队列200输出了分组,则分组处理确定单元101将高速缓冲存储器300中存储的相应分组的命中计数(H)减“1”(S229)。
图7示出了使用根据本发明实施例的路由器的LRU-LQD队列管理方法的伪代码的示例。
这里,“阈值”和“条目概率”是由管理者设置的因子。较高的阈值指示减少对高速缓冲存储器300中存储的流的调整。较高的条目概率指示减轻了可以在高速缓冲存储器300中存储流的条件。所示的少许代码包括在高速缓冲存储器300中存储或更新信息的进程以及管理队列的进程。
根据本发明,使用局部状态方案,减轻了对存储空间的需求,并且基于这种方案,可以将缓冲区占用的不公平性控制在通过阈值定义的水平上。因此,可以更公平地控制分组的缓冲区占用。
另外,当在缓冲单元中没有存储空间时,通过执行对相关分组的队列管理,可以最大化缓冲区利用。
此外,通过根据阈值来调节对缓冲区使用率的调整,易于按需改变缓冲区管理策略。
已经描述并图示了本发明的示例性实施例。然而,本发明并不局限于此,本领域的技术人员应该认识到,在不脱离所附权利要求所包括的本发明的精神的前提下,可以做出许多修改。
Claims (18)
1、一种用于对分组传输执行队列管理的路由器,包括:
第一存储单元,用于存储并输出所输入的分组,其中所述分组请求从源设备发送到目的地设备;
第二存储单元,用于存储关于所述第一存储单元中所存储的分组的信息;和
分组处理确定单元,用于基于所述第一存储单元中是否存在可用存储容量,来确定是否将输入分组存储在所述第一存储单元中,并且基于确定结果将关于分组的信息更新到所述第二存储单元中。
2、根据权利要求1所述的路由器,其中所述第二存储单元中存储的所述信息包括:
流ID(F),这是关于请求发送分组的源设备的信息;
命中计数(H),指示相同源设备请求发送的次数;以及
p_pos_queue(P),指示关于所述第一存储单元中存储的分组位于何处的信息。
3、根据权利要求2所述的路由器,其中,当在所述第一存储单元中没有存储空间,并且所述命中计数的总和小于设置阈值时,所述分组处理确定单元丢弃输入分组,并且根据最近最少使用(LRU)算法更新所丢弃的分组的流ID(F)。
4、根据权利要求2所述的路由器,其中,当在所述第一存储单元中存在存储空间来存储分组时,所述分组处理确定单元将输入分组存储在所述第一存储单元中,并且根据最近最少使用(LRU)算法更新包含所述分组的流ID(F)的信息。
5、根据权利要求2所述的路由器,其中,当在所述第一存储单元中没有存储空间,并且所述命中计数的总和大于设置阈值时,所述分组处理确定单元从所述第一存储单元中检测在所述第二存储单元中具有最大命中计数(H)的流ID(F)的分组,将输入分组存储到所述第一存储单元的空余空间中,并且将关于所存储的分组的信息更新到所述第二存储单元中。
6、根据权利要求5所述的路由器,其中,当输入分组的流ID(F)存储在所述第二存储单元中,并且所述命中计数(H)为最大值时,所述分组处理确定单元根据最近最少使用(LRU)算法更新所述流ID(F)。
7、根据权利要求6所述的路由器,其中,当输入分组的流ID(F)存储在所述第二存储单元中,并且所述命中计数(H)不是最大值时,所述分组处理确定单元将所述第二存储单元中存储的命中计数(H)的最大值减“1”,并且将输入分组的命中计数(H)加“1”,同时根据最近最少使用(LRU)算法更新所述流ID(F)。
8、根据权利要求7所述的路由器,其中,当输入分组的流ID没有存储在所述第二存储单元中,并且存在空间来更新时,所述分组处理确定单元将与输入分组相对应的条目存储到所述第二存储单元中。
9、根据权利要求8所述的路由器,其中,当输入分组的流ID(F)没有存储在所述第二存储单元中,并且没有空间来更新时,所述分组处理确定单元根据最近最少使用(LRU)算法删除最近最少使用的条目,并且在删除后的空间处更新输入分组的相应条目。
10、一种使用路由器来管理分组传输的队列的方法,包括:
从源设备接收请求发送的分组;
确定第一存储单元中是否存在可用存储空间来存储所述分组;
当所述第一存储单元中没有存储空间时,基于所述源设备请求发送的次数与设置阈值的比较结果,确定是存储还是丢弃所述分组;以及
将关于根据确定结果所处理的分组的信息更新到第二存储单元中,所述第二存储单元存储关于分组的信息。
11、根据权利要求10所述的方法,其中所述第二存储单元中存储的关于分组的信息包括:
流ID(F),这是关于请求发送分组的源设备的信息;
命中计数(H),指示相同源设备请求发送的次数;以及
p_pos_queue(P),指示关于所述第一存储单元中存储的分组位于何处的信息。
12、根据权利要求10所述的方法,其中更新信息的步骤包括:当在所述第一存储单元中没有存储空间,并且所述命中计数的总和小于设置阈值时,丢弃输入分组,并且根据最近最少使用(LRU)算法更新所丢弃的分组的流ID(F)。
13、根据权利要求11所述的方法,其中更新信息的步骤包括:当在所述第一存储单元中存在存储空间来存储分组时,将输入分组存储在所述第一存储单元中,并且根据最近最少使用(LRU)算法更新包含所述分组的流ID(F)的信息。
14、根据权利要求11所述的方法,其中更新信息的步骤包括:当在所述第一存储单元中没有存储空间,并且所述命中计数的总和大于设置阈值时,从所述第一存储单元中检测在所述第二存储单元中具有最大命中计数(H)的流ID(F)的分组;将输入分组存储到所述第一存储单元的空余空间中,并且将关于所存储的分组的信息更新到所述第二存储单元中。
15、根据权利要求14所述的方法,其中更新信息的步骤还包括:当输入分组的流ID(F)存储在所述第二存储单元中,并且所述命中计数(H)为最大值时,根据最近最少使用(LRU)算法更新所述流ID(F)。
16、根据权利要求15所述的方法,其中更新信息的步骤还包括:当输入分组的流ID(F)存储在所述第二存储单元中,并且所述命中计数(H)不是最大值时,将所述第二存储单元中存储的命中计数(H)的最大值减“1”,并且将输入分组的命中计数(H)加“1”,同时根据最近最少使用(LRU)算法更新所述流ID(F)。
17、根据权利要求16所述的方法,其中更新信息的步骤还包括:当输入分组的流ID(F)没有存储在所述第二存储单元中,并且存在空间来更新时,将与输入分组相对应的条目存储到所述第二存储单元中。
18、根据权利要求17所述的方法,其中更新信息的步骤还包括:当输入分组的流ID(F)没有存储在所述第二存储单元中,并且没有空间来更新时,根据最近最少使用(LRU)算法删除最近最少使用的条目,并且在删除后的空间处更新输入分组的相应条目。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040093741 | 2004-11-16 | ||
KR1020040093741A KR100603584B1 (ko) | 2004-11-16 | 2004-11-16 | 라우터 및 이를 이용한 패킷의 큐 관리 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1777145A true CN1777145A (zh) | 2006-05-24 |
Family
ID=36386193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2005101204098A Pending CN1777145A (zh) | 2004-11-16 | 2005-11-10 | 路由器及使用其管理分组队列的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20060104294A1 (zh) |
KR (1) | KR100603584B1 (zh) |
CN (1) | CN1777145A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101094193B (zh) * | 2006-06-23 | 2010-04-14 | 阿里巴巴集团控股有限公司 | 一种对多种来源的多类投递请求进行处理的方法和系统 |
CN102763381A (zh) * | 2009-12-04 | 2012-10-31 | 纳派泰克股份公司 | 在通过控制对队列填充级别进行更新来节省带宽的同时接收并存储数据的组件和方法 |
CN112152939A (zh) * | 2020-09-24 | 2020-12-29 | 宁波大学 | 一种抑制非响应流和服务区分的双队列缓存管理方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9106606B1 (en) | 2007-02-05 | 2015-08-11 | F5 Networks, Inc. | Method, intermediate device and computer program code for maintaining persistency |
KR101421240B1 (ko) * | 2007-03-02 | 2014-07-18 | 삼성전자주식회사 | 라우터 및 그 라우터에서 큐 처리방법 |
US20080288518A1 (en) * | 2007-05-15 | 2008-11-20 | Motorola, Inc. | Content data block processing |
US20110184687A1 (en) * | 2010-01-25 | 2011-07-28 | Advantest Corporation | Test apparatus and test method |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956723A (en) * | 1997-03-21 | 1999-09-21 | Lsi Logic Corporation | Maintaining identifier information in a memory using unique identifiers as a linked list |
KR20000026836A (ko) * | 1998-10-23 | 2000-05-15 | 서평원 | 라우터의 큐우 관리 방법 |
US6556578B1 (en) * | 1999-04-14 | 2003-04-29 | Lucent Technologies Inc. | Early fair drop buffer management method |
US6772221B1 (en) * | 2000-02-17 | 2004-08-03 | International Business Machines Corporation | Dynamically configuring and 5 monitoring hosts connected in a computing network having a gateway device |
JP3755420B2 (ja) * | 2001-05-16 | 2006-03-15 | 日本電気株式会社 | ノード装置 |
US20030193894A1 (en) * | 2002-04-12 | 2003-10-16 | Tucker S. Paul | Method and apparatus for early zero-credit determination in an infiniband system |
KR100429904B1 (ko) * | 2002-05-18 | 2004-05-03 | 한국전자통신연구원 | 차등화된 QoS 서비스를 제공하는 라우터 및 그것의고속 IP 패킷 분류 방법 |
JP2004140539A (ja) * | 2002-10-17 | 2004-05-13 | Hitachi Ltd | 情報ルーティング方式および情報中継装置 |
US7369500B1 (en) * | 2003-06-30 | 2008-05-06 | Juniper Networks, Inc. | Dynamic queue threshold extensions to random early detection |
US20050002354A1 (en) * | 2003-07-02 | 2005-01-06 | Kelly Thomas J. | Systems and methods for providing network communications between work machines |
KR20050099883A (ko) * | 2004-04-12 | 2005-10-17 | 이승룡 | 네트워크 혼잡 적응 버퍼링 방법 |
-
2004
- 2004-11-16 KR KR1020040093741A patent/KR100603584B1/ko not_active IP Right Cessation
-
2005
- 2005-11-10 CN CNA2005101204098A patent/CN1777145A/zh active Pending
- 2005-11-14 US US11/271,862 patent/US20060104294A1/en not_active Abandoned
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101094193B (zh) * | 2006-06-23 | 2010-04-14 | 阿里巴巴集团控股有限公司 | 一种对多种来源的多类投递请求进行处理的方法和系统 |
CN102763381A (zh) * | 2009-12-04 | 2012-10-31 | 纳派泰克股份公司 | 在通过控制对队列填充级别进行更新来节省带宽的同时接收并存储数据的组件和方法 |
CN102763381B (zh) * | 2009-12-04 | 2015-04-22 | 纳派泰克股份公司 | 在通过控制对队列填充程度进行更新来节省带宽的同时接收并存储数据的组件和方法 |
CN112152939A (zh) * | 2020-09-24 | 2020-12-29 | 宁波大学 | 一种抑制非响应流和服务区分的双队列缓存管理方法 |
CN112152939B (zh) * | 2020-09-24 | 2022-05-17 | 宁波大学 | 一种抑制非响应流和服务区分的双队列缓存管理方法 |
Also Published As
Publication number | Publication date |
---|---|
US20060104294A1 (en) | 2006-05-18 |
KR20060054895A (ko) | 2006-05-23 |
KR100603584B1 (ko) | 2006-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1777145A (zh) | 路由器及使用其管理分组队列的方法 | |
CN1315077C (zh) | 有效处理网络数据的系统和方法 | |
JP5640234B2 (ja) | マネージド・ネットワークでのレイヤ2のパケット集約及び断片化 | |
CN1297118C (zh) | 带宽监控设备 | |
CN1736069A (zh) | 计算机或通信系统中的数据包处理 | |
CN1320795C (zh) | 视频数据发送方法和装置 | |
CN1658575A (zh) | 一种在sgsn网络处理器中提高服务质量的方法 | |
US8009563B2 (en) | Method and system for transmit scheduling for multi-layer network interface controller (NIC) operation | |
CN1123175C (zh) | 用于atm服务器的链路层流量控制方法 | |
CN1689278A (zh) | 网络拥塞控制方法和装置 | |
CN101860475B (zh) | 基于上下文感知的自治队列管理的方法 | |
CN1663194A (zh) | 用于光纤信道帧传递的方法和装置 | |
CN1787483A (zh) | 一种流量控制方法 | |
CN1669344A (zh) | 用于提高无线通信服务质量的方法和设备 | |
CN1531804A (zh) | 控制队列缓冲区的方法 | |
CN105991470B (zh) | 以太网设备缓存报文的方法及装置 | |
CN1645837A (zh) | 通信量拥塞控制 | |
CN101834790A (zh) | 一种基于多核处理器的流量控制方法和多核处理器 | |
CN101047640A (zh) | 无线接入承载数据传输方法 | |
CN1832483A (zh) | 通信系统中控制数据传输的方法和系统 | |
CN1901504A (zh) | 一种流媒体点播系统的数据调度方法 | |
CN1910867A (zh) | 用于控制队列缓冲器的方法及装置 | |
CN1866927A (zh) | 实现信息交换的系统及方法和调度算法 | |
CN1859037A (zh) | 一种高速媒体接入控制分组数据单元的发送和接收方法 | |
CN1881943A (zh) | 用于区分包丢失类型的方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |