專利名稱:包轉(zhuǎn)送控制系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于網(wǎng)絡(luò)傳輸,且特別有關(guān)于一種包轉(zhuǎn)送控制系統(tǒng)及方法。
背景技術(shù):
在網(wǎng)絡(luò)傳輸中,一交換器(Switch)具有多個端口(Port)來連接至多個包交換式網(wǎng)段(Network Segment),且依據(jù)介質(zhì)存取控制(MAC)定址的方式來轉(zhuǎn)送數(shù)據(jù)包(Packet)。當(dāng)由一個端口接收一包時,交換器可以選擇性地依據(jù)包中記錄的目的地介質(zhì)存取控制地址來將包由特定端口傳送。如果目的地介質(zhì)存取控制地址是未知,舉例來說,一個廣播(Broadcast)地址,交換器會將包傳送至除了收到此包的端口之外的所有的端口。如果目的地端口與原始來源端口相同,則不轉(zhuǎn)送包,而將包過濾掉。如果接收到包括多個目的地介質(zhì)存取控制地址的一組播(Multicast)包時,包將會轉(zhuǎn)送至介質(zhì)存取控制表中所記錄的相應(yīng)的端口。
在數(shù)據(jù)網(wǎng)絡(luò)與排列處理(Data Networking and Queueing)理論中,當(dāng)提供的負(fù)載增加時將會發(fā)生擁塞的情形,其不是使得網(wǎng)絡(luò)產(chǎn)出率小幅增加,就是使得網(wǎng)絡(luò)產(chǎn)出率實(shí)質(zhì)上減少。這樣的情形將會對于網(wǎng)絡(luò)效能產(chǎn)生嚴(yán)重的負(fù)面影響。圖1A顯示包的組播。在圖1A中,在一交換器中端口0傳送包至端口5、7與9。其中,端口7與9連接至在100MHz操作的主機(jī),而端口5連接至在10MHz操作的主機(jī)。注意的是,B1、B2與B3分別表示端口5、7與9的輸出佇存,且直線TH表示輸出佇存的一臨界值(Threshold),其指示相應(yīng)端口上的擁塞狀態(tài)。由于端口5是以10MHz操作,因此,端口5累積許多包在輸出佇存B1中,且導(dǎo)致輸出佇存B1中的包接近擁塞狀態(tài)臨界值TH,結(jié)果導(dǎo)致端口5發(fā)生擁塞。在已知包轉(zhuǎn)送控制中,端口5傳送一標(biāo)記至導(dǎo)致端口5擁塞的介質(zhì)存取控制(端口0)。在接收到標(biāo)記之后,端口0傳送一暫停幀(Frame)至其連接的主機(jī),且停止主機(jī)再次傳送包,如圖1B所示。換言之,已知包轉(zhuǎn)送控制將會停止這些端口的所有包傳送。然而,由于擁塞是因?yàn)槎丝?的速度所造成,交換器中端口0傳送包給其他端口的效能也因此而下降。另外,對于一些應(yīng)用來說,一些端口可以是監(jiān)聽端口(SniffPort),其監(jiān)控在特定端口間的包內(nèi)容傳輸。監(jiān)聽端口很有可能會發(fā)生擁塞的情形。在擁塞之后,傳送包給監(jiān)聽端口的端口將會接收到暫停幀,且無法再傳送包至所有的端口。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供包轉(zhuǎn)送控制系統(tǒng)及方法。
本發(fā)明提供一種包轉(zhuǎn)送控制系統(tǒng),包括多個端口與一處理模塊,用以接收一包。處理模塊包括一資源管理模塊與一轉(zhuǎn)送控制模塊。資源管理模塊偵測這些端口中是否有至少一特定端口發(fā)生了擁塞。轉(zhuǎn)送控制模塊判斷此特定端口是否包括這些端口中的一既定端口。若是,將包轉(zhuǎn)送給除了此既定端口之外的至少一端口。
本發(fā)明另提供一種包轉(zhuǎn)送控制方法。首先,接收一包。判斷多個端口中是否有至少一特定端口發(fā)生了擁塞。判斷此特定端口是否包括這些端口中的一既定端口。若是,將包轉(zhuǎn)送給除了此既定端口之外的至少一端口。
本發(fā)明另提供一種包轉(zhuǎn)送控制方法,該包轉(zhuǎn)送控制方法包括下列步驟當(dāng)相應(yīng)多個端口的至少一輸出佇存累積的包數(shù)量達(dá)到一臨界值且發(fā)生擁塞時,產(chǎn)生一擁塞端口窗口;依據(jù)該擁塞端口窗口與一禁止端口掩碼辨識至少一既定禁止端口;以及依據(jù)至少一目的地地址與該禁止端口掩碼傳送一接收包。
本發(fā)明上述方法可以透過程序碼方式收錄于實(shí)體介質(zhì)中。當(dāng)程序碼被機(jī)器載入且執(zhí)行時,機(jī)器變成用以實(shí)行本發(fā)明的裝置。
本發(fā)明所述的包轉(zhuǎn)送控制系統(tǒng)及方法,于網(wǎng)絡(luò)傳輸中提供的負(fù)載增加且發(fā)生擁塞的情形時,大大改善了網(wǎng)絡(luò)產(chǎn)出率。
圖1A為一示意圖是顯示包的組播。
圖1B為一示意圖是顯示端口的擁塞。
圖2為一示意圖是顯示依據(jù)本發(fā)明實(shí)施例的包轉(zhuǎn)送控制系統(tǒng)。
圖3為一流程圖是顯示依據(jù)本發(fā)明實(shí)施例的包轉(zhuǎn)送控制方法。
圖4A為一示意圖是顯示一轉(zhuǎn)送端口掩碼例子。
圖4B為一示意圖是顯示一擁塞端口窗口例子。
圖4C為一示意圖是顯示另一擁塞端口窗口例子。
圖4D為一示意圖是顯示一禁止端口掩碼例子。
圖4E為一示意圖是顯示一轉(zhuǎn)送端口窗口例子。
圖5為一示意圖是顯示依據(jù)本發(fā)明實(shí)施例的具有端口擁塞的包轉(zhuǎn)送控制。
具體實(shí)施例方式
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉實(shí)施例,并配合所附圖示,詳細(xì)說明如下。
本發(fā)明提供包轉(zhuǎn)送控制系統(tǒng)及方法。
圖2顯示依據(jù)本發(fā)明實(shí)施例的包轉(zhuǎn)送控制系統(tǒng)200(以下簡稱系統(tǒng)200)。
系統(tǒng)200可以是一個網(wǎng)絡(luò)交換器。系統(tǒng)200包括多個端口(220、221、222、223、224、225、226與227)與一處理模塊210。每一端口連接至各式的接口與裝置,且由這些接口與裝置接收包。這些接收的包被傳送至處理模塊210,以進(jìn)行后續(xù)處理,如將包轉(zhuǎn)送或丟棄。另外,每一端口具有一輸出佇存,用以緩沖儲存由處理模塊210轉(zhuǎn)送的包。注意的是,任何端口可以被設(shè)為一既定的禁止(Suppression)端口。其中,當(dāng)此端口擁塞時,轉(zhuǎn)送至禁止端口的包將會被丟棄。因此,系統(tǒng)中可以設(shè)定與提供一禁止端口掩碼(Mask)。禁止端口掩碼中包括多個位,每一位分別表示相應(yīng)的端口是否為一禁止端口。圖4D顯示一禁止端口掩碼440例子。其中,一交換器中有7個端口,且位0~6分別表示端口0~6。在此例子中,由于位1是1,且其他位是0,因此,端口1是一禁止端口。
處理模塊210包括一資源管理模塊211與一轉(zhuǎn)送控制模塊212。資源管理模塊211可以通過判斷每一端口所相應(yīng)的輸出佇存中的包數(shù)目是否接近一既定的臨界值來偵測任何一端口是否發(fā)生擁塞。在一些實(shí)施例中,當(dāng)擁塞發(fā)生時,資源管理模塊211產(chǎn)生一擁塞端口窗口。擁塞端口窗口中包括多個位,每一位分別表示相應(yīng)的端口是否擁塞。圖4B顯示一擁塞端口窗口420例子。其中,一交換器中有7個端口,且位0~6分別表示端口0~6。在此例子中,由于位1是1,且其他位是0,因此,端口1發(fā)生擁塞。轉(zhuǎn)送控制模塊212包括一介質(zhì)存取控制地址表與一轉(zhuǎn)送表(未繪示),用以在端口之間轉(zhuǎn)送包。在一些實(shí)施例中,當(dāng)接收到一包時,轉(zhuǎn)送控制模塊212產(chǎn)生一轉(zhuǎn)送端口掩碼。轉(zhuǎn)送端口掩碼包括多個位,每一位分別表示相應(yīng)的端口是否需要轉(zhuǎn)送包。轉(zhuǎn)送端口掩碼是依據(jù)包中所記錄的目的地地址所產(chǎn)生。圖4A顯示一轉(zhuǎn)送端口掩碼410例子。其中,一交換器中有7個端口,且位0~6分別表示端口0~6。在此例子中,由于位1、3與5是1,且其他位是0,因此,包會被轉(zhuǎn)送至端口1、3與5。處理模塊210的細(xì)節(jié)將于后進(jìn)行說明。
圖3顯示依據(jù)本發(fā)明實(shí)施例的包轉(zhuǎn)送控制方法。
如步驟S310,處理模塊210接收一包,且依據(jù)包中記錄的目的地地址產(chǎn)生一轉(zhuǎn)送端口掩碼。包可以是一組播包或廣播包。如步驟S320,判斷各個端口上是否發(fā)生擁塞。值得注意的是,資源管理模塊211判斷相應(yīng)各個端口的輸出佇存中所累積的包是否達(dá)到一臨界值,且當(dāng)擁塞發(fā)生時,產(chǎn)生一擁塞端口窗口。如果沒有擁塞發(fā)生(步驟S320的否),如步驟S330,依據(jù)轉(zhuǎn)送端口掩碼將包轉(zhuǎn)送到至少一個端口。換言之,依據(jù)包中記錄的目的地地址來轉(zhuǎn)送包。值得注意的是,交換操作與轉(zhuǎn)送的方法對于本領(lǐng)域技術(shù)人員為已知的技術(shù),故在此省略。如果發(fā)生擁塞(步驟S320的是),如步驟S340,依據(jù)擁塞端口窗口與禁止端口掩碼判斷發(fā)生擁塞的端口是否包括既定的禁止端口。若是(步驟S340的是),如步驟S350,依據(jù)包中記錄的目的地地址將包轉(zhuǎn)送至既定禁止端口之外的至少一個端口。在一些實(shí)施例中,步驟S350可以透過在禁止端口掩碼中搜尋有效位(“1”),且在轉(zhuǎn)送端口掩碼中忽略相應(yīng)此有效位的位來完成。若否(步驟S340的否),如步驟S360,產(chǎn)生一暫停幀,且將暫停幀傳送至傳送此包的進(jìn)入端口。在接收到暫停幀之后,連接至此進(jìn)入端口的主機(jī)停止再次透過此進(jìn)入端口傳送包。值得注意的是,步驟S360的操作類似于已知的方式,相關(guān)的操作細(xì)節(jié)在此省略。
接下來,請參考圖4A至圖4E,舉一例子進(jìn)行說明。在此例子中,交換器的端口1被設(shè)為一禁止端口,其相應(yīng)的禁止端口掩碼440如圖4D所示。處理模塊210接收一指示要傳送至端口1、3與5的包,其中,相應(yīng)的轉(zhuǎn)送端口掩碼410如圖4A所示。如果端口1上被偵測到發(fā)生擁塞,則產(chǎn)生如圖4B所示的擁塞端口窗口420,且依據(jù)轉(zhuǎn)送端口掩碼410與擁塞端口窗口420產(chǎn)生如圖4E所示的轉(zhuǎn)送端口窗口450,且包將會轉(zhuǎn)送至端口3與5。如果端口1與5上被偵測到發(fā)生擁塞,則產(chǎn)生如圖4C所示的擁塞端口窗口430。一個暫停幀將會被產(chǎn)生且傳送至傳送此包的進(jìn)入端口,從而停止此進(jìn)入端口再次傳送包。
圖5顯示依據(jù)本發(fā)明實(shí)施例的具有端口擁塞的包轉(zhuǎn)送控制。類似于圖1A,一交換器中端口0傳送包至端口5、7與9。其中,端口7與9連接至在100MHz操作的主機(jī),而端口5連接至在10MHz操作的主機(jī)。在此實(shí)施例中,端口5被設(shè)為一禁止端口。由于端口5是以10MHz操作,因此,端口5累積許多包在輸出佇存B1中,且導(dǎo)致輸出佇存B1中的包接近擁塞狀態(tài)臨界值TH,結(jié)果導(dǎo)致端口5發(fā)生擁塞。在此實(shí)施例中將不會產(chǎn)生暫停幀。包仍然傳送至端口7與9,而轉(zhuǎn)送至端口5的包將會被丟棄。
本發(fā)明的方法,或特定型態(tài)或其部分,可以以程序碼的型態(tài)包含于實(shí)體介質(zhì),如軟盤、光盤片、硬盤或是任何其他機(jī)器可讀取(如計(jì)算機(jī)可讀取)儲存介質(zhì),其中,當(dāng)程序碼被機(jī)器,如計(jì)算機(jī)載入且執(zhí)行時,此機(jī)器變成用以參與本發(fā)明的裝置。本發(fā)明的方法與裝置也可以以程序碼型態(tài)透過一些傳送介質(zhì),如電線或電纜、光纖或是任何傳輸型態(tài)進(jìn)行傳送,其中,當(dāng)程序碼被機(jī)器,如計(jì)算機(jī)接收、載入且執(zhí)行時,此機(jī)器變成用以參與本發(fā)明的裝置。當(dāng)在一般用途處理器操作時,程序碼結(jié)合處理器提供一操作類似于專用邏輯電路的獨(dú)特裝置。
雖然本發(fā)明已通過較佳實(shí)施例說明如上,但該較佳實(shí)施例并非用以限定本發(fā)明。本領(lǐng)域的技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),應(yīng)有能力對該較佳實(shí)施例做出各種更改和補(bǔ)充,因此本發(fā)明的保護(hù)范圍以權(quán)利要求書的范圍為準(zhǔn)。
附圖中符號的簡單說明如下B1、B2、B3輸出佇存TH臨界值200包轉(zhuǎn)送控制系統(tǒng)210處理模塊
211資源管理模塊212轉(zhuǎn)送控制模塊220、221、222、223、224、225、226、227端口S310、S320、…、S360步驟410轉(zhuǎn)送端口掩碼440禁止端口掩碼420、430擁塞端口窗口450轉(zhuǎn)送端口窗口
權(quán)利要求
1.一種包轉(zhuǎn)送控制系統(tǒng),其特征在于,該包轉(zhuǎn)送控制系統(tǒng)包括多個端口;以及一處理模塊,用以接收一包,該處理模塊包括一資源管理模塊,用以偵測所述端口中是否有至少一特定端口發(fā)生擁塞;以及一轉(zhuǎn)送控制模塊,用以判斷該特定端口是否包括所述端口中的一既定端口,若是,將該包轉(zhuǎn)送給該既定端口之外的所述端口中的至少其中之一。
2.根據(jù)權(quán)利要求1所述的包轉(zhuǎn)送控制系統(tǒng),其特征在于,該轉(zhuǎn)送控制模塊更當(dāng)所述端口上沒有發(fā)生擁塞時,依據(jù)該包中記錄的至少一目的地地址將該包轉(zhuǎn)送至所述端口中的至少其中之一。
3.根據(jù)權(quán)利要求1所述的包轉(zhuǎn)送控制系統(tǒng),其特征在于,該轉(zhuǎn)送控制模塊更當(dāng)該特定端口不包括該既定端口時,產(chǎn)生一暫停幀給傳送該包的一進(jìn)入端口,且該進(jìn)入端口停止再次傳送包。
4.根據(jù)權(quán)利要求1至3中任意一項(xiàng)所述的包轉(zhuǎn)送控制系統(tǒng),其特征在于,該資源管理模塊更通過判斷該特定端口的一輸出佇存中的包數(shù)目是否接近一臨界值來偵測該特定端口是否發(fā)生擁塞。
5.一種包轉(zhuǎn)送控制方法,用于包括多個端口的一裝置中,其特征在于,該包轉(zhuǎn)送控制方法包括下列步驟接收一包;偵測所述端口中是否有至少一特定端口發(fā)生擁塞;判斷該特定端口是否包括所述端口中的一既定端口;以及若是,將該包轉(zhuǎn)送給該既定端口之外的所述端口中的至少其中之一。
6.根據(jù)權(quán)利要求5所述的包轉(zhuǎn)送控制方法,其特征在于,更包括當(dāng)所述端口上沒有發(fā)生擁塞時,依據(jù)該包中記錄的至少一目的地地址將該包轉(zhuǎn)送至所述端口中的至少其中之一。
7.根據(jù)權(quán)利要求5所述的包轉(zhuǎn)送控制方法,其特征在于,更包括下列步驟當(dāng)該特定端口不包括該既定端口時,產(chǎn)生一暫停幀給傳送該包的一進(jìn)入端口;以及停止該進(jìn)入端口再次傳送包。
8.根據(jù)權(quán)利要求5至7中任意一項(xiàng)所述的包轉(zhuǎn)送控制方法,其特征在于,更包括通過判斷該特定端口的一輸出佇存中的包數(shù)目是否接近一臨界值來偵測該特定端口是否發(fā)生擁塞。
9.一種包轉(zhuǎn)送控制方法,其特征在于,該包轉(zhuǎn)送控制方法包括下列步驟當(dāng)相應(yīng)多個端口的至少一輸出佇存累積的包數(shù)量達(dá)到一臨界值且發(fā)生擁塞時,產(chǎn)生一擁塞端口窗口;依據(jù)該擁塞端口窗口與一禁止端口掩碼辨識至少一既定禁止端口;以及依據(jù)至少一目的地地址與該禁止端口掩碼傳送一接收包。
10.根據(jù)權(quán)利要求9所述的包轉(zhuǎn)送控制方法,其特征在于,更包括下列步驟產(chǎn)生一暫停幀給輸入該接收包的一進(jìn)入端口;以及接收該暫停幀之后,該進(jìn)入端口停止傳送該接收包。
11.根據(jù)權(quán)利要求9或10所述的包轉(zhuǎn)送控制方法,其特征在于,更包括依據(jù)該接收包中記錄的至少一目的地地址產(chǎn)生一轉(zhuǎn)送端口掩碼。
12.根據(jù)權(quán)利要求11所述的包轉(zhuǎn)送控制方法,其特征在于,更包括當(dāng)沒有發(fā)生擁塞時,依據(jù)該接收包中記錄的該至少一目的地地址與該轉(zhuǎn)送端口掩碼傳送該接收包。
13.根據(jù)權(quán)利要求11所述的包轉(zhuǎn)送控制方法,其特征在于,更包括下列步驟在該禁止端口掩碼中搜尋多個有效位;以及在該轉(zhuǎn)送端口掩碼中忽略所述有效位相應(yīng)的位。
全文摘要
本發(fā)明提供一種包轉(zhuǎn)送控制系統(tǒng)及方法。所述包轉(zhuǎn)送控制系統(tǒng)包括多個端口與一處理模塊,用以接收一包。處理模塊包括一資源管理模塊與一轉(zhuǎn)送控制模塊。資源管理模塊偵測這些端口中是否有至少一特定端口發(fā)生了擁塞。轉(zhuǎn)送控制模塊判斷此特定端口是否包括這些端口中的一既定端口。若是,將包轉(zhuǎn)送給除了此既定端口之外的至少一端口。本發(fā)明所述的包轉(zhuǎn)送控制系統(tǒng)及方法,于網(wǎng)絡(luò)傳輸中提供的負(fù)載增加且發(fā)生擁塞的情形時,大大改善了網(wǎng)絡(luò)產(chǎn)出率。
文檔編號H04L12/56GK101014009SQ20071000503
公開日2007年8月8日 申請日期2007年2月12日 優(yōu)先權(quán)日2006年9月7日
發(fā)明者陳維彬, 黃宏吉, 鐘名超, 王俊程 申請人:威盛電子股份有限公司