麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種基于白名單實現多網口共享IP地址的冗余通信方法與流程

文檔序號:11156579閱讀:745來源:國知局
一種基于白名單實現多網口共享IP地址的冗余通信方法與制造工藝

本發明涉及一種基于白名單實現多網口共享IP地址的冗余通信方法。



背景技術:

在電力系統智能設備領域,經常出現一種特殊多網通訊的情況:要求一個裝置網絡多端口為相同IP地址和MAC地址,且多端口為熱備份,實際應用的組網方式如下圖1所示。

普通裝置正常情況下無法提供多個相同IP地址、相同MAC地址的網卡。在操作系統支持下,可以設置雙網卡綁定(bond)方式運行,這樣可以提供相同IP地址和MAC地址的雙網,但是要求裝置在硬件上支持雙網卡且操作系統支持雙網綁定共組方式,這樣會導致設計復雜,成本增加,而且這種方法無法實現多網口共享相同IP地址的這種模式。



技術實現要素:

針對上述問題,本發明提供一種基于白名單實現多網口共享IP地址的冗余通信方法,實現裝置多網口為相同IP地址和MAC地址的情況下進行通訊。

為實現上述技術目的,達到上述技術效果,本發明通過以下技術方案實現:

一種基于白名單實現多網口共享IP地址的冗余通信方法,其特征在于,包括如下步驟:

步驟1、網卡驅動檢測指定網卡多個端口的鏈接狀態,并根據多網切換邏輯選擇當前網卡工作端口;

步驟2、設置當前網卡工作端口對應的白名單,所述白名單里寫入當前網卡工作端口允許接收的MAC地址,同時清除其他端口對應的白名單;

步驟3、當接收數據時:當前網卡工作端口僅接收目的地址列入白名單的報文,其余數據直接丟棄,且禁止其他端口接收數據;

當發送數據時:網卡驅動指定從當前工作端口發送數據。

優選,當當前網卡工作端口發生斷鏈時,網卡驅動根據多網切換邏輯自動切換到未發生斷鏈的端口,同時設置該端口對應的白名單,清除其他端口的白名單。

優選,多網切換邏輯為:

1)將網卡的多個端口分別按照優先級由高到低降序排列;

2)選擇連接狀態為正常且優先級最高的端口為當前網卡工作端口;

3)當當前網卡工作端口的連接狀態為異常時,進入步驟2)選擇新的當前網卡工作端口。

優選,多網切換邏輯還包括:當優先級高于當前網卡工作端口的端口連接狀態由異常恢復到正常時,則切換該端口為新的當前網卡工作端口。

本發明的有益效果是:

通過上述方法僅采用一個網卡就可以實現裝置多網口為相同IP地址和MAC地址的情況下的冗余通訊,這種方案不依賴于具體的硬件,大大降低了設計的復雜程度和硬件的設計、生產成本,通信高效、靈活。

附圖說明

圖1是特殊多網通訊情況下的實際應用的組網方式示意圖;

圖2是本發明網卡、FPGA、phy的關系示意圖;

圖3是本發明具體實施例里A、B雙網基于白名單雙網切換方法的總體架構示意圖;

圖4是本發明具體實施例里A、B雙網的切換邏輯示意圖。

具體實施方式

下面結合附圖和具體的實施例對本發明技術方案作進一步的詳細描述,以使本領域的技術人員可以更好的理解本發明并能予以實施,但所舉實施例不作為對本發明的限定。

如圖1所示,在電力系統智能設備領域,經常出現一種特殊多網通訊的情況:要求一個裝置網絡多個端口為相同IP地址和MAC地址,且多端口為熱備份。一種基于白名單實現多網口共享IP地址的冗余通信方法,包括如下步驟:

步驟1、網卡驅動檢測指定網卡多個端口的鏈接狀態,并根據多網切換邏輯選擇當前網卡工作端口。

步驟2、設置當前網卡工作端口對應的白名單,所述白名單里寫入當前網卡工作端口允許接收的MAC地址,使能從該端口接收數據,同時清除其他端口對應的白名單。

步驟3、數據的收發:

當接收數據時:當前網卡工作端口僅接收目的地址列入白名單的報文,其余數據直接丟棄,且禁止其他端口接收數據;

當發送數據時:網卡驅動指定從當前工作端口發送數據。

以圖2中的網卡、FPGA、phy(物理層接口,也即網卡的多個端口,每個端口對應一個MAC地址)的關系簡圖為例,網卡和多個端口之間通過FPGA進行連接,CPU的網卡驅動設置FPGA允許接收的MAC地址過濾白名單,FPGA根據網卡驅動設置的白名單選擇對應的端口phy接收數據,根據網卡驅動指定的發送端口phy發送數據。

FPGA根據網卡驅動設置的白名單選擇對應的端口接收數據,根據網卡驅動指定的發送端口(即當前網卡工作端口)發送數據。具體的做法為:

(1)接收數據:FPGA匯總數據根據預設的白名單進行過濾,非本設備需要接收的數據直接丟棄。

(2)發送數據:FPGA發送數據的時候,根據網卡驅動選定的端口(即當前網卡工作端口)發送數據,其中,發送數據的過程中,將本端口對應的MAC地址寫入數據報文中。

白名單為一種數據過濾手段,只有設置了白名單的端口才能夠接收數據,只有目的地址加入了白名單的報文才能夠被接收,否則數據會全部被過濾掉,直接進行丟棄處理。

