CN1455345A - 并行处理路由选择装置 - Google Patents

并行处理路由选择装置 Download PDF

Info

Publication number
CN1455345A
CN1455345A CN03136810.7A CN03136810A CN1455345A CN 1455345 A CN1455345 A CN 1455345A CN 03136810 A CN03136810 A CN 03136810A CN 1455345 A CN1455345 A CN 1455345A
Authority
CN
China
Prior art keywords
data
word
section
output
memory
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
CN03136810.7A
Other languages
English (en)
Other versions
CN100373888C (zh
Inventor
A·莱斯帕尼奥尔
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.)
Alcatel CIT SA
Alcatel Lucent SAS
Alcatel Lucent NV
Original Assignee
Alcatel NV
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 Alcatel NV filed Critical Alcatel NV
Publication of CN1455345A publication Critical patent/CN1455345A/zh
Application granted granted Critical
Publication of CN100373888C publication Critical patent/CN100373888C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/103Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory

Abstract

数据路由装置,首先包括有m个子存储器的缓冲存储器(10)的管理模块(9),子存储器在选定地址中以数据包段部分的形式存储初始路由选择数据和存储地址(FSA(n)),并与要发送的次级数据相关,它根据指令在m个第一并行输出发送其存储的某些部分,其次包括传输模块(12)能:i)从模块(9)接收存储段部分的选定存储地址,ii)根据选定标准向模块(9)发送存储地址,以在第一并行输出处接收存储在存储地址中的部分段,iii)将不同段的部分导向至少两个路由选择表,根据存储在表中的数据及对各段的分析,并行确定指定输出端口(7)的三级数据和与次级数据相关的、存储在地址(FSA(n))中并向端口(7)发送的新初始数据。

Description

