專利名稱:有線速度ip信息多點傳送的方法和裝置的制作方法
技術領域:
在計算機網(wǎng)絡中,網(wǎng)絡開關接收連到開關入口端的數(shù)據(jù)包并把數(shù)據(jù)包傳送到連到開關出口端。開關依據(jù)目的地址確定數(shù)據(jù)包要送達的出口,目的地址包含在入口端收到的數(shù)據(jù)包中。
對于IP多點組的每一個成員來說,代替多個單點傳送數(shù)據(jù)包,而把一個IP多點數(shù)據(jù)包送到入口端,那么送到開關的數(shù)據(jù)包數(shù)目減少了。但是,因為開關必須確定IP多點數(shù)據(jù)包要傳給哪一個出口,因而增加了處理IP多點數(shù)據(jù)包的時間,也增加了傳到每個出口端的副本的數(shù)目。
開關必須把IP多點數(shù)據(jù)包送到IP多點組的每個成員,這樣,如果IP多點組的多個成員與出口相聯(lián)的話,就要把IP多點數(shù)據(jù)包的多個副本送到出口端。借助于網(wǎng)絡開關,在把IP多點數(shù)據(jù)包的副本送到IP多點組的成員之前,對它進行修改。
典型的情況是,通過開關把IP多點數(shù)據(jù)包送到出口端的工作是由網(wǎng)絡工作開關中的主處理器來執(zhí)行的。基于主處理器的傳送是很慢的。
在開關中的入口傳送邏輯產(chǎn)生對IP多點數(shù)據(jù)包的多點傳送矢量。多點傳送矢量指出被存儲的IP多點數(shù)據(jù)包要送達的端口。
開關內(nèi)端口排隊邏輯存儲位置指針,它表示存儲器中的IP多點數(shù)據(jù)包在端口按多點傳送矢量排隊的位置。端口排隊邏輯在IP多點數(shù)據(jù)包被送到所有連到與端口排隊有關的出口端的IP多點組成員之后移動指針。
修改項可包括對虛擬局域網(wǎng)的識別,對下一個修改項的指針,標簽指示器和發(fā)送類型項。對下一個修改項的指針是對下一個修改項的索引,用于修改用于端口的下一個IP多點數(shù)據(jù)包。
出口端傳送邏輯包括虛擬局域網(wǎng)識別表和中間局域網(wǎng)識別表。中間局域網(wǎng)識別表包括在虛擬局域網(wǎng)表中的位置索引,內(nèi)部局域網(wǎng)表存儲虛擬局域網(wǎng)的識別。
圖1表示網(wǎng)絡開關,包括IP信息多點傳送邏輯,用來根據(jù)本發(fā)明的原理把在入口端接收到的IP多點數(shù)據(jù)包傳送給連到開關的IP多點組的成員;圖2是時序圖,說明由圖1所示的開關傳送給圖1所示的IP多點組成員的IP多點數(shù)據(jù)包;圖3A是圖解說明現(xiàn)有技術數(shù)據(jù)包可在連到開關的入口端被收到;圖3B是圖解說明現(xiàn)有技術以太網(wǎng)數(shù)據(jù)鏈層(L2)報頭包括在圖3A所示的數(shù)據(jù)包中;圖3C是圖解說明現(xiàn)有技術網(wǎng)際協(xié)議(網(wǎng)絡層(L3))報頭包括在圖3A所示的數(shù)據(jù)包中;圖3D是圖解說明圖3B中所示的現(xiàn)有技術標簽控制信息;
圖4是圖解說明圖1中所示的入口IP信息多點傳送邏輯;圖5是方法流程圖,用于處理在入口端收到的IP多點數(shù)據(jù)包;圖6是圖解說明圖1中所示的出口信息多點傳送邏輯;圖7是圖解說明圖6中所示的多點傳送索引表;圖8是圖6中所示的在出口多點傳送邏輯中執(zhí)行步驟的流程圖,用來修改IP多點數(shù)據(jù)包。
IP多點數(shù)據(jù)包106的副本在把它傳送給每個目的節(jié)點104之前可由開關100進行修改。收到的IP多點數(shù)據(jù)包的副本依據(jù)儲存在開關100中的修改項進行修改。收到的IP多點數(shù)據(jù)包副本的修改和傳送由開關以有線速度執(zhí)行,即執(zhí)行修改沒有主機介入。出口經(jīng)修改的IP多點數(shù)據(jù)包112在下一個對出口端110的有效端口循環(huán)中傳送到目的節(jié)點104,目的節(jié)點104連在該出口端110上。
當在入口端108收到IP多點數(shù)據(jù)包時,數(shù)據(jù)包處理邏輯128從IP多點數(shù)據(jù)包106的報頭提取信息,并把提取的信息傳送給入口多點傳送邏輯114。入口多點傳送邏輯114確定IP多點組中的目的節(jié)點104連在哪一個出口端110上,并把多點傳送矢量120傳送給出口端q邏輯134,指示IP多點數(shù)據(jù)包要送達的出口端110。入口多點傳送邏輯114也把相應于IP多點組的多點傳送索引(“MFI”)132傳送給數(shù)據(jù)包處理邏輯128,該IP多點組是IP多點數(shù)據(jù)包106要送達的IP多點組。MFI 132是一個對每個IP多點組成員修改項的索引。
數(shù)據(jù)包處理邏輯128把收到的IP多點數(shù)據(jù)包106和MFI 132傳送給存儲器116。包含MFI 132的入口經(jīng)修改的IP多點數(shù)據(jù)包126被儲存在對每個出口端110的端口排隊中,這些出口端是IP多點數(shù)據(jù)包106要送達的地方。端口排隊描述在共同申理中的美國申請?zhí)朜o.09/386589中,申請日是1999年8月31日,題目是“Method and Apparatus for anInterleaved Non-Blocking packet Buffer”,作者David A.Browh,它的整個內(nèi)容結(jié)合在這里作參考。
儲存在入口經(jīng)修改的IP多點數(shù)據(jù)包126中的MFI 132被用來訪問已存儲的與IP多點組的每個成員有關的修改項。出口信息多點傳送邏輯118修改入口經(jīng)修改的IP多點數(shù)據(jù)包126的副本,該副本是利用對成員存儲的修改項內(nèi)容從存儲器116收到的,并把出口經(jīng)修改的IP多點數(shù)據(jù)包112傳送給IP多點組的每個成員。
借助于儲存對每個IP多點組成員的修改項,不需要主機處理修改并把IP多點數(shù)據(jù)包的副本傳送給所有IP多點組的成員。這樣,IP多點數(shù)據(jù)包以有線速度傳送給連到下一個對端口的有效端口循環(huán)中的端口的IP多點組的成員。與每個目的節(jié)點104有關的修改項被儲存在出口信息多點傳送邏輯118中,并用與入口多點傳送邏輯114送來的IP多點組有關的MFI 132對它進行訪問。MFI被儲存在存儲器116中的入口經(jīng)修改的多點數(shù)據(jù)包126中。
如圖1所示,IP多點組的成員包括目的節(jié)點Da-f 104a-f,目的節(jié)點Da-e 104a-c連到出口port_I110a,目的節(jié)點Dd-e 104d-e連到出口110b,目的節(jié)點Df 104f連到出口port_3 100c在所示實施例中的所有目的節(jié)點104a-f是終止結(jié)點,除了在另一個實施例中,所示的目的節(jié)點104a-f可以是另一個開關的入口端,并且IP多點數(shù)據(jù)包可以通過其它開關傳送給連到其它開關出口端的IP多點組的成員。還有,可以有多個虛擬局域網(wǎng)(VLAN),連到其它開關出口端的出口端,每一個虛擬局域網(wǎng)需要經(jīng)修改的IP多點數(shù)據(jù)包的副本。
由源節(jié)點Sa 102傳送的數(shù)據(jù)包106由入口port_I 108的網(wǎng)絡開關100接收。數(shù)據(jù)包106包括目的地址。如果目的地址是IP多點地址,那么開關100把經(jīng)修改的IP多點數(shù)據(jù)包112的副本傳送給與連到開關100的IP信息多點傳送地址有關的所有IP多點組成員。
對于所示的IP多點組,開關100把六個出口經(jīng)修改的IP多點數(shù)據(jù)包112a-f傳送給出口端1-3 110a-c。出口經(jīng)修改的IP多點數(shù)據(jù)包112在入口端102收到IP多點數(shù)據(jù)包106之后,被傳送到對端口110的下一個有效端口循環(huán)中的出口端110。
三個出口被修改的IP多點數(shù)據(jù)包112a-c被傳送到出口port_1 110A,一對一目的節(jié)點Da-c 104a-c。兩個出口經(jīng)修改的IP多點數(shù)據(jù)包112d-e被傳送到出口port_1 110b,一對一目的節(jié)點Dd-e 104d-e。一個出口經(jīng)修改的IP多點數(shù)據(jù)包112f被傳送給出口port_2 110c至目的節(jié)點Df104f。
根據(jù)識別收到的IP多點數(shù)據(jù)包106,數(shù)據(jù)包處理邏輯128把IP多點數(shù)據(jù)包的報頭部分130傳送給入口多點傳送邏輯114。入口多點傳送邏輯114確定IP多點數(shù)據(jù)包的副本106要送達的出口端1-3 110a-c,并且產(chǎn)生多點傳送矢量120。多點傳送矢量120被傳送到出口端q的邏輯134。入口多點傳送邏輯114根據(jù)IP多點數(shù)據(jù)包130的報頭部分,選擇儲存的多點傳送索引(“MFI”)132,并把MFI 132傳送給數(shù)據(jù)包處理邏輯128。數(shù)據(jù)包處理邏輯128把MFI 132與收到的IP多點數(shù)據(jù)包106一起儲存在入口經(jīng)修改的IP多點數(shù)據(jù)包126中,并把在數(shù)據(jù)輸入122上的入口經(jīng)修改的IP多點數(shù)據(jù)包126傳送給存儲器116。入口經(jīng)修改的IP多點數(shù)據(jù)包被儲存在存儲器116中。
在對每個出口port_1-3 110a-c的下一個端口循環(huán)時,入口經(jīng)修改的IP多點數(shù)據(jù)包126從存儲器116的數(shù)據(jù)輸出124上根據(jù)從出口port_q邏輯134傳來的地址136傳送到出口信息多點傳送邏輯118。出口信息多點傳送邏輯118根據(jù)包括入口經(jīng)修改的數(shù)據(jù)包126中的MFI 132修改入口經(jīng)修改的數(shù)據(jù)包126的副本。出口經(jīng)修改的數(shù)據(jù)包112a-f在各個出口port_1-3110a-e上傳送。在所有出口經(jīng)修改的數(shù)據(jù)包傳送完畢之后,可以重寫存儲在存儲器116中的入口經(jīng)修改的數(shù)據(jù)包126。
圖2是時序圖,說明通過開關100以有線速度傳送IP多點數(shù)據(jù)包106給圖1所示的IP多點組的用戶。結(jié)合圖1來描述圖2。圖1中所示的IP多點組包括連到開關100的六個成員,Da-Df 104a-f。開關100包括四個端口,入口port_1 108和出口port_1-3 110a-b。但是,本發(fā)明并不局限于四個端口或六個IP多點組成員。業(yè)內(nèi)人士已知,包括多于四個端口和多于六個IP多點組成員。
在時序圖中,假定在入口port_1 108接收到的每個IP多點數(shù)據(jù)包106是最小的數(shù)據(jù)包尺寸,例如,對以太網(wǎng)數(shù)據(jù)包為64字節(jié),因為存儲器116是64字節(jié)寬。但是,本發(fā)明并不局限于64字節(jié)的數(shù)據(jù)包大小,在數(shù)據(jù)包中的字節(jié)數(shù)可以大于存儲器116的寬度。
還假定,64字節(jié)的多點數(shù)據(jù)包106是在數(shù)據(jù)段時隙200期間在入口端108(圖1)收到的。數(shù)據(jù)段時隙200包括4個端口循環(huán)時隙202,每一個對應連到開關100的一個端口,因為圖1所示的開關包括連到開關的四個端口,即一個入口端108和三個出口端100a-c。開關100支持的最大端口數(shù)目與最小的端口循環(huán)時隙202和最大數(shù)據(jù)段時隙200有關,于是并不局限于圖1所示的四個端口。在有多于四個端口的開關100中,數(shù)據(jù)段時隙200將包括對連到開關100的每個端口的端口循環(huán)時隙202。例如,對一個以太網(wǎng)數(shù)據(jù)包,最小數(shù)據(jù)包的大小為64字節(jié)。這樣,最大數(shù)據(jù)段時隙200就是在入口端接收64字節(jié)的時間,最小端口循環(huán)時隙202與從存儲器116(圖1)訪問64字節(jié)的時間有關。數(shù)據(jù)段時隙和端口循環(huán)時隙都描述在共同申理中的美國申請?zhí)朜o.09/386,589中,申請日期為1999年3月31日,題目是“Method & Appavatus for an InferleavedNon-Blocking packet Buffer”,作者David A.Browh,它的整個內(nèi)容結(jié)合在這里作參考。
到達入口port_1 108的多點數(shù)據(jù)包106的副本在下一個有效端口循環(huán)時隙202中傳送給信息多點傳送組的每個成員,即它以有線速度傳送。如果只有一個信息多點傳送組的成員連到端口,那么在下一個端口循環(huán)時隙202中傳送多點數(shù)據(jù)包的副本。如果多于一個IP多點組成員連到端口,在入口端108上到達的下一個IP多點數(shù)據(jù)包在以前的多點數(shù)據(jù)包被傳送之后再傳送給連接到該端口的所有IP多點組的成員。
時序圖表示從源節(jié)點102在數(shù)據(jù)段時隙200a-d內(nèi)到達入口port_1 108的四個IP多點數(shù)據(jù)包。第一個IP多點數(shù)據(jù)包在數(shù)據(jù)段時隙200a內(nèi)到達,在第二數(shù)據(jù)段時隙200b內(nèi),IP多點數(shù)據(jù)包在端口循環(huán)202b內(nèi)傳送到出口port_1 110a,在端口循環(huán)202c內(nèi)傳送到出口port_2 110b,和在端口循環(huán)202c內(nèi)傳送到出口port_3 110c。當?shù)谝粋€IP多點數(shù)據(jù)包正在傳送的時候,第二個IP多點數(shù)據(jù)包正在在數(shù)據(jù)段時隙200b期間被接收。
在時間230,入口經(jīng)修改的多點數(shù)據(jù)包1 126(圖1)被儲存在存儲器116(圖1)中,并且入口多點傳送邏輯114(圖1)已把對多點數(shù)據(jù)包1 106(圖1)的多點傳送矢量120(圖1)傳送給出口信息多點傳送邏輯118(圖1)。
在時間206,端口循環(huán)時隙202b的起點,入口經(jīng)修改的多點數(shù)據(jù)包1 126(圖1),根據(jù)從出口port_q邏輯134(圖1)傳來的地址136從存儲器116(圖1)數(shù)據(jù)輸出124上傳送到出口信息多點傳送邏輯118(圖1)。出口信息多點傳送邏輯118(圖1)根據(jù)MFI(圖1)修改接收到的入口經(jīng)修改的多點數(shù)據(jù)包1 126(圖1)。出口經(jīng)修改的多點數(shù)據(jù)包1 112A,通過出口110A傳送到目的節(jié)點Da104a。
在時間208,端口循環(huán)時隙202c的起點,和在時間210,端口循環(huán)時隙202d的起點,入口經(jīng)修改的多點數(shù)據(jù)包1 126(圖1)的副本,根據(jù)從出口port_q邏輯134(圖1)傳來的地址136(圖1)從存儲器(圖1)數(shù)據(jù)輸出124(圖1)上傳送。接收到的入口經(jīng)修改的多點數(shù)據(jù)包1 126(圖1)的副本,被出口信息多點傳送邏輯118根據(jù)有關的MFI 132(圖1)修改,并通過出口端2 110b傳送到目的節(jié)點Dd 104d和出口端3 110c至目的節(jié)點Df 104f。
在時間212,入口經(jīng)修改的多點數(shù)據(jù)包_1 126(圖1)的副本經(jīng)修改并傳送給目的節(jié)點Db 104b(圖1),在時間128,入口經(jīng)修改的多點數(shù)據(jù)包1 126(圖1)的副本經(jīng)修改并傳送給連到出口port_2 110b(圖1)的目的節(jié)點Dc 104e。在時間214,入口經(jīng)修改的多點數(shù)據(jù)包_1 126(圖1)的副本經(jīng)修改并傳送到達到出口port_1 110b(圖1)的目的節(jié)點Dd104d。
在時間232,入口經(jīng)修改的多點數(shù)據(jù)包_2 126(圖1)被儲存在存儲器116(圖1)中,并且入口多點傳送邏輯114(圖1)已把對多點數(shù)據(jù)包_2 106(圖1)的多點傳送矢量120(圖1)傳送給出口信息多點傳送邏輯118(圖1)。在時間234,入口經(jīng)修改的多點數(shù)據(jù)包_3 126(圖1)被儲存在存儲器116(圖1)中。在時間236,入口經(jīng)修改的多點數(shù)據(jù)包4 126(圖1)被儲存在存儲器116(圖1)中。
只有一個入口經(jīng)修改的多點數(shù)據(jù)包_1 112(圖1)被傳送到出口端3110c,因為只有一個信息多點傳送組的成員,即目的節(jié)點104f連在出口port_3 110c。這樣,在時間216,在端口循環(huán)時隙202d內(nèi),出口經(jīng)修改的多點數(shù)據(jù)包_2 112f被傳送到出口port_3 110c。在時間222,在端口時間循環(huán)202d內(nèi),出口經(jīng)修改的多點數(shù)據(jù)包_3 112被傳送到出口port_3110c。在時間228,在端口循環(huán)時隙3 202d內(nèi),出口經(jīng)修改的多點數(shù)據(jù)包_4 112f被傳送到出口port_3 110c(圖1)。
這樣,在入口port_0 108(圖1)收到的IP多點數(shù)據(jù)包_1 106(圖1),以有線速度,沒有主機處理,在下一個有效端口循環(huán)時隙202內(nèi),通過開關100傳送給連到出口port_1-3 110a-c(圖1)的目的節(jié)點104a-f(圖1)。
出口經(jīng)修改的多點數(shù)據(jù)包_2 112(圖1)在出口port_2 110b上傳送給目的節(jié)點De 104e和目的節(jié)點Df 104f。在時間220,出口經(jīng)修改的多點數(shù)據(jù)包_2 112d被傳送給連到出口port_2 110b的目的節(jié)點Dd 104d。在時間226,出口經(jīng)修改的多點數(shù)據(jù)包_2 112e(圖1)被傳送給連到出口port_2110b的目的節(jié)點De 104e。
在時間224,在最后的出口經(jīng)修改的多點數(shù)據(jù)包_1 112(圖1)傳送完畢之后,在存儲器中存儲入口經(jīng)修改的多點數(shù)據(jù)包_1 126(圖1)的位置可以被用來存儲在入口端108(圖1)收到的另一數(shù)據(jù)包。這樣,在入口端108(圖1)收到的入口經(jīng)修改的多點數(shù)據(jù)包126(圖1)被儲存在存儲器116(圖1)中,直到出口經(jīng)修改的多點數(shù)據(jù)包112(圖1)已傳給所有IP多點組的成員。
為了確定是否所有出口經(jīng)修改的多點數(shù)據(jù)包112a-f(圖1)都已傳送完畢,端口排隊(未示出)的數(shù)目被儲存在端口排隊計數(shù)寄存器(未示出)中,端口排隊數(shù)目指的是與每一個入口經(jīng)修改的多點數(shù)據(jù)包126(圖1)相關的入口經(jīng)修改的多點數(shù)據(jù)包126(圖1)已排上隊的數(shù)目。計數(shù)寄存器是對所有與出口端110(圖1)有關的已經(jīng)被傳送到出口端110(圖1)的出口經(jīng)修改的多點數(shù)據(jù)包112(圖1)的遞減。例如,在一個出口經(jīng)修改的多點數(shù)據(jù)包被傳送到出口port_3 110c上后,端口排隊計數(shù)遞減,端口排隊數(shù)目是從多點傳送矢量120(圖1)確定的。
把入口端108(圖1)收到的現(xiàn)有技術數(shù)據(jù)包與圖3A-3D相聯(lián)合,來描述傳送邏輯114,118(圖1)和數(shù)據(jù)包處理邏輯126(圖1),在出口經(jīng)修改的多點數(shù)據(jù)包112a-f(圖1)被傳送給出口端110a-c之前,對多點數(shù)據(jù)包106(圖1)進行修改的情況。
圖3A說明現(xiàn)有技術數(shù)據(jù)包可以在連到開關100(圖1)的入口端108(圖1)上接收。圖3B說明現(xiàn)有技術以太網(wǎng)報頭可以包含在圖3A所示的數(shù)據(jù)包中。圖3C說明現(xiàn)有技術網(wǎng)際協(xié)議報頭可以包含在圖3A所示的數(shù)據(jù)包中。圖3D說明在圖3B所示的以太網(wǎng)報頭中的現(xiàn)有技術標簽控制信息字段318B。
圖3A表示現(xiàn)有技術數(shù)據(jù)包300。數(shù)據(jù)包300包括數(shù)據(jù)段310和用于網(wǎng)絡開關層302,304,306,308的報頭。示出了在OSI(開放系統(tǒng)互連)模型中的四層報頭,物理層(L1)報頭302,數(shù)據(jù)鏈層(L2)報頭304,網(wǎng)絡工作層(L3)報頭306和傳輸層(L4)報頭308。例如,數(shù)據(jù)鏈層(L2)報頭302可以是以太網(wǎng),網(wǎng)絡工作層(L3)報頭306可以是網(wǎng)際協(xié)議(“IP”)。數(shù)據(jù)包300也包括檢驗和312。
圖3B說明以太網(wǎng)數(shù)據(jù)鏈(L2)報頭304的格式。以太網(wǎng)數(shù)據(jù)鏈(L2)報頭304包括用于目的節(jié)點104(圖1)的設備地址,即目的地址314,和用于源節(jié)點102(圖1)的設備地址,即源地址316,可選的虛擬局域網(wǎng)識別(“VLAN ID”)字段318和長度/類型字段320。VLAN ID 318包括標簽協(xié)議標識符(“TPT”)字段318A和標簽控制信息(“TCI”)字段318B。VLANID字段根據(jù)IEEE 802.1Q標簽和IEEE 802.ID 1988(802.1p)優(yōu)先級提供對VLAN開關的支持。
圖3C說明IP網(wǎng)絡層(L3)報頭306的格式。IP網(wǎng)絡層(L3)報頭306包括用于源節(jié)點102(圖1)的網(wǎng)絡地址,即源IP地址344,和用于目的節(jié)點104(圖1)的網(wǎng)絡地址,即IP目的地址346。其它在IP網(wǎng)絡層報頭306中的字段包括版本322,HLEN 324,服務類型(“TOS”)326,總長度328,識別330,標記332,段落位移334,留存時間(“TTL”)336,協(xié)議340,報頭檢驗和342,選項348和填充350。
在連到開關100(圖1)的入口端108(圖1)收到的IP多點數(shù)據(jù)包106(圖1)根據(jù)存儲在以太網(wǎng)數(shù)據(jù)鏈(L2)報頭300(圖3A)中的目的地址314(圖3B)被接通到一個或多個出口端110a-c(圖1),或者根據(jù)存儲在IP網(wǎng)絡層(L3)報頭306中的IP目的地址346路由到一個或多個出口端110(圖1)。
圖3D說明示于圖3B中的現(xiàn)有技術TCI字段318b。TCI字段318b包括3-bit用戶優(yōu)先字段352,1-bit CFI字段354和12-bit虛擬局域網(wǎng)(“VLAN”)標記符356。
回到圖1,數(shù)據(jù)包處理邏輯128借助于檢查包含在接收到的數(shù)據(jù)包中的網(wǎng)絡層(L3)報頭306(圖3A)確定在入口端1 108收到的數(shù)據(jù)包是否是IP多點數(shù)據(jù)包106。如果協(xié)議字段340(圖3C)是IP,那么網(wǎng)絡層(L3)報頭306(圖3A)是網(wǎng)際協(xié)議版本4(“TPV4”)的報頭,版本字段322(圖3C)是IPV4,并且報頭檢驗和342(圖3C)有效。如果IP目的地址346(圖3C)是D類,即IP目的地址346(圖3C)的高四位是1110,那么IP數(shù)據(jù)包是IP多點數(shù)據(jù)包106。
如果數(shù)據(jù)包處理邏輯128確定了數(shù)據(jù)包是IP多點數(shù)據(jù)包,則IP多點數(shù)據(jù)包130的報頭的一部分(包括在IP網(wǎng)絡工作層(L3)報頭306(圖3C)中的IP目的地址346(圖3C)和IP源地址344(圖3C),在以太網(wǎng)數(shù)據(jù)鏈(L2)報頭304(圖3B)中的VLAN ID 318),和相應于入口端108(圖1)的入口端數(shù)目傳送給入口多點傳送邏輯114。
圖4說明示于圖1中的入口多點傳送邏輯114。入口多點傳送邏輯114包括按內(nèi)容訪問存儲器(“CAM”)400,路由映象器402,路由表404和組合矢量邏輯406。路由表404包括相應于IP多點組的信息多點傳送項422,該IP多點組包含在入口port_1 108(圖1)收到的IP多點數(shù)據(jù)包內(nèi)。CAM 400和路由映象器402根據(jù)IP多點數(shù)據(jù)包130(圖1)和從數(shù)據(jù)包處理邏輯傳來的用于入口port_1 108(圖1)的端口數(shù)的報頭部分選擇信息多點傳送項422。
在實施結(jié)合圖4描述的入口多點傳送邏輯114(圖1)中,CAM 400對于存儲IP目的地址346(圖3C)、IP源地址344(圖3C)、入口端數(shù)和VLAN ID 318(圖3B)不夠?qū)挕_@樣,用路由映象器402的實現(xiàn)來增加CAM 400的寬度。但是,業(yè)內(nèi)人士已知,CAM 400可以擴充來包括路由映象器402。
在相應于IP信息多點傳送包106的路由表404中搜索信息多點傳送項422分兩階段進行。首先,根據(jù)在IP網(wǎng)絡層(L3)報頭306(圖3C)中的IP目的地址346(圖3C)和IP源地址344(圖3C)字段對CAM 400搜索項。如果在CAM 400中找到匹配項,則匹配地址410被送到路由映象器402,路由映象器402把相應于匹配地址410的多點路徑碼(“MPC”)422傳送給CAM 400。
第二,根據(jù)MPC 422、VLAN ID 318(圖3B)和入口端數(shù)對CAM 400搜索項。如果在CAM 400中找到匹配的項,則把匹配地址410傳送到路由映象器402,路由映象器402把相應于匹配地址410的有關數(shù)據(jù)索引(“ADI”)傳送給路由表404。把IP多點傳送項422儲存在由ADI 412識別的路由表404中的位置。IP多點傳送項422識別要由開關100(圖1)把IP多點數(shù)據(jù)包106(圖1)送達的IP多點組。
為了避免IP多點數(shù)據(jù)包的重復傳送,用IP源地址344(圖3C)、IP目的地址346(圖3C)、VLAN ID 318(圖3B)和入口端數(shù)108(圖1)對CAM 400進行搜索。例如,如果源節(jié)點連在多于一個端口,即目的節(jié)點x連在端口y和端口x,并且IP多點數(shù)據(jù)包被從端口y上的節(jié)點x收到,那么就把數(shù)據(jù)包傳送給IP多點組的全部成員。但是,如果IP多點數(shù)據(jù)包是從端口z上的目的地址x收到,則被放棄,因為目的x連在多于一個端口,因此,在端口z上收到的IP多點數(shù)據(jù)包是在端口y上收到的IP多點數(shù)據(jù)包的重復。
每個在路由表404中的多點傳送項422包括橋矢量416、路由矢量414和多點傳送索引132(“MFI”)。橋矢量416和路由矢量414被傳送到組合矢量邏輯406。MFI 132被傳送到數(shù)據(jù)包處理邏輯128(圖1)。
組合矢量邏輯406通過對路由矢量414和橋矢量416執(zhí)行邏輯或功能產(chǎn)生多點傳送矢量120。多點傳送矢量120被傳送到出口port_q邏輯134(圖1)。多點傳送矢量120選擇IP多點數(shù)據(jù)包106(圖1)要送達的一個或多個出口端。
在入口port_1 108收到的IP多點數(shù)據(jù)包106(圖1)的以太網(wǎng)數(shù)據(jù)鏈(L2)報頭304(圖3B)中目的地址314(圖3B)的前三個字節(jié)被設置為“0×01-00-53”。IP多點數(shù)據(jù)包106在數(shù)據(jù)輸入122(圖1)上傳送到存儲器116(圖1)之前,數(shù)據(jù)包處理邏輯128(圖1)把從入口端傳來的信息多點傳送邏輯114(圖1)寫入目的地址314(圖3B)的第二和第三位如下“0×01-0M-F1”。入口被修改的IP多點數(shù)據(jù)包126(圖1)被存入存儲器116(圖1)。出口信息多點傳送邏輯118(圖1)利用包含在入口經(jīng)修改的IP多點數(shù)據(jù)包中的MFI在把出口經(jīng)修改的IP多點數(shù)據(jù)包傳送給出口端110(圖1)之前修改入口經(jīng)修改的IP多點數(shù)據(jù)包126(圖1)。
IP多點傳送矢量120確定哪一個出口端110a-c是IP多點數(shù)據(jù)包106(圖1)要送達的地方。入口經(jīng)修改的多點數(shù)據(jù)包126(圖1)在存儲器116(圖1)中的位置根據(jù)相應于出口端排隊(未示出)位的狀態(tài)存儲在出口端q邏輯134(圖1)中的出口端排隊上。該狀態(tài)是在入口多點信息傳送邏輯114(示于圖5中)中以多點傳送矢量420實現(xiàn)的。
圖5是示于圖4中的入口多點傳送邏輯114中實現(xiàn)的方法的流程圖,用于處理在入口端108(圖1)收到的IP多點數(shù)據(jù)包106(圖1)。該方法結(jié)合圖1-4來描述。
在步驟500,入口多點傳送邏輯114(圖1)從數(shù)據(jù)包處理邏輯128(圖1)接收IP多點數(shù)據(jù)包130的部分,處理以步驟502繼續(xù)。
在步驟502,入口多點傳送邏輯114(圖4)初始化在組合矢量邏輯406中的路由矢量414(圖4)和橋矢量416(圖4)。
在步驟504,在CAM 400(圖4)中搜索與IP目的地址346(圖3C)和IP源地址344(圖3C)相匹配項,這些地址是從數(shù)據(jù)包處理邏輯128(圖1)傳到CAM 400的。如果在CAM 400(圖4)中找到匹配地址410(圖4),處理以步驟506繼續(xù)。如果沒有找到,處理以步驟518繼續(xù)。
在步驟506,把匹配地址410(圖4)傳送給路由映象器402(圖4)。路由映象器402(圖4)把相應于匹配地址410(圖4)的信息多點傳送的路徑碼(“MPC”)422傳送給CAM 400(圖4),處理從步驟508繼續(xù)。
在步驟508,在CAM 400(圖4)中,根據(jù)MPC 422,來自以太網(wǎng)數(shù)據(jù)鏈(L2)報頭304(圖4)的VLAN ID 318(圖3B)和入口端數(shù)目進行第二次搜索。如果在CAM 400(圖4)中找到匹配地址410(圖4),處理以步驟510繼續(xù)。如果沒有找到,處理以步驟518繼續(xù)。
在步驟510,把匹配地址410(圖4)傳給路由映象器(圖4)。路由映象器把相應于匹配地址410(圖4)的ADI傳給路由表404。對IP多點數(shù)據(jù)包106(圖1)的IP多點傳送項422(圖4)被存儲在由ADI 412識別的路由表404中的位置。處理以步驟512繼續(xù)。
在步驟512,把存儲在多點傳送項422(圖4)的MFI 132(圖4)傳送到數(shù)據(jù)包處理邏輯128(圖1),把存儲在多點傳送項422(圖4)的橋矢量416(圖4)傳送給組合矢量邏輯406(圖4)。處理以步驟514繼續(xù)。
步驟514,如果在傳送到入口多點傳送邏輯114(圖1)的IP多點數(shù)據(jù)包106(圖1)內(nèi),IP網(wǎng)絡層(L3)報頭306(圖3)中,IP多點數(shù)據(jù)包130(圖1)部分的TTL字段大于1,處理以步驟516繼續(xù),否則,處理以步驟518繼續(xù)。
在步驟516,把存在多點傳送項422(圖4)的路由矢量414(圖4)傳送給組合矢量邏輯406(圖4)。處理以步驟518繼續(xù)。
在步驟518,把相應于入口端108(圖1)的入口端數(shù)從橋矢量416(圖4)中去除,在該入口端接收到IP多點數(shù)據(jù)包,處理以步驟519繼續(xù)。
在步驟519,把橋矢量416(圖4)和VLAN成員矢量(未示出)組合起來,處理步驟520繼續(xù)。
在步驟520,借助于執(zhí)行邏輯或功能把橋矢量416(圖4)和路由矢量414(圖4)組合起來,為IP多點組提供多點傳送矢量120(圖4)。處理以步驟522繼續(xù)。
在步驟522,把多點傳送矢量422傳送給出口port_q邏輯134(圖1)。
如果在CAM 400(圖4)中沒有找到對IP多點數(shù)據(jù)包106(圖1)的匹配項,即IP多點組未知,那么,把多點數(shù)據(jù)包106(圖1)傳送給主機端口(未示出),所以,主機端口可以把IP多點組的項加在CAM 400(圖4)、路由映象器402(圖6)和路由表404(圖4)中。多點傳送矢量422(圖4)這樣選擇,使IP信息多點傳送包106(圖1)被傳送到主機端口。多點傳送矢量422(圖4)也可這樣選擇,使對未知IP多點組的IP多點數(shù)據(jù)包106(圖1)被接通到VLAN,在其上IP多點數(shù)據(jù)包106(圖1)曾被接收。
圖6說明示于圖1的出口信息多點傳送邏輯118。出口信息多點傳送邏輯118(圖1)包括MFI檢測邏輯602、編輯器邏輯600和MFI表604。MFI表604包括MFI項612。
當存在存儲器116(圖1)中,在數(shù)據(jù)輸出124上傳送的入口經(jīng)修改的IP多點數(shù)據(jù)包的副本被出口IP多點傳送處理邏輯118接收時,MFI檢測邏輯602檢測包含在入口經(jīng)修改的IP多點數(shù)據(jù)包126(圖1)內(nèi)的MFI 132,并把MFI 132傳送給MFI表604。MFI 132是對MFI項612在相應于IP多點組的MFI表604中的索引。MFI項612確定哪一個出口端口112(圖1)是IP多點數(shù)據(jù)包106(圖1)的第一副本要傳送的地方。如果相繼的IP信息多點傳送包106要傳送到出口端口110上,那么,下一個MFI 132’被包括在MFI表604中的MFI項612內(nèi)。把下一個MFI132’傳送給MFI檢測邏輯602來選擇下一個MFI項612。例如,下一個MFI 132’與對出口經(jīng)修改的IP多點數(shù)據(jù)包112a(圖1)的MFI項612一起儲存,來選擇下一個對出口經(jīng)修改的IP多點數(shù)據(jù)包112b(圖1)的MFI項612’。
入口經(jīng)修改的IP多點數(shù)據(jù)包126(圖1)根據(jù)包括在MFI 612中的信息多點傳送參數(shù)610被編輯器邏輯600修改。把儲存在MFI項612內(nèi)的信息多點傳送參數(shù)610送到編輯器邏輯600。這樣根據(jù)要送達的目的節(jié)點104a-f(圖1),對每個入口經(jīng)修改的IP多點數(shù)據(jù)包126(圖1)進行編輯。根據(jù)在MFI表604中提供的MFI項612,可以對入口經(jīng)修改的IP多點數(shù)據(jù)包126(圖1)進行編輯,以提供出口經(jīng)修改的IP多點數(shù)據(jù)包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指出另一個出口經(jīng)修改的IP多點數(shù)據(jù)包112(圖1)要送達到連到開關100(圖1)的端口,則下一個MFI字段儲存下一個MFI 132’。如圖1所示,IVID項718是用于四個端口的開關100(圖1)的。端口字段714的數(shù)目并非局限于所示的四個端口字段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,減少了需要實現(xiàn)MFI表604(圖6)的總存儲量,因為每個入口經(jīng)修改的IP多點數(shù)據(jù)包126可以沒有相應的VLAN ID項716。
橋/路由字段708作為單個位來實現(xiàn)。橋/路由字段708的狀態(tài)確定是否有入口經(jīng)修改的IP多點數(shù)據(jù)包要接到或發(fā)送到端口。下一個字段706作為單個位來實現(xiàn)。下一個字段706的狀態(tài)確定是否有其它的出口經(jīng)修改的IP多點數(shù)據(jù)包112(圖1)要送到端口。IVID字段704提供對VLAN ID表702的索引。在IVID字段704中的位數(shù)與VLAN ID表702的大小有關。例如對于有256個VLAN ID項716的VLAN ID表706,VLANID索引714包括8位。
如果入口經(jīng)修改的IP多點數(shù)據(jù)包126(圖1)要路由到端口的話,則VLAN ID 710包含有效的VLAN ID 710。如果標簽字段712指出出口經(jīng)修改的IP多點數(shù)據(jù)包沒有標出標簽,那么,編輯器邏輯600(圖6)從在以太網(wǎng)數(shù)據(jù)鏈層(L2)的報頭304(圖3)中的VLAN ID 318(圖3B)刪去特征318b(圖3B)。
一旦確定需要VLAN ID 710,并從VLAN ID表702獲得VLAN ID710,就把信息多點傳送參數(shù)610(圖6)傳送到編輯器邏輯600(圖6)。邏輯器邏輯600(圖6)利用信息多點傳送參數(shù)610來修改入口經(jīng)修改的IP多點數(shù)據(jù)包126(圖6),修改后,編輯器邏輯把出口經(jīng)修改的IP多點數(shù)據(jù)包112傳送到出口端110(圖1)。
如果在端口字段714中的橋/路由字段708被設置成橋,編輯器邏輯600(圖6)增加或除去VLAN ID 318(圖3C),并在以太網(wǎng)鏈階層(L2)報頭(圖3B)中把目的地址314重新恢復到它的原來值。
如果在端口字段714中的橋/路由字段708被設置為路由,那么,編輯器邏輯600(圖6)把路由器的源地址重寫入以太網(wǎng)數(shù)據(jù)鏈層(L2)報頭304(圖3B)內(nèi)的源地址314(圖3B)中,遞減TTL 336(圖3C)和產(chǎn)生IP檢驗和,并把它存入報頭檢驗和342(圖3C)中。編輯器邏輯600(圖6)也恢復IP目的地址346(圖3C)到原來的值,并加上TCI 318b(圖3B)標簽。
出口信息多點傳送邏輯118(圖1)把IP目的地址346(圖3C)和出口經(jīng)修改的IP多點數(shù)據(jù)包112a-f(圖1)傳送到端口110a-c(圖1)。
在本發(fā)明參考優(yōu)先實施例作特別說明和描寫時,業(yè)內(nèi)人士應了解,可以做各種形式和細節(jié)的改變而沒有超出權(quán)利要求書中主張的范圍。
權(quán)利要求
1.一種開關,包括存儲器,存儲從連到開關的端口接收到的多點數(shù)據(jù)包;出口端傳送邏輯,它包括對每個與多點數(shù)據(jù)包有關的多點組成員修改項;編輯器邏輯,它根據(jù)修改項修改從存儲器接收的多點數(shù)據(jù)包的副本。
2.根據(jù)權(quán)利要求1所述的開關,其特征在于還包括入口端傳送邏輯,它為多點數(shù)據(jù)包產(chǎn)生多點傳送矢量,多點傳送矢量指出哪一個端口是被儲存的多點數(shù)據(jù)包要送達的端口。
3.根據(jù)權(quán)利要求2所述的開關,其特征在于還包括端口排隊邏輯,根據(jù)多點傳送矢量,以至少一個端口排隊存儲對存儲在存儲器內(nèi)的多點數(shù)據(jù)包的指針。
4.根據(jù)權(quán)利要求3所述的開關,其特征在于端口排隊邏輯在把被儲存的多點數(shù)據(jù)包傳送到IP多點組的全部成員之后,把指針移到存儲在端口排隊的多點數(shù)據(jù)包,這里的全部成員指連接到與端口排隊有關端口的全部成員。
5.根據(jù)權(quán)利要求1所述的開關,其特征在于,修改項包括虛擬LAN識別;對下一個修改項的指針;標簽指示器;傳送類型指示器。
6.根據(jù)權(quán)利要求5所述的開關,其特征在于,下一個修改項的指針是用來修改下一個多點數(shù)據(jù)包副本的下一個修改項的索引。
7.根據(jù)權(quán)利要求1所述的開關,其特征在于,修改項包括存儲在虛擬LAN識別表中的虛擬LAN項;存儲在中間LAN識別表中的中間項,其中,中間項包括對虛擬LAN項的索引。
8.一種在開關中傳送多點數(shù)據(jù)包的方法,包括步驟把從入口端口接收的多點數(shù)據(jù)包存入存儲器中;提供出口端傳送邏輯,它包括對與多點數(shù)據(jù)包有關的每一個信息多點傳送組成員的修改項,和用于修改多點數(shù)據(jù)包的編輯邏輯;在出口端傳送邏輯中,根據(jù)修改項修改從存儲器接收到的多點數(shù)據(jù)包;把由出口端傳送邏輯修改的多點數(shù)據(jù)包傳送給下一個可用出口端循環(huán)時間內(nèi)的出口端。
9.根據(jù)權(quán)利要求8所述的在開關中傳送多點數(shù)據(jù)包的方法,其特征在于還包括步驟根據(jù)包括在多點數(shù)據(jù)包內(nèi)的參數(shù),選擇對多點數(shù)據(jù)包的多點傳送矢量,多點傳送矢量指出哪一個出口端口是多點數(shù)據(jù)包要送達的端口。
10.根據(jù)權(quán)利要求9所述的在開關中傳送多點數(shù)據(jù)包的方法,其特征在于還包括步驟借助于數(shù)據(jù)包管理器,根據(jù)多點傳送矢量,把對存儲在存儲器中的多點數(shù)據(jù)包的指針存入與出口端有關的端口排隊中。
11.根據(jù)權(quán)利要求10所述的在開關中傳送多點數(shù)據(jù)包的方法,其特征在于還包括步驟借助于數(shù)據(jù)包管理器,把所有多點傳送數(shù)據(jù)包經(jīng)修改后的副本傳送給與端口排隊有關的出口端之后,移動對存儲在端口排隊的多點數(shù)據(jù)包的指針。
12.根據(jù)權(quán)利要求8所述的在開關中傳送多點數(shù)據(jù)包的方法,其特征在于,提供修改項的步驟包括提供虛擬LAN識別、對下一個入口的指針、標簽指示器和傳送類型指示器。
13.根據(jù)權(quán)利要求12所述的在開關中傳送多點數(shù)據(jù)包的方法,其特征在于,對下一個項指針提供對下一個修改項的索引,存儲對要送到出口端的多點數(shù)據(jù)包第二次被修改的副本的參數(shù)。
14.根據(jù)權(quán)利要求8所述的在開關中傳送多點數(shù)據(jù)包的方法,其特征在于,提供出口端傳送邏輯的步驟還包括步驟提供虛擬LAN識別表;提供中間LAN識別表,用于存儲多點項,其中,多點項包括對包含虛擬LAN識別的虛擬LAN識別表中位置的指針。
15.一種開關,包括存儲器,存儲從連到開關的入口端收到的多點數(shù)據(jù)包;出口端傳送邏輯,它包括修改項,用于與多點數(shù)據(jù)包有關的每個信息多點組成員;裝置,用于根據(jù)修改項修改從存儲器收到的多點數(shù)據(jù)包的副本。
16.根據(jù)權(quán)利要求15所述的開關,其特征在于還包括裝置,用于產(chǎn)生對多點數(shù)據(jù)包的多點傳送矢量,多點傳送矢量指出哪一個端口是被存儲的多點數(shù)據(jù)包要送達的地方。
17.根據(jù)權(quán)利要求16所述的開關,其特征在于還包括裝置,根據(jù)多點傳送矢量,把存在存儲器中的多點數(shù)據(jù)包的指針存入至少一個端口排隊中。
18.根據(jù)權(quán)利要求17所述的開關,其特征在于,裝置,在把多點數(shù)據(jù)包送到信息多點傳送組的每一成員之后,存儲移動對存儲在端口排隊的多點數(shù)據(jù)包的指針。
19.根據(jù)權(quán)利要求15所述的開關,其特征在于,修改項包括虛擬LAN識別;對下一個項的指針;標簽指示器;傳送類型指示器。
20.根據(jù)權(quán)利要求19所述的開關,其特征在于,對下一個項的指針提供存儲參數(shù)的下一個修改項的索引,用于對下一個要傳到出口端的經(jīng)修改的多點數(shù)據(jù)包的副本。
21.根據(jù)權(quán)利要求15所述的開關,其特征在于,修改項包括存儲在虛擬LAN識別表中的虛擬LAN項;存儲在中間LAN識別表中的中間項,其中,中間項包括對虛擬LAN項的索引。
全文摘要
在包括一組端口的開關中,IP多點數(shù)據(jù)包到達入口端的接收副本以有線速度被傳送到IP多點組的每個成員。數(shù)據(jù)包一次傳到給定的出口端,可多次從出口端發(fā)出。如果在出口端有多個子網(wǎng),每個需要數(shù)據(jù)包副本的子網(wǎng)將用包含在數(shù)據(jù)包中的VLAN ID接收數(shù)據(jù)包。把IP多點組接收的IP多點數(shù)據(jù)包存入儲存器,對每個端口存儲數(shù)據(jù)包在存儲中位置的指針,這些端口是數(shù)據(jù)包的副本要送達的地方。IP多點傳送項提供給IP多點組用。傳送入口包括對要傳送給IP多點組的每個數(shù)據(jù)包的修改項。被存數(shù)據(jù)包的副本,根據(jù)修改項進行修改,并在下一個對端口的有效端口循環(huán)中被傳送。
文檔編號H04L29/06GK1423873SQ00818328
公開日2003年6月11日 申請日期2000年11月30日 優(yōu)先權(quán)日1999年12月1日
發(fā)明者戴維·A·布朗 申請人:睦塞德技術公司