包,發(fā)送成功則更新從包發(fā)送計數(shù),否則記錄從包發(fā)送失敗,執(zhí)行步驟3. 5a,如果路由失敗 則記錄從包發(fā)送失敗,執(zhí)行步驟3. 5a; 步驟3. 4a,為主包進行路由,路由成功執(zhí)行步驟3. 2a,否則復(fù)制主包生成從包,構(gòu)建從 包專有IP選項,為從包進行路由,路由成功則經(jīng)從鏈路發(fā)送從包,發(fā)送成功則更新從包發(fā) 送計數(shù),否則記錄從包發(fā)送失敗,執(zhí)行步驟3. 5a,路由失敗則記錄從包發(fā)送失敗,執(zhí)行步驟 3. 5a; 步驟3. 5a,判斷主包和從包的發(fā)送情況,如果主包和從包均發(fā)送失敗,則返回發(fā)送失 敗,否則返回發(fā)送成功。
3. 根據(jù)權(quán)利要求2所述一種基于IP協(xié)議擴展的網(wǎng)絡(luò)冗余容錯方法,其特征在于,步驟 3. 2a中構(gòu)建主包專有IP選項或步驟3. 4a中構(gòu)建從包專有IP選項的具體實現(xiàn)為:獲取流 水序列號、本半輪發(fā)送時間戳和主從標(biāo)志按照通用IP選項的格式組成專有IP選項,相應(yīng)添 加到主包IP協(xié)議頭或從包IP協(xié)議頭。
4. 根據(jù)權(quán)利要求1-3任一項所述一種基于IP協(xié)議擴展的網(wǎng)絡(luò)冗余容錯方法,其特征在 于,步驟3. 2a中修改從包配置參數(shù)的具體實現(xiàn)為:將從包目的IP替換為接收端主機從網(wǎng)卡 IP,將由主包復(fù)制得來的從包的專有IP選項的主從標(biāo)志替換為從標(biāo)志。
5. 根據(jù)權(quán)利要求4所述一種基于IP協(xié)議擴展的網(wǎng)絡(luò)冗余容錯方法,其特征在于,還包 括數(shù)據(jù)包接收端的如下接收步驟: 步驟lb,接收端接收數(shù)據(jù)包,判斷所述數(shù)據(jù)包是否屬于冗余通信,如果屬于則執(zhí)行步 驟2b,否則執(zhí)行步驟5b; 步驟2b,解析接收到的數(shù)據(jù)包的專有IP選項,獲取所述數(shù)據(jù)包的流水序列號、本半輪 發(fā)送時間和主從標(biāo)志; 步驟3b,根據(jù)主從標(biāo)志,判斷所述數(shù)據(jù)包的類型,如果是主包,執(zhí)行步驟4b,如果是從 包,將從包的目的IP替換為接收端主機的主網(wǎng)卡IP,執(zhí)行步驟4b; 步驟4b,根據(jù)流水序列號和本半輪發(fā)送時間戳判斷所述數(shù)據(jù)包是否為重復(fù)包,如果是 則進行丟棄處理,否則接收所述數(shù)據(jù)包,結(jié)束處理流程; 步驟5b,通過協(xié)議棧正常接收所述數(shù)據(jù)包,結(jié)束處理流程。
6. 根據(jù)權(quán)利要求5所述一種基于IP協(xié)議擴展的網(wǎng)絡(luò)冗余容錯方法,其特征在于,還包 括, 步驟6b,對接收的冗余通信的數(shù)據(jù)包進行統(tǒng)計更新; 步驟7b,根據(jù)數(shù)據(jù)包統(tǒng)計數(shù)據(jù)對主從鏈路運行狀態(tài)進行檢查,發(fā)現(xiàn)故障進行告警; 步驟8b,將接收的數(shù)據(jù)包向上層協(xié)議投遞。
7. 根據(jù)權(quán)利要求6所述一種基于IP協(xié)議擴展的網(wǎng)絡(luò)冗余容錯方法,其特征在于,所述 步驟4b的具體實現(xiàn)為: 步驟4.lb,獲取所述數(shù)據(jù)包的流水序列號和本半輪發(fā)送時間戳; 步驟4. 2b,將本半輪發(fā)送時間戳與本地緩存的接收狀態(tài)緩存位圖比較,當(dāng)屬于前半輪 時,比較結(jié)果分三種情況, 當(dāng)本半輪發(fā)送時間戳小于JIFFIES_L時,丟棄所述數(shù)據(jù)包,返回1, 當(dāng)本半輪發(fā)送時間戳大于JIFFIES_L時,用本半輪發(fā)送時間戳更新JIFFIES_L,將接收 狀態(tài)緩存位圖前半部所有位清零,序列號對應(yīng)位圖位置置1,接收所述數(shù)據(jù)包,返回〇, 當(dāng)本半輪發(fā)送時間戳等于JIFFIES_L時,根據(jù)流水序列號查詢接收狀態(tài)緩存位圖的相 應(yīng)位,判斷查詢到的位圖位,若為0,則將其置為1,接收所述數(shù)據(jù)包,返回0,若為1,丟棄所 述數(shù)據(jù)包,返回1 ; 當(dāng)屬于后半輪時,比較結(jié)果分三種情況, 當(dāng)本半輪發(fā)送時間戳小于JIFFIES_H時,丟棄所述數(shù)據(jù)包,返回1, 當(dāng)本半輪發(fā)送時間戳大于JIFFIES_H時,用本半輪發(fā)送時間戳更新JIFFIES_H,將接收 狀態(tài)緩存位圖后半部所有位清零,序列號對應(yīng)位圖位置置1,接收所述數(shù)據(jù)包,返回〇, 當(dāng)本半輪發(fā)送時間戳等于JIFFIES_H時,根據(jù)流水序列號查詢接收狀態(tài)緩存位圖的相 應(yīng)位,判斷查詢到的位圖位,若為0,則將其置為1,接收所述數(shù)據(jù)包,返回0,若為1,丟棄所 述數(shù)據(jù)包,返回1。
8. 根據(jù)權(quán)利要求7所述一種基于IP協(xié)議擴展的網(wǎng)絡(luò)冗余容錯方法,其特征在于,根據(jù) 數(shù)據(jù)包統(tǒng)計數(shù)據(jù)對主從鏈路運行狀態(tài)進行檢查,發(fā)現(xiàn)故障進行告警的具體實現(xiàn)為: 步驟6.lb,判斷接收的數(shù)據(jù)包的類型,如果是主包,執(zhí)行步驟6. 2b,如果是從包,執(zhí)行 步驟6. 3b; 步驟6. 2b,主鏈路收包數(shù)加1,主鏈路報警計數(shù)清零,從鏈路報警計數(shù)加1,執(zhí)行步驟 6. 4b; 步驟6. 3b,從鏈路收包數(shù)加1,從鏈路報警計數(shù)清零,主鏈路報警計數(shù)加1,執(zhí)行步驟 6. 5b; 步驟6. 4b,判斷從鏈路報警計數(shù)是否達(dá)到從鏈路報警閾值,如果是則發(fā)出從鏈路故障 告警,否則結(jié)束; 步驟6. 5b,判斷主鏈路報警計數(shù)是否達(dá)到主鏈路報警閾值,如果是則發(fā)出主鏈路故障 告警,否則結(jié)束。
9. 根據(jù)權(quán)利要求8所述一種基于IP協(xié)議擴展的網(wǎng)絡(luò)冗余容錯方法,其特征在于,一個 所述數(shù)據(jù)包發(fā)送端的主機和一個所述數(shù)據(jù)包接收端的主機維護一個私有結(jié)構(gòu)體,所述數(shù)據(jù) 結(jié)構(gòu)包含了兩臺主機進行通信的流水序列號,每臺主機包括多個私有結(jié)構(gòu)體,并以哈希表 的形式進行存儲,其哈希值由兩臺主機的兩個主網(wǎng)卡IP地址計算得到,兩臺主機首次進行 冗余通信時,創(chuàng)建一個私有結(jié)構(gòu)體,初始化后加入哈希表,非首次通信時,查詢哈希表獲得 兩臺主機的IP對對應(yīng)的私有結(jié)構(gòu)體,進而獲取流水序列號。
10. -種基于IP協(xié)議擴展的網(wǎng)絡(luò)冗余容錯系統(tǒng),其特征在于,包括發(fā)送端和數(shù)據(jù)接收 端,所述發(fā)送端和接收端均包括主網(wǎng)卡和從網(wǎng)卡,所述發(fā)送端的主網(wǎng)卡和接收端的主網(wǎng)卡 通過主鏈路連接,所述發(fā)送端的從網(wǎng)卡和接收端的從網(wǎng)卡通過從鏈路連接;所述發(fā)送端包 括傳輸層發(fā)送模塊、數(shù)據(jù)包判斷模塊、冗余通信模塊、非冗余通信模塊和鏈路層發(fā)送模塊; 所述傳輸層發(fā)送模塊,其用于接收傳輸層發(fā)送的數(shù)據(jù)包; 所述數(shù)據(jù)包判斷模塊,其用于判斷所述數(shù)據(jù)包是否屬于冗余通信,如果是調(diào)用冗余通 信模塊,否則調(diào)用非冗余通信模塊; 所述冗余通信模塊,其用于通過IP協(xié)議擴展的網(wǎng)絡(luò)冗余流程處理所述數(shù)據(jù)包,調(diào)用鏈 路層發(fā)送模塊; 所述非冗余通信模塊,其用于通過協(xié)議棧正常流程處理所述數(shù)據(jù)包,調(diào)用鏈路層發(fā)送 模塊; 所述鏈路層發(fā)送模塊,其用于將所述數(shù)據(jù)包發(fā)送到鏈路層發(fā)送所述數(shù)據(jù)包。
11. 根據(jù)權(quán)利要求10所述一種基于IP協(xié)議擴展的網(wǎng)絡(luò)冗余容錯系統(tǒng),其特征在于,所 述數(shù)據(jù)接收端包括數(shù)據(jù)包接收模塊、數(shù)據(jù)包解析模塊、數(shù)據(jù)包處理模塊、重復(fù)包丟棄模塊和 鏈路故障報警模塊; 所述數(shù)據(jù)包接收模塊,其用于接收數(shù)據(jù)包,判斷所述數(shù)據(jù)包是否屬于冗余通信,如果屬 于則將數(shù)據(jù)包發(fā)送給數(shù)據(jù)包解析模塊,否則通過協(xié)議棧正常接收所述數(shù)據(jù)包; 所述數(shù)據(jù)包解析模塊,其用于解析接收到的數(shù)據(jù)包的專有IP選項,獲取所述數(shù)據(jù)包的 流水序列號和主從標(biāo)志; 所述數(shù)據(jù)包處理模塊,其用于根據(jù)主從標(biāo)志,判斷所述數(shù)據(jù)包的類型,如果是主包,直 接調(diào)用所述重復(fù)包丟棄模塊,如果是從包,將從包的目的IP替換為接收端主機的主網(wǎng)卡 IP,調(diào)用所述重復(fù)包丟棄模塊; 所述重復(fù)包丟棄模塊,其用于根據(jù)流水序列號和本半輪發(fā)送時間戳判斷所述數(shù)據(jù)包是 否為重復(fù)包,如果是則進行丟棄處理,否則接收所述數(shù)據(jù)包; 所述鏈路故障報警模塊,其用于根據(jù)數(shù)據(jù)包統(tǒng)計數(shù)據(jù)對主從鏈路運行狀態(tài)進行檢查, 發(fā)現(xiàn)故障進行告警。
【專利摘要】本發(fā)明涉及一種基于IP協(xié)議擴展的網(wǎng)絡(luò)冗余容錯方法及系統(tǒng),包括發(fā)送端接收傳輸層發(fā)送的數(shù)據(jù)包;判斷所述數(shù)據(jù)包是否屬于冗余通信,如果是則通過IP協(xié)議擴展的網(wǎng)絡(luò)冗余流程處理所述數(shù)據(jù)包,否則通過協(xié)議棧正常流程處理所述數(shù)據(jù)包,經(jīng)鏈路層發(fā)送所述數(shù)據(jù)包;接收端接收數(shù)據(jù)包,若所述數(shù)據(jù)包屬于冗余通信,則進行去重處理,否則通過協(xié)議棧正常接收所述數(shù)據(jù)包。本發(fā)明基于對IP協(xié)議進行擴展,完全基于軟件實現(xiàn),不依賴特殊設(shè)備,對網(wǎng)絡(luò)拓?fù)錈o要求,并具有單條鏈路故障時0延時切換特性,可滿足智能變電站等領(lǐng)域?qū)?shù)據(jù)通信的高實時性和可靠性的要求。
【IPC分類】H04L1-22
【公開號】CN104734825
【申請?zhí)枴緾N201510094345
【發(fā)明人】辛耀中, 陶洪鑄, 嚴(yán)亞勤, 宮敏, 彭志航, 王棟
【申請人】國家電網(wǎng)公司, 北京凝思科技有限公司
【公開日】2015年6月24日
【申請日】2015年3月3日