并行处理路由选择装置
技术领域
本发明涉及在网络中处理数据包,特别涉及至少能够提供路由选择功能的装置。
本文中“路由选择”表示在网络中在OSI模型的第三级传输数据包的功能。
背景技术
对于在网络中传输数据来说,路由选择是一个基本功能。它包括利用一个路由选择表来在网络的每个节点确定能将一个数据包在其源和目的地之间最佳传输的下一个节点。它是利用L3F型(Level 3 Forwarding)路由器或称为交换机-路由器的“复合”数据包处理装置实现,所述“复合”数据包处理装置同时实现交换和路由选择。
由于网路,特别是公用网络的不间断发展,必须经常对路由选择表进行更新,通常每5秒钟就要更新一次。这需要进行大量的数据交换,通常是若干兆比特,这样就大大限限制了路由选择或交换设备的性能。此外,现行路由选择或交换设备的分布式体系结构被证明越来越不适应不断增长的网络业务量。
发明概述
因此,本发明的目的在于完全或部分消除上述缺陷。
为此,本发明提出一种数据路由选择装置设备,该装置包括:一个管理模块和一个传输模块,所述管理模块能接收初始路由选择数据和与初始数据(primarydata)相关的次级数据(secondary data)的存储地址,所述传输模块能根据接收到的数据和存储在至少一个路由选择表中的数据确定三级数据(tertiary data)和新的初始路由选择数据,所述三级数据指定数据传送级的输出端口中的至少一个,该传输模块还向传送级传送如此确定的初始数据和三级数据,以便将至少某些新的初始数据与存储在存储地址中的次级数据结合,然后发送到由三级数据指定的各输出端口。
此处,“数据的传送级”指的是这样一个级,它包括一个具有用于接收数据包的输入端口的输入子级(或入口级),一个用于在存储地址中临时存储要路由选择的数据的缓冲存储器,和一个具有发送已路由选择的数据的输出端口的输出子级(或出口级)。
该设备的特征在于:
·管理模块包括一个缓冲存储器,该缓冲存储器被分成n个子存储器,每个子存储器均可在一个选定的地址存储收到的被分解的数据包的每一段的一部分,并根据指令在n个并行输出同时发送它们存储的部分中的一个,和
·传输模块首先能从所述管理模块中接收要路由选择的数据包的第一段的选定的存储地址,其次,根据选定的标准向管理模块发送某些第一段的存储地址,以便在第一并行输出处接收存储在存储地址中的段部分,第三,将属于不同段的各部分送到一个或多个路由选择表,从而根据存储在路由选择表中的数据以及通过对不同的段一部分接一部分的分析,确定与次级数据相关的初始数据和三级数据。
这种新的体系结构意味着可以根据要路由选择的数据的比特速率选择路由选择表的数量。此外,本发明装置的新颖设计意味着它可以被置于任何具有集中体系结构的新型交换-路由器中,其中特别是可以共享通信量控制和缓冲存储。
数据最好以长度相同的段形式直接到达管理模块,而不必分成若干部分。分段是,例如,由数据包处理装置的数据传送级实现的。
优选的,管理和传输模块构成L3F型的路由选择级,该路由选择级可以与一数据传送级耦合。
在一个优选实施例中,传输模块包括一个输入级,它首先带有n个寄存器,用于存储接收到的n个第一段的存储地址,其次,该输入级带有一个输入缓冲存储器,它能从管理模块接收第一段的选定的地址,以便供给所述寄存器,第三,该输入级带有一个包处理单元(或移位器),该单元具有n个输入,分别通过n个第一并行输入n个段部分,以及至少一个能发送属于不同段的定向部分的第二输出。每个处理单元最好包括与第二输出相同数量的输入。
同样在一个优选实施例中,传输模块包括1~n个(数量根据每秒需要路由选择的数据包的数量而定)路由选择单元,这些路由选择单元由第二输出提供不同的段部分,每一路由选择单元包括一个可重写存储器,该存储器存储路由选择表中的一个,并能并行确定初始数据和与次级数据相关的三级数据。传输模块最好具有与第二输出数量相同的并行路由选择单元。
根据本发明的另一个特征,各路由选择表构成本领域技术人员称作trietable的表。因此,该路由选择表在行中存储定义表示路由选择的前缀的字懂得初始数据,并且,收到的每个段部分用于访问一行中的字中的一个。各路由选择表(即各trie table)最好存储代表第一和第二种类型的字的初始数据,第一和第二种类型分别定义所谓的“中间”字和“最终”字,只有最终字表示新的初始路由选择数据。
此外,如果传输模块包括一个输出级,该输出级带有与传送级的输出端口的数量相同的输出缓冲存储器,并且能够接收三级数据、新的初始数据以及路由选择单元的存储地址,则将是十分有利的。另一方面,可以为每个输出端口提供一组缓冲存储器,以便提供例如一种以上质量的服务。在这种情况下,输出级最好也包括一个由路由选择单元馈给并向输出缓冲存储器馈送的多路转换器。
包括trie table式路由选择表的路由选择单元的每一个可以首先包括一个中间模块,该中间模块有一个耦合到可重写存储器(存储trie table)的输出以及第一和第二输入,这两个输入分别由输入级第二输出中的一个和可重写存储器的输出馈给,其次,每个路由选择单元还能从路由选择表中提取存储在由已接收部分指定的地址中的字,并想可重写存储器的输出发送该字,以便根据提取的字是第一类还是第二类来将其提供给中间模块的第二输入或输出级。在这种情况下,在接收表示第一类字的数据时,中间模块从路由选择表中提取存储在由第一类字指定的地址中的字,并将该字发送给可重写存储器的输出处,以便根据提取的字是第一类还是第二类来将其提供给中间模块的第二输入或输出级。这种操作反复进行直到从有关的路由选择表中提取一个最终字(第二类)。
在一个优选实施例中,输入和输出的缓冲存储器先进先出(FIFO)型缓冲存储器。
本发明还提供一种带有数据传送级和一个本发明装置的路由器或包处理装置(交换-路由器式)。在这种情况下,本发明装置构成路由器或包处理装置的路由选择级,它与数据传送级耦合。
本发明还提供一种与初始路由选择数据和存储地址相关的次级数据的路由选择方法,在该方法中,根据初始数据以及存储在至少一个路由选择表中的数据确定指定至少一个输出端口的三级数据以及新的初始路由选择数据,然后,发送如此确定的初始数据和三级数据,以便使至少某些新初始数据与存储在存储地址中的次级数据结合,然后向由三级数据指定的各输出端口传送。
该方法的特征在于指定至少一个输出端口的三级数据和新的初始数据是如下确定的:首先在n个子存储器内所选地址中存储各个段的n个部分,所述段是通过分解接收到的且有待路由选择的数据包得到的,其中包括第一段,其次,在选择的区域中存储相继接收到的第一段的选定的存储地址,然后根据选定的标准,并行地从子存储器中提取存储在存储地址中的部分,这些地址储包含在某些选定的区域中,以便同时并行地发送段部分,第三,将属于不同段的部分导向至少一个路由选择表(根据需要),从而根据存储在路由选择表中的数据以及根据对各种同段一部分一部分的分析结果,并行地确定与有待发送的次级数据相关的初始和三级数据。
最好以长度相同的段的形式接收路由选择数据。
路由选择最好为L3F型。
最好将同一段各部分的存储地址存储在n个基本相同的寄存器中。
路由选择表的数量最好与子存储器的数量相同。
根据本发明方法的另一特征,每一个路由选择表(trie table)以行的形式存储定义表示路由选择前缀的字的初始数据,并且收到的各个段部分被用于访问一行字中的一个。初始数据最好表示第一和第二类型的字。在这种情况下,在确定阶段,存储在由接收到的段部分指定的地址中的字被从路由选择表中提取出,然后发送,以便根据该字是第一类还是第二类重新馈给路由选择表或输出端口,每当发送第一类字时,就从路由选择表中提取另一个存储在由被发送的字指定的地址中的字,直至得到第二类字为止。
上面所述的本发明的装置和方法尤其适用于,但不限于,例如互连网协议(IP)类的路由选择标准,而不论媒体如何,以及那些相应于无连接协议的路由选择标准。
附图说明
本发明的其它特征和优点在下面结合附图的详细描述以后将会更加清楚,其中:
图1是本发明的构成一个路由器的路由选择装置的示意性框图;
图2的框图示出了图1装置的路由选择级;
图3示出了图2的路由选择级的管理模块的缓冲存储器的结构的一个例子;
图4示出了图2的路由选择级的管理模块的缓冲存储器的实施例;
图5示出了在图2的路由选择级的管理模块的缓冲存储器中存储(读取)数据的一种模式;
图6示出了路由选择机构的一个例子;
图7A和7B示出了本装置的主时钟产生的信号以及在该主时钟与装置的计数器之间的连接;
图8所示的图表表示在路由选择级的传输模块的处理模块输入处阅读数据的方式;
图9所示的图表表示在路由选择级的传输模块的处理模块输出处读取数据的一种模式;
图10是trie table式的路由选择表的例子。
这些附图总的来讲体现了本发明的特征。因此,构成本发明说明书的一部分并且有助于定义本发明。
具体实施方式
首先参见图1来说明本发明的路由选择装置的一个实施例,该路由选择装置构成一个路由器。
当然,本发明的装置也可以用在交换一路由器式的处理设备中,特别是具有集中的交换功能和路由选择功能的设备中。该装置也可以只构成路由器的路由选择级。
首先,装置1包括一个数据传送级2,它包括一个输入子级(或入口级)3,一个缓冲存储器5以及一个输出子级(或出口级)6,该输入子级3具有用于接收数据包的输入端口4,该缓冲存储器5临时存储由所述输入子级3发送的需要处理的数据,该输出子级6具有用于发送处理过的信号,特别是来自缓冲存储器5的处理过的信号的输出端口7。
该装置1还包括一个路由选择级8,它由输入子级3提供路由选择数据,并向输出子级6提供新的路由选择数据。
装置1的各构件利用一个主时钟MCL同步,主时钟的周期作为主计数器MCP和辅助计数器(MCP16,MCPi)增量的基础,如图7A和7B所示。MCPx是模数为x的计数器,以时钟MCL的计时率增量。
在专利文献US5,237,564和EP00/440,281中详细描述了数据传送级2,此处引入这两篇文献的全部技术内容作为参考。因此,本文仅说明传送级2的主要作用,而不是其辅助作用。
首先,使输入子级3能在其1个输入端口4接收长度不同的数据包,并从这些数据中提取表示路由选择信息的初始数据和要处理的次级数据,所述路由选择信息应当由路由选择级8进行处理。
将次级数据送到缓冲存储器5中,并存储在存储地址FSA(s)内。例如,如果缓冲存储器5可以存储s个段,则计数器MCPs随时在该缓冲存储器5中给出来的段的存储地址FSA(s)。将初始数据与存储地址FSA(s)(事实上就是MCPs的当前值)一起传送到路由选择级8,相关的次级数据临时存储在缓冲存储器5的中存储地址FSA(s)。
如上面提到的专利文献所述,在接收的数据包还没有传送到缓冲存储器5和路由选择级8以前,最好先将其在在输入子级3中分段。分段包括将各个数据包分割成长度相同的段,同时保持它们在缓冲存储器5和路由选择级8处的连接关系。一旦路由选择级8确定了新的路由选择信息,则通过增加新的路由选择信息(初始数据),在向输出端口7发送以前,重新构造缓冲存储器5中等待传输的原来的数据包的次级数据。
随着各段的到达并且当各段到达时,路由选择级8计数收到的一个数据包的段数(PL(i))。
通常,初始数据包含在收到的数据包的第一段中。它通常包括数据包源端口和地址,以及目的地端口和地址。
在路由选择的情况下,初始数据通常是路由选择信息,例如目的地地址,用于路由选择表的索引。路由选择信息通常是全局标识符,意味着在传送数据包以前不建立任何连接。许多路由选择协议都是根据该原理操作,特别是互联网协议(IP),而不论媒体如何。在IP协议的情况下,全局标识符,称为IP地址,用于数据包的本地路由选择,路由选择表发出的新的初始数据形成一个新标识,用于下一个装置中的路由选择。
如果装置1具有I个输入端口4时,各段就被分成I个部分(也称为字)。处理一个字(或部分)的时间等于主时钟MCL的周期。设置输入端口4以便在到达输入端口i-1(模数1)的段的前面,给到达输入端口i的段安排一个字。同样,设置输出端口7以便在传输到输出端口i-1(模数I)的段的前面,给传输到输出端口i的段安排一个字。
现在参见图2-10说明本发明的路由选择级的一个实施例。
图2所示的路由选择级8为L3F型。它包括一个管理模块9,管理模块中有一个管理缓冲存储器10,在该缓冲存储器中的一个选定地址i内存储有包含在由输入子级3传送的第一段中的初始路由选择数据、与初始数据相关的次级数据的第一段的缓冲存储器5中的存储地址FSA(s)、并且(最好)还存储有相关数据包的总的段数PL(i)。
如图3所示,第一段和附加数据(MFSA(i)和MPL(i))最好垂直存储在管理缓冲存储器10中,该缓冲存储器最好是循环存储器。因此,如果缓冲存储器10有m个输入(或称为列),则当收到m个需要路由选择的数据包时,就用新的第一段代替原有的第一段。
可以根据进入装置1中的数据包的比特速率以及装置1的服务比特速率(或数据包的路由选择比特速率),很容易控制缓冲存储器10的容量m。服务比特速率最好高于输入比特速率,这样,即使缓冲存储器10的容量m较小,也可以确保段不会丢失(或被替换,这会使得相关数据包丢失)。
将到达管理模块9的段分成多个段部分,每个段部分构成一个字。因此,如图4所示,管理缓冲存储器10被分成n个相同的且相互独立的子存储器BM(0)~BM(n-1),每个子存储器BM(r)存储在所有段中等级为r的一个部分(字)M(r)。通过一个总线BMI(r)将每个字(或部分)写入子缓冲存储器BMI(r)中,并利用总线BMO(r)从该缓冲存储器中提取该字。
主时钟MCL使缓冲存储器10的读取(或提取)和写入(或存储)同步。如图7A所示,时钟的半个周期H1用于写入,而时钟的半个周期H0用于读取。此外,如图3所示,在读取以及写入模式中,利用一个多路转换器来寻址子存储器BM(r)。
更确切地说,如图5所示,对于写入,将两个计数器与每个子存储器BM(r)相关。计数器CWA(r)中包含缓冲存储器10的地址,其中要存储一个等级为r的段的进入的词。计数器CFSA(r)中包含缓冲存储器10的地址,其中数据包的第一段被存储在其中。由于缓冲存储器10包括n个子存储器BM(r),所以就有n对计数器(CWA,CFSA)。
计数器的形式最好是循环移位缓冲器,它根据一个写操作,在时钟MCL的每个周期,对存储的数据移位一步。例如,行“0”取行“n-1”的值,行“1”取行“0”的……,行“n-1”取行“n-2”的值。
在进行移位前,可能会出现两种情况。如果新数据包的第一段到达,则如果i表示CFSA(0)的值,则:
-MFSA(i):第一段在缓冲存储器5中的地址,由主计数器MCP(s)的值给出,其中s是缓冲存储器5的容量;
-MPL(i)=1;
-CFSA(0)=CWA(0);和
-CWA(n-1)=CWA(0)+1(模数m)。
后一种操作对存储接收到的下一个段的地址进行增量,从而保征前面到达的段不被重写。如果当前段不是数据包的第一段,就不进行这种操作。因此,在新的第一段到达以前,该段会被后面的段重写。
如果接收到的段不是新数据包的第一段,则如果i表示CFSA(0)的值,则:
-MPL(i)=MPL(i)+1(模数m)。
当接收到数据包的最后一段时,在缓冲存储器10(CFSA(0))中该数据包的第一段的地址被置于输入缓冲存储器11的队列中,该缓冲存储器最好为FIFO式,从而根据到达路由选择级8中的顺序对收到的初始数据进行处理。由于第一段的各个不同部分存储在缓冲存储器10的同一列(存储的地址就是列的地址)中,所以在FIFO输入缓冲存储器11中只存储第一段的地址。如果FIFO输入缓冲存储器11包含在其队列头处的数据,则象相关数据包的次级数据那样对这些数据进行处理。FIFO输入缓冲存储器11容量最好与缓冲存储器10的容量相等。
FIFO输入缓冲存储器11是耦合到管理模块9的路由选择级8的传输模块12的一部分(见下文)。
输入子级3和输出子级6的所有端口具有与耦合到装置1的线路接口卡相同的比特速率。然而,如专利文献EP00/440,281中所述的那样,也可以使用比特速率是输入端口4和输出端口7的比特速率整数倍的线路接口卡。例如,如果接口的比特速率2.4Gbit/s,可以将四个端口与一个格式为OC192c的线路接口卡关联。
为此,可以将每个线路接口连接到k个连续的端口(j,j+1,...j+k-1)上。k=1相应于只与一个端口相连的线路接口。在这种情况中,如果在接口j+x处(条件为0≤x<k)接收到段的第一个字,则可以按照下面的方式时上述两种情况进行改变。
如果新数据包的第一段到达,则如果i表示CFSA(0+x)的值,则:
-MFSA(i):该第一段在缓冲存储器5中的地址,由主计数器MCP(s)的值给出,其中s是缓冲存储器5的容量;
-MPL(i)=1;
-CFSA(0+x)=CWA(0+x);和
-CWA(n-1)=CWA(0+x)+1(模数m)。
如果接收到的段不是新数据包的第一段,则如果i表示CFSA(0+x)的值,则:
-MPL(i)=MPL(i)+1(模数m)。
在这种情况下,在与线路接口相连的k对计数器(CWA,CFSA)中,仅仅使用第一对计数器。
如上所述,在为其提供的半个时钟周期MCL内,读取管理模块9的缓冲存储器10。如图6所示,每次路由选择级(确切地说管理模块9)收到整个数据包时,地址CFSA(0)被置于FIFO输入存储器11队列的尾部,在地址CFSA(0)处,第一段的各个不同部分(或字)被存储在管理模块9的缓冲存储器10中。在用于在FIFO缓冲存储器11中读取半个周期内,进行下面的操作:
-RR(i)=RR(i-1);
-如果FIFO输入存储器11不是空的,则将第一数值传送到RR0中,在传送以前,各个RR(i+1)取值为RR(i)。
上述地址数值被传送到管理模块9中,以便它读出存储在缓冲存储器10的各个子存储器BM(r)中的地址内的单个的字(或部分),所述地址由相关寄存器RR(r)的值指定。
当然,地址可随子存储器的不同而不同。原则上来讲,在每一个时钟周期,读取缓冲存储器10的各子存储器BM(i)中的不同列。
寄存器RR的数量与包含在一个单一段中的需分析的部分的最大数量相同。
信息(初始数据、存储地址FSA(n)和相关段的总量PL)基本同时被管理模块9通过n个第一并行输出传送到传输模块12。
缓冲存储器11和寄存器RR(r)最好是传输模块12的输入级13的一部分,该输入级包括一个路由选择模块(或桶形移位器)14,该模块有n个输入分别由管理模块9的n个第一输出馈给。
处理模块14从管理模块9的第一输出接收形式为部分(或字w(r))的初始信号和相关的附加数据(FSA(n)和PL(i)),以便通过一个或多个第二输出16,按照主时钟MCL设定的速率将这些数据引到一个或多个路由选择单元15。更确切地说,处理模块14并行接收段的连续部分,并将其导向其第二输出16,同时注意向同一输出16发送同一段的所有部分,以便对段并行地、一部分一部分地进行分析。因此,处理模块14具有n个不同的有序状态,并且在主时钟MCL的各个周期从一个状态变成另一个状态。
在用于对管理缓冲存储器10进行写入的半个周期内,进行下面的操作:
-RR(i)=RR(i-1);
-如果要将存储在子存储器BM(0)中的段的下一个第一字w0寻址给传输模块12以便进行处理,则将存储在FIFO输入存储器11队列头部的第一部分地址发送到第一寄存器RR(0)中。如果队列的头部是空的,则将一个值发送到第一寄存器RR(0)中,该值规定没有相关数据包。
此外,在用于读取管理缓冲存储器10的半个周期内,进行下面的操作:
-存储在一个寄存器RR(i)中的每个地址被用于读取(提取)与字W(i)(或部分)相关的子存储器BM(i),字W(i)(或部分)包含在子存储器BM(i)中;
-而后,将提取的部分w(i)发送给处理模块14的n个第一输出,该处理模块根据其状态(n个不同状态之一)将这些部分导向其第二输出中的一个;
-与字w(i)的传送并行地将附加数据(FSA(n)和PL(i))发送到处理模块14,然后再发送到选定的路由选择单元15。
图8和9示出了读取和引导一个段的部分(字w(r))的模式的例子。在该例子中,处理器使用3个输出并且同-段的所有部分被引导到合适的第二输出,按每个时钟周期引导一个部分。在时间t+0,读出w0i,并将其导向第二输出i。在时间t+1,读出wli,并将其导向第二输出i;读出w0j,并将其导向第二输出j。在时间t+2,读出w2i,并将其导向第二输出i;读出w1j,并将其导向第二输出j;读出w0k,并将其导向第二输出k。在子存储器BM(2)中读出W2i,处理器14将其导向i,而在子存储器BM(1)中读出W1j,处理设备14将其导向j,等等。
处理模块14最好具有与第二输出16等量的输入。
路由选择单元15的数量根据要路由选择的数据的比特速率来选择。因此,路由选择单元的数量可以等于处理模块14的第二输出16的数量。
如果路由选择单元15的数量少于第二输出的数量n,则此时应当确保要一部分接一部分地进行分析的段不被送到此时与选顶的路由选择单元无关的第二输出16。由于只有在处理模块14处于允许向BM(0)中的RR(0)指定的字w(0)的可用的路由选择单元15进行发送时,才由FIFO输入存储器11将第一段的地址发送到第一寄存器RR(0)中,所以这种条件被满足。同样,如果FIFO输入存储器11的队列头部是空的(即,没有要路由选择的数据包),则BM(0)中的RR(0)指定的字w(0)被发送到处理模块14,该字所带的比特表示该段是空的。
因此,在管理模块9的管理缓冲存储器10中最多可以并行阅读n个段,并且可以由路由选择单元15,通过处理模块14的第二输出16并行传输以待分析。
为了对经处理模块14的第二输出16之一传送的各段的有序部分进行分析,每个路由选择单元15包括一个其中存有一个路由选择表的可重写存储器17。
每个路由选择表最好是trie table式路由选择表,这种路由选择表在V.Srinivasan和G.Varghese的“Fast address lookups using contolled prefixexpansion”,Transaction on Computer Systems 17,1(Feb.),1999 1-40中作了具体描述。
与标准路由选择表不同的是,一个trie table不包含有所有可能的地址以及这些地址的组合。因此,以第一和第二类字的形式将初始数据存储在各行中,第一和第二类字表示路由选择次级数据所须的前缀。第一类字是一个“中间”字,它指定路由选择表中的另一个字。第二类字是一个“最终”字,它实际指定初始路由选择数据(三级数据,例如:输出端口7的表(次级数据要传送给输出端口7),新的初始路由选择数据(也称为标记),与要发送给各个输出端口7的相应的次级数据相关,而且可能带有补充信息,例如服务质量)。
如果本发明的装置使用trie table,则每个路由选择单元15包括一个中间模块18,该模块包括一个与可重写存储器17(存储trie table)耦合的输出和第一和第二输入,这些输入分别由处理模块14的第二输出中的一个以及可重写存储器17的输出馈给。
对由处理模块14接收到的部分(字)进行分析最好总是从路由选择级的第一行R(0)开始。在主时钟MCL的各个周期,要分析的部分指定路由选择表的当前行R(j)的一个地址(对于一个段的第一部分,开始时是第一行R(0))。如果在指定的地址中读出(或提取)的字是第一类字(中间字),则将该字发送到中间模块18。在下一个时钟周期,该字的数值指定下一个要读取的字的地址。只要提取的字是第一类字,则进行反复检索。反之,如果读出的字是第二类字(最终字),如图6所示,则将该字与附加数据FSA(n)和PL(i)以及,如果可能的话,服务质量传送到传输模块12的输出级19,如图6所示。
这样就可以分析长度不同的地址。
图10示出了trie table的一个例子。在该例子中,该表被初始化到在下面的地址,A:21.35.1C.43/32,B:C1.35/16,C:C1.35.BA/24,D:18.2D/16。每一部分的长度为4比特。
在此例中,如果接收的数据包的目的地地址等于18.2D.29.13(十六进制标记),则该地址(1)的前四个比特从0行(L0)指定一个字,得到L0(1)=9。而后使用第二部分(此处等于8)寻址行9(由得到的等于9的值指定),得到L9(8)=10。然后再使用第三部分(此处等于2)寻址行10(由得到的等于10的值指定),得到L10(2)=11。最好,再使用第四部分(此处等于D)寻址行11(由得到的等于11的值指定),得到L11(D)=最终字,这就结束分析。
传输模块12的输出级19至少包括与数据传送级2的输出子级6的输出端口7的数量相等的输出缓冲存储器20。这些输出存储器20最好是FIFO型。输出级19最好还包括一个多路转换器21,该转换器由路由选择单元15(j)馈给,并向FIFO输出存储器20提供新的初始数据、给分别与其关联的输出端口7的三级数据、要路由选择的次级数据的缓冲存储器5中的存储地址FSA(s)以及相关段的总数PL。
如果路由选择表还发送象服务质量(QoS)这样的补充信息,则各输出端口7可以与一组FIFO输出存储器20相关联。每一组包括一个FIFO输出存储器,该存储器与提供的各服务质量相关。
在主时钟MCL的各周期,多路转换器21将路由选择单元15(j)中的一个发出的数据传送给与输出端口7相关的各FIFO输出存储器20。这样,多路转换器21一个接一个地考虑不同的路由选择单元15(j)。
I个FIFO输出存储器20被周期性地扫描。由于一个循环包括1个时钟周期,在主时钟MCL的各个周期,读取一个FIFO存储器20。在周期i(模数I),如果没有数据包在要被传送到输出端口i(7)的点上,则读取相关的FIFO输出存储器i(20),并发送其内容(地址FSA(s),相关段PL的数量以及标记),从而在下一个时钟周期,在添加了新的初始和三级数据以后,能够在输出端口i(7)处传送相关的次级数据。
以上仅以示例的方式描述了数据传送级2和路由选择级8,它们可以进行多种变换和改变。特别是,可以由相互耦合的分离电路实现,也可以用单一电路,例如集成在同一电路板上的电路实现。此外,这些级主要包括电子电路,但也它们也可以包括软件模块,特别是管理它们各自和/或相互作用的软件模块。
本发明还提供一种次级数据路由选择的方法,这些次级数据与初始路由选择数据及存储地址FSA(s)相关,在该方法中,利用初始数据和存储在至少一个路由选择表中的数据确定三级数据和新的初始路由选择数据,三级数据选定至少一个输出端口7,然后发送确定的初始数据和三级数据,随后,如此确定的初始数据和三级数据被发送,以便至少有某些新的初始数据与要发送的存储在存储地址FSA(s)中的次级数据结合,再向三级数据指定的各输出端口7传送这些数据。
上述方法可以利用前面所述的装置实现。由于该方法步骤所提供的主要功能,可选功能和子功能基本上与构成本发明装置的各式各样的装置所提供的相同,这里只概述利用本发明方法的主要功能的步骤。
该方法的特征在于其确定阶段包括:首先在n个子存储器BM(r)内的所选地址中存储经分解收到的且要发送的数据包得到的各个段的部分,其次,在选定的位置存储相继收到的第一段的经选择的存储地址,然后根据选定的标准,从子存储器BM(r)中并行地提取存储在第一段存储地址中的部分,这些段包含在某些选定的位置中,以便同时并行地发送这些段部分,第三,将属于不同段的各部分导向一个或多个路由选择表(根据需要),从而根据存储在这些路由选择表中的数据以及根据不同段一部分接一部分的分析,并行地确定与要发送的次级数据相关的初始和三级数据。
在路由选择数据最好在初步被分成若干长度相同的段以后再进行处理。
此外,最好将按顺序接收到的n个第一段的存储地址存储在n个并行的基本相同的寄存器中。同样,如果路由选择表的数量等于子存储器BN(r)的数量时,可以并行处理多达n个段。
根据该方法的另一特征,各路由选择表是trie table式的路由选择表。在这种情况下,在确定期间,从路由选择表中提取由收到的段部分指定的地址中存储的字,然后发送该字,以便根据该提取的字是第一类字还是第二类字来重新馈给路由选择表或输出端口(与多路转换器21相连),每次发送一个第一类字,则从该路由选择表中提取另一个存储在由发送字指定的地址中的字,直至得到一个第二类字。
由于本发明,对于所用的路由选择协议的类型来说,路由选择装置是透明的。根据选定的协议(例如:IPV4或IPV6),足以形成路由选择表用于操作。
此外,通过适当地选择并行路由选择单元的数量,本发明就可适用于任何一种比特速率,而且保留属于同一数据流的数据包的顺序特性。
另一方面,根据本发明的装置可被集成到具有分布式或集中式体系结构的交换机-路由器中。这里的“集中体系结构”指的是这样一种体系结构,其中路由器和交换机的主要功能被集中在一起(或共享),这些功能不是必然与一线路接口相连,例如:缓冲存储、交换、路由选择、通信量监控和服务质量。
本发明还可以以广播模式或多路广播模式进行路由选择,只要多路广播树的分支等于设备的端口数。
此外,本发明允许任何形式的协议用于线路接口,并允许任何数量的线路接口,包括OC192c型或更高的比特速率。
本发明不限于上面所述的仅仅作为例子的装置和方法的实施方案,而是包括了本领域技术人员能够考虑到的各种变换,但这些均在下述权利要求书的范围内。

