專利名稱::多播封包的轉(zhuǎn)送方法及其相關交換裝置的制作方法
技術(shù)領域:
:本發(fā)明有關于以太網(wǎng)絡封包的轉(zhuǎn)送方法及其相關交換裝置,特別有關于多播封包的轉(zhuǎn)送方法及其相關交換裝置。(2)
背景技術(shù):
以太網(wǎng)絡交換器可以提供多端口的網(wǎng)絡連結(jié),每一個端口可供速度10M/100M/1000M(1M=106)的全雙工數(shù)據(jù)傳收,內(nèi)部具有暫存存儲器以緩沖暫存封包,而以太網(wǎng)絡封包從交換器外部接收進來則以緩沖器(buffer)為單位向暫存存儲器索取暫存空間,一般而言,以太網(wǎng)絡封包最大長度不超過1522字節(jié)(bytes)長,而交換器內(nèi)定義的緩存器長度可為128字節(jié)長(當然也可定義為256字節(jié)長),當一個256字節(jié)長的封包進入以太網(wǎng)絡交換器中時,需要占據(jù)暫存存儲器的兩個緩沖器的空間,而當一個260字節(jié)長的封包進入以太網(wǎng)絡交換器中時,則需要占據(jù)暫存存儲器的三個緩沖器的空間。一般而言,以太網(wǎng)絡交換器接收到的封包可以區(qū)分為單播(uni-cast)封包、多播(multi-cast)封包以及廣播(broadcast)封包,單播封包從以太網(wǎng)絡交換器其中一端口接收后從另一端口轉(zhuǎn)送出去,多播封包從以太網(wǎng)絡交換器其中一端口接收后從其它數(shù)個端口轉(zhuǎn)送出去,而廣播封包從以太網(wǎng)絡交換器其中一端口接收后從其它所有端口轉(zhuǎn)送出去,所以廣播封包可以算是多播封包的一個特例。圖1顯示以太網(wǎng)絡交換器100進行廣播封包的凈空隊列測試示意圖,以太網(wǎng)絡交換器100具有八個端口(端口0至端口7),其中端口0、5、6、7的線速度(linespeed)為1000Mbps(bitpersecond),端口1、4的線速度為100Mbps,端口2、3的線速度為10Mbps,已有技術(shù)優(yōu)先替具有高線速度的連接端口進行轉(zhuǎn)送,而具有相同線速度的連接端口則以端口號碼愈小者優(yōu)先進行轉(zhuǎn)送。第一種測試方式,如圖1所示,所有連接端口的輸出等待隊列皆為凈空,此時,當t為0時,以下并以1000M連接端口傳送單一個緩沖器大小數(shù)據(jù)所需要的時間作為t的計量單位,256字節(jié)長的廣播封包從端口0接收后從端口1至端口7廣播轉(zhuǎn)送出去,256字節(jié)長的廣播封包需要占據(jù)暫存存儲器的兩個緩沖器的空間,若直接由1000M連接端口轉(zhuǎn)送出去則需要兩個單位時間,因此,自該256字節(jié)長的廣播封包進入端口0(t=0),首先自端口5轉(zhuǎn)送而出,并于t為2時完成轉(zhuǎn)送,并重新排入端口6的輸出隊列中;端口6于t為2+時開始轉(zhuǎn)送,而于t為4時完成轉(zhuǎn)送,接著重新排入端口7的輸出隊列;端口7于t為4+時開始轉(zhuǎn)送,而于t為6時完成轉(zhuǎn)送,所有1000M線速度的連接端口已經(jīng)完成轉(zhuǎn)送,接著重新排入端口1的輸出隊列中;端口1于t為6+時開始轉(zhuǎn)送,端口1線速度為100M,傳送兩個緩沖器大小數(shù)據(jù)所需要的時間為20,因此,端口1會于t為26時完成轉(zhuǎn)送,接著重新排入端口4的輸出隊列;端口4則于t為26+時開始轉(zhuǎn)送,而于t為46時完成轉(zhuǎn)送,至此,所有100M線速度的連接端口已經(jīng)完成轉(zhuǎn)送,接著輪到線速度10M的連接端口2、3依序進行轉(zhuǎn)送;端口1至端口7的開始轉(zhuǎn)送時間點分別為[6;46;246;26;0;2;4]。第二種測試方式,如圖2所示,顯示以太網(wǎng)絡交換器100進行廣播(broadcast)封包的非凈空隊列測試示意圖,當t為0時,端口1至端口7的輸出隊列長度分別為[4;3;0;1;2;0;1],當256字節(jié)長的廣播封包進入端口0(t=0),依序欲從端口5、6、7、1、4、2、3轉(zhuǎn)送而出,當t為0時,端口5的輸出隊列中仍有兩個緩沖器大小的數(shù)據(jù)待傳送,因此該廣播封包等到t為2時才開始進行轉(zhuǎn)送,并于t為4時完成轉(zhuǎn)送,并重新排入端口6的輸出隊列中;端口6于t為4+時開始轉(zhuǎn)送,而于t為6時完成轉(zhuǎn)送,接著重新排入端口7的輸出隊列,也即,依照以上安排的輸出順序,廣播封包需等待輪到的連接端口將對應的輸出隊列清空,方可進行該廣播封包的轉(zhuǎn)送,因此每次等待皆會延遲之后連接端口將該廣播封包送出的時間點,根據(jù)以上說明,同理推論,端口1至端口7的開始轉(zhuǎn)送時間點分別為[40;300;500;60;2;4;6]。廣播傳送是多播(multicast)傳送的一種特例,最有效率的廣播方式,當然是在端口0收到該廣播封包之后,馬上同時于所有欲輸出的隊列建立隊列連結(jié)(enqueue,或稱入隊),同時需要多個計數(shù)器分別計數(shù)每個廣播封包(或者多播封包)已經(jīng)完成轉(zhuǎn)送的連接端口數(shù)目,以避免在封包還未完全轉(zhuǎn)送出去前,暫存空間就被釋放回系統(tǒng);應用于圖2的測試方式,端口1至端口7的開始轉(zhuǎn)送時間點分別為[40;300;0;10;2;0;1];但是,這樣的方式將最消耗輸出隊列所需的存儲器空間以及計數(shù)器數(shù)量,顯然也不是良好的硬件設計方式。(3)
發(fā)明內(nèi)容本發(fā)明揭示一種多播封包的轉(zhuǎn)送方法,包含下列步驟(a)接收多播封包并對應地產(chǎn)生端口屏蔽,以顯示多播封包將被轉(zhuǎn)送的多個連接端口,(b)根據(jù)端口屏蔽所顯示尚未完成入隊的待轉(zhuǎn)送的連接端口中,選擇具有最高優(yōu)先權(quán)的連接端口,將多播封包入隊以相關于該連接端口,并更新端口屏蔽,(c)檢查具有最高優(yōu)先權(quán)的連接端口是否為全雙工,以及,(d)根據(jù)檢查結(jié)果決定何時重復步驟(b)至(d),直至完成端口屏蔽所指定的轉(zhuǎn)送為止;其中,當具有最高優(yōu)先權(quán)的連接端口是為全雙工時,則等到具有最高優(yōu)先權(quán)的連接端口確定開始傳送該多播封包時,重復步驟(b)至(d);當具有最高優(yōu)先權(quán)的連接端口是為半雙工時,則等到具有最高優(yōu)先權(quán)的連接端口確定已經(jīng)傳送該多播封包達一預定字節(jié)數(shù)時,例如64字節(jié)長或128字節(jié)長,重復步驟(b)至(d),直至完成端口屏蔽所指定的轉(zhuǎn)送為止。較佳地,最高優(yōu)先權(quán)的連接端口是指具有最高優(yōu)先權(quán)分類的最短輸出隊列長度的連接端口;當完成根據(jù)該端口屏蔽的所有轉(zhuǎn)送時,則釋放該多播封包的相關緩沖區(qū)。本發(fā)明進一步揭示一種媒體存取控制芯片,用以耦接實體層控制芯片,媒體存取控制芯片包含多個連接端口控制單元、轉(zhuǎn)送控制單元、隊列控制單元、最短隊列判斷單元以及緩沖器控制單元,其中轉(zhuǎn)送控制單元耦接于這些連接端口控制單元,隊列控制單元耦接轉(zhuǎn)送控制單元及連接端口控制單元,最短隊列判斷單元耦接隊列控制單元,而緩沖器控制單元耦接緩沖存儲器及連接端口控制單元;當其中一連接端口控制單元接收一多播封包時,轉(zhuǎn)送控制單元藉由查表方式為該多播封包產(chǎn)生對應端口屏蔽,由緩沖器控制單元自緩沖存儲器配置緩沖區(qū)暫存多播封包,由隊列控制單元與最短隊列判斷單元協(xié)同運作,以根據(jù)該多播封包的對應端口屏蔽選擇最高優(yōu)先權(quán)分類的最短隊列的連接端口,為多播封包入隊;若最高優(yōu)先權(quán)分類的最短隊列的連接端口是全雙工,則等到最高優(yōu)先權(quán)分類的最短隊列的連接端口開始傳送多播封包,便開始為該多播封包相關于(associated)下一個連接端口進行早期入隊;而若最高優(yōu)先權(quán)分類的最短隊列的連接端口是半雙工,則等到最高優(yōu)先權(quán)分類的最短隊列的連接端口已經(jīng)傳送該多播封包達預定字節(jié),便開始為多播封包相關于下一個連接端口進行早期入隊。本發(fā)明進一步揭示一種具有多個連接端口的以太網(wǎng)絡交換器,包含提供多個連接端口的實體層控制芯片;以及耦接于實體層控制芯片的媒體存取控制芯片,其中,實體層控制芯片接收多播封包,媒體存取控制芯片為多播封包產(chǎn)生對應端口屏蔽,根據(jù)對應端口屏蔽選擇最高優(yōu)先權(quán)分類的最短隊列的連接端口,為多播封包入隊。本發(fā)明也揭示一種多播封包的轉(zhuǎn)送方法,包含下列步驟(a)根據(jù)以太網(wǎng)絡的自動協(xié)調(diào)結(jié)果,記錄多個遠程連接端口的能力;(b)依照預定傳輸能力順序指定多個本端連接端口的優(yōu)先權(quán)順序;(c)接收多播封包并對應地產(chǎn)生端口屏蔽,以顯示多播封包將被轉(zhuǎn)送至這些本端連接端口中的多個連接端口;(d)根據(jù)端口屏蔽以及優(yōu)先權(quán)順序,選擇具有最高優(yōu)先權(quán)的連接端口,將多播封包入隊以相關于該連接端口并更新該端口屏蔽;(e)檢查該具有最高優(yōu)先權(quán)的連接端口是否為全雙工;以及(f)根據(jù)檢查結(jié)果決定何時重復步驟(d)至(f),直至完成該端口屏蔽所指定的轉(zhuǎn)送為止。為進一步說明本發(fā)明的上述目的、結(jié)構(gòu)特點和效果,以下將結(jié)合附圖對本發(fā)明進行詳細的描述。(4)圖1是顯示以太網(wǎng)絡交換器進行廣播封包的凈空隊列測試示意圖;圖2是顯示以太網(wǎng)絡交換器進行廣播封包的非凈空隊列測試示意圖;圖3顯示根據(jù)本發(fā)明的多播封包的早期入隊的轉(zhuǎn)送方法的流程圖的一具體實施例;圖4顯示根據(jù)本發(fā)明的多播封包的早期入隊的轉(zhuǎn)送方法的流程圖的另一具體(5)具體實施方式圖3顯示根據(jù)本發(fā)明的多播封包的早期入隊(earlyenqueue)的轉(zhuǎn)送方法的流程圖,自步驟300開始,于步驟310,以太網(wǎng)絡交換器的各連接端口進行自動協(xié)調(diào),與遠程連接端口協(xié)調(diào)出最佳的運作方式;于步驟320,將各連接端口的對應遠程連接端口的運作能力(capability)記錄于以太網(wǎng)絡交換器的核心交換芯片中的緩存器(registers)中;于步驟330,依照一預定傳輸能力順序,替連接端口指定優(yōu)先級,較佳地,依據(jù)以下傳輸能力順序替連接端口指定優(yōu)先級分類(1)1000M/全雙工,(2)1000M/半雙工,(3)100M/全雙工,(4)100M/半雙工,(5)10M/全雙工,(6)10M/半雙工;依照以上六種分類依序給予優(yōu)先級1至6,以速度的快慢作為優(yōu)先的分類,再看是否為全雙工作為分類標準,以太網(wǎng)絡交換器會提供多個連接端口,具有同一分類連接能力的連接端口也會有數(shù)個,可以依照連接端口號碼愈小者,給予更高的優(yōu)先權(quán)順序;于步驟340,當以太網(wǎng)絡交換器接收到多播封包時,以太網(wǎng)絡交換器會為其產(chǎn)生端口屏蔽(portmask),以代表該多播封包將被轉(zhuǎn)送出去的連接端口,根據(jù)端口屏蔽優(yōu)先于端口屏蔽中尚未建立隊列連結(jié)的連接端口中的最高優(yōu)先權(quán)者建立隊列連結(jié);于步驟350,檢查該建立隊列連結(jié)的連接端口是否為全雙工,若為全雙工連接端口,則于步驟352等到該全雙工連接端口開始進行傳送,再繼續(xù)至步驟356;若是半雙工的連接端口,則于步驟354等到該半雙工連接端口已經(jīng)傳送了該多播封包達一預定字節(jié)數(shù)時,再繼續(xù)至步驟356;于步驟356,檢查是否完成為端口屏蔽中所有指定連接端口建立隊列連結(jié)(或稱入隊),若尚未完成為端口屏蔽中所有指定連接端口建立隊列連結(jié),則前進至步驟340,依序下去直至完成為所有端口屏蔽所指定的轉(zhuǎn)送連接端口建立隊列連結(jié)為止;若已經(jīng)完成為端口屏蔽中所有指定連接端口建立隊列連結(jié),則繼續(xù)步驟360;于步驟360,當完成端口屏蔽中所有指定連接端口中最低優(yōu)先權(quán)者的轉(zhuǎn)送時,則進行該多播封包相關的緩沖區(qū)釋放;于步驟370,結(jié)束此方法流程。搭配圖1與圖2的測試方式作為說明,于此實施例中,仍以具有八個連接端口(connectionports)的以太網(wǎng)絡交換器為例,首先,各連接端口會藉由自動協(xié)調(diào)機制,與遠程協(xié)調(diào)出最佳的運作方式,并將各連接端口的對應遠程的運作能力記錄于以太網(wǎng)絡交換器的核心交換芯片中,包括連接速度以及全雙工/半雙工等,并依據(jù)以下順序分類(1)1000M/全雙工,(2)1000M/半雙工,(3)100M/全雙工,(4)100M/半雙工,(5)10M/全雙工,(6)10M/半雙工;依照以上六種分類依序給予優(yōu)先級1至6,而且當同一分類連接能力的連接端口有數(shù)個時,依照連接端口號碼愈小者,給予較高的優(yōu)先權(quán)順序,其它則往后遞延,因此于此實施例中,端口1至端口7被指派的優(yōu)先級依序為[4;6;7;5;1;2;3]。為確保緩沖區(qū)釋放(bufferrelease)與多播封包轉(zhuǎn)送之間沒有競跑狀況(racecondition)的發(fā)生,如果所有連接端口皆為全雙工傳輸,則于目前連接端口一開始傳送,便可以直接對下一個連接端口進行早期入隊;若連接端口中有半雙工者,則必須等到半雙工連接端口于傳送過程中已經(jīng)通過最遲的碰撞邊界(worst-caselatecollisionboundary)時,方可對下一個連接端口進行早期入隊,以避免傳送過程中發(fā)生碰撞,使得封包于該半雙工連接端口重新傳送時已經(jīng)晚于下一個連接端口的傳送時間點,而有競跑狀況的發(fā)生,于此實施例中,最遲的碰撞邊界可以設定為六十四字節(jié)長,以符合以太網(wǎng)絡規(guī)格的要求,但是在硬件設計上則建議將最遲的碰撞邊界設定為更長以確保安全,例如為128字節(jié)長??紤]圖1的測試方式并根據(jù)先前所描述的傳輸能力進行測試,所有連接端口對應的輸出隊列皆為凈空;于t為0時,256字節(jié)長的廣播封包進入端口0,實施早期入隊的順序依序為端口5、端口6、端口7、端口1、端口4、端口2以及端口3,由于所有連接端口對應的輸出隊列皆為凈空,而且所有連接端口皆為全雙工,可以對各連接端口直接進行早期入隊,較佳地,可以不需要考慮碰撞邊界的問題,端口1至端口7的開始轉(zhuǎn)送時間點分別為??紤]圖2的測試方式,并根據(jù)先前所描述的傳輸能力以及隊列中已經(jīng)存在的封包數(shù)量進行測試,也即當t為0時,端口1至端口7的輸出隊列長度分別為[4;3;0;1;2;0;1];于t為0時,256字節(jié)長的廣播封包進入端口0,以每個連接端口的傳輸速度作為優(yōu)先考量,依序?qū)嵤┰缙谌腙牭捻樞蛞佬驗槎丝?、端口6、端口7、端口1、端口4、端口2以及端口3,由于端口5的對應輸出隊列已經(jīng)有兩個封包,傳輸速度為1000Mbps,因此端口5于t為2+時開始轉(zhuǎn)送,端口6也幾乎同時于t為2+時開始轉(zhuǎn)送,輪到端口7時,其原先停留于輸出隊列中的一個封包也早已完成傳送,因此完全不影響到此廣播封包的進行,因此也可以幾乎同時于t為2+時開始轉(zhuǎn)送;接下來輪到端口1,速度為100Mbps,因此端口1于t為40+時開始轉(zhuǎn)送,輪到端口4時,其原先停留于輸出隊列中的一個封包也早已完成傳送因此完全不影響到此廣播封包的進行,因此也可以幾乎同時于t為40+時開始轉(zhuǎn)送;直到輪到速度為10Mbps的端口2,會被輸出隊列的三個封包延遲至300個單位時間,因此端口2及3會于t為300+時開始轉(zhuǎn)送,因此,端口1至端口7的開始轉(zhuǎn)送時間點分別為[40;300;300;40;2;2;2]。于本發(fā)明的第二實施例中,進一步考慮每個待轉(zhuǎn)送輸出端口的輸出隊列長度(outputqueuelength),可以獲得更佳的效能表現(xiàn),仍以上述六種分類作為優(yōu)先權(quán)順序原則,以上述圖2測試例作為說明,端口1至端口7于t為0時的輸出隊列長度分別為[4;3;0;1;2;0;1],請參考圖4,自步驟400開始,于步驟410,以太網(wǎng)絡交換器的其中一連接端口接收一多播封包,對應產(chǎn)生一端口屏蔽,表示該多播封包應該被轉(zhuǎn)送出去的連接端口;于步驟420,根據(jù)端口屏蔽中尚未建立隊列連結(jié)的連接端口,檢查各端口的傳輸能力與輸出隊列長度,較佳地,依據(jù)以下傳輸能力順序作為優(yōu)先權(quán)分類(priorityclass)(1)1000M/全雙工,(2)1000M/半雙工,(3)100M/全雙工,(4)100M/半雙工,(5)10M/全雙工,(6)10M/半雙工,逐一處理各優(yōu)先權(quán)分類下的連接端口,而同一優(yōu)先權(quán)分類下的連接端口,則以其輸出隊列長度最短者作為最高優(yōu)先權(quán)者的連接端口,優(yōu)先建立隊列連結(jié);于步驟450,檢查該建立隊列連結(jié)的連接端口是否為全雙工,若為全雙工連接端口,則于步驟452等到該全雙工連接端口開始進行傳送,再繼續(xù)至步驟456;若是半雙工的連接端口,則于步驟454等到該半雙工連接端口已經(jīng)傳送了該多播封包達一預定字節(jié)數(shù)時,再繼續(xù)至步驟456;于步驟456,檢查是否完成為端口屏蔽中所有指定連接端口建立隊列連結(jié),若尚未完成為端口屏蔽中所有指定連接端口建立隊列連結(jié),則前進至步驟420,依序下去直至完成為所有端口屏蔽所指定的轉(zhuǎn)送連接端口建立隊列連結(jié)為止;若已經(jīng)完成為端口屏蔽中所有指定連接端口建立隊列連結(jié),則繼續(xù)步驟460;于步驟460,當完成端口屏蔽中所有指定連接端口中最低優(yōu)先權(quán)者的轉(zhuǎn)送時,則進行該多播封包相關的緩沖區(qū)釋放;于步驟470,結(jié)束此方法流程??紤]圖2的測試方式,并根據(jù)先前所描述的傳輸能力以及隊列中已經(jīng)存在的封包數(shù)量進行測試,也即當t為0時,端口1至端口7的輸出隊列長度分別為[4;3;0;1;2;0;1];于t為0時,256字節(jié)長的廣播封包進入端口0,以每個連接端口的傳輸速度與輸出隊列長度作為優(yōu)先權(quán)順序考慮,端口5、端口6、及端口7皆屬1000M/全雙工的優(yōu)先權(quán)分類,端口1及端口4皆屬100M/全雙工的優(yōu)先權(quán)分類,端口2及端口3皆屬10M/全雙工的優(yōu)先權(quán)分類;端口5、端口6、及端口7雖皆屬1000M/全雙工的優(yōu)先權(quán)分類,但考慮輸出隊列長度,則建立隊列連結(jié)的時間順序為端口6、端口7、及端口5,也即于t為0時,此一最高速分類連接端口下只有端口6的輸出隊列長度為0(最短),因此將此廣播封包于端口6的輸出隊列中建立隊列連結(jié),端口6于t為0+時開始轉(zhuǎn)送并對端口7的輸出隊列中建立隊列連結(jié);端口7于t為1時轉(zhuǎn)送完原先等待輸出的一個封包,方于t為1+時開始轉(zhuǎn)送該廣播封包,并于端口5的輸出隊列中建立隊列連結(jié);端口5于t為2時轉(zhuǎn)送完原先等待輸出的兩個封包,方于t為2+時開始轉(zhuǎn)送該廣播封包,并于端口4的輸出隊列中建立隊列連結(jié),因為于此刻,需考慮100M/全雙工的優(yōu)先權(quán)分類,端口1及端口4皆屬100M/全雙工的優(yōu)先權(quán)分類,但考慮此時輸出隊列長度,則建立隊列連結(jié)的時間順序為端口4、及端口1;端口4速度為100M/全雙工,于t為10時轉(zhuǎn)送完原先等待輸出的一個封包,方于t為10+時開始轉(zhuǎn)送該廣播封包,并于端口1的輸出隊列中建立隊列連結(jié);端口1于t為40時轉(zhuǎn)送完原先等待輸出的四個封包,方于t為40+時開始轉(zhuǎn)送該廣播封包,并于端口3的輸出隊列中建立隊列連結(jié),因為于此刻,考慮10M/全雙工的優(yōu)先權(quán)分類,端口2及端口3皆屬10M/全雙工的優(yōu)先權(quán)分類,但考慮此時輸出隊列長度,則建立隊列連結(jié)的時間順序為端口3、及端口2;端口3的輸出隊列長度為0,故可于t為40+也馬上開始轉(zhuǎn)送該廣播封包,最后并于端口2的輸出隊列中建立隊列連結(jié);端口2于t為300時轉(zhuǎn)送完原先等待輸出的三個封包,方于t為300+時開始轉(zhuǎn)送該廣播封包,因此,端口1至端口7的開始轉(zhuǎn)送時間點分別為[40;300;40;10;2;0;1],各端口看到的廣播封包開始被送出時間點可以大幅改善、精簡硬件設計的復雜度、以及緩沖存儲器的消耗。若是于此實施例中,端口1若與遠程協(xié)同運作為100M/半雙工的連接端口,于圖2測試例中,端口1會于t為40+時開始轉(zhuǎn)送,但是端口3較佳地需等到端口1已經(jīng)傳送完本身中四個封包并確定已經(jīng)傳送出該廣播封包的128字節(jié)長(一個緩沖器大小),才可以將此廣播封包于端口3中建立隊列連結(jié),也就是于t為50+時于端口3的輸出隊列中建立隊列連結(jié);端口2因此也受到建立隊列連結(jié)時間點的延遲,但不影響該廣播封包被送出端口2的時間點,端口1至端口7的開始轉(zhuǎn)送時間點分別為[40;300;50;10;2;0;1]。同一優(yōu)先權(quán)分類下,要考慮輸出隊列長度,可以用較少硬件方式實現(xiàn),舉例而言,12位表示的輸出隊列長度(queuelength)QL[11:0]可以用3位權(quán)重(weight)w[2:0]來表示,將w=QL,w[1]=(orQL[4:1]),w[2]=(orQL[11:5]),其中「or」代表數(shù)字邏輯中的「或」運算,w[1]就是代表真正隊列長度中位[4:1]是否不為0,以較少權(quán)重位數(shù)顯示出隊列長度大略處于何種水位狀態(tài)。圖5顯示以上方法流程的硬件方塊圖的一具體實施例,以太網(wǎng)絡交換器內(nèi)主要包含媒體存取控制(mediaaccesscontrol,簡稱MAC)芯片500,以及實體層控制(physicallayercontrol,簡稱PHY)芯片580,較佳地,媒體存取控制芯片500藉由精簡媒體獨立界面(reducedmediumindependentinterface,簡稱RMII)耦接實體層控制芯片580。媒體存取控制芯片500包含連接端口控制(portcontrol)單元510至517(以前述八端口以太網(wǎng)絡交換器為例,分別對應端口0至端口7)、轉(zhuǎn)送控制(forwardingcontrol)單元520、隊列控制(queuecontrol)單元530、最短隊列判斷單元540、緩沖器控制單元550以及緩沖存儲器560,連接端口控制單元510耦接轉(zhuǎn)送控制單元520、隊列控制單元530以及緩沖器控制單元550,緩沖器控制單元550耦接緩沖存儲器560。實體層控制芯片580負責以太網(wǎng)絡交換器對外實體電氣信號的傳收,而以上本發(fā)明所揭示的流程方法則與媒體存取控制芯片500內(nèi)部的運作設計有關,由以太網(wǎng)絡交換器的端口0所接收到封包數(shù)據(jù),經(jīng)由實體層控制芯片580首先到達連接端口控制單元510,由轉(zhuǎn)送控制單元520產(chǎn)生對應的端口屏蔽,舉例而言,藉由查表方式(look-uptable)產(chǎn)生對應的端口屏蔽,并由緩沖器控制單元550于緩沖存儲器560配置(allocate)適當?shù)木彌_器大小以供該封包數(shù)據(jù)的暫存,然后由隊列控制單元530根據(jù)端口屏蔽建立隊列連結(jié),隊列控制單元530可依照各端口的輸出隊列長度判斷各連接端口消秏緩沖存儲器560的狀況,而發(fā)訊給連接端口控制單元510適當?shù)剡M行擁塞控制(congestioncontrol),較佳地,最短隊列判斷單元540耦接隊列控制單元530,用以根據(jù)端口屏蔽判斷同一優(yōu)先權(quán)分類的連接端口中具有最短隊列者,并發(fā)訊隊列控制單元530,使其根據(jù)端口屏蔽為最高優(yōu)先權(quán)分類中具有最短隊列的連接端口建立隊列連結(jié)。圖5的實施例依照制程的進步可有不同程度的整合實施方式,舉例而言,緩沖存儲器560可以整合于媒體存取控制芯片500的中或者是外掛芯片,依照存取速度不同可以是靜態(tài)隨機存取存儲器(SRAM)、同步動態(tài)隨機存取存儲器(SDRAM)、或者DDR動態(tài)隨機存取存儲器等等,實體層控制芯片580由于制程特殊以及需要提供多個端口的實體層控制,通常屬于外掛芯片,但隨著未來整合度提高也有可能整合進媒體存取控制芯片500的中??v上所述,本發(fā)明揭示一種多播封包的轉(zhuǎn)送方法,包含下列步驟(a)接收多播封包并對應地產(chǎn)生端口屏蔽,以顯示多播封包將被轉(zhuǎn)送的多個連接端口,(b)根據(jù)端口屏蔽所顯示尚未完成入隊的待轉(zhuǎn)送的連接端口中,選擇具有最高優(yōu)先權(quán)的連接端口,將多播封包入隊以相關于該連接端口,并更新端口屏蔽,(c)檢查具有最高優(yōu)先權(quán)的連接端口是否為全雙工,以及,(d)根據(jù)檢查結(jié)果決定何時重復步驟(b)至(d),直至完成端口屏蔽所指定的轉(zhuǎn)送為止;其中,當具有最高優(yōu)先權(quán)的連接端口是為全雙工時,則等到具有最高優(yōu)先權(quán)的連接端口確定開始傳送該多播封包時,重復步驟(b)至(d);當具有最高優(yōu)先權(quán)的連接端口是為半雙工時,則等到具有最高優(yōu)先權(quán)的連接端口確定已經(jīng)傳送該多播封包達一預定字節(jié)數(shù)時,例如64字節(jié)長或128字節(jié)長,重復步驟(b)至(d),直至完成端口屏蔽所指定的轉(zhuǎn)送為止。較佳地,最高優(yōu)先權(quán)的連接端口是指具有最高優(yōu)先權(quán)分類的最短輸出隊列長度的連接端口;當完成根據(jù)該端口屏蔽的所有轉(zhuǎn)送時,則釋放該多播封包的相關緩沖區(qū)。本發(fā)明進一步揭示一種媒體存取控制芯片,用以耦接實體層控制芯片,媒體存取控制芯片包含多個連接端口控制單元、轉(zhuǎn)送控制單元、隊列控制單元、最短隊列判斷單元以及緩沖器控制單元,其中轉(zhuǎn)送控制單元耦接于這些連接端口控制單元,隊列控制單元耦接轉(zhuǎn)送控制單元及連接端口控制單元,最短隊列判斷單元耦接隊列控制單元,而緩沖器控制單元耦接緩沖存儲器及連接端口控制單元;當其中一連接端口控制單元接收一多播封包時,轉(zhuǎn)送控制單元藉由查表方式為該多播封包產(chǎn)生對應端口屏蔽,由緩沖器控制單元自緩沖存儲器配置緩沖區(qū)暫存多播封包,由隊列控制單元與最短隊列判斷單元協(xié)同運作,以根據(jù)該多播封包的對應端口屏蔽選擇最高優(yōu)先權(quán)分類的最短隊列的連接端口,為多播封包入隊;若最高優(yōu)先權(quán)分類的最短隊列的連接端口是全雙工,則等到最高優(yōu)先權(quán)分類的最短隊列的連接端口開始傳送多播封包,便開始為該多播封包相關于(associated)下一個連接端口進行早期入隊;而若最高優(yōu)先權(quán)分類的最短隊列的連接端口是半雙工,則等到最高優(yōu)先權(quán)分類的最短隊列的連接端口已經(jīng)傳送該多播封包達預定字節(jié),便開始為多播封包相關于下一個連接端口進行早期入隊。本發(fā)明進一步揭示一種具有多個連接端口的以太網(wǎng)絡交換器,包含提供多個連接端口的實體層控制芯片;以及耦接于實體層控制芯片的媒體存取控制芯片,其中,實體層控制芯片接收多播封包,媒體存取控制芯片為多播封包產(chǎn)生對應端口屏蔽,根據(jù)對應端口屏蔽選擇最高優(yōu)先權(quán)分類的最短隊列的連接端口,為多播封包入隊。本發(fā)明也揭示一種多播封包的轉(zhuǎn)送方法,包含下列步驟(a)根據(jù)以太網(wǎng)絡的自動協(xié)調(diào)結(jié)果,記錄多個遠程連接端口的能力;(b)依照預定傳輸能力順序指定多個本端連接端口的優(yōu)先權(quán)順序;(c)接收多播封包并對應地產(chǎn)生端口屏蔽,以顯示多播封包將被轉(zhuǎn)送至這些本端連接端口中的多個連接端口;(d)根據(jù)端口屏蔽以及優(yōu)先權(quán)順序,選擇具有最高優(yōu)先權(quán)的連接端口,將多播封包入隊以相關于該連接端口并更新該端口屏蔽;(e)檢查該具有最高優(yōu)先權(quán)的連接端口是否為全雙工;以及(f)根據(jù)檢查結(jié)果決定何時重復步驟(d)至(f),直至完成該端口屏蔽所指定的轉(zhuǎn)送為止。雖然本發(fā)明已參照當前的具體實施例來描述,但是本
技術(shù)領域:
中的普通技術(shù)人員應當認識到,以上的實施例僅是用來說明本發(fā)明,在沒有脫離本發(fā)明精神的情況下還可作出各種等效的變化和修改,因此,只要在本發(fā)明的實質(zhì)精神范圍內(nèi)對上述實施例的變化、變型都將落在本發(fā)明權(quán)利要求書的范圍內(nèi)。權(quán)利要求1.一種多播封包的轉(zhuǎn)送方法,包含下列步驟(a)接收一多播封包并對應地產(chǎn)生一端口屏蔽,以顯示該多播封包將被轉(zhuǎn)送的多個連接端口;(b)根據(jù)該端口屏蔽所顯示尚未完成入隊的待轉(zhuǎn)送的連接端口中,選擇一具有最高優(yōu)先權(quán)的連接端口,將該多播封包入隊以相關于該連接端口,并更新該端口屏蔽;(c)檢查該具有最高優(yōu)先權(quán)的連接端口是否為全雙工;以及(d)根據(jù)該檢查結(jié)果決定何時重復步驟(b)至(d),直至完成該端口屏蔽所指定的轉(zhuǎn)送為止。2.如權(quán)利要求1所述的多播封包的轉(zhuǎn)送方法,其特征在于步驟(d)是當該檢查結(jié)果顯示該具有最高優(yōu)先權(quán)的連接端口是為全雙工時,則等到該具有最高優(yōu)先權(quán)的連接端口確定開始傳送該多播封包時,重復步驟(b)至(d)。3.如權(quán)利要求1所述的多播封包的轉(zhuǎn)送方法,其特征在于步驟(d)是當該檢查結(jié)果顯示該具有最高優(yōu)先權(quán)的連接端口是為半雙工時,則等到該具有最高優(yōu)先權(quán)的連接端口確定已經(jīng)傳送該多播封包達一預定字節(jié)數(shù)時,重復步驟(b)至(d)。4.如權(quán)利要求3所述的多播封包的轉(zhuǎn)送方法,其特征在于該預定字節(jié)數(shù)是為64字節(jié)長。5.如權(quán)利要求3所述的多播封包的轉(zhuǎn)送方法,其特征在于該預定字節(jié)數(shù)是為128字節(jié)長。6.如權(quán)利要求1所述的多播封包的轉(zhuǎn)送方法,其特征在于該選擇一具有最高優(yōu)先權(quán)的連接端口的步驟是根據(jù)多個優(yōu)先權(quán)分類中選擇具有一最高優(yōu)先權(quán)分類的一最短輸出隊列長度的連接端口。7.如權(quán)利要求6所述的多播封包的轉(zhuǎn)送方法,其特征在于這些優(yōu)先權(quán)分類包括一全雙工的1000M線速度類別、一半雙工的1000M線速度類別、一全雙工的100M線速度類別、一半雙工的100M線速度類別、一全雙工的10M線速度類別以及一半雙工的10M線速度類別。8.如權(quán)利要求1所述的多播封包的轉(zhuǎn)送方法,其特征在于還包括檢查是否完成根據(jù)該端口屏蔽入隊的步驟。9.如權(quán)利要求8所述的多播封包的轉(zhuǎn)送方法,還包括步驟當完成根據(jù)該端口屏蔽的所有轉(zhuǎn)送時,則釋放該多播封包的一相關緩沖區(qū)。10一種媒體存取控制芯片,包含多個連接端口控制單元,用以耦接一實體層控制芯片;一轉(zhuǎn)送控制單元,耦接于這些連接端口控制單元;一隊列控制單元,耦接該轉(zhuǎn)送控制單元及這些連接端口控制單元;一最短隊列判斷單元,耦接該隊列控制單元;以及一緩沖器控制單元,用以耦接一緩沖存儲器及這些連接端口控制單元;其中,這些連接端口控制單元之一接收一多播封包,該轉(zhuǎn)送控制單元為該多播封包產(chǎn)生一對應端口屏蔽,由該緩沖器控制單元自該緩沖存儲器配置一緩沖區(qū)暫存該多播封包,由該隊列控制單元與該最短隊列判斷單元協(xié)同運作,以根據(jù)該多播封包的對應端口屏蔽選擇一最高優(yōu)先權(quán)分類的最短隊列的連接端口,為該多播封包入隊。11.如權(quán)利要求10所述的媒體存取控制芯片,其特征在于該轉(zhuǎn)送控制單元藉由查表方式為該多播封包產(chǎn)生該對應端口屏蔽。12.如權(quán)利要求10所述的媒體存取控制芯片,其特征在于若該最高優(yōu)先權(quán)分類的最短隊列的連接端口是為全雙工,則等到該最高優(yōu)先權(quán)分類的最短隊列的連接端口開始傳送該多播封包,便開始為該多播封包相關于一下一個連接端口進行早期入隊。13.如權(quán)利要求10所述的媒體存取控制芯片,其特征在于若該最高優(yōu)先權(quán)分類的最短隊列的連接端口是為半雙工,則等到該最高優(yōu)先權(quán)分類的最短隊列的連接端口已經(jīng)傳送該多播封包達一預定字節(jié),便開始為該多播封包相關于一下一個連接端口進行早期入隊。14.一種具有多個連接端口的以太網(wǎng)絡交換器,包含一實體層控制芯片,提供多個連接端口;以及一媒體存取控制芯片,耦接于該實體層控制芯片;其中,該實體層控制芯片接收一多播封包,該媒體存取控制芯片為該多播封包產(chǎn)生一對應端口屏蔽,根據(jù)該多播封包的對應端口屏蔽選擇一最高優(yōu)先權(quán)分類的最短隊列的連接端口,為該多播封包入隊。15.一種多播封包的轉(zhuǎn)送方法,包含下列步驟(a)根據(jù)以太網(wǎng)絡的自動協(xié)調(diào)結(jié)果,記錄多個遠程連接端口的能力;(b)依照一預定傳輸能力順序指定多個本端連接端口的優(yōu)先權(quán)順序;(c)接收一多播封包并對應地產(chǎn)生一端口屏蔽,以顯示該多播封包將被轉(zhuǎn)送至這些本端連接端口中的多個連接端口;(d)根據(jù)該端口屏蔽以及該優(yōu)先權(quán)順序,選擇一具有最高優(yōu)先權(quán)的連接端口,將該多播封包入隊以相關于該連接端口并更新該端口屏蔽;(e)檢查該具有最高優(yōu)先權(quán)的連接端口是否為全雙工;以及(f)根據(jù)該檢查結(jié)果決定何時重復步驟(d)至(f),直至完成該端口屏蔽所指定的轉(zhuǎn)送為止。16.如權(quán)利要求15所述的多播封包的轉(zhuǎn)送方法,其特征在于步驟(f)是當該檢查結(jié)果顯示該具有最高優(yōu)先權(quán)的連接端口是為全雙工時,則等到該具有最高優(yōu)先權(quán)的連接端口確定開始傳送該多播封包時,重復步驟(d)至(f)。17.如權(quán)利要求15所述的多播封包的轉(zhuǎn)送方法,其特征在于步驟(f)是當該檢查結(jié)果顯示該具有最高優(yōu)先權(quán)的連接端口是為半雙工時,則等到該具有最高優(yōu)先權(quán)的連接端口確定已經(jīng)傳送該多播封包達一預定字節(jié)數(shù)時,重復步驟(d)至(f)。18.如權(quán)利要求17所述的多播封包的轉(zhuǎn)送方法,其特征在于該預定字節(jié)數(shù)是為64字節(jié)長。19.如權(quán)利要求17所述的多播封包的轉(zhuǎn)送方法,其特征在于該預定字節(jié)數(shù)是為128字節(jié)長。20.如權(quán)利要求15所述的多播封包的轉(zhuǎn)送方法,其特征在于該預定傳輸能力順序依序為全雙工的1000M線速度、一半雙工的1000M線速度、一全雙工的100M線速度、一半雙工的100M線速度、一全雙工的10M線速度以及一半雙工的10M線速度。21.如權(quán)利要求15所述的多播封包的轉(zhuǎn)送方法,其特征在于還包括檢查是否完成根據(jù)該端口屏蔽入隊的步驟。22.如權(quán)利要求21所述的多播封包的轉(zhuǎn)送方法,其特征在于還包括步驟當完成根據(jù)該端口屏蔽的所有轉(zhuǎn)送時,則釋放該多播封包的一相關緩沖區(qū)。全文摘要一種多播封包的轉(zhuǎn)送方法及相關交換裝置,該轉(zhuǎn)送方法包含(a)接收多播封包并對應地產(chǎn)生端口屏蔽,以顯示多播封包將被轉(zhuǎn)送的多個連接端口;(b)根據(jù)端口屏蔽所顯示尚未完成入隊的待轉(zhuǎn)送的連接端口中選擇具有最高優(yōu)先權(quán)的連接端口,將多播封包入隊以相關于該連接端口,并更新端口屏蔽;(c)檢查具有最高優(yōu)先權(quán)的連接端口是否為全雙工;(d)根據(jù)檢查結(jié)果決定何時重復步驟(b)至(d),直至完成端口屏蔽所指定的轉(zhuǎn)送止;其中,當為全雙工時,則等到具有最高優(yōu)先權(quán)的連接端口確定開始傳送該多播封包時,重復步驟(b)至(d);當為半雙工時,則等到具有最高優(yōu)先權(quán)的連接端口確定已經(jīng)傳送該多播封包達一預定字節(jié)數(shù)時,重復步驟(b)至(d),直至完成端口屏蔽所指定的轉(zhuǎn)送止。文檔編號H04L12/16GK1610306SQ20031010289公開日2005年4月27日申請日期2003年10月24日優(yōu)先權(quán)日2003年10月24日發(fā)明者陳任凱,陳佳欣申請人:創(chuàng)惟科技股份有限公司