有线速度ip信息多点传送的方法和装置的制作方法

文档序号:7612222阅读:148来源:国知局
专利名称:有线速度ip信息多点传送的方法和装置的制作方法
技术领域
在计算机网络中,网络开关接收连到开关入口端的数据包并把数据包传送到连到开关出口端。开关依据目的地址确定数据包要送达的出口,目的地址包含在入口端收到的数据包中。
对于IP多点组的每一个成员来说,代替多个单点传送数据包,而把一个IP多点数据包送到入口端,那么送到开关的数据包数目减少了。但是,因为开关必须确定IP多点数据包要传给哪一个出口,因而增加了处理IP多点数据包的时间,也增加了传到每个出口端的副本的数目。
开关必须把IP多点数据包送到IP多点组的每个成员,这样,如果IP多点组的多个成员与出口相联的话,就要把IP多点数据包的多个副本送到出口端。借助于网络开关,在把IP多点数据包的副本送到IP多点组的成员之前,对它进行修改。
典型的情况是,通过开关把IP多点数据包送到出口端的工作是由网络工作开关中的主处理器来执行的。基于主处理器的传送是很慢的。
在开关中的入口传送逻辑产生对IP多点数据包的多点传送矢量。多点传送矢量指出被存储的IP多点数据包要送达的端口。
开关内端口排队逻辑存储位置指针,它表示存储器中的IP多点数据包在端口按多点传送矢量排队的位置。端口排队逻辑在IP多点数据包被送到所有连到与端口排队有关的出口端的IP多点组成员之后移动指针。
修改项可包括对虚拟局域网的识别,对下一个修改项的指针,标签指示器和发送类型项。对下一个修改项的指针是对下一个修改项的索引,用于修改用于端口的下一个IP多点数据包。
出口端传送逻辑包括虚拟局域网识别表和中间局域网识别表。中间局域网识别表包括在虚拟局域网表中的位置索引,内部局域网表存储虚拟局域网的识别。


图1表示网络开关,包括IP信息多点传送逻辑,用来根据本发明的原理把在入口端接收到的IP多点数据包传送给连到开关的IP多点组的成员;图2是时序图,说明由图1所示的开关传送给图1所示的IP多点组成员的IP多点数据包;图3A是图解说明现有技术数据包可在连到开关的入口端被收到;图3B是图解说明现有技术以太网数据链层(L2)报头包括在图3A所示的数据包中;图3C是图解说明现有技术网际协议(网络层(L3))报头包括在图3A所示的数据包中;图3D是图解说明图3B中所示的现有技术标签控制信息;
图4是图解说明图1中所示的入口IP信息多点传送逻辑;图5是方法流程图,用于处理在入口端收到的IP多点数据包;图6是图解说明图1中所示的出口信息多点传送逻辑;图7是图解说明图6中所示的多点传送索引表;图8是图6中所示的在出口多点传送逻辑中执行步骤的流程图,用来修改IP多点数据包。
IP多点数据包106的副本在把它传送给每个目的节点104之前可由开关100进行修改。收到的IP多点数据包的副本依据储存在开关100中的修改项进行修改。收到的IP多点数据包副本的修改和传送由开关以有线速度执行,即执行修改没有主机介入。出口经修改的IP多点数据包112在下一个对出口端110的有效端口循环中传送到目的节点104,目的节点104连在该出口端110上。
当在入口端108收到IP多点数据包时,数据包处理逻辑128从IP多点数据包106的报头提取信息,并把提取的信息传送给入口多点传送逻辑114。入口多点传送逻辑114确定IP多点组中的目的节点104连在哪一个出口端110上,并把多点传送矢量120传送给出口端q逻辑134,指示IP多点数据包要送达的出口端110。入口多点传送逻辑114也把相应于IP多点组的多点传送索引(“MFI”)132传送给数据包处理逻辑128,该IP多点组是IP多点数据包106要送达的IP多点组。MFI 132是一个对每个IP多点组成员修改项的索引。
数据包处理逻辑128把收到的IP多点数据包106和MFI 132传送给存储器116。包含MFI 132的入口经修改的IP多点数据包126被储存在对每个出口端110的端口排队中,这些出口端是IP多点数据包106要送达的地方。端口排队描述在共同申理中的美国申请号No.09/386589中,申请日是1999年8月31日,题目是“Method and Apparatus for anInterleaved Non-Blocking packet Buffer”,作者David A.Browh,它的整个内容结合在这里作参考。
储存在入口经修改的IP多点数据包126中的MFI 132被用来访问已存储的与IP多点组的每个成员有关的修改项。出口信息多点传送逻辑118修改入口经修改的IP多点数据包126的副本,该副本是利用对成员存储的修改项内容从存储器116收到的,并把出口经修改的IP多点数据包112传送给IP多点组的每个成员。
借助于储存对每个IP多点组成员的修改项,不需要主机处理修改并把IP多点数据包的副本传送给所有IP多点组的成员。这样,IP多点数据包以有线速度传送给连到下一个对端口的有效端口循环中的端口的IP多点组的成员。与每个目的节点104有关的修改项被储存在出口信息多点传送逻辑118中,并用与入口多点传送逻辑114送来的IP多点组有关的MFI 132对它进行访问。MFI被储存在存储器116中的入口经修改的多点数据包126中。
如图1所示,IP多点组的成员包括目的节点Da-f 104a-f,目的节点Da-e 104a-c连到出口port_I110a,目的节点Dd-e 104d-e连到出口110b,目的节点Df 104f连到出口port_3 100c在所示实施例中的所有目的节点104a-f是终止结点,除了在另一个实施例中,所示的目的节点104a-f可以是另一个开关的入口端,并且IP多点数据包可以通过其它开关传送给连到其它开关出口端的IP多点组的成员。还有,可以有多个虚拟局域网(VLAN),连到其它开关出口端的出口端,每一个虚拟局域网需要经修改的IP多点数据包的副本。
由源节点Sa 102传送的数据包106由入口port_I 108的网络开关100接收。数据包106包括目的地址。如果目的地址是IP多点地址,那么开关100把经修改的IP多点数据包112的副本传送给与连到开关100的IP信息多点传送地址有关的所有IP多点组成员。
对于所示的IP多点组,开关100把六个出口经修改的IP多点数据包112a-f传送给出口端1-3 110a-c。出口经修改的IP多点数据包112在入口端102收到IP多点数据包106之后,被传送到对端口110的下一个有效端口循环中的出口端110。
三个出口被修改的IP多点数据包112a-c被传送到出口port_1 110A,一对一目的节点Da-c 104a-c。两个出口经修改的IP多点数据包112d-e被传送到出口port_1 110b,一对一目的节点Dd-e 104d-e。一个出口经修改的IP多点数据包112f被传送给出口port_2 110c至目的节点Df104f。
根据识别收到的IP多点数据包106,数据包处理逻辑128把IP多点数据包的报头部分130传送给入口多点传送逻辑114。入口多点传送逻辑114确定IP多点数据包的副本106要送达的出口端1-3 110a-c,并且产生多点传送矢量120。多点传送矢量120被传送到出口端q的逻辑134。入口多点传送逻辑114根据IP多点数据包130的报头部分,选择储存的多点传送索引(“MFI”)132,并把MFI 132传送给数据包处理逻辑128。数据包处理逻辑128把MFI 132与收到的IP多点数据包106一起储存在入口经修改的IP多点数据包126中,并把在数据输入122上的入口经修改的IP多点数据包126传送给存储器116。入口经修改的IP多点数据包被储存在存储器116中。
在对每个出口port_1-3 110a-c的下一个端口循环时,入口经修改的IP多点数据包126从存储器116的数据输出124上根据从出口port_q逻辑134传来的地址136传送到出口信息多点传送逻辑118。出口信息多点传送逻辑118根据包括入口经修改的数据包126中的MFI 132修改入口经修改的数据包126的副本。出口经修改的数据包112a-f在各个出口port_1-3110a-e上传送。在所有出口经修改的数据包传送完毕之后,可以重写存储在存储器116中的入口经修改的数据包126。
图2是时序图,说明通过开关100以有线速度传送IP多点数据包106给图1所示的IP多点组的用户。结合图1来描述图2。图1中所示的IP多点组包括连到开关100的六个成员,Da-Df 104a-f。开关100包括四个端口,入口port_1 108和出口port_1-3 110a-b。但是,本发明并不局限于四个端口或六个IP多点组成员。业内人士已知,包括多于四个端口和多于六个IP多点组成员。
在时序图中,假定在入口port_1 108接收到的每个IP多点数据包106是最小的数据包尺寸,例如,对以太网数据包为64字节,因为存储器116是64字节宽。但是,本发明并不局限于64字节的数据包大小,在数据包中的字节数可以大于存储器116的宽度。
还假定,64字节的多点数据包106是在数据段时隙200期间在入口端108(图1)收到的。数据段时隙200包括4个端口循环时隙202,每一个对应连到开关100的一个端口,因为图1所示的开关包括连到开关的四个端口,即一个入口端108和三个出口端100a-c。开关100支持的最大端口数目与最小的端口循环时隙202和最大数据段时隙200有关,于是并不局限于图1所示的四个端口。在有多于四个端口的开关100中,数据段时隙200将包括对连到开关100的每个端口的端口循环时隙202。例如,对一个以太网数据包,最小数据包的大小为64字节。这样,最大数据段时隙200就是在入口端接收64字节的时间,最小端口循环时隙202与从存储器116(图1)访问64字节的时间有关。数据段时隙和端口循环时隙都描述在共同申理中的美国申请号No.09/386,589中,申请日期为1999年3月31日,题目是“Method & Appavatus for an InferleavedNon-Blocking packet Buffer”,作者David A.Browh,它的整个内容结合在这里作参考。
到达入口port_1 108的多点数据包106的副本在下一个有效端口循环时隙202中传送给信息多点传送组的每个成员,即它以有线速度传送。如果只有一个信息多点传送组的成员连到端口,那么在下一个端口循环时隙202中传送多点数据包的副本。如果多于一个IP多点组成员连到端口,在入口端108上到达的下一个IP多点数据包在以前的多点数据包被传送之后再传送给连接到该端口的所有IP多点组的成员。
时序图表示从源节点102在数据段时隙200a-d内到达入口port_1 108的四个IP多点数据包。第一个IP多点数据包在数据段时隙200a内到达,在第二数据段时隙200b内,IP多点数据包在端口循环202b内传送到出口port_1 110a,在端口循环202c内传送到出口port_2 110b,和在端口循环202c内传送到出口port_3 110c。当第一个IP多点数据包正在传送的时候,第二个IP多点数据包正在在数据段时隙200b期间被接收。
在时间230,入口经修改的多点数据包1 126(图1)被储存在存储器116(图1)中,并且入口多点传送逻辑114(图1)已把对多点数据包1 106(图1)的多点传送矢量120(图1)传送给出口信息多点传送逻辑118(图1)。
在时间206,端口循环时隙202b的起点,入口经修改的多点数据包1 126(图1),根据从出口port_q逻辑134(图1)传来的地址136从存储器116(图1)数据输出124上传送到出口信息多点传送逻辑118(图1)。出口信息多点传送逻辑118(图1)根据MFI(图1)修改接收到的入口经修改的多点数据包1 126(图1)。出口经修改的多点数据包1 112A,通过出口110A传送到目的节点Da104a。
在时间208,端口循环时隙202c的起点,和在时间210,端口循环时隙202d的起点,入口经修改的多点数据包1 126(图1)的副本,根据从出口port_q逻辑134(图1)传来的地址136(图1)从存储器(图1)数据输出124(图1)上传送。接收到的入口经修改的多点数据包1 126(图1)的副本,被出口信息多点传送逻辑118根据有关的MFI 132(图1)修改,并通过出口端2 110b传送到目的节点Dd 104d和出口端3 110c至目的节点Df 104f。
在时间212,入口经修改的多点数据包_1 126(图1)的副本经修改并传送给目的节点Db 104b(图1),在时间128,入口经修改的多点数据包1 126(图1)的副本经修改并传送给连到出口port_2 110b(图1)的目的节点Dc 104e。在时间214,入口经修改的多点数据包_1 126(图1)的副本经修改并传送到达到出口port_1 110b(图1)的目的节点Dd104d。
在时间232,入口经修改的多点数据包_2 126(图1)被储存在存储器116(图1)中,并且入口多点传送逻辑114(图1)已把对多点数据包_2 106(图1)的多点传送矢量120(图1)传送给出口信息多点传送逻辑118(图1)。在时间234,入口经修改的多点数据包_3 126(图1)被储存在存储器116(图1)中。在时间236,入口经修改的多点数据包4 126(图1)被储存在存储器116(图1)中。
只有一个入口经修改的多点数据包_1 112(图1)被传送到出口端3110c,因为只有一个信息多点传送组的成员,即目的节点104f连在出口port_3 110c。这样,在时间216,在端口循环时隙202d内,出口经修改的多点数据包_2 112f被传送到出口port_3 110c。在时间222,在端口时间循环202d内,出口经修改的多点数据包_3 112被传送到出口port_3110c。在时间228,在端口循环时隙3 202d内,出口经修改的多点数据包_4 112f被传送到出口port_3 110c(图1)。
这样,在入口port_0 108(图1)收到的IP多点数据包_1 106(图1),以有线速度,没有主机处理,在下一个有效端口循环时隙202内,通过开关100传送给连到出口port_1-3 110a-c(图1)的目的节点104a-f(图1)。
出口经修改的多点数据包_2 112(图1)在出口port_2 110b上传送给目的节点De 104e和目的节点Df 104f。在时间220,出口经修改的多点数据包_2 112d被传送给连到出口port_2 110b的目的节点Dd 104d。在时间226,出口经修改的多点数据包_2 112e(图1)被传送给连到出口port_2110b的目的节点De 104e。
在时间224,在最后的出口经修改的多点数据包_1 112(图1)传送完毕之后,在存储器中存储入口经修改的多点数据包_1 126(图1)的位置可以被用来存储在入口端108(图1)收到的另一数据包。这样,在入口端108(图1)收到的入口经修改的多点数据包126(图1)被储存在存储器116(图1)中,直到出口经修改的多点数据包112(图1)已传给所有IP多点组的成员。
为了确定是否所有出口经修改的多点数据包112a-f(图1)都已传送完毕,端口排队(未示出)的数目被储存在端口排队计数寄存器(未示出)中,端口排队数目指的是与每一个入口经修改的多点数据包126(图1)相关的入口经修改的多点数据包126(图1)已排上队的数目。计数寄存器是对所有与出口端110(图1)有关的已经被传送到出口端110(图1)的出口经修改的多点数据包112(图1)的递减。例如,在一个出口经修改的多点数据包被传送到出口port_3 110c上后,端口排队计数递减,端口排队数目是从多点传送矢量120(图1)确定的。
把入口端108(图1)收到的现有技术数据包与图3A-3D相联合,来描述传送逻辑114,118(图1)和数据包处理逻辑126(图1),在出口经修改的多点数据包112a-f(图1)被传送给出口端110a-c之前,对多点数据包106(图1)进行修改的情况。
图3A说明现有技术数据包可以在连到开关100(图1)的入口端108(图1)上接收。图3B说明现有技术以太网报头可以包含在图3A所示的数据包中。图3C说明现有技术网际协议报头可以包含在图3A所示的数据包中。图3D说明在图3B所示的以太网报头中的现有技术标签控制信息字段318B。
图3A表示现有技术数据包300。数据包300包括数据段310和用于网络开关层302,304,306,308的报头。示出了在OSI(开放系统互连)模型中的四层报头,物理层(L1)报头302,数据链层(L2)报头304,网络工作层(L3)报头306和传输层(L4)报头308。例如,数据链层(L2)报头302可以是以太网,网络工作层(L3)报头306可以是网际协议(“IP”)。数据包300也包括检验和312。
图3B说明以太网数据链(L2)报头304的格式。以太网数据链(L2)报头304包括用于目的节点104(图1)的设备地址,即目的地址314,和用于源节点102(图1)的设备地址,即源地址316,可选的虚拟局域网识别(“VLAN ID”)字段318和长度/类型字段320。VLAN ID 318包括标签协议标识符(“TPT”)字段318A和标签控制信息(“TCI”)字段318B。VLANID字段根据IEEE 802.1Q标签和IEEE 802.ID 1988(802.1p)优先级提供对VLAN开关的支持。
图3C说明IP网络层(L3)报头306的格式。IP网络层(L3)报头306包括用于源节点102(图1)的网络地址,即源IP地址344,和用于目的节点104(图1)的网络地址,即IP目的地址346。其它在IP网络层报头306中的字段包括版本322,HLEN 324,服务类型(“TOS”)326,总长度328,识别330,标记332,段落位移334,留存时间(“TTL”)336,协议340,报头检验和342,选项348和填充350。
在连到开关100(图1)的入口端108(图1)收到的IP多点数据包106(图1)根据存储在以太网数据链(L2)报头300(图3A)中的目的地址314(图3B)被接通到一个或多个出口端110a-c(图1),或者根据存储在IP网络层(L3)报头306中的IP目的地址346路由到一个或多个出口端110(图1)。
图3D说明示于图3B中的现有技术TCI字段318b。TCI字段318b包括3-bit用户优先字段352,1-bit CFI字段354和12-bit虚拟局域网(“VLAN”)标记符356。
回到图1,数据包处理逻辑128借助于检查包含在接收到的数据包中的网络层(L3)报头306(图3A)确定在入口端1 108收到的数据包是否是IP多点数据包106。如果协议字段340(图3C)是IP,那么网络层(L3)报头306(图3A)是网际协议版本4(“TPV4”)的报头,版本字段322(图3C)是IPV4,并且报头检验和342(图3C)有效。如果IP目的地址346(图3C)是D类,即IP目的地址346(图3C)的高四位是1110,那么IP数据包是IP多点数据包106。
如果数据包处理逻辑128确定了数据包是IP多点数据包,则IP多点数据包130的报头的一部分(包括在IP网络工作层(L3)报头306(图3C)中的IP目的地址346(图3C)和IP源地址344(图3C),在以太网数据链(L2)报头304(图3B)中的VLAN ID 318),和相应于入口端108(图1)的入口端数目传送给入口多点传送逻辑114。
图4说明示于图1中的入口多点传送逻辑114。入口多点传送逻辑114包括按内容访问存储器(“CAM”)400,路由映象器402,路由表404和组合矢量逻辑406。路由表404包括相应于IP多点组的信息多点传送项422,该IP多点组包含在入口port_1 108(图1)收到的IP多点数据包内。CAM 400和路由映象器402根据IP多点数据包130(图1)和从数据包处理逻辑传来的用于入口port_1 108(图1)的端口数的报头部分选择信息多点传送项422。
在实施结合图4描述的入口多点传送逻辑114(图1)中,CAM 400对于存储IP目的地址346(图3C)、IP源地址344(图3C)、入口端数和VLAN ID 318(图3B)不够宽。这样,用路由映象器402的实现来增加CAM 400的宽度。但是,业内人士已知,CAM 400可以扩充来包括路由映象器402。
在相应于IP信息多点传送包106的路由表404中搜索信息多点传送项422分两阶段进行。首先,根据在IP网络层(L3)报头306(图3C)中的IP目的地址346(图3C)和IP源地址344(图3C)字段对CAM 400搜索项。如果在CAM 400中找到匹配项,则匹配地址410被送到路由映象器402,路由映象器402把相应于匹配地址410的多点路径码(“MPC”)422传送给CAM 400。
第二,根据MPC 422、VLAN ID 318(图3B)和入口端数对CAM 400搜索项。如果在CAM 400中找到匹配的项,则把匹配地址410传送到路由映象器402,路由映象器402把相应于匹配地址410的有关数据索引(“ADI”)传送给路由表404。把IP多点传送项422储存在由ADI 412识别的路由表404中的位置。IP多点传送项422识别要由开关100(图1)把IP多点数据包106(图1)送达的IP多点组。
为了避免IP多点数据包的重复传送,用IP源地址344(图3C)、IP目的地址346(图3C)、VLAN ID 318(图3B)和入口端数108(图1)对CAM 400进行搜索。例如,如果源节点连在多于一个端口,即目的节点x连在端口y和端口x,并且IP多点数据包被从端口y上的节点x收到,那么就把数据包传送给IP多点组的全部成员。但是,如果IP多点数据包是从端口z上的目的地址x收到,则被放弃,因为目的x连在多于一个端口,因此,在端口z上收到的IP多点数据包是在端口y上收到的IP多点数据包的重复。
每个在路由表404中的多点传送项422包括桥矢量416、路由矢量414和多点传送索引132(“MFI”)。桥矢量416和路由矢量414被传送到组合矢量逻辑406。MFI 132被传送到数据包处理逻辑128(图1)。
组合矢量逻辑406通过对路由矢量414和桥矢量416执行逻辑或功能产生多点传送矢量120。多点传送矢量120被传送到出口port_q逻辑134(图1)。多点传送矢量120选择IP多点数据包106(图1)要送达的一个或多个出口端。
在入口port_1 108收到的IP多点数据包106(图1)的以太网数据链(L2)报头304(图3B)中目的地址314(图3B)的前三个字节被设置为“0×01-00-53”。IP多点数据包106在数据输入122(图1)上传送到存储器116(图1)之前,数据包处理逻辑128(图1)把从入口端传来的信息多点传送逻辑114(图1)写入目的地址314(图3B)的第二和第三位如下“0×01-0M-F1”。入口被修改的IP多点数据包126(图1)被存入存储器116(图1)。出口信息多点传送逻辑118(图1)利用包含在入口经修改的IP多点数据包中的MFI在把出口经修改的IP多点数据包传送给出口端110(图1)之前修改入口经修改的IP多点数据包126(图1)。
IP多点传送矢量120确定哪一个出口端110a-c是IP多点数据包106(图1)要送达的地方。入口经修改的多点数据包126(图1)在存储器116(图1)中的位置根据相应于出口端排队(未示出)位的状态存储在出口端q逻辑134(图1)中的出口端排队上。该状态是在入口多点信息传送逻辑114(示于图5中)中以多点传送矢量420实现的。
图5是示于图4中的入口多点传送逻辑114中实现的方法的流程图,用于处理在入口端108(图1)收到的IP多点数据包106(图1)。该方法结合图1-4来描述。
在步骤500,入口多点传送逻辑114(图1)从数据包处理逻辑128(图1)接收IP多点数据包130的部分,处理以步骤502继续。
在步骤502,入口多点传送逻辑114(图4)初始化在组合矢量逻辑406中的路由矢量414(图4)和桥矢量416(图4)。
在步骤504,在CAM 400(图4)中搜索与IP目的地址346(图3C)和IP源地址344(图3C)相匹配项,这些地址是从数据包处理逻辑128(图1)传到CAM 400的。如果在CAM 400(图4)中找到匹配地址410(图4),处理以步骤506继续。如果没有找到,处理以步骤518继续。
在步骤506,把匹配地址410(图4)传送给路由映象器402(图4)。路由映象器402(图4)把相应于匹配地址410(图4)的信息多点传送的路径码(“MPC”)422传送给CAM 400(图4),处理从步骤508继续。
在步骤508,在CAM 400(图4)中,根据MPC 422,来自以太网数据链(L2)报头304(图4)的VLAN ID 318(图3B)和入口端数目进行第二次搜索。如果在CAM 400(图4)中找到匹配地址410(图4),处理以步骤510继续。如果没有找到,处理以步骤518继续。
在步骤510,把匹配地址410(图4)传给路由映象器(图4)。路由映象器把相应于匹配地址410(图4)的ADI传给路由表404。对IP多点数据包106(图1)的IP多点传送项422(图4)被存储在由ADI 412识别的路由表404中的位置。处理以步骤512继续。
在步骤512,把存储在多点传送项422(图4)的MFI 132(图4)传送到数据包处理逻辑128(图1),把存储在多点传送项422(图4)的桥矢量416(图4)传送给组合矢量逻辑406(图4)。处理以步骤514继续。
步骤514,如果在传送到入口多点传送逻辑114(图1)的IP多点数据包106(图1)内,IP网络层(L3)报头306(图3)中,IP多点数据包130(图1)部分的TTL字段大于1,处理以步骤516继续,否则,处理以步骤518继续。
在步骤516,把存在多点传送项422(图4)的路由矢量414(图4)传送给组合矢量逻辑406(图4)。处理以步骤518继续。
在步骤518,把相应于入口端108(图1)的入口端数从桥矢量416(图4)中去除,在该入口端接收到IP多点数据包,处理以步骤519继续。
在步骤519,把桥矢量416(图4)和VLAN成员矢量(未示出)组合起来,处理步骤520继续。
在步骤520,借助于执行逻辑或功能把桥矢量416(图4)和路由矢量414(图4)组合起来,为IP多点组提供多点传送矢量120(图4)。处理以步骤522继续。
在步骤522,把多点传送矢量422传送给出口port_q逻辑134(图1)。
如果在CAM 400(图4)中没有找到对IP多点数据包106(图1)的匹配项,即IP多点组未知,那么,把多点数据包106(图1)传送给主机端口(未示出),所以,主机端口可以把IP多点组的项加在CAM 400(图4)、路由映象器402(图6)和路由表404(图4)中。多点传送矢量422(图4)这样选择,使IP信息多点传送包106(图1)被传送到主机端口。多点传送矢量422(图4)也可这样选择,使对未知IP多点组的IP多点数据包106(图1)被接通到VLAN,在其上IP多点数据包106(图1)曾被接收。
图6说明示于图1的出口信息多点传送逻辑118。出口信息多点传送逻辑118(图1)包括MFI检测逻辑602、编辑器逻辑600和MFI表604。MFI表604包括MFI项612。
当存在存储器116(图1)中,在数据输出124上传送的入口经修改的IP多点数据包的副本被出口IP多点传送处理逻辑118接收时,MFI检测逻辑602检测包含在入口经修改的IP多点数据包126(图1)内的MFI 132,并把MFI 132传送给MFI表604。MFI 132是对MFI项612在相应于IP多点组的MFI表604中的索引。MFI项612确定哪一个出口端口112(图1)是IP多点数据包106(图1)的第一副本要传送的地方。如果相继的IP信息多点传送包106要传送到出口端口110上,那么,下一个MFI 132’被包括在MFI表604中的MFI项612内。把下一个MFI132’传送给MFI检测逻辑602来选择下一个MFI项612。例如,下一个MFI 132’与对出口经修改的IP多点数据包112a(图1)的MFI项612一起储存,来选择下一个对出口经修改的IP多点数据包112b(图1)的MFI项612’。
入口经修改的IP多点数据包126(图1)根据包括在MFI 612中的信息多点传送参数610被编辑器逻辑600修改。把储存在MFI项612内的信息多点传送参数610送到编辑器逻辑600。这样根据要送达的目的节点104a-f(图1),对每个入口经修改的IP多点数据包126(图1)进行编辑。根据在MFI表604中提供的MFI项612,可以对入口经修改的IP多点数据包126(图1)进行编辑,以提供出口经修改的IP多点数据包112(图1),并以有线速度把它传送给连到出口端口110a-c(图1)的IP多点组的每一成员。
图7说明对有四个端口的开关100(图1)的MFI表604(图6)。MFI表604(图6)包括IVID表700和VLAN ID表702。MFI项612’包括在IVID表700中的IVID项718和在VLAN ID表702中的VLAN ID项710。在IVID表700中的IVID项718包括每个连到开关100(图1)端口的端口字段714a-d。图1所示的开关100包括四个端口入口端port_1108和出口端port_1-3 110a-c。
每个端口字段714包括桥/路由字段708、下一个字段706和IVID字段704。IVID项718也包括下一个MFI字段716。如果任一在IVID项718中的下一个字段706a-d指出另一个出口经修改的IP多点数据包112(图1)要送达到连到开关100(图1)的端口,则下一个MFI字段储存下一个MFI 132’。如图1所示,IVID项718是用于四个端口的开关100(图1)的。端口字段714的数目并非局限于所示的四个端口字段714提供来用于每个连到开关100(图1)的端口。例如,对于有64个端口的开关,IVID项718包括64个端口字段714。
如果存在对端口有效的VLAN ID项716,则IVID字段储存对应IVID字段704的VLANI表702中的VLAN ID项716。VLAN ID表702中的VLAN ID项包括VLAN ID字段710和标签字段712。
在另一个实施例中,在IVID表700中的IVID项718可包括储存在IVID项718中的VLAN ID字段710和标签字段712,在这一情况下,可以不要IVID字段704。但是,把IVID项718和VLAN ID入口项分别存入IVID表700和VLAN ID表702,减少了需要实现MFI表604(图6)的总存储量,因为每个入口经修改的IP多点数据包126可以没有相应的VLAN ID项716。
桥/路由字段708作为单个位来实现。桥/路由字段708的状态确定是否有入口经修改的IP多点数据包要接到或发送到端口。下一个字段706作为单个位来实现。下一个字段706的状态确定是否有其它的出口经修改的IP多点数据包112(图1)要送到端口。IVID字段704提供对VLAN ID表702的索引。在IVID字段704中的位数与VLAN ID表702的大小有关。例如对于有256个VLAN ID项716的VLAN ID表706,VLANID索引714包括8位。
如果入口经修改的IP多点数据包126(图1)要路由到端口的话,则VLAN ID 710包含有效的VLAN ID 710。如果标签字段712指出出口经修改的IP多点数据包没有标出标签,那么,编辑器逻辑600(图6)从在以太网数据链层(L2)的报头304(图3)中的VLAN ID 318(图3B)删去特征318b(图3B)。
一旦确定需要VLAN ID 710,并从VLAN ID表702获得VLAN ID710,就把信息多点传送参数610(图6)传送到编辑器逻辑600(图6)。逻辑器逻辑600(图6)利用信息多点传送参数610来修改入口经修改的IP多点数据包126(图6),修改后,编辑器逻辑把出口经修改的IP多点数据包112传送到出口端110(图1)。
如果在端口字段714中的桥/路由字段708被设置成桥,编辑器逻辑600(图6)增加或除去VLAN ID 318(图3C),并在以太网链阶层(L2)报头(图3B)中把目的地址314重新恢复到它的原来值。
如果在端口字段714中的桥/路由字段708被设置为路由,那么,编辑器逻辑600(图6)把路由器的源地址重写入以太网数据链层(L2)报头304(图3B)内的源地址314(图3B)中,递减TTL 336(图3C)和产生IP检验和,并把它存入报头检验和342(图3C)中。编辑器逻辑600(图6)也恢复IP目的地址346(图3C)到原来的值,并加上TCI 318b(图3B)标签。
出口信息多点传送逻辑118(图1)把IP目的地址346(图3C)和出口经修改的IP多点数据包112a-f(图1)传送到端口110a-c(图1)。
在本发明参考优先实施例作特别说明和描写时,业内人士应了解,可以做各种形式和细节的改变而没有超出权利要求书中主张的范围。
权利要求
1.一种开关,包括存储器,存储从连到开关的端口接收到的多点数据包;出口端传送逻辑,它包括对每个与多点数据包有关的多点组成员修改项;编辑器逻辑,它根据修改项修改从存储器接收的多点数据包的副本。
2.根据权利要求1所述的开关,其特征在于还包括入口端传送逻辑,它为多点数据包产生多点传送矢量,多点传送矢量指出哪一个端口是被储存的多点数据包要送达的端口。
3.根据权利要求2所述的开关,其特征在于还包括端口排队逻辑,根据多点传送矢量,以至少一个端口排队存储对存储在存储器内的多点数据包的指针。
4.根据权利要求3所述的开关,其特征在于端口排队逻辑在把被储存的多点数据包传送到IP多点组的全部成员之后,把指针移到存储在端口排队的多点数据包,这里的全部成员指连接到与端口排队有关端口的全部成员。
5.根据权利要求1所述的开关,其特征在于,修改项包括虚拟LAN识别;对下一个修改项的指针;标签指示器;传送类型指示器。
6.根据权利要求5所述的开关,其特征在于,下一个修改项的指针是用来修改下一个多点数据包副本的下一个修改项的索引。
7.根据权利要求1所述的开关,其特征在于,修改项包括存储在虚拟LAN识别表中的虚拟LAN项;存储在中间LAN识别表中的中间项,其中,中间项包括对虚拟LAN项的索引。
8.一种在开关中传送多点数据包的方法,包括步骤把从入口端口接收的多点数据包存入存储器中;提供出口端传送逻辑,它包括对与多点数据包有关的每一个信息多点传送组成员的修改项,和用于修改多点数据包的编辑逻辑;在出口端传送逻辑中,根据修改项修改从存储器接收到的多点数据包;把由出口端传送逻辑修改的多点数据包传送给下一个可用出口端循环时间内的出口端。
9.根据权利要求8所述的在开关中传送多点数据包的方法,其特征在于还包括步骤根据包括在多点数据包内的参数,选择对多点数据包的多点传送矢量,多点传送矢量指出哪一个出口端口是多点数据包要送达的端口。
10.根据权利要求9所述的在开关中传送多点数据包的方法,其特征在于还包括步骤借助于数据包管理器,根据多点传送矢量,把对存储在存储器中的多点数据包的指针存入与出口端有关的端口排队中。
11.根据权利要求10所述的在开关中传送多点数据包的方法,其特征在于还包括步骤借助于数据包管理器,把所有多点传送数据包经修改后的副本传送给与端口排队有关的出口端之后,移动对存储在端口排队的多点数据包的指针。
12.根据权利要求8所述的在开关中传送多点数据包的方法,其特征在于,提供修改项的步骤包括提供虚拟LAN识别、对下一个入口的指针、标签指示器和传送类型指示器。
13.根据权利要求12所述的在开关中传送多点数据包的方法,其特征在于,对下一个项指针提供对下一个修改项的索引,存储对要送到出口端的多点数据包第二次被修改的副本的参数。
14.根据权利要求8所述的在开关中传送多点数据包的方法,其特征在于,提供出口端传送逻辑的步骤还包括步骤提供虚拟LAN识别表;提供中间LAN识别表,用于存储多点项,其中,多点项包括对包含虚拟LAN识别的虚拟LAN识别表中位置的指针。
15.一种开关,包括存储器,存储从连到开关的入口端收到的多点数据包;出口端传送逻辑,它包括修改项,用于与多点数据包有关的每个信息多点组成员;装置,用于根据修改项修改从存储器收到的多点数据包的副本。
16.根据权利要求15所述的开关,其特征在于还包括装置,用于产生对多点数据包的多点传送矢量,多点传送矢量指出哪一个端口是被存储的多点数据包要送达的地方。
17.根据权利要求16所述的开关,其特征在于还包括装置,根据多点传送矢量,把存在存储器中的多点数据包的指针存入至少一个端口排队中。
18.根据权利要求17所述的开关,其特征在于,装置,在把多点数据包送到信息多点传送组的每一成员之后,存储移动对存储在端口排队的多点数据包的指针。
19.根据权利要求15所述的开关,其特征在于,修改项包括虚拟LAN识别;对下一个项的指针;标签指示器;传送类型指示器。
20.根据权利要求19所述的开关,其特征在于,对下一个项的指针提供存储参数的下一个修改项的索引,用于对下一个要传到出口端的经修改的多点数据包的副本。
21.根据权利要求15所述的开关,其特征在于,修改项包括存储在虚拟LAN识别表中的虚拟LAN项;存储在中间LAN识别表中的中间项,其中,中间项包括对虚拟LAN项的索引。
全文摘要
在包括一组端口的开关中,IP多点数据包到达入口端的接收副本以有线速度被传送到IP多点组的每个成员。数据包一次传到给定的出口端,可多次从出口端发出。如果在出口端有多个子网,每个需要数据包副本的子网将用包含在数据包中的VLAN ID接收数据包。把IP多点组接收的IP多点数据包存入储存器,对每个端口存储数据包在存储中位置的指针,这些端口是数据包的副本要送达的地方。IP多点传送项提供给IP多点组用。传送入口包括对要传送给IP多点组的每个数据包的修改项。被存数据包的副本,根据修改项进行修改,并在下一个对端口的有效端口循环中被传送。
文档编号H04L29/06GK1423873SQ00818328
公开日2003年6月11日 申请日期2000年11月30日 优先权日1999年12月1日
发明者戴维·A·布朗 申请人:睦塞德技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1