專利名稱:數據包流分配方法
技術領域:
本發明涉及一種數據包流分配方法,尤指應用在具有M個數據信道的網絡節點上的數據包流分配方法。
為能解決上述問題,如圖2所示的局域網絡架構圖便被發展出來,由圖中可清楚看出,為能充分利用網絡交換器20的帶寬,一網絡節點21(例如作為服務器的個人計算機)上插置有數張網絡卡,本圖中的例子表示出有三張網絡卡211、212與213,如此一來,此網絡節點21便可通過三個輸出端口201、202與203與三張網絡卡所共同組成的數據信道來進行數據傳輸,使該網絡節點21′在理論上獲得三倍的帶寬。
但由于常用網絡節點21的網絡卡驅動程序把所收到的數據包先進行分類后,再以固定方式來選擇輸出的路徑,舉例來說,驅動程序分別把第一類、第四類、第七類等的數據包指派給網絡卡211而輸出至輸出端口201,而把第二類、第五類、第八類等的數據包指派給網絡卡212并輸出至輸出端口202,至于第三類、第六類、第九類等的數據包則指派給網絡卡213并輸出至輸出端口203,如此一來,從表面上看來似乎已達成平均分配,但實際上,因為每一類數據包的數據量不盡相同,例如,當第一類、第四類、第七類數據包的數據量都較大時,便將使得于網絡卡211與輸出端口201上進行傳輸的數據量特別大而需花相當長時間消化,但是此時其它網絡卡與輸出端口卻可能已閑置,造成負載產生不平衡的現象。而如何讓整體的傳輸速率達成最佳化,進而改善上述常用手段中傳輸負載不平衡的缺點,是發展本發明的主要目的。
根據上述構想,本發明所述的數據包流分配方法,其特征在于將該等數據包分類成N個數據包流的方法包含下列步驟將每個數據包中的特定卷標值取出進行一運算而得到一特征值;以及將特征值相同的數據包組成一數據包流。
根據上述構想,本發明所述的數據包流分配方法,其特征在于由每個數據包中所取出的特定卷標值包含有目的地媒體存取地址(DMAC)、網際網絡地址(IP)以及傳輸控制協議地址(TCP)。
根據上述構想,本發明所述的數據包流分配方法,其特征在于將每個數據包中的特定卷標值取出所進行的該運算為一互斥或運算。
根據上述構想,本發明所述的數據包流分配方法,其特征在于M個輸出數據信道中各信道的輸出負載量為計算已存放于該信道的數據隊列中的包數據量。
根據上述構想,本發明所述的數據包流分配方法,其特征在于該信道的輸出負載量與其相對應數據包流的數據量的總和大于該預設門檻值時,將其相對應的數據包流改交由另一信道進行傳送,而另一信道的輸出負載量與其相對應數據包流的數據量再加上轉移來的該數據包流的數據量總和小于該預設門檻值。
根據上述構想,本發明所述的數據包流分配方法,其特征在于更包含下列步驟當相對應一信道的數據包流改交由另一信道進行傳送時,于該信道的數據隊列置入一廣播數據包,該廣播數據包內包含有該數據包流的辨識碼;以及當M個數據信道中任一數據信道收到該廣播數據包時,使另一信道開始傳送該經過轉移的數據包流。
根據上述構想,本發明所述的數據包流分配方法,其特征在于更包含下列步驟當相對應一信道的數據包流改交由另一信道進行傳送后開始計時;以及當計時值大于一默認值時,使另一信道開始傳送該經過轉移的數據包流。
根據上述構想,本發明所述的數據包流分配方法,其應用的該具有M個數據信道的網絡節點為一具有M張網絡卡的個人計算機。
圖2為第二種常用局域網絡架構圖。
圖3為本發明對于常用手段缺點所發展出來的數據包流分配法所應用其上的系統方塊示意圖。
圖4為本發明較佳實施例方法的相關步驟流程圖。
雜湊值=DMACIPTCP如此一來,該等數據包將被分類成32個數據包流(data packet flow)3400、3401、…、3431,然后再將32個數據包流分別交由三張網絡卡31、32、33中的一相對應網絡卡進行傳送。于傳送工作開始時,驅動程序仍以固定方式來進行分配,但為能動態地進行負載平衡的調整,經過一段時間后,驅動程序便每隔一段預定時間(例如0.1秒)進行數據包流(data packet flow)的排序動作,用以根據數據量來將32個數據包流由小排到大。然后由最小數據量的數據包流開始進行試算與判斷是否轉移之動作。舉例來說,三張網絡卡31、32、33的數據帶寬都為相同,而此時三張網絡卡31、32、33中各數據隊列中等待傳送的包數據量為700(kb)、600(kb)、500(kb),而最小數據量的數據包流的數據量為200(kb)且原本通過網絡卡31進行傳輸,但于此時,由于網絡卡31的數據隊列中等待傳送的包數據量(700kb)與此數據包流數據量(200kb)的總和(900kb),已經大于門檻值(本例設為800kb),因此驅動程序將進行下列的數據包流轉移動作。
首先,將此數據包流轉移到對應隊列中等待傳送的包數據量最小的網絡卡33上,同樣試算網絡卡33的數據隊列中等待傳送的包數據量與此數據包流數據量的總和與門檻值的大小關系。于此例中,網絡卡33的數據隊列中等待傳送的包數據量(500kb)與此數據包流數據量(200kb)的總和(700kb)小于門檻值(800kb),因此驅動程序便判斷可將該數據包流轉移到網絡卡33進行傳送。而根據此方法,我們可繼續進行后續的試算、比較與轉移的動作,但是當沒有網絡卡的數據隊列中等待傳送的包數據量與欲轉移數據包流數據量的總和小于門檻值時,便可結束此次的轉移動作而再等待該預定時間(例如0.1秒)后再進行下一次的重新分配動作。
因為每條傳輸路徑的傳送速度不一,因此,為確保數據包傳送順序的正確性,當轉移動作要進行時,驅動程序較佳地在原網絡卡(本例為網絡卡31)的數據隊列中額外置入一廣播數據包,且該廣播數據包內包含有代表需要轉移的該數據包流的辨識碼。而當原網絡卡(本例為網絡卡31)將其數據隊列內的所有包(包含該廣播數據包)送出后,并且于三張網絡卡31、32、33中任何一張收到該廣播數據包時,驅動程序便可根據包中的辨識碼,進一步使得轉移后的網絡卡(本例為網絡卡33)開始傳送該需要轉移的數據包流。如此一來,將可確保該需要轉移的數據包流的順序正確性。但是,為了能避免該廣播數據包可能被廢棄的情況發生,我們另設有一計時機制,即當轉移動作要進行時(例如驅動程序在原網絡卡的數據隊列中額外置入一廣播數據包時),驅動程序便開始計時,而當計時值大于一默認值時,便強迫使轉移后的網絡卡開始傳送該經過轉移的數據包流。如此一來,即使該廣播數據包被廢棄而未被三張網絡卡31、32、33中任何一張收到,經過一段默認值時間后,該需要轉移的數據包流仍然會開始傳送。相關方法步驟的流程圖如圖4所示。
綜上所述,本發明所公開的技術手段將可有效改善常用手段中負載不平衡的缺點,通過提供一動態改變傳輸路徑且可確保數據包的順序正確性的包流分配方法,進而達到發展本發明的主要目的,其作法可廣泛地運用于個人計算機或其它等效的網絡節點(例如網絡打印機、網絡磁盤驅動器)上,本領域技術人員應當知道,在不脫離由附加的權利要求闡明的本發明的精神和范圍的情況下,可以進行各種變化和替換。
權利要求
1.一種數據包流分配方法,應用在一具有M個數據信道的網絡節點上,該分配方法包含下列步驟產生數個數據包;將該等數據包分類成N個數據包流,并將N個數據包流分別交由M個數據信道中的一相對應信道進行傳送;以及在一預定時間后,當M個輸出數據信道中一信道的輸出負載量與相對應數據包流的數據量的總和大于一預設門檻值時,將其相對應的數據包流改交由另一信道進行傳送。
2.如權利要求1所述的數據包流分配方法,其特征在于將該等數據包分類成N個數據包流的方法包含下列步驟將每個數據包中的特定卷標值取出進行一運算而得到一特征值;以及將特征值相同的數據包組成一數據包流。
3.如權利要求2所述的數據包流分配方法,其特征在于由每個數據包中所取出的特定卷標值包含有目的地媒體存取地址(DMAC)、網際網絡地址(IP)以及傳輸控制協議地址(TCP)。
4.如權利要求2所述的數據包流分配方法,其特征在于將每個數據包中的特定卷標值取出所進行的該運算為一互斥或運算。
5.如權利要求1所述的數據包流分配方法,其特征在于M個輸出數據信道中各信道的輸出負載量為計算已存放于該信道的數據隊列中的包數據量。
6.如權利要求1所述的數據包流分配方法,其特征在于該信道的輸出負載量與其相對應數據包流的數據量的總和大于該預設門檻值時,將其相對應的數據包流改交由另一信道進行傳送,而另一信道的輸出負載量與其相對應數據包流的數據量再加上轉移來的該數據包流的數據量總和小于該預設門檻值。
7.如權利要求1所述的數據包流分配方法,其特征在于更包含下列步驟當相對應一信道的數據包流改交由另一信道進行傳送時,在該相對應信道的數據隊列置入一廣播數據包,該廣播數據包內包含有該數據包流的辨識碼;以及當M個數據信道中任一數據信道收到該廣播數據包時,使另一信道開始傳送該經過轉移的數據包流。
8.如權利要求1所述的數據包流分配方法,其特征在于更包含下列步驟當相對應一信道的數據包流改交由另一信道進行傳送后開始計時;以及當計時值大于一默認值時,使另一信道開始傳送該經過轉移的數據包流。
9.如權利要求1所述的數據包流分配方法,其應用的該具有M個數據信道的網絡節點為一具有M張網絡卡的個人計算機。
全文摘要
本發明為一種數據包流分配方法,應用在一具有M個數據信道的網絡節點上,該分配方法包含下列步驟產生數個數據包;將該等數據包分類成N個數據包流,并將N個數據包流分別交由M個數據信道中的一相對應信道進行傳送;以及于一預定時間后,當M個輸出數據信道中一信道的輸出負載量與其相對應數據包流的數據量的總和大于一預設門檻值時,將其相對應的數據包流改交由另一信道進行傳送。
文檔編號H04Q3/64GK1431807SQ0310303
公開日2003年7月23日 申請日期2003年1月28日 優先權日2003年1月28日
發明者莊良興 申請人:威盛電子股份有限公司