專利名稱:一種基于多網卡的網絡設備的數據傳輸方法和裝置的制作方法
技術領域:
本發(fā)明涉及網絡通訊技術領域,具體涉及一種基于多網卡的網絡設備的數據傳輸方法和裝置。
背景技術:
在當今的計算機領域,網絡已經變的非常普及,Intranet(企業(yè)內部互聯(lián)網)和Internet(國際互聯(lián)網)的高速發(fā)展使得網絡訪問越來越頻繁,用戶對網絡帶寬,網絡訪問速度的要求也越來越高。網絡設備中的網卡已經隨著用戶對網絡訪問速度的要求從十兆網卡、百兆網卡發(fā)展到千兆網卡。
增加網絡帶寬雖然可以通過升級網卡、選取更高速的網卡來實現,但是硬件設備的升級可能會要求原有配套網絡設備如集線器、交換機、路由器等的整體升級,在這種情況下,使用原有網卡并行擴展技術來增加帶寬就變的非常實用了。原有網卡并行擴展的技術即為網卡綁定技術。
網卡綁定技術的主導思想為將網絡設備的多塊物理網卡在邏輯上統(tǒng)一起來,對外呈現為一塊網卡,但網絡設備的數據處理能力卻為多塊網卡數據處理能力之和。
由于在以太網通訊中,網卡的以太網地址和網卡的物理地址是兩個不可或缺的基本要素,所以在網卡綁定技術中確定虛擬網卡的以太網地址和物理地址是實現網卡綁定的重要步驟。
現行網卡綁定技術中確定虛擬網卡的以太網地址和物理地址的基本方法為將虛擬網卡、網絡設備中所有物理網卡的以太網地址和物理地址分別虛擬成相同的地址。如設定網絡設備中有物理網卡1和物理網卡2,它們的以太網地址分別是192.168.10.20和192.168.10.30,它們的物理地址分別是0010605b67f9和001079df73d9。設定虛擬網卡的以太網地址是192.168.10.40,利用現行的網卡綁定技術,依次將物理網卡1,物理網卡2綁定到虛擬網卡上,綁定后,虛擬網卡、物理網卡1、物理網卡2的以太網地址都成為192.168.10.40,物理地址都成為0010605b67f9。
利用現行網卡綁定技術將網絡設備各物理網卡綁定在虛擬網卡上以后,網絡設備在數據發(fā)送時,由網絡設備進行輪循驅動實現物理網卡輪循發(fā)送數據,與網絡設備連接的對端如交換機等同樣需要支持輪循操作,這樣保證了網絡設備多塊網卡的并行操作,從而增加了網絡的帶寬。
現行的這種網卡綁定技術,使網絡設備在進行數據傳輸時,會產生一些異?,F象,如在與網絡設備連接的對端如交換機等不支持輪循操作時,交換機會認為連接在其上的多個端口擁有同樣的物理地址是一種錯誤行為,從而使交換機工作不正常;在網絡設備的物理網卡直接連接在集線器上時,會導致從遠端發(fā)送的數據被網絡設備重復接收,使網絡設備在接收數據、發(fā)送數據時不能夠實現并行操作。綜上所述,利用現行的網卡綁定技術進行數據傳輸時,會帶來浪費網絡設備的帶寬、浪費網絡設備處理器的處理時間、降低數據傳輸速率等問題。
發(fā)明內容
本發(fā)明的目的在于,提供一種基于多網卡的網絡設備的數據傳輸方法和裝置,使網絡設備連接在不支持輪循操作的交換機或直接連接在集線器上時,可保持多網卡帶寬的優(yōu)勢,保證數據正常的并行接收和發(fā)送,從而實現了節(jié)約網絡設備資源,提高數據傳輸速率的目的。
為達到上述目的,本發(fā)明提供的一種基于多網卡的網絡設備的數據傳輸方法,包括
a、建立基于多網卡的網絡設備的虛擬網卡;b、獲取所述網絡設備中至少一塊物理網卡的地址;c、將所述虛擬網卡的地址設置為區(qū)別于所述獲取的至少一塊物理網卡的地址;d、所述網絡設備根據具有不同地址的所述虛擬網卡、物理網卡進行數據傳輸。
所述步驟a包括在數據鏈路層建立基于多網卡的網絡設備的虛擬網卡;根據物理網卡列表為所述虛擬網卡設置名稱。
所述的步驟c包括將所述虛擬網卡的以太網地址設置為區(qū)別于所述獲取的至少一塊物理網卡的以太網地址;將所述虛擬網卡的物理地址設置為所述獲取的至少一塊物理網卡的物理地址中的一個;在不改變所述至少一塊物理網卡的物理地址的同時將所述網絡設備中各物理網卡與所述虛擬網卡綁定。
所述的步驟d包括從所述網絡設備至少一塊物理網卡中選取一塊物理網卡;將網絡設備待發(fā)數據的控制網卡設置為所述選取的物理網卡;將所述待發(fā)數據的鏈路層數據幀的源物理地址設置為所述選取的物理網卡的物理地址;所述選取的物理網卡將所述鏈路層數據幀發(fā)送。
所述步驟d中從所述至少一塊物理網卡中選取一塊物理網卡進一步包括采用輪循算法從所述網絡設備的至少一塊物理網卡中選取一塊物理網卡。
所述的步驟c還包括將所述虛擬網卡設置為屬主狀態(tài);
將所述網絡設備中至少一塊物理網卡設置為從屬狀態(tài)。
所述的步驟d包括所述網絡設備的物理網卡接收傳輸來的數據;將所述接收的數據的控制網卡設置為處于屬主狀態(tài)的網卡;判斷所述接收的數據是否為基于地址解析協(xié)議的請求報文;如果是,返回所述網絡設備物理網卡的物理地址;如果不是,所述網絡設備對所述接收的數據進行相應處理。
所述步驟d中返回所述網絡設備物理網卡的物理地址進一步包括判斷所述請求報文的控制網卡是否為所述虛擬網卡;如果是,從所述網絡設備的至少一塊物理網卡中選取一塊物理網卡,并將其物理地址返回;如果不是,將所述請求報文的控制網卡的物理地址返回。
所述步驟d中從所述網絡設備的至少一塊物理網卡中選取一塊物理網卡進一步包括采用輪循算法從所述網絡設備的至少一塊物理網卡中選取一塊物理網卡。
本發(fā)明提供的一種基于多網卡的網絡設備的數據傳輸裝置,包括虛擬網卡數據存儲模塊用于存儲基于多網卡的網絡設備的虛擬網卡的相應數據;設置地址模塊用于獲取所述網絡設備中各物理網卡的地址,并將所述虛擬網卡的地址設置為區(qū)別于所述獲取的各物理網卡的地址,并存儲;數據傳輸模塊用于根據具有不同地址的所述虛擬網卡、物理網卡進行數據傳輸。
通過上述技術方案的描述可明顯得知,本發(fā)明通過設置虛擬網卡地址,將虛擬網卡、物理網卡的地址設置為不同的地址,在將虛擬網卡和物理網卡綁定后對外呈現為至少兩塊網卡,使與網絡設備連接的不支持輪循操作的交換機不會產生工作異?,F象,而且網絡設備直接連接在集線器上時,也不會造成網絡設備重復接收遠端傳輸來的數據的現象;本發(fā)明通過改變鏈路層封裝處理流程、改變鏈路層地址解析協(xié)議的實現方法,使網絡設備在保持多網卡帶寬優(yōu)勢的同時,保證了網絡設備多塊網卡的并行操作,從而使本發(fā)明克服了現有技術的缺點,實現了節(jié)約網絡設備資源,提高數據傳輸速率的目的。
圖1是本發(fā)明的建立虛擬網卡并綁定的處理過程示意圖;圖2是本發(fā)明的網卡綁定后TCP/IP協(xié)議棧的示意圖;圖3是本發(fā)明的基于多網卡的網絡設備發(fā)送數據示意圖;圖4是本發(fā)明的基于多網卡的網絡設備接收數據示意圖;圖5是本發(fā)明的基于多網卡的網絡設備的數據傳輸裝置。
具體實施例方式
本發(fā)明的核心思想是建立基于多網卡的網絡設備的虛擬網卡;獲取所述網絡設備中至少一塊物理網卡的地址;將所述虛擬網卡的地址設置為區(qū)別于所述獲取的至少一塊物理網卡的地址;所述網絡設備根據所述虛擬網卡、物理網卡進行數據傳輸。
基于本發(fā)明的核心思想,下面結合附圖對本發(fā)明的基于多網卡的網絡設備進行數據傳輸的方法和裝置進行具體說明。
本發(fā)明的基于多網卡的網絡設備進行數據傳輸的方法需要首先建立虛擬網卡,并將網絡設備中的物理網卡綁定在虛擬網卡上。
建立虛擬網卡,并將網絡設備中的各物理網卡綁定在虛擬網卡上的過程如附圖1所示。
圖1中,在步驟1.1,網絡設備的系統(tǒng)驅動部分加載網絡設備虛擬網卡的驅動模塊,同時為虛擬網卡分配名字如bond0,系統(tǒng)驅動部分查詢網絡設備中物理網卡列表,該列表中是否有與bond0重復的名字,如果沒有,成功的為虛擬網卡分配了名字;否則,繼續(xù)為虛擬網卡分配名字bond1,再次查詢網絡設備中物理網卡列表,以此類推直至成功的為虛擬網卡分配了名字,或者網卡名稱從bond0至bond100都已在網卡列表中存在,錯誤退出。
到步驟1.2,系統(tǒng)驅動部分調用注冊函數在網絡驅動層注冊一個設備,虛擬出一塊網卡,該網卡即為虛擬網卡。虛擬網卡雖然在物理上并不存在,但是對IP層來說虛擬網卡就是一塊實際存在的物理網卡。調用注冊函數成功后,建立虛擬網卡的過程實現,通過ifconfig -a命令將可以在網絡系統(tǒng)中看到這塊虛擬網卡。下面的步驟是實現網卡綁定的過程。
到步驟1.3,為該虛擬網卡設置IP地址,IP地址的設置由用戶根據具體的網絡環(huán)境通過用戶進程來設置,如果網絡設備是一臺多穴主機,用戶在設置路由的時候應該清楚自己希望在哪個網段做網卡綁定,增加去往哪個網段的帶寬。
到步驟1.4,用戶通過用戶進程讀出需要綁定在虛擬網卡上物理網卡的信息,對這些物理網卡做合法性判斷,如判斷此網卡是否為物理網卡等,以決定該塊網卡是否可以綁定在虛擬網卡上。
到步驟1.5,用戶通過用戶進程調用ioctl,將網絡設備中各合法的物理網卡綁定在虛擬網卡上。
到步驟1.6,系統(tǒng)驅動部分判斷虛擬網卡目前是否有物理地址,如果虛擬網卡目前還沒有物理地址,將虛擬網卡的物理地址設置為第一塊綁定到虛擬網卡上的物理網卡,到步驟1.7;如果虛擬網卡已經有物理地址,到步驟1.7。
步驟1.7,系統(tǒng)驅動部分將要求綁定的物理網卡的狀態(tài)設置為從屬狀態(tài),將虛擬網卡的狀態(tài)設置為屬主狀態(tài)。
到步驟1.8,正常退出。
通過上述建立虛擬網卡并將物理網卡綁定過程的描述,可以得知,如果設定網絡設備有物理網卡1和物理網卡2,它們的以太網地址分別是192.168.10.20和192.168.10.30,物理地址分別是0010605b67f9和001079df73d9,并且設定虛擬網卡的以太網地址為192.168.10.40。在將各物理網卡綁定在虛擬網卡上后,虛擬網卡、物理網卡1、物理網卡2三者的以太網地址都為192.168.10.40,物理網卡1的物理地址仍然為0010605b67f9,物理網卡2的物理地址仍然為001079df73d9,虛擬網卡的物理地址可以是物理網卡1的0010605b67f9,也可以是物理網卡2的物理地址001079df73d9。
建立虛擬網卡并將物理網卡綁定后TCP/IP協(xié)議棧的示意圖如附圖2所示。
在圖2中,2.1是采用本發(fā)明的網卡綁定技術后,相對正常TCP/IP協(xié)議模型所增加的虛擬接口即虛擬網卡,2.2為網絡層,2.3為物理接口即物理網卡。本發(fā)明在物理網卡上虛擬一層2.1虛擬接口,讓網絡層2.2只看到虛擬網卡,再由虛擬網卡去管理物理網卡2.3,這樣,從使用網絡設備用戶的角度看,網絡設備使用的是一塊網卡,從與網絡設備連接的交換機、集線器等其他網絡設備看,網絡設備使用的是兩塊不同的網卡,從而使不支持輪循的交換機在網絡設備實現網卡綁定后同樣能夠進行正常工作,避免了數據傳輸過程中網絡設備重復接收數據等異?,F象的出現。
建立虛擬網卡并將物理網卡綁定后,網絡設備發(fā)送數據的示意圖如附圖3所示。
圖3中,在步驟3.1,網絡設備的應用層首先創(chuàng)建套接口,應用層發(fā)送數據至傳輸層。
到步驟3.2,網絡設備的傳輸層對該數據進行處理,并將其傳輸至網絡層。
到步驟3.3,網絡設備的網絡層對該數據進行處理,根據網絡設備中的路由選擇可得知該數據由虛擬網卡發(fā)送。
到步驟3.4,網絡設備的網絡層發(fā)送基于地址解析協(xié)議的數據包,請求并得到下一跳目的網絡設備的物理地址。
到步驟3.5,網絡設備的網絡層構建鏈路層數據幀,并將請求得到的下一跳目的網絡設備的物理地址和虛擬網卡的物理地址添入鏈路層數據幀的幀頭。
到步驟3.6,網絡設備從綁定在虛擬網卡上的物理網卡中選擇一塊物理網卡作為實際發(fā)送數據的網卡。選擇的方法采用輪循算法,如設定有三塊物理網卡綁定在虛擬網卡上,則選擇的作為實際發(fā)送數據的網卡依次為網卡1,網卡2,網卡3,網卡1,網卡2,網卡3,依次循環(huán)。
到步驟3.7,將該數據的控制網卡改為實際發(fā)送數據的網卡。
到步驟3.8,修改鏈路層數據幀,將幀頭的源物理地址改為實際發(fā)送數據的網卡的物理地址。
到步驟3.9,實際發(fā)送數據的網卡通過物理線路將該數據發(fā)送。
到步驟3.10,成功發(fā)送數據后,正常退出。
建立虛擬網卡并將物理網卡綁定后,網絡設備接收數據的示意圖如附圖4所示。
圖4中,在步驟4.1,網絡設備的物理網卡接收遠端傳輸來的數據。
到步驟4.2,判斷該物理網卡是否處于是從屬狀態(tài),如果不是處于從屬狀態(tài),跳轉到步驟4.4;如果處于從屬狀態(tài),到步驟4.3。
在步驟4.3、將物理網卡接收到的數據的控制網卡更改為虛擬網卡。
到步驟4.4,剝除該數據的鏈路層數據幀的幀頭,判斷該數據是否是基于地址解析協(xié)議的請求,如果是,則到步驟4.5,如果不是,到步驟4.7。
在步驟4.5,判斷該數據的控制網卡是否是虛擬網卡,如果是,到步驟4.6,如果不是,返回該物理網卡的物理地址,網絡設備接收數據的處理過程結束。
在步驟4.6,從綁定在虛擬網卡上的物理網卡中選擇一塊物理網卡,將選擇的該物理網卡的物理地址返回,網絡設備接收數據的處理過程結束。選擇的方法為輪循算法,設定有三塊物理網卡綁定在虛擬網卡上,則選擇的物理網卡依次為網卡1,網卡2,網卡3,網卡1,網卡2,網卡3,依次循環(huán)。
在步驟4.7,網絡設備的網絡層接收該數據并進行處理。
到步驟4.8,網絡設備的傳輸層接收該數據并進行處理。
到步驟4.9,網絡設備的應用層的守候進程接收該數據并進行處理。
到步驟4.10,網絡設備接收數據的過程結束,正常退出。
上述網絡設備接收數據的過程是針對網絡設備接收遠端啟動的數據發(fā)送來描述的。遠端為了響應接收到的數據而產生的數據發(fā)送,由于遠端可以從接收到的數據中得到介質訪問控制地址等信息,使網絡設備接收數據的處理過程變的簡單,包含在上述圖4的描述過程中,在本實施例中不再具體描述。
本發(fā)明提供的基于多網卡的網絡設備的數據傳輸裝置如附圖5所示。
在圖5中,該裝置包括虛擬網卡數據存儲模塊500、設置地址模塊510和數據傳輸模塊520。
虛擬網卡數據存儲模塊500用于存儲虛擬網卡的名稱等數據信息,并接收設置地址模塊510傳輸來的虛擬網卡的以太網地址、物理地址和屬主/從屬狀態(tài)。
設置地址模塊510用于獲取網絡設備中各物理網卡的以太網地址和物理地址,將虛擬網卡的以太網地址設置為區(qū)別于獲取的各物理網卡的以太網地址,將虛擬網卡的物理地址設置為獲取的各物理網卡的物理地址中的一個,將虛擬網卡和網絡設備中各物理網卡綁定,設置虛擬網卡、各物理網卡的屬主/從屬狀態(tài),并將綁定后虛擬網卡的以太網地址、物理地址、屬主/從屬狀態(tài)傳輸至虛擬網卡數據存儲模塊500,同時,設置地址模塊510存儲綁定后各物理網卡的以太網地址和物理地址。
數據傳輸模塊520的功能包括數據發(fā)送和數據接收,其數據接收和數據發(fā)送的過程如上述方法中描述的過程,在數據接收和數據發(fā)送過程中需要用到虛擬網卡和物理網卡的地址和狀態(tài)時,從設置地址模塊510和虛擬網卡數據存儲模塊500中獲取,在本實施例中不再詳細描述。
雖然通過實施例描繪了本發(fā)明,本領域普通技術人員知道,本發(fā)明有許多變形和變化而不脫離本發(fā)明的精神,希望所附的權利要求包括這些變形和變化。
權利要求
1.一種基于多網卡的網絡設備的數據傳輸方法,其特征在于包括a、建立基于多網卡的網絡設備的虛擬網卡;b、獲取所述網絡設備中至少一塊物理網卡的地址;c、將所述虛擬網卡的地址設置為區(qū)別于所述獲取的至少一塊物理網卡的地址d、所述網絡設備根據具有不同地址的所述虛擬網卡、物理網卡進行數據傳輸。
2.如權利要求1所述的一種基于多網卡的網絡設備的數據傳輸方法,其特征在于所述步驟a包括在數據鏈路層建立基于多網卡的網絡設備的虛擬網卡;根據物理網卡列表為所述虛擬網卡設置名稱。
3.如權利要求1或2所述的一種基于多網卡的網絡設備的數據傳輸方法,其特征在于所述的步驟c包括將所述虛擬網卡的以太網地址設置為區(qū)別于所述獲取的至少一塊物理網卡的以太網地址;將所述虛擬網卡的物理地址設置為所述獲取的至少一塊物理網卡的物理地址中的一個;在不改變所述至少一塊物理網卡的物理地址的同時將所述網絡設備中各物理網卡與所述虛擬網卡綁定。
4.如權利要求1或2所述的一種基于多網卡的網絡設備的數據傳輸方法,其特征在于所述的步驟d包括從所述網絡設備至少一塊物理網卡中選取一塊物理網卡;將網絡設備待發(fā)數據的控制網卡設置為所述選取的物理網卡;將所述待發(fā)數據的鏈路層數據幀的源物理地址設置為所述選取的物理網卡的物理地址;所述選取的物理網卡將所述待發(fā)數據發(fā)送。
5.如權利要求4所述的一種基于多網卡的網絡設備的數據傳輸方法,其特征在于所述步驟d中從所述至少一塊物理網卡中選取一塊物理網卡進一步包括采用輪循算法從所述網絡設備的至少一塊物理網卡中選取一塊物理網卡。
6.如權利要求1或2所述的一種基于多網卡的網絡設備的數據傳輸方法,其特征在于所述的步驟c還包括將所述虛擬網卡設置為屬主狀態(tài);將所述網絡設備中至少一塊物理網卡設置為從屬狀態(tài)。
7.如權利要求6所述的一種基于多網卡的網絡設備的數據傳輸方法,其特征在于所述的步驟d包括所述網絡設備的物理網卡接收傳輸來的數據;將所述接收的數據的控制網卡設置為處于屬主狀態(tài)的網卡;判斷所述接收的數據是否為基于地址解析協(xié)議的請求報文;如果是,返回所述網絡設備物理網卡的物理地址;如果不是,所述網絡設備對所述接收的數據進行相應處理。
8.如權利要求7所述的一種基于多網卡的網絡設備的數據傳輸方法,其特征在于所述步驟d中返回所述網絡設備物理網卡的物理地址進一步包括判斷所述請求報文的控制網卡是否為所述虛擬網卡;如果是,從所述網絡設備的至少一塊物理網卡中選取一塊物理網卡,并將其物理地址返回;如果不是,將所述請求報文的控制網卡的物理地址返回。
9.如權利要求8所述的一種基于多網卡的網絡設備的數據傳輸方法,其特征在于所述步驟d中從所述網絡設備的至少一塊物理網卡中選取一塊物理網卡進一步包括采用輪循算法從所述網絡設備的至少一塊物理網卡中選取一塊物理網卡。
10.一種基于多網卡的網絡設備的數據傳輸裝置,其特征在于包括虛擬網卡數據存儲模塊用于存儲基于多網卡的網絡設備的虛擬網卡的相應數據;設置地址模塊用于獲取所述網絡設備中各物理網卡的地址,并將所述虛擬網卡的地址設置為區(qū)別于所述獲取的各物理網卡的地址,并存儲;數據傳輸模塊用于根據具有不同地址的所述虛擬網卡、物理網卡進行數據傳輸。
全文摘要
本發(fā)明提供一種基于多網卡的網絡設備的數據傳輸方法,包括建立基于多網卡的網絡設備的虛擬網卡;獲取所述網絡設備中至少一塊物理網卡的地址;將所述虛擬網卡的地址設置為區(qū)別于所述獲取的至少一塊物理網卡的地址;所述網絡設備根據具有不同地址的所述虛擬網卡、物理網卡進行數據傳輸;本發(fā)明還提供一種基于多網卡的網絡設備的數據傳輸裝置,包括虛擬網卡數據存儲模塊、設置地址模塊、數據傳輸模塊;本發(fā)明節(jié)約了網絡設備資源,提高了數據傳輸速率。
文檔編號H04L12/28GK1556625SQ20041000011
公開日2004年12月22日 申請日期2004年1月5日 優(yōu)先權日2004年1月5日
發(fā)明者朱晨露, 袁林, 談華芳 申請人:聯(lián)想(北京)有限公司