專利名稱:一種單板的網(wǎng)卡的切換方法、分布式系統(tǒng)及單板的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù),尤其涉及一種單板的網(wǎng)卡的切換方法、分布式 系統(tǒng)及單板。
背景技術(shù):
隨著因特網(wǎng)的迅猛發(fā)展,分布式系統(tǒng)的應(yīng)用也越來越廣泛。 一般來說,分
布式系統(tǒng)由3個主要部分組成主控板、背板和業(yè)務(wù)板。主控板和業(yè)務(wù)板間通 過背板以以太網(wǎng)進行板間通訊。以分布式交換機為例,系統(tǒng)中包括主控板、 背板和線卡,主控板和線卡上均裝有網(wǎng)卡用于板間通訊。
由于現(xiàn)在通信業(yè)務(wù)量的劇增,很難避免由于線卡上的網(wǎng)卡故障或網(wǎng)卡與主 用主控板間的鏈路故障,而導致板間通信鏈路發(fā)生故障而中斷,嚴重的會導致 主控和線卡之間的報文交互被阻止,線卡脫離主控的控制,導致通信業(yè)務(wù)受到 影響。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種單板的網(wǎng)卡的切換方法、分布式系統(tǒng)及單板,以 解決由于單板上的網(wǎng)卡故障或網(wǎng)卡與主用主控板間的鏈路故障導致通信業(yè)務(wù) 受到影響的問題。本發(fā)明的單板的網(wǎng)卡的切換方法包括所述單板上包括具有 相同的媒體接入控制地址的第一網(wǎng)卡和第二網(wǎng)卡,所述第一網(wǎng)卡被綁定網(wǎng)際協(xié) 議地址,所述方法包括發(fā)送步驟和接收步驟,其中
發(fā)送步驟包括
發(fā)送函數(shù)利用所述第 一 網(wǎng)卡進行數(shù)據(jù)發(fā)送;
切換條件成立時,切換到所述第二網(wǎng)卡,利用所述第二網(wǎng)卡進行數(shù)據(jù)發(fā)送; 接收步驟包括
接收數(shù)據(jù)函數(shù)將接收到的數(shù)據(jù)返回所述第一網(wǎng)卡的網(wǎng)際協(xié)議層。
4第一全局指針和第二全局指針分別指向所述第一網(wǎng)卡和第二網(wǎng)卡的控制
數(shù)據(jù)結(jié)構(gòu),所述發(fā)送步驟具體為
發(fā)送函數(shù)使用所述第一全局指針作為入口參數(shù),利用所述第一網(wǎng)卡進行數(shù) 據(jù)發(fā)送;
切換條件成立時,將所述發(fā)送函數(shù)的入口參數(shù)替換為所述第二全局指針, 利用所述第二網(wǎng)卡進行數(shù)據(jù)發(fā)送。
在所述接收步驟中,當接收數(shù)據(jù)的中斷產(chǎn)生時,所述接收數(shù)據(jù)函數(shù)被調(diào)用, 調(diào)用時的參數(shù)由操作系統(tǒng)根據(jù)實際接收數(shù)據(jù)報的網(wǎng)卡填充為所述第 一全局指 針或第二全局指針,在所述接收數(shù)據(jù)函數(shù)從所述第一全局指針或第二全局指針 對應(yīng)的網(wǎng)卡上獲取到數(shù)據(jù)后, 一律將數(shù)據(jù)通過所述第一全局指針返回給網(wǎng)際協(xié) 議層。
所述操作系統(tǒng)為VxWorks操作系統(tǒng)。
本發(fā)明還提供了一種分布式系統(tǒng),包括主用主控板、備用主控板、單板; 所述單板包括具有相同的媒體接入控制地址的第一網(wǎng)卡和第二網(wǎng)卡,所 述第 一 網(wǎng)卡^皮綁定網(wǎng)際協(xié)議地址;
所述第 一 網(wǎng)卡與所述主用主控板之間具有第 一鏈路; 所述第二網(wǎng)卡與所述備用主控板之間具有第二鏈路; 所述單板還包^":
鏈路狀態(tài)檢測模塊,用于檢測所述第一鏈路和第二鏈路的可用性; 鏈路切換模塊,用于在所述第 一 網(wǎng)卡和第二網(wǎng)卡間之間切換。 第一全局指針和第二全局指針分別指向所述第一網(wǎng)卡和第二網(wǎng)卡的控制 數(shù)據(jù)結(jié)構(gòu),所述鏈路狀態(tài)檢測模塊檢測到所述第一鏈路不可用時,所述鏈路切 換模塊將發(fā)送函數(shù)的入口參數(shù)替換為所述第二全局指針,利用所述第二網(wǎng)卡進 行數(shù)據(jù)發(fā)送;
所述鏈路狀態(tài)檢測模塊檢測到所述第一鏈路可用時,仍然通過所述發(fā)送函 數(shù)默認的所述第 一全局指針發(fā)送數(shù)據(jù)。 本發(fā)明還提供了一種單板,包括
具有相同的媒體接入控制地址的第 一網(wǎng)卡和第二網(wǎng)卡,所述第 一 網(wǎng)卡被綁 定網(wǎng)際協(xié)議地址;所述第 一 網(wǎng)卡與主用主控板建立第 一鏈路; 所述第二網(wǎng)卡與備用主控板建立第二鏈路;
所述單板還包括
鏈路狀態(tài)檢測模塊,用于檢測所述第一鏈路和第二鏈路的可用性; 鏈路切換模塊,用于在所述第 一 網(wǎng)卡和第二網(wǎng)卡間之間切換。 第一全局指針和第二全局指針分別指向所述第一網(wǎng)卡和第二網(wǎng)卡的控制 數(shù)據(jù)結(jié)構(gòu),所述鏈路狀態(tài)檢測模塊檢測到所述第一鏈路不可用時,所述鏈路切 換模塊將發(fā)送函數(shù)的入口參數(shù)替換為所述第二全局指針,利用所述第二網(wǎng)卡進 行數(shù)據(jù)發(fā)送;
所述鏈路狀態(tài)檢測模塊檢測到所述第一鏈路可用時,仍然通過所述發(fā)送函 數(shù)默認的所述第 一全局指針發(fā)送數(shù)據(jù)。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果
1、 本發(fā)明中對線卡單方面進行網(wǎng)口M,在線卡的一個網(wǎng)卡出現(xiàn)故障時, 自動切換到另 一個網(wǎng)卡,從而提高板間通訊的穩(wěn)定性和健壯性。
2、 通過將線卡上的兩個網(wǎng)卡的MAC地址設(shè)置為相同,并將其IP地址也 設(shè)置為相同,實現(xiàn)透明于上層應(yīng)用的網(wǎng)卡間的切換。本發(fā)明的網(wǎng)卡間的切換方 法在數(shù)據(jù)鏈路層實現(xiàn),不會對上層應(yīng)用產(chǎn)生影響。
3、 成本^f氐、易于實現(xiàn)和維護。
圖1為本發(fā)明的分布式系統(tǒng)的結(jié)構(gòu)示意圖; 圖2為本發(fā)明的線卡中的切換裝置示意圖; 圖3為實現(xiàn)數(shù)據(jù)鏈路層切換的方法流程圖; 圖4為從應(yīng)用角度看本發(fā)明的示意圖。
具體實施例方式
本發(fā)明提供了 一種透明于上層應(yīng)用的網(wǎng)卡間的切換方法,該網(wǎng)卡是線卡上 用于板間通信的網(wǎng)卡。本發(fā)明的切換方法在鏈路層實現(xiàn),線卡上的主備網(wǎng)口可 以根據(jù)鏈路好壞實現(xiàn)自動的切換。本發(fā)明是以分布式交換機為例進行的說明,當然也可以是路由器,在路由器上,線卡被稱為業(yè)務(wù)板,都是屬于單板。
下面結(jié)合附圖對本發(fā)明的分布式系統(tǒng)及切換方法進行說明。本發(fā)明以在
VxWorks操作系統(tǒng)下的切換進行說明。在VxWorks操作系統(tǒng)下,相同類型的 網(wǎng)卡使用相同的驅(qū)動程序,網(wǎng)卡之間由驅(qū)動程序提供的句柄來區(qū)別, MUX(multiplex layer,復合層)調(diào)用網(wǎng)卡的驅(qū)動程序接口時,會把網(wǎng)卡的句柄 傳入函數(shù)中,這為驅(qū)動層實現(xiàn)網(wǎng)卡的切換成為可能。
參考圖1,圖1為本發(fā)明的分布式系統(tǒng)結(jié)構(gòu)示意圖(圖中顯示了線卡與主 控板間的連接方式),包括
主用主控板3、備用主控板4、線卡5。其中線卡5上包括有雙網(wǎng)卡,分 別為經(jīng)過背板10與主用主控板3的Switch (交換機)8連接的主通訊網(wǎng)卡1 和經(jīng)過背板10與備用主控板4的Switch9連接的備通訊網(wǎng)卡2。網(wǎng)卡1和網(wǎng)卡 2 1: l備份。網(wǎng)卡1與主用主控板3形成主用通訊通道6,網(wǎng)卡2與備用主控 板4形成備用通訊通道7。
默認情況下,線卡5使用主通訊網(wǎng)卡1,經(jīng)由主用主控板3上的Switch8 與主用主控板3通訊,備用主控板4經(jīng)由主用主控板3上的Switch8與網(wǎng)卡1 通訊。
當主通訊網(wǎng)卡1故障或主通訊網(wǎng)卡1與主用主控板3間鏈路故障時,線卡 5中的切換裝置將當前使用的網(wǎng)卡從網(wǎng)卡1切換到網(wǎng)卡2,使備通訊網(wǎng)卡2經(jīng) 由與備用主控板4的Switch9之間的通道7 (虛線所示),以及經(jīng)由備用主控板 4的Switch9與主用主控板3的Switch8之間的鏈路,與主用主控板3通訊。
線卡5中的切換裝置參考圖2所示。圖2包括初始化模塊、IP (Internet Protocol,網(wǎng)際協(xié)議)地址綁定模塊、調(diào)用模塊、鏈路狀態(tài)檢測模塊和鏈路切 換模塊。
當分布式系統(tǒng)啟動后,由初始化模塊對網(wǎng)卡1和2初始化,使這2個網(wǎng)卡 有相同的MAC(Media Access Control,媒體訪問控制)地址,并用2個全局指針 pl、 p2分別指向2個網(wǎng)卡的控制數(shù)據(jù)結(jié)構(gòu)。
初始化完成后,IP地址綁定模塊為網(wǎng)卡1綁定IP地址,網(wǎng)卡1開始工作。 然后,發(fā)送函數(shù)和接收數(shù)據(jù)函數(shù)等待被調(diào)用模塊調(diào)用,本實施例中的發(fā)送 函數(shù)由MUX調(diào)用。接收函數(shù)是中斷處理函數(shù),中斷產(chǎn)生時候,操作系統(tǒng)就調(diào)用接收函數(shù)。在發(fā)送函數(shù)和接收數(shù)據(jù)函數(shù)等待被調(diào)用時,鏈路狀態(tài)檢測模塊對 主用通訊通道和備用通訊通道的可用性進行檢測,如果鏈路滿足預(yù)先設(shè)定的切
換條件,則將flag的值賦為l,如果不滿足切換條件,則將flag的值賦為0。
一旦發(fā)送函數(shù)和接收數(shù)據(jù)函數(shù)被調(diào)用,則由鏈路切換模塊根據(jù)調(diào)用的函數(shù) 決定如何執(zhí)行切換操作。
當MUX層發(fā)送數(shù)據(jù)時,網(wǎng)卡的發(fā)送函數(shù)被調(diào)用,如果鏈路狀態(tài)檢測模塊 判斷當前flag=l,鏈路切換模塊就將發(fā)送函數(shù)的入口參數(shù)替換為p2,然后發(fā) 送數(shù)據(jù),如果鏈路狀態(tài)檢測模塊判斷當前flag-O,則鏈路切換模塊仍然使用發(fā) 送函數(shù)默認的入口參數(shù)pl發(fā)送數(shù)據(jù)。
當接收數(shù)據(jù)的中斷產(chǎn)生時,中斷處理函數(shù)(網(wǎng)卡的接收數(shù)據(jù)函數(shù))4皮調(diào)用。 調(diào)用時的參數(shù)由操作系統(tǒng)根據(jù)實際接收數(shù)據(jù)報的網(wǎng)卡填充為pl或者p2, 接 收數(shù)據(jù)函數(shù)中,不論參數(shù)值是pl還是p2,在從pl或p2對應(yīng)的網(wǎng)卡上獲取到 數(shù)據(jù)后, 一律將數(shù)據(jù)通過pl返回給IP層。
上述收發(fā)數(shù)據(jù)的過程中,應(yīng)用程序自始至終只看見網(wǎng)卡1,其IP地址為
預(yù)先綁定的IP地址。線卡5與主用主控板3之間的通信并沒有因為鏈路狀態(tài)
的變化而受到影響。
本發(fā)明的系統(tǒng)中,線卡5上的兩個網(wǎng)卡雖然使用了兩個通道,但是由于這 兩個網(wǎng)卡具有相同的物理地址和IP地址,因此,對于高層應(yīng)用來說,仍然呈
現(xiàn)單網(wǎng)卡的特點,不會對高層應(yīng)用產(chǎn)生影響。
參考圖3,圖3為本發(fā)明的實現(xiàn)數(shù)據(jù)鏈路層切換的方法流程圖,包括以下 步驟
系統(tǒng)啟動后,初始4匕網(wǎng)卡1和2, -使2個網(wǎng)卡有相同的MAC(Media Access Control, 士某體訪問控制)地址,并用2個全局指針pl、 p2指向2個網(wǎng)卡的控制 數(shù)據(jù)結(jié)構(gòu);
通過定義這2個指針,使得在MUX調(diào)用網(wǎng)卡驅(qū)動程序的接口時,就可以 根據(jù)需要選擇相應(yīng)網(wǎng)卡的數(shù)據(jù)結(jié)構(gòu),以實現(xiàn)網(wǎng)卡間的切換。 為網(wǎng)卡1綁定IP地址,網(wǎng)卡l開始工作; 檢測鏈路狀態(tài),并根據(jù)鏈路狀態(tài)對flag (標記)賦值; 假設(shè)滿足切換條件時,使flag-l,不滿足切換條件時,使flag-0。在檢測鏈路狀態(tài)的過程中,網(wǎng)卡的發(fā)送函數(shù)和接收數(shù)據(jù)函數(shù)等待被調(diào)用, 發(fā)送和接收例程一旦被調(diào)用,將進入到以下具體的切換過程。
對于發(fā)送例程,如果判斷當前flag=l,就將發(fā)送函數(shù)的入口參數(shù)替換為 p2,然后發(fā)送數(shù)據(jù),如果判斷當前flag-0,則仍然使用發(fā)送函數(shù)默認的入口參 數(shù)pl發(fā)送數(shù)據(jù)。
對于接收例程,只有與高層綁定的網(wǎng)卡1收到的凄t據(jù)才能向上傳遞。也就 是說,在雙網(wǎng)卡用于備份的驅(qū)動程序中,不是由MUX指定的網(wǎng)卡2的句柄p2 向上傳遞數(shù)據(jù)(即使數(shù)據(jù)是由網(wǎng)卡2接收的),而是根據(jù)與IP層綁定的網(wǎng)卡1 向上傳遞數(shù)據(jù)。
本實施例中,收到的數(shù)據(jù)一律通過pl返回給IP層,應(yīng)用程序自始至終只 看見網(wǎng)卡l,其IP地址為預(yù)先綁定的IP地址。線卡與主用主控板的通信并沒 有因為鏈路狀態(tài)的變化而受到影響。
根據(jù)分層的網(wǎng)絡(luò)模型,也可以將本發(fā)明的系統(tǒng)用分層的概念來描述。參考 圖4,圖4為從應(yīng)用角度看本發(fā)明的示意圖。圖4中,層與層之間都是調(diào)用的 關(guān)系。應(yīng)用程序通過Socket (套)接口可以使用TCP/IP協(xié)議族通訊,TCP/IP 協(xié)議族與MUX層的調(diào)用關(guān)系被VxWorks封裝,MUX對網(wǎng)口驅(qū)動程序的調(diào)用 使用了 Vxworks網(wǎng)卡驅(qū)動的標準接口 ,網(wǎng)卡驅(qū)動對以太網(wǎng)卡的操作遵循802.3 標準。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通 技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進和潤飾, 這些改進和潤飾也應(yīng)^L為本發(fā)明的保護范圍。
權(quán)利要求
1. 一種單板的網(wǎng)卡的切換方法,其特征在于,所述單板上包括具有相同的媒體接入控制地址的第一網(wǎng)卡和第二網(wǎng)卡,所述第一網(wǎng)卡被綁定網(wǎng)際協(xié)議地址,所述方法包括發(fā)送步驟和接收步驟,其中發(fā)送步驟包括發(fā)送函數(shù)利用所述第一網(wǎng)卡進行數(shù)據(jù)發(fā)送;切換條件成立時,切換到所述第二網(wǎng)卡,利用所述第二網(wǎng)卡進行數(shù)據(jù)發(fā)送;接收步驟包括接收數(shù)據(jù)函數(shù)將接收到的數(shù)據(jù)返回所述第一網(wǎng)卡的網(wǎng)際協(xié)議層。
2. 如權(quán)利要求1所述的單板的網(wǎng)卡的切換方法,其特征在于,第一全局 指針和第二全局指針分別指向所述第一網(wǎng)卡和第二網(wǎng)卡的控制數(shù)據(jù)結(jié)構(gòu),所述發(fā)送步驟具體為發(fā)送函數(shù)使用所述第一全局指針作為入口參數(shù),利用所述第一網(wǎng)卡進行數(shù) 據(jù)發(fā)送;切換條件成立時,將所述發(fā)送函數(shù)的入口參數(shù)替換為所述第二全局指針, 利用所述第二網(wǎng)卡進行數(shù)據(jù)發(fā)送。
3. 如權(quán)利要求1所述的單板的網(wǎng)卡的切換方法,其特征在于,在所述接 收步驟中,當接收數(shù)據(jù)的中斷產(chǎn)生時,所述接收數(shù)據(jù)函數(shù)被調(diào)用,調(diào)用時的參 數(shù)由操作系統(tǒng)根據(jù)實際接收數(shù)據(jù)報的網(wǎng)卡填充為所述第 一全局指針或第二全 局指針,在所述接收數(shù)據(jù)函數(shù)從所述第 一全局指針或第二全局指針對應(yīng)的網(wǎng)卡上獲取到數(shù)據(jù)后, 一律將數(shù)據(jù)通過所述第一全局指針返回給網(wǎng)際協(xié)議層。
4. 如權(quán)利要求3所述的單板的網(wǎng)卡的切換方法,其特征在于,所述操作系統(tǒng)為VxWorks操作系統(tǒng)。
5. —種分布式系統(tǒng),包括主用主控板、備用主控板、單板; 其特征在于,所述單板包括具有相同的媒體接入控制地址的第一網(wǎng)卡和第二網(wǎng)卡,所 述第一網(wǎng)卡^皮綁定網(wǎng)際協(xié)i義地址;所述第 一 網(wǎng)卡與所述主用主控板之間具有第 一鏈路;所述第二網(wǎng)卡與所述備用主控板之間具有第二鏈路; 所述單板還包括鏈路狀態(tài)檢測模塊,用于檢測所述第一鏈路和第二鏈路的可用性; 鏈路切換模塊,用于在所述第 一 網(wǎng)卡和第二網(wǎng)卡間之間切換。
6. 如權(quán)利要求5所述的分布式系統(tǒng),其特征在于,第一全局指針和第二 全局指針分別指向所述第一網(wǎng)卡和第二網(wǎng)卡的控制數(shù)據(jù)結(jié)構(gòu),所述鏈路狀態(tài)檢 測模塊檢測到所述第一鏈路不可用時,所述鏈路切換模塊將發(fā)送函數(shù)的入口參 數(shù)替換為所述第二全局指針,利用所述第二網(wǎng)卡進行數(shù)據(jù)發(fā)送;所述鏈路狀態(tài)檢測模塊檢測到所述第一鏈路可用時,仍然通過所述發(fā)送函 數(shù)默認的所述第 一全局指針發(fā)送數(shù)據(jù)。
7. —種單板,其特征在于,包括具有相同的々某體接入控制地址的第 一 網(wǎng)卡和第二網(wǎng)卡,所述第 一 網(wǎng)卡被綁 定網(wǎng)際協(xié)議地址;所述第 一 網(wǎng)卡與主用主控板建立第 一鏈路; 所述第二網(wǎng)卡與備用主控板建立第二鏈路; 所述單板還包括鏈路狀態(tài)檢測模塊,用于檢測所述第一鏈路和第二鏈路的可用性; 鏈路切換模塊,用于在所述第 一 網(wǎng)卡和第二網(wǎng)卡間之間切換。
8. 如權(quán)利要求7所述的單板,其特征在于,第一全局指針和第二全局指 針分別指向所述第一網(wǎng)卡和第二網(wǎng)卡的控制數(shù)據(jù)結(jié)構(gòu),所述鏈路狀態(tài)檢測模塊 檢測到所述第一鏈路不可用時,所述鏈路切換模塊將發(fā)送函數(shù)的入口參數(shù)替換 為所述第二全局指針,利用所述第二網(wǎng)卡進行數(shù)據(jù)發(fā)送;所述鏈路狀態(tài)檢測模塊檢測到所述第一鏈路可用時,仍然通過所述發(fā)送函 數(shù)默認的所述第 一全局指針發(fā)送數(shù)據(jù)。
全文摘要
本發(fā)明提供了一種單板的網(wǎng)卡的切換方法、分布式系統(tǒng)及單板,其中,單板的網(wǎng)卡的切換方法包括單板上包括具有相同的媒體接入控制地址的第一網(wǎng)卡和第二網(wǎng)卡,所述第一網(wǎng)卡被綁定網(wǎng)際協(xié)議地址,所述方法包括發(fā)送步驟和接收步驟,其中發(fā)送步驟包括發(fā)送函數(shù)利用第一網(wǎng)卡進行數(shù)據(jù)發(fā)送;切換條件成立時,切換到第二網(wǎng)卡,利用第二網(wǎng)卡進行數(shù)據(jù)發(fā)送;接收步驟包括接收數(shù)據(jù)函數(shù)將接收到的數(shù)據(jù)返回第一網(wǎng)卡的網(wǎng)際協(xié)議層。本發(fā)明中對線卡單方面進行網(wǎng)口備份,在線卡的一個網(wǎng)卡出現(xiàn)故障時,自動切換到另一個網(wǎng)卡,從而提高板間通訊的穩(wěn)定性和健壯性,實現(xiàn)透明于上層應(yīng)用的網(wǎng)卡間的切換,不會對上層應(yīng)用產(chǎn)生影響。成本低、易于實現(xiàn)和維護。
文檔編號H04L12/26GK101436963SQ20081023892
公開日2009年5月20日 申請日期2008年12月4日 優(yōu)先權(quán)日2008年12月4日
發(fā)明者潛 仇 申請人:中興通訊股份有限公司