其中,在通訊過程中,當當前網卡工作端口發生斷鏈時,網卡驅動根據多網切換邏輯自動切換到未發生斷鏈的端口,同時設置該端口對應的白名單,清除其他端口的白名單。

一般的,多網切換邏輯為:

1)將網卡的多個端口分別按照優先級由高到低降序排列;

2)選擇連接狀態(link狀態)為正常且優先級最高的端口為當前網卡工作端口;

3)當當前網卡工作端口的連接狀態為異常時,進入步驟2)選擇新的當前網卡工作端口;

4)當優先級高于當前網卡工作端口的端口連接狀態由異常恢復到正常時,則切換該端口為新的當前網卡工作端口。

下面舉例說明:

(1)網卡的多個端口的優先級由A網端口到N網端口依次下降,A網端口優先級最高;

(2)當A網端口link狀態正常時,選擇A網端口工作;

(3)當A網端口link狀態異常時,如果B網端口正常,選擇B網端口工作;

(4)當A網端口link狀態異常時,如果B網端口也異常,選擇C網端口工作,其他端口的邏輯以此類推;

(6) 如果所有端口都出現link狀態異常時,選擇A網端口工作;

(6)當優先級低的端口工作過程中,優先級高的端口link狀態恢復正常,則會切換到優先級高的端口工作。比如:當目前處于B網端口工作時,如果A網端口恢復正常,則切換到A網端口工作。

網卡驅動檢測同一網卡的多個端口的鏈接狀態的具體步驟如下:

A、通過命令字,設置參與多網切換的端口;

B、通過命令字,獲取參與運行的多個網絡端口的連接狀態;

C、通過命令字,獲取當前正在進行通信的端口。

檢測到端口的工作狀態之后,根據多網切換邏輯設置當前網卡工作端口。

如圖3和4所示,假設網卡對應A和B兩個端口,即A、B雙網,則,基于白名單實現雙網口共享IP地址的冗余通信方法,具體為:

步驟A,網卡驅動檢測指定網卡雙端口的鏈接狀態,然后根據雙網切換邏輯選擇當前網卡工作端口,設置該工作端口FPGA允許接收MAC地址過濾白名單,使能從該端口接收數據,同時清除另一端口接收白名單,禁止另一端口接收數據。

步驟B:當當前網卡工作端口網絡發生斷鏈時,雙網切換邏輯自動切換到另外一個端口,同時設置該端口FPGA接收MAC地址對應的新的白名單,清除之前的白名單。

上述中雙網切換邏輯為:

1、當A網link狀態正常時,選擇A網工作。

2、當A網link狀態異常時,如果B網正常,選擇B網工作。

3、當A網link狀態異常時,如果B網也異常,選擇A網工作。

4、當目前處于B網工作時,如果A網恢復正常,則切換到A網工作。

步驟C,網卡驅動發送數據時指定從當前工作端口發送數據。

其中,網卡驅動檢測指定網卡雙端口的鏈接狀態的步驟如下:

(1)通過命令字0x600A,設置參與雙網切換的端口,具體的含義用一個字節(8位)的數據來表示,參與的端口在其位置上置1,否則置0。如phy端口A和phy端口B參與雙網切換,則設置為0x03(0x00000011);如phy端口C和phy端口D參與雙網切換,則設置為0x0c(0x00001100)。

(2)通過命令字0x600B,獲取參與運行的兩端口phy端口A或phy端口B的link狀態,用bit0和bit1分別來表示phy端口A狀態和phy端口B的工作狀態,其中0:表示不工作,1:表示工作。

(3)通過命令字0x600C,獲取參與雙網切換的通信端口,即:獲取當前正在進行通信的端口。具體的含義用一個字節(8位)的數據來表示。如phy端口A和phy端口B參與雙網切換,此時phy端口A正在通信工作,則此時返回0,phy端口B正在通信工作,則此時返回1,phy端口C正在通信工作,則此時返回2,phy端口D正在通信工作,則此時返回3。

(4)檢測到端口的工作狀態之后,根據雙網切換邏輯示意圖(如圖4所示)設置該工作端口FPGA接收的白名單,并指定該工作端口發送數據。

FPGA根據網卡驅動設置的白名單選擇對應的端口接收數據,根據網卡驅動指定的發送端口發送數據。具體的做法為:

1、接收數據:FPGA匯總數據根據預設的白名單進行過濾,非本設備需要接收的數據直接丟棄。

2、發送數據:FPGA發送數據的時候,根據網卡驅動選定的端口(即當前網卡工作端口)發送數據。

采用上述方案后,可以解決一般雙網模式難以實現的一種特殊狀況,僅采用一個網卡就可以實現裝置多網口為相同IP地址和MAC地址的情況下的通訊,通信高效、靈活。

以上僅為本發明的優選實施例,并非因此限制本發明的專利范圍,凡是利用本發明說明書及附圖內容所作的等效結構或者等效流程變換,或者直接或間接運用在其他相關的技術領域,均同理包括在本發明的專利保護范圍內。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 措勤县| 上杭县| 姜堰市| 惠州市| 五常市| 栾城县| 海淀区| 福建省| 宜春市| 祁门县| 资源县| 内乡县| 深水埗区| 昌黎县| 金川县| 托克逊县| 宜春市| 晋宁县| 南开区| 开化县| 长葛市| 荣昌县| 绥棱县| 新野县| 沙湾县| 淮南市| 屏东县| 西乡县| 区。| 比如县| 平舆县| 三明市| 海林市| 遵化市| 东平县| 潜江市| 邵阳县| 应用必备| 崇文区| 吴旗县| 甘德县|