Claims (26)

1.一种数据路由选择装置包括:i)一个管理模块(9),能接收初始路由选择数据和与所述初始数据相关的次级数据的存储地址(FSA(s)),和ii)一个传输模块(12),它能根据所述数据和存储在至少一个路由选择表中的数据确定指定数据传送级(2)的输出端口(7)中的至少一个的三级数据和新的初始路由选择数据,该传输模块还能向所述传送级(2)传送如此确定的初始和三级数据,以便至少某些新的初始数据与存储在存储地址(FSA(s))中的要发送的次级数据结合,然后向由所述三级数据指定的各输出端口(7)传送这些数据,
该装置的特征在于所述管理模块(9)包括一个被分成n个子存储器的缓冲存储器(10),各子存储器均可在选定的地址中存储由收到的要发送的数据包分解得到的各段的一部分,包括第一段,并根据指令在n个第一并行输出同时发送它们存储的部分,和
其特征还在于所述传输模块(12)可以:i)从所述管理模块(9)中接收要路由选择的数据包的第一段的选定的存储地址,ii)根据所选择的标准向所述管理模块发送某些存储地址,以便在第一并行输出处接收存储在存储地址中的段部分,iii)将属于不同段的各部分导向至少一个路由选择表,从而根据存储在路由选择表中的数据以及通过对各个不同段一部分一部分的分析,确定与要路由选择的次级数据相关的初始和三级数据。
2.根据权利要求1的设备,其特征在于所述传输模块(8)包括至少两个路由选择表,以便能进行不同段的并行分析。
3.根据权利要求1或2的设备,其特征在于所述管理模块(9)能接收长度相等的段形式的数据。
4.根据权利要求1-3之一的设备,其特征在于所述管理模块(9)和传输模块(12)构成L3F型路由选择级(8)。
5.根据权利要求1-4之一的设备,其特征在于所述传输模块(12)包括一个输入级(13),该输入级带有:i)n个寄存器(RR),用于存储n个第一段的存储地址,ii)一个输入缓冲存储器(11),能从管理模块(9)接收所述第一段的选定的地址,以便馈给所述寄存器(RR),iii)一个处理单元(14),该单元具有:i)n个输入,分别由n个第一并行输出提供n个段的部分,ii)至少一个第二输出(16),能发送属于不同段的导向的部分。
6.根据权利要求5的设备,其特征在于所述处理单元(14)具有n个输入和n个第二输出。
7.根据权利要求2-5之一并结合权利要求6的设备,其特征在于所述传输模块(12)包括从1到n个路由选择单元(15),它们由所述第二输出(16)提供不同的段部分,每个所述路由选择单元均包括一个可重写存储器(17),该存储器存储一个路由选择表,并且能并行确定与要路由选择的次级数据相关的初始和三级数据。
8.根据权利要求1-7之一的设备,其特征在于每个路由选择表以行的形式存储初始数据,初始数据限定表示路由选择的前缀的字,收到的每个段部分用于寻址所述一行字中的一个。
9.根据权利要求8的设备,其特征在于各路由选择表存储代表第一类和第二类字的初始数据。
10.根据权利要求1-9之一的设备,其特征在于所述传输模块(12)包括一个输出级(19),该输出级带有与传送级(2)的输出端口(7)的数量相同输出缓冲存储器(20),并能够接收所述三级数据、所述新的初始数据以及路由选择单元(15)的存储地址(FSA(s))。
11.根据权利要求1-9之一的设备,其特征在于所述传输模块(12)包括一个输出级(19),该输出级带有与传送级(2)的输出端口(7)的数量相同的输出缓冲存储器组(20),每一组缓冲存储器能接收所述三级数据、所述新的初始数据以及路由选择单元(15)的存储地址(FSA(s))。
12.根据权利要求11的设备,其特征在于一细缓冲存储器(20)与不同的服务质量相关。
13.根据权利要求10-12之一的设备,其特征在于所述输出级(19)包括一个多路转换器(21),它由路由选择单元(15)馈给,并馈给所述输出缓冲存储器(20)。
14.根据权利要求9并结合权利要求10-13之一的设备,其特征在于每个路由选择单元(15) i)包括一个中间模块(18),该中间模块有一个与可重写存储器(17)耦合的输出以及第一和第二输入,这两个输入分别由输入级(13)的第二输出之一和可重写存储器(17)的输出馈给;ii)能从路由选择表中提取存储在由接收部分指定的地址中的字,并将该字发送给可重写存储器的输出,以便根据该提取的字是第一类还是第二类来馈给中间模块(18)的第二输入或是所述输出级(19),其特征还在于所述中间模块(18)在接收表示第一类字的数据时,从路由选择表中提取存储在由第一类字指定的地址中的字,然后将该字发送给可重写存储器(17)的输出,以便根据该提取的字是第一类还是第二类来馈给中间模块(18)的第二输入或是所述输出级(19)。
15.根据权利要求1-14之一的设备,其特征在于至少部分所述缓冲存储器(11,20)是FIFO型缓冲存储器。
16.根据权利要求1-15之一的设备,其特征在于该设备包括所述数据传送级(2)。
17.一种数据包处理装置,其特征在于包括上述任一权利要求所述的数据路由选择装置。
18.一种路由选择次级数据的方法,所述次级数据与初始路由选择数据以及一个存储地址(FSA(s))相关,在该方法中,i)根据初始数据以及存储在至少一个路由选择表中的数据确定三级数据以及新的初始路由选择数据,所述三级数据指定至少一个输出端口(7);然后ii)发送如此确定的初始和三级数据,以便使至少某些新初始数据中与所述存储在所述存储地址(FSA(s))中次级数据结合,然后传送到所述三级数据指定的各输出端口(7),
其特征在于所述指定至少一个输出端口(7)的三级数据和新的初始路由选择数据是由以下确定的:i)在n个子存储器内的所选地址中存储将接收到的要路由选择的数据包分解而得到的各个段的n个部分,其中包括第一段,ii)在选择的位置存储相继接收到的第一段的选定的存储地址,然后根据选择的标准,并行地从所述子存储器中提取存储在所述存储地址中的各部分,这些地址被包含在某些选定的位置中,以便同时并行地发送所述段各部分,iii)将属于不同段的各部分导向至少一个路由选择表,从而根据存储在路由选择表中的数据以及对不同段一部分一部分的分析,并行地确定与要路由选择的次级数据相关的初始和三级数据。
19.根据权利要求18的方法,其特征在于接收到的数据的形式为长度相同的段。
20.根据权利要求18或19的方法,其特征在于路由选择为L3F型路由选择。
21.根据权利要求18-20之一的方法,其特征在于将所述第一段的存储地址存储在n个寄存器中。
22.根据权利要求18-21之一的方法,其特征在于路由选择表的数量与子存储器的数量相同。
23.根据权利要求18-22之一的方法,其特征在于各路由选择表以行的形式存储初始数据,这些数据定义表示路由选择前缀的字,每个收到的段部分用于寻址一行字中的一个。
24.根据权利要求23的方法,其特征在于备路由选择表存储表示第一类字和第二类字的数据。
25.根据权利要求24的方法,其特征在于在确定阶段,从路由选择表中提取存储在由收到的段部分指定的地址中的字,然后发送该字,以便根据该字是第一类还是第二类重新馈给路由选择表或输出端口,每次发送第一类字时,从路由选择表中提取另一个存储在由被发送的字指定的地址中的字,直至得到第二类字为止。
26.根据上述任一权利要求的所述装置和方法的使用,其路由选择标准是从包括互连网协议(IP)和无连接协议的一组标准中选择的。
CNB031368107A 2002-04-19 2003-04-18 并行处理路由选择装置 Expired - Fee Related CN100373888C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0204931 2002-04-19
FR0204931A FR2838899B1 (fr) 2002-04-19 2002-04-19 Dispositif de routage a traitement parallele

Publications (2)

Publication Number Publication Date
CN1455345A true CN1455345A (zh) 2003-11-12
CN100373888C CN100373888C (zh) 2008-03-05

Family

ID=28459928

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB031368107A Expired - Fee Related CN100373888C (zh) 2002-04-19 2003-04-18 并行处理路由选择装置

Country Status (6)

Country Link
US (1) US20040090961A1 (zh)
EP (1) EP1355454B1 (zh)
CN (1) CN100373888C (zh)
AT (1) ATE385640T1 (zh)
DE (1) DE60318971T2 (zh)
FR (1) FR2838899B1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7706302B2 (en) * 2004-09-14 2010-04-27 Alcatel Lucent Optimization of routing forwarding database in a network processor
JP5391449B2 (ja) * 2008-09-02 2014-01-15 ルネサスエレクトロニクス株式会社 記憶装置
US8782267B2 (en) * 2009-05-29 2014-07-15 Comcast Cable Communications, Llc Methods, systems, devices, and computer-readable media for delivering additional content using a multicast streaming

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3419627B2 (ja) * 1996-06-11 2003-06-23 株式会社日立製作所 ルータ装置
US5905725A (en) * 1996-12-16 1999-05-18 Juniper Networks High speed switching device
EP0849973B1 (en) * 1996-12-20 2005-12-28 International Business Machines Corporation Switching system comprising distributed elements allowing attachment to line adapters, and having multicasting capabilities
US6147991A (en) * 1997-09-05 2000-11-14 Video Network Communications, Inc. Scalable high speed packet switch using packet diversion through dedicated channels
TW374967B (en) * 1998-06-22 1999-11-21 Winbond Electronics Corp Ethernet switch having shared memory structure and method of the shared memory
US6598034B1 (en) * 1999-09-21 2003-07-22 Infineon Technologies North America Corp. Rule based IP data processing
US6788697B1 (en) * 1999-12-06 2004-09-07 Nortel Networks Limited Buffer management scheme employing dynamic thresholds
JP3732989B2 (ja) * 2000-01-12 2006-01-11 富士通株式会社 パケットスイッチ装置及びスケジューリング制御方法
US6700894B1 (en) * 2000-03-15 2004-03-02 Broadcom Corporation Method and apparatus for shared buffer packet switching

Also Published As

Publication number Publication date
DE60318971T2 (de) 2009-02-05
DE60318971D1 (de) 2008-03-20
FR2838899A1 (fr) 2003-10-24
ATE385640T1 (de) 2008-02-15
US20040090961A1 (en) 2004-05-13
EP1355454A1 (fr) 2003-10-22
EP1355454B1 (fr) 2008-02-06
CN100373888C (zh) 2008-03-05
FR2838899B1 (fr) 2004-08-27

Similar Documents

Publication Publication Date Title
CN1219384C (zh) 多播传输的方法及设备
US10225381B1 (en) Configuring a switch for extracting packet header fields
US10432527B1 (en) Packet header field extraction
CN1174586C (zh) 流识别设备,流处理设备,流识别方法和流处理方法
CN1152532C (zh) 有效的输出请求分组交换设备和方法
CN1254056C (zh) 多协议标签转换网络系统
US7808999B2 (en) Method and apparatus for out-of-order processing of packets using linked lists
US7852846B2 (en) Method and apparatus for out-of-order processing of packets
CN1992676A (zh) 在通信网络中多个业务路径之间的转发状态共享
CN101069170A (zh) 数据包队列、调度和排序
CN1423873A (zh) 有线速度ip信息多点传送的方法和装置
CN1606291A (zh) 网络处理加速器
CN1277508A (zh) 数据网络中的分组交换设备和方法
CN1404591A (zh) 执行高速互联网协议路由查找和管理路由选择/转发表的装置和方法
CN1754353A (zh) 用于ip多播的协议无关实现的方法和设备
CN1238796C (zh) 一种实现接口转换的装置及方法
CN1674557A (zh) 基于tcam的解决范围匹配的并行ip包分类器及方法
CN1279729C (zh) 基于tcam的分布式并行ip路由查找方法
CN1642172A (zh) 为多层网络接口控制器操作传输调度的方法和系统
CN1729655A (zh) 网络交换装置和网络交换方法
CN1113510C (zh) Atm通信设备以及由atm通信设备构成的atm通信网系统
CN1909487A (zh) 对路由器进行整机测试的方法和系统
CN1946061A (zh) 一种快速处理报文的方法及装置
CN1180583C (zh) 一种宽带网络虚拟专用网的实现方法
CN101052011A (zh) Mpls标签分配方法、系统和设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080305

Termination date: 20180418