CN1878132A - 一种实现变长分组包交换的方法及*** - Google Patents
一种实现变长分组包交换的方法及*** Download PDFInfo
- Publication number
- CN1878132A CN1878132A CNA2005101183937A CN200510118393A CN1878132A CN 1878132 A CN1878132 A CN 1878132A CN A2005101183937 A CNA2005101183937 A CN A2005101183937A CN 200510118393 A CN200510118393 A CN 200510118393A CN 1878132 A CN1878132 A CN 1878132A
- Authority
- CN
- China
- Prior art keywords
- bag
- port
- plane
- variable
- multiplexer
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种实现多平面交换***中变长分组包交换的方法,该方法中需要分发器记录每个交换平面的服务量,该方法进一步包括:a.输入端口对收到的变长分组包进行逻辑分割;b.输入端口的分发器在确定自身处于空闲状态、且有变长分组包到达该输入端口后,从所有交换平面中选择一个服务量最小的平面,并将该分组包全部发送到所选中的平面;c.交换平面将收到的分组包顺序地传送到相应的输出端口的复接器;d.复接器将自身收到的分组包发送到输出端口。本发明同时还公开了一种实现多平面交换***中变长分组包交换的***。本发明方案实现了变长分组包能够较为均衡地在各个交换平面上传输,且复接器不需要重新组合分组包,提高了交换效率。
Description
技术领域
本发明涉及通信领域的交换技术,更确切地说是涉及一种实现变长分组包交换的方法及***。
背景技术
目前,网络业务流量的快速增长、对IP QoS要求的提高、光传输技术的逐步完善等因素,使得业界对网络路由器/交换机的性能要求不断提高,比如,通常要求路由器/交换机具有大的交换容量,并要求其具有短的交换时延等。
当前的大容量交换***通常基于信元(cell-based)实现,具体是在变长分组包进行交换之前,先将该分组包(packet)切分为定长的cell,在该packet所对应的所有cell都通过交换结构后,再在输出端口将其重组为packet。该技术可以给路由器/交换机带来很高的交换容量和吞吐率,比如,对于输入缓存的crossbar单级交换结构,当采用较高的内部交换加速因子和优良的交换调度算法时,可达到近T比特级(Tbps)的交换容量和100%的***吞吐率。
就交换结构而言,cell-based技术已经发展得相当完善,但从交换***的角度来看,则该技术仍存在一些问题。这些问题具体如下:
首先,当交换容量很大时,大部分要求采用集中式交换调度控制的交换结构面临的问题是调度处理的时间间隔很短。比如,cell的长度通常在40~80Byte,当端口速率达到10Gbps或以上时,每次调度的周期将缩短至几十nS。而对基于单个交换平面的交换***来说,很短的调度处理时间会极大地限制诸如***容量、调度算法之类的***性能的提高。
其次,由于需要在交换***的输入端口对packet进行切分,在输出端口对cell进行重组,因此导致交换***的交换时延较大。特别是在输出端口,必须等到属于同一变长分组的所有cell都到达后才能重组出有效的分组,这不仅仅存在时延问题,而且对输出端口的缓存及其管理都会带来很大的压力。另外,属于同一变长分组的cell经过不同的内部交换路径到达输出端口,还会出现乱序的问题。
此外,在输入端口将变长分组切分为多个cell的过程中,还存在n+1的问题。即假设cell的有效长度为nByte,如果packet的长度为(k×n+1)Byte,则需要(k+1)个cell来承载该packet,在比较极端的情况下,比如k=1,则即使packet的长度只多出1Byte,也需要再多使用一个cell。显然这会降低***的交换效率。
目前,为解决基于cell的交换***所存在的问题,业界提出了对变长分组直接交换的处理方式。另外,为解决单个交换平面的交换容量有限且扩展容易受限的问题,业界提出了多平面的交换结构。
多平面交换技术能有效地解决有限的缓存带宽问题,并提高数据交换的速率。多平面交换技术能够使交换缓存的运作速率小于数据交换平面入端口处的线速率:在同样数量的数据、以同样的速率到达交换平面入端口的情况下,通过增加处理数据交换的平面个数,可以降低每个交换平面的运作速率。增加交换平面的个数还可以增加交换容量。
具体来说,多平面交换的结构如图1所示,在具有N个入端口、K个交换平面的多平面交换中,入端口的分组包被分发器(de-multiplexer)分发到这K个交换平面上进行处理,这样,每个交换平面的运作速率可以小于入端口的速率R,即每个交换平面的运作速率可以为r=SR/K,其中,S是交换平面内的加速度。数据经过交换后,来自不同交换平面的数据在输出端口处汇聚,由复接器(multiplexer)将数据汇聚,且汇聚后的分组包的速率仍为R。
另外,多平面交换可以支持变长交换,因此可以解决前面所述定长切割时所存在的因需要分配较多cell而导致交换效率低下的问题。
显然,在多平面交换***中,人们希望分发器能够将数据均匀地分发到不同的交换平面上,以确保每个交换平面的负载均衡。由于目前的多平面交换***所处理的是定长的cell,因此要达到多个交换平面间的负载均衡相对比较容易实现。但通过不同交换平面到达输出端口的cell会存在乱序的问题,使得输出端口的变长分组包重组非常困难。而如果采用能够保证属于同一分组包的所有cell按顺序到达输出端口、且基于分组的交换调度算法,则各个交换平面间可能无法达到很好的负载均衡。该矛盾严重影响了多平面交换结构的实际应用。
目前,已有在多平面交换***中设置集中式交换控制器来对多个交换平面进行交换调度,以保证分组包的顺序的方案,但该方案针对的是定长分组包,并且该方案会增加实现的复杂度,并限制***的可扩展性。
目前还提出了“虚拟入端口队列并行分组交换(VIQPPS,Virtual inputQueue parallel Packet Switch)”结构,此结构在输出端口处采用虚拟入端口队列(VIQ,Virtual input Queue)的结构来处理来自不同交换平面的分组包,以保证分组包的顺序。但这样的结构直接运用在变长分组包的交换中存在一定的困难。因为如果使用VIQ来存储来自不同交换平面、且被切割成定长的变长分组包,则必须按照之前的输出端口处的顺序从各个交换平面提取出分组包,并发送到复接器。且顺序的分组包被提取出来后不能直接传送到输出端口,而必须在缓存中停留,直到属于同一个变长分组包的所有cell都到齐了,才能组成完整的变长分组包,之后才能发送到输出端口。在该实现过程中,每一步实现起来都比较复杂,效率也比较低,而且会带来较大的时延,并需要额外的缓存来存储没有及时发送到输出端口的分组包。
由以上描述可知,目前的两种处理方案都存在缺陷。这两种方案虽然能够保证各个分组包传送的顺序,但这两种方案均不能保证各个交换平面的负载均衡,并且后一种处理方案还需要重新组合分组包。
发明内容
有鉴于此,本发明所要解决的主要问题在于:提供一种实现多平面交换***中变长分组包交换的方法,该方法在实现变长分组交换的同时,能够保证各个交换平面的负载均衡,且不需要重新组合分组包。
本发明还提供了一种实现多平面交换***中变长分组包交换的***。
为解决以上问题,本发明提供了以下技术方案:
本发明的一种实现多平面交换***中变长分组包交换的方法,分发器记录每个交换平面的服务量,该方法进一步包括以下步骤:
a.输入端口对收到的变长分组包进行逻辑分割;
b.输入端口的分发器在确定自身处于空闲状态、且有变长分组包到达该输入端口后,从所有交换平面中选择一个服务量最小的平面,并将该分组包全部发送到所选中的平面;
c.交换平面将收到的分组包顺序地传送到相应的输出端口的复接器;
d.复接器将自身收到的分组包发送到输出端口。
所述步骤a为:将分组包逻辑上分为定长的数据段,在该分组包的第一个逻辑数据段上增加头head标识,在最后一个逻辑数据段上增加尾tail标识;
步骤b中,所述分发器将分组包全部发送到所选中的平面为:分发器顺序地将分组包发送到所选中的平面,直至带有tail标识的数据段传送完毕。
所述步骤b中,如果分发器确定自身处于忙状态,则继续传送当前的数据段,并在自身转为空闲状态、且有变长分组包到达该输入端口后,执行步骤b中选择平面及后续的步骤;如果分发器确定自身处于空闲状态、且没有变长分组包到达该输入端口,则该分发器在确定有分组包到达后,再执行步骤b中选择平面及后续的步骤。
交换平面的入端口与分发器连接,出端口与复接器连接,交换平面通过圆盘提供一个以上的入端口和出端口,并通过指针选择入端口和出端口;
所述步骤c之前进一步包括:交换平面在本平面的所有入端口和出端口中选择用于在本平面中传输分组包的入端口和出端口,且所述选择为:如果当前传输的数据中不存在含有tail标识的数据段,则通过锁定当前使用的入端口和出端口来完成分组包的传送;如果存在含有tail标识的数据段,则指针通过按圆盘转动选择用于下一次传输的入端口和出端口,并跳过被锁定的入端口和出端口。
所述步骤d包括:所述复接器如果确定自身当前处于空闲状态,且已有数据段缓存在本复接器中,则选择已到达本复接器的数据段最多的变长分组包进行发送,或选择各个变长分组包中已到达本复接器的数据段的长度之和l满足公式l>L(K-1)/K、且最早到达本复接器的数据段进行发送,其中,L为变长分组包的总长度,K为***中交换平面的总平面数。
所述步骤d中,如果复接器确定自身处于忙状态,则继续传送当前的数据段,并在自身转为空闲状态,且已有数据段缓存在本复接器中后,执行步骤d中发送分组包的步骤;如果复接器确定自身处于空闲状态、且自身没有缓存数据段,则该复接器在确定自身缓存了数据段后,再执行步骤d中发送分组包的步骤。
所述分发器记录的每个交换平面的服务量为:该分发器所对应的输入端口接入的数据流在各个交换平面上的服务量,或者为:该分发器所对应的输入端口与各个输出端口之间的数据流在各个交换平面上的服务量。
该方法进一步包括:设置交换平面服务量的门限及定值,
所述分发器记录每个交换平面的服务量进一步包括:判断所有交换平面的服务量中是否存在大于该门限值的服务量,如果有,则将所有服务量减去所设的定值。
所设的门限为:最大累加器值减去变长分组包的最大长度。
所述分发器记录每个交换平面的服务量进一步包括:如果在减去定值后存在为负值的服务量,则为所有服务量加上所有负值中绝对值最大的值。
本发明的一种实现多平面交换***中变长分组包交换的***,该***包括输入端口、与输入端口对应的分发器、交换平面、输出端口及与输出端口对应的复接器,其中:
输入端口,用于对收到的变长分组包进行逻辑分割,将变长分组包发送到对应的分发器;
与输入端口对应的分发器,用于记录每个交换平面的服务量,以及在确定当前无数据传输、且有变长分组包到达输入端口后,从所有交换平面中选择一个服务量最小的平面,并将输入端口发送来的分组包全部发送到所选中的平面;
交换平面,用于将收到的分组包顺序地传送到相应的输出端口对应的复接器;
与输出端口对应的复接器,用于将自身收到的分组包发送到输出端口。
所述输入端口对收到的变长分组包进行逻辑分割为:将变长分组包逻辑分割为定长的数据段,且在该分组包的第一个逻辑数据段上增加head标识,在最后一个逻辑数据段上增加tail标识;
所述与输入端口对应的分发器将分组包全部发送到所选中的平面为:顺序地将分组包发送到所选中的平面直至带有tail标识的数据段传送完毕。
所述分发器进一步用于:
在确定自身处于忙状态后,继续传送当前的数据段,以及在自身转为空闲状态、且有变长分组包到达该输入端口后,选择服务量最小的平面并发送分组包;
以及在确定自身处于空闲状态、且没有变长分组包到达该输入端口后等待分组包,直至有分组包到达后,再选择服务量最小的平面并发送分组包。
所述交换平面的入端口与分发器连接,出端口与复接器连接,交换平面通过圆盘提供一个以上的入端口和出端口,并通过指针选择入端口和出端口;
所述交换平面进一步用于:在本平面的所有入端口和出端口中选择用于在本平面中传输分组包的入端口和出端口,且所述选择为:如果当前传输的数据中不存在含有tail标识的数据段,则通过锁定当前使用的入端口和出端口来完成分组包的传送;如果存在含有tail标识的数据段,则指针通过按圆盘转动选择用于下一次传输的入端口和出端口,并跳过被锁定的入端口和出端口。
所述复接器进一步用于:在确定自身当前处于空闲状态,且已有数据段缓存在本复接器后,选择已到达本复接器的数据段最多的变长分组包进行发送,或选择各个变长分组包中已到达本复接器的数据段的长度之和l满足公式l>L(K-1)/K、且最早到达本复接器的数据段进行发送,其中,L为变长分组包的总长度,K为***中交换平面的总平面数。
所述复接器进一步用于:在确定自身处于忙状态后,继续传送当前的数据段,并在自身转为空闲状态,且已有数据段缓存在本复接器中后,选择变长分组包进行发送;
以及在确定自身处于空闲状态、且自身没有缓存数据段后,等待数据段,在确定自身缓存了数据段之后,选择变长分组包进行发送。
本发明方案通过分发器记录交换平面的服务量,由输入端口对收到的变长分组包进行逻辑分割,并将每个变长分组包全部在一个平面上传输,使得变长分组包能够较为均衡地在各个交换平面上传输,且复接器不需要重新组合分组包,提高了交换效率。
本发明所采用的交换算法使得交换分组包能够在一个交换平面上传送,且不会被其他变长分组包打扰。
本发明方案通过对复接器进行设置,即设置其在有一定长度的分组包到达后,再将数据段传输到相应的输出端口,从而使得复接器在传送变长分组包的过程中不过多地等待,甚至可以不需要等待。
本发明中的分发器做出分发判断所需的参数均来自本分发器,无需交换平面反馈信息,从而简化了控制参数的传递。且本发明中的分发器仅涉及累加和比较运算,硬件实现代价较低。
本发明中的复接器做出判断所需的参数来自变长分组的头分组和本地记录的各个分组已到达的长度,因此复接器算法的实现也很简单。
附图说明
图1为目前多平面交换***的结构示意图;
图2为本发明的实现流程图;
图3为本发明中对变长分组包逻辑分割的示意图;
图4为本发明中分发器根据不同情况进行数据传输处理的示意图;
图5为本发明中复接器根据不同情况进行数据传输处理的示意图;
图6为交换平面中入端口和出端口的示意图。
具体实施方式
下面结合附图及具体实施例对本发明方案作进一步详细的描述。
如图2所示,本发明方案的处理包括以下几个步骤:
步骤201、输入端口对收到的变长分组进行逻辑分割。
具体来说,当分组包到达交换***的输入端口时,对该分组包并不进行物理上的切割,而是在逻辑上将分组包分割成定长的数据段,即定长的cell,并为该分组包的第一个逻辑cell打上“head”标识,为该分组包的最后一个逻辑cell打上尾部标识“tail”标示。分割后的变长分组包如图3所示,图3中包括了多个变长分组包,且右边第一个cell标有“head”,第四个cell标有“tail”,以标识一个变长分组包,后面则为其它变长分组包。
在传输时,则需要将属于同一变长分组、且定长的数据段cell在一个交换平面上顺序传送,中间不传送其它变长分组的数据段,因此传送的和出端口收到的分组包都是完整的分组包,从而可以避免组合分组包的操作。
步骤202、输入端口的分发器在确定自身处于空闲状态、且有变长分组包到达该输入端口后,从所有平面中选择一个服务量最小的平面,并将该分组包全部发送到所选中的平面。
基于输入端口的逻辑分割,分发器可以背靠背地将分组包发送到该平面,直至带有“tail”标识的数据段传送完毕。
分发器在每次发送分组包到交换平面上时,都需要记录该平面的服务量。即在当前服务量的基础上再加上当前需要发送的分组包的服务量。
步骤203、交换平面将收到的分组包顺序地传送到该分组包所对应的输出端口的复接器。
步骤204、复接器将自身收到的分组包发送到输出端口。
通过上述步骤即可实现分组包在多交换平面中的传输。
基于上述处理可以看出,本发明的多平面交换***虽然与图1相同,仍包含输入端口、与输入端口对应的分发器、交换平面、输出端口及与输出端口对应的复接器,但各个部分的处理都与现有技术存在不同,也即各个部分的功能实现均与现有技术不同。
上述步骤202中,需要确定输入端口的分发器当前时间片是否处于空闲状态、且有变长分组包到达该输入端口。实际上,分发器在当前时间片还可能处于忙状态,或处于闲状态、且没有变长分组包到达的情况,对于前者,分发器对该输入端口在当前时间片继续传送某个变长分组包的数据段,并在自身转为空闲状态、且有变长分组包到达该输入端口后,进行相应的处理;对于后者,分发器则保持空闲状态,并监视是否有分组包到达,且该分发器在确定有分组包到达后,再进行相应的处理。分发器的处理流程如图4所示。
为进一步描述本发明方案,在此先定义几个概念:
kt:表示第k个时间片。时间被分为长度为t的时间片,在每个时间片,分发器、每个交换平面和复接器都会进行相应的处理。
flowi:表示输入端口i接收到、且要发送到输出端口的数据流。
Si,p(kt):表示交换平面p在时刻kt从flowi得到的服务量。这个服务量记录在输入端口i的分发器i处。Si,p(0)的初始值被设置为0,随着时间的推移,Si,p(kt)根据所发往到平面p的数据段的数目来增加。
基于上述所定义的概念,下面对步骤202的处理进行具体描述。
分发器i当前处于空闲状态,且发现数据流flowi中的变长分组包到达了输入端口i,则该分发器i在自身所存储的服务量集合(Si,0(kt),Si,1(kt),......Si,pmax(kt))中寻找具有最小服务量值的平面,并将该变长分组包发送到该平面。其中,pmax为交换平面的个数,假设平面p1在时刻kt具有最小的服务量值Si,p1(kt),则分发器i将到达输入端口i、且长度为L的变长分组包的数据段背靠背地发送到该选中的平面,直至标有“tail”的数据段传送完毕。并且分发器i可以在传送该变长分组包的第一个数据段时,即将自身记录的Si,p1(kt)增加到(Si,p1(kt)+L)。
另外,由于Si,p1(kt)为一累加值,在工作过程中总是不断增加的,因此具体实现具有上述功能的分发器时,考虑有限长度的累加器,可执行如下处理:如果某个Si,p(kt)的数值超过预先设置的门限值Smax,其中,该门限可设置为最大累加器值减去变长分组包的最大长度,则将集合(Si,0(kt),Si,1(kt)......Si,pmax(kt))中的所有服务量减去一个预先设置的定值Shold,若集合中有某个或某几个服务量在减去Shold后出现负值,则将这些值为负数的服务量重新置为0。由于正常工作中多个交换平面的负载是动态平衡的,这意味着(Si,j,0(kt),Si,j,1(kt)......Si,j,pmax(kt))间的偏差不是很大,因此若合理选取服务量累加器的最大长度和Shold的大小,则各个服务量均减去Shold后出现多个负值的概率很小,对上述负载均衡算法的性能不会产生很大影响。当然,为使各个交换平面的服务量能够进一步地均衡,则可以在出现某个或某几个负值的服务量时,为本分发器中的所有服务量加上这些负值中绝对值最大的量值。
上述在分发器端只针对输入端口记录各个交换平面的服务量,为进一步确保各交换平面的均衡,还可以进一步针对输出端口记录各个交换平面的服务量,即通过Si,j,p(kt):表示交换平面p在时刻kt从flowi,j得到的服务量,其中,flowi,j表示从输入端口i到输出端口j的数据流。这样,则分发器记录的是输入端口i与输出端口j之间的数据流分配在各个交换平面上传输的数据量。后续的处理则与前面相同,只不过分发器在获取服务量时,需要同时根据输入端口和输出端口进行查找。
上述处理均只针对分发器,本发明方案为提高出端口的复接器的效率,减少等待时间,还针对复接器提出了相应的处理方案。比如,如果复接器确定自身当前处于空闲状态、且已有cell缓存在本复接器中,则选择已到达本复接器的变长分组包长度最长的cell进行发送。复接器还可能确定自身当前处于忙状态,则继续传送当前的数据段,并在自身转为空闲状态,且已有数据段缓存在本复接器中后,再执行相应的处理;如果复接器确定自身处于空闲状态、且自身没有缓存数据段,则该复接器在确定自身缓存了数据段后,再执行相应的处理。复接器的处理如图5所示。
当然,为进一步提高复接器的效率,还可以执行以下处理。
为便于描述,首先提出候选平面的概念。候选平面的定义为:在复接器端,来自平面p且长度为L的变长分组包要竞争出端口,如果此变长分组包已经有长度为l的数据段到达了复接器,且l>L(K-1)/K,那么此平面就是竞争该出端口的候选平面之一。其中,该公式可由(L-l)/(R/K)=L/R推导得到,且变长分组包的长度L可以从分组包的头分组中获得,复接器中会记录已到达本复接器的cell的长度l,K为交换平面的个数,复接器可以获知。另外,为简化计算,还可以将(K-1)/K归结为一个特定的常数。
因此,在上述步骤204中,复接器如果确定自身在当前时间片已传送完一个变长分组包的所有数据段,且当前已缓存了一些数据段,则复接器将优先选择候选平面中的分组包进行发送。进一步地,如果有一个以上的候选平面中的数据段到达了本复接器,则可以优先发送最早到达本复接器缓存的数据段。
另外,由于一个交换平面通常具有多个入端口和出端口,比如,通常这些端口以转盘形式存在,并且这些端口可以同时传输不同的分组包,如图6所示。因此,在上述步骤203中,交换平面在接收分发器发送来的变长分组包时,需要选择当前使用的入端口和出端口。如果数据段中的标识为“tail”,则输入端口的转盘指针a和输出端口的转盘指针g可以按照ISLIP算法进行更新,而如果为其它情况,则可以使用称为PBILSIP的变长交换算法来确定。由于交换平面中的入端口和出端口可以采用相同的处理方案,因此这里仅以入端口为例进行详细描述。
首先说明ISLIP算法。ISLIP算法是一种改进的轮询算法,由一个2-D的轮转仲裁器组成。信元在每个入端口和出端口由轮询仲裁器进行调度。ISLIP在轮询算法的基础上进行了改进,以减少在输出仲裁器中出现的同步现象。ISLIP具有最近刚建立的连接被置为最低优先级、不会出现饿死现象以及在高负载情况下,各输出端口都有着同样的吞吐率的特点。
ISLIP算法在输入输出调度中采用固定的轮转顺序,具体包括三个步骤:
1、请求(Request)。每个入端口向其队列中信元可能到达的出端口发送请求。
2、响应(Grant)。交换平面中的输出端收到请求后,从固定轮转顺序的优先级列表中选择当前优先级最高的出端口,并通知所有输入端是否被响应。
3、确认(Accept)。输入端收到响应后,从固定轮转顺序表中选择当前优先级指针所指的出端口。并在固定轮转顺序表中将指向最高优先级的指针pa增加1,以移到下一个地方。
下面再描述一下PBILSIP变长交换算法。该交换算法具体分为三步:
1、信元请求阶段。对于所有没有匹配,即没有建立输入-输出对应关系的输入端口,如果该端口当前有信元需要交换,则向对应的输出端口发送请求。
2、仲裁结果通告阶段。对于没有匹配的输出端口,如果收到了请求信号,则移动其滑动窗口的指针,以找到下一个具有最高优先级的仲裁端口,并将所找到的仲裁端口通告给对应的输入端口。
3、输入端判决并发送信元阶段。如果输入端口收到通告,其也移动自己滑动窗口的指针,找到下一个具有最高优先级的判决端口,将其作为接受端口完成一次匹配。
该PBISLIP交换算法可以通过迭代若干次完成整个算法。且对于该交换算法而言,迭代的次数可以少于ISLIP算法的迭代次数。最佳的迭代次数需要通过仿真来说明。
基于ISLIP交换算法和PBISLIP交换算法更新交换平面中入端口的转盘指针a及出端口的转盘指针g的方法如下:
1、一个端口的输入队列中,只要存在含有标识“tail”的数据段,则指针通过按圆盘转动进行更新,但跳过被锁定的端口。
2、如果一个端口的输入队列中并不存在含有标识“tail”的数据段,则该端口被锁定不动,即继续完成一个变长分组包的传送。这些被匹配的端口称为被锁定的端口。
3、需要将圆盘上所有已经匹配的端口号掩盖(MASK)掉,也就是将已锁定的端口号掩盖掉。当圆盘转动时,指针将不会停留在已被MASK的端口号上。MASK的操作关键是消除了已被匹配的端口号再得到其他匹配的可能性。
以上所述仅为本发明方案的较佳实施例,并不用以限定本发明的保护范围。
Claims (16)
1、一种实现多平面交换***中变长分组包交换的方法,其特征在于,分发器记录每个交换平面的服务量,该方法进一步包括以下步骤:
a.输入端口对收到的变长分组包进行逻辑分割;
b.输入端口的分发器在确定自身处于空闲状态、且有变长分组包到达该输入端口后,从所有交换平面中选择一个服务量最小的平面,并将该分组包全部发送到所选中的平面;
c.交换平面将收到的分组包顺序地传送到相应的输出端口的复接器;
d.复接器将自身收到的分组包发送到输出端口。
2、根据权利要求1所述的方法,其特征在于,所述步骤a为:将分组包逻辑上分为定长的数据段,在该分组包的第一个逻辑数据段上增加头head标识,在最后一个逻辑数据段上增加尾tail标识;
所述步骤b中,所述分发器将分组包全部发送到所选中的平面具体为:分发器顺序将分组包发送到所选中的平面,直至带有tail标识的数据段传送完毕。
3、根据权利要求1所述的方法,其特征在于,所述步骤b中,如果分发器确定自身处于忙状态,则继续传送当前的数据段,并在自身转为空闲状态、且有变长分组包到达该输入端口后,执行步骤b中选择平面及后续的步骤;如果分发器确定自身处于空闲状态、且没有变长分组包到达该输入端口,则该分发器在确定有分组包到达后,再执行步骤b中选择平面及后续的步骤。
4、根据权利要求2所述的方法,其特征在于,交换平面的入端口与分发器连接,出端口与复接器连接,交换平面通过圆盘提供一个以上的入端口和出端口,并通过指针选择入端口和出端口;
所述步骤c之前进一步包括:交换平面在本平面的所有入端口和出端口中选择用于在本平面中传输分组包的入端口和出端口,且所述选择为:如果当前传输的数据中不存在含有tail标识的数据段,则通过锁定当前使用的入端口和出端口来完成分组包的传送;如果存在含有tail标识的数据段,则指针通过按圆盘转动选择用于下一次传输的入端口和出端口,并跳过被锁定的入端口和出端口。
5、根据权利要求1所述的方法,其特征在于,所述步骤d包括:所述复接器如果确定自身当前处于空闲状态,且已有数据段缓存在本复接器中,则选择已到达本复接器的数据段最多的变长分组包进行发送,或选择各个变长分组包中已到达本复接器的数据段的长度之和l满足公式l>L(K-1)/K、且最早到达本复接器的数据段进行发送,其中,L为变长分组包的总长度,K为***中交换平面的总平面数。
6、根据权利要求5所述的方法,其特征在于所述步骤d中,如果复接器确定自身处于忙状态,则继续传送当前的数据段,并在自身转为空闲状态,且已有数据段缓存在本复接器中后,执行步骤d中发送分组包的步骤;如果复接器确定自身处于空闲状态、且自身没有缓存数据段,则该复接器在确定自身缓存了数据段后,再执行步骤d中发送分组包的步骤。
7、根据权利要求1所述的方法,其特征在于,所述分发器记录的每个交换平面的服务量为:该分发器所对应的输入端口接入的数据流在各个交换平面上的服务量,或者为:该分发器所对应的输入端口与各个输出端口之间的数据流在各个交换平面上的服务量。
8、根据权利要求7所述的方法,其特征在于,该方法进一步包括:设置交换平面服务量的门限及定值,
所述分发器记录每个交换平面的服务量进一步包括:判断所有交换平面的服务量中是否存在大于该门限值的服务量,如果有,则将所有服务量减去所设的定值。
9、根据权利要求8所述的方法,其特征在于,所设的门限为:最大累加器值减去变长分组包的最大长度。
10、根据权利要求8所述的方法,其特征在于,所述分发器记录每个交换平面的服务量进一步包括:如果在减去定值后存在为负值的服务量,则为所有服务量加上所有负值中绝对值最大的值。
11、一种实现多平面交换***中变长分组包交换的***,其特征在于,该***包括输入端口、与输入端口对应的分发器、交换平面、输出端口及与输出端口对应的复接器,其中:
输入端口,用于对收到的变长分组包进行逻辑分割,将变长分组包发送到对应的分发器;
与输入端口对应的分发器,用于记录每个交换平面的服务量,以及在确定当前无数据传输、且有变长分组包到达输入端口后,从所有交换平面中选择一个服务量最小的平面,并将输入端口发送来的分组包全部发送到所选中的平面;
交换平面,用于将收到的分组包顺序地传送到相应的输出端口对应的复接器;
与输出端口对应的复接器,用于将自身收到的分组包发送到输出端口。
12、根据权利要求11所述的***,其特征在于,所述输入端口对收到的变长分组包进行逻辑分割为:将变长分组包逻辑分割为定长的数据段,且在该分组包的第一个逻辑数据段上增加head标识,在最后一个逻辑数据段上增加tail标识;
所述与输入端口对应的分发器将分组包全部发送到所选中的平面为:顺序地将分组包发送到所选中的平面直至带有tail标识的数据段传送完毕。
13、根据权利要求11所述的***,其特征在于,所述分发器进一步用于:
在确定自身处于忙状态后,继续传送当前的数据段,以及在自身转为空闲状态、且有变长分组包到达该输入端口后,选择服务量最小的平面并发送分组包;
以及在确定自身处于空闲状态、且没有变长分组包到达该输入端口后等待分组包,直至有分组包到达后,再选择服务量最小的平面并发送分组包。
14、根据权利要求11所述的***,其特征在于,所述交换平面的入端口与分发器连接,出端口与复接器连接,交换平面通过圆盘提供一个以上的入端口和出端口,并通过指针选择入端口和出端口;
所述交换平面进一步用于:在本平面的所有入端口和出端口中选择用于在本平面中传输分组包的入端口和出端口,且所述选择为:如果当前传输的数据中不存在含有tail标识的数据段,则通过锁定当前使用的入端口和出端口来完成分组包的传送;如果存在含有tail标识的数据段,则指针通过按圆盘转动选择用于下一次传输的入端口和出端口,并跳过被锁定的入端口和出端口。
15、根据权利要求11所述的***,其特征在于,所述复接器进一步用于:在确定自身当前处于空闲状态,且已有数据段缓存在本复接器后,选择已到达本复接器的数据段最多的变长分组包进行发送,或选择各个变长分组包中已到达本复接器的数据段的长度之和l满足公式l>L(K-1)/K、且最早到达本复接器的数据段进行发送,其中,L为变长分组包的总长度,K为***中交换平面的总平面数。
16、根据权利要求15所述的***,其特征在于,所述复接器进一步用于:在确定自身处于忙状态后,继续传送当前的数据段,并在自身转为空闲状态,且已有数据段缓存在本复接器中后,选择变长分组包进行发送;
以及在确定自身处于空闲状态、且自身没有缓存数据段后,等待数据段,在确定自身缓存了数据段之后,选择变长分组包进行发送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2005101183937A CN1878132A (zh) | 2005-10-31 | 2005-10-31 | 一种实现变长分组包交换的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2005101183937A CN1878132A (zh) | 2005-10-31 | 2005-10-31 | 一种实现变长分组包交换的方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1878132A true CN1878132A (zh) | 2006-12-13 |
Family
ID=37510431
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2005101183937A Pending CN1878132A (zh) | 2005-10-31 | 2005-10-31 | 一种实现变长分组包交换的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1878132A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101094077B (zh) * | 2007-02-28 | 2010-05-26 | 华为技术有限公司 | 一种多平面交换网的全局时标同步方法及*** |
CN101014012B (zh) * | 2007-02-02 | 2010-08-25 | 华为技术有限公司 | Benes网络及其变长分组分发方法及设备 |
CN102118304A (zh) * | 2010-01-05 | 2011-07-06 | 中兴通讯股份有限公司 | 一种信元交换方法和装置 |
CN103595658A (zh) * | 2013-11-18 | 2014-02-19 | 清华大学 | 无需闭环流控的可扩展定长多路径交换*** |
CN107896199A (zh) * | 2017-10-20 | 2018-04-10 | 深圳市风云实业有限公司 | 传输报文的方法和装置 |
-
2005
- 2005-10-31 CN CNA2005101183937A patent/CN1878132A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101014012B (zh) * | 2007-02-02 | 2010-08-25 | 华为技术有限公司 | Benes网络及其变长分组分发方法及设备 |
CN101094077B (zh) * | 2007-02-28 | 2010-05-26 | 华为技术有限公司 | 一种多平面交换网的全局时标同步方法及*** |
CN102118304A (zh) * | 2010-01-05 | 2011-07-06 | 中兴通讯股份有限公司 | 一种信元交换方法和装置 |
CN102118304B (zh) * | 2010-01-05 | 2014-03-12 | 中兴通讯股份有限公司 | 一种信元交换方法和装置 |
CN103595658A (zh) * | 2013-11-18 | 2014-02-19 | 清华大学 | 无需闭环流控的可扩展定长多路径交换*** |
CN103595658B (zh) * | 2013-11-18 | 2016-09-21 | 清华大学 | 无需闭环流控的可扩展定长多路径交换*** |
CN107896199A (zh) * | 2017-10-20 | 2018-04-10 | 深圳市风云实业有限公司 | 传输报文的方法和装置 |
CN107896199B (zh) * | 2017-10-20 | 2021-03-16 | 深圳市风云实业有限公司 | 传输报文的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11916781B2 (en) | System and method for facilitating efficient utilization of an output buffer in a network interface controller (NIC) | |
US10341260B2 (en) | Early queueing network device | |
US8811411B2 (en) | Packet aggregation and fragmentation at layer-2 over a managed network | |
EP2466476B1 (en) | Network interface device with multiple physical ports and unified buffer memory | |
CN1201532C (zh) | 具有中心调度程序的atm交换机及其调度方法 | |
US8340120B2 (en) | User selectable multiple protocol network interface device | |
CN1317189A (zh) | 网络分组交换***和方法 | |
CN1214168A (zh) | 有效的输出请求分组交换设备和方法 | |
US7529865B1 (en) | Packet buffer management apparatus and method | |
US12068972B1 (en) | Shared traffic manager | |
CN1866910A (zh) | 一种基于vlan的数据报文传输方法和以太网桥设备 | |
CN1878132A (zh) | 一种实现变长分组包交换的方法及*** | |
US10846225B1 (en) | Buffer read optimizations in a network device | |
CN1791069A (zh) | 输入排队分组交换结构及队列服务规则 | |
US20090213857A1 (en) | Method, system, computer program product, and hardware product for ethernet virtualization using an elastic fifo memory to facilitate flow of broadcast traffic to virtual hosts | |
CN1292568C (zh) | 一种多队列数据分组连续转发的装置和方法 | |
CN111352657A (zh) | FPGA高速高效流水读取x86数据的方法 | |
CN101064697A (zh) | 一种实现异步传输模式网络服务质量控制的装置和方法 | |
US10742558B1 (en) | Traffic manager resource sharing | |
US20060077973A1 (en) | Output scheduling method of crosspoint buffered switch | |
US20090225665A1 (en) | Method, system, computer program product, and hardware product for ethernet virtualization using an elastic fifo memory to facilitate flow of unknown traffic to virtual hosts | |
CN101964747A (zh) | 基于前置反馈的两级交换结构工作方法 | |
CN1933441A (zh) | 一种支持均匀交换的路由器交换结构及服务质量保证方法 | |
US11201829B2 (en) | Technologies for pacing network packet transmissions | |
CN1125548C (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 |