999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

核心網(wǎng)熱備份系統(tǒng)中SCTP協(xié)議的應(yīng)用與實現(xiàn)

2017-11-14 10:49:38王鑫鵬李晗王俊
移動通信 2017年19期

王鑫鵬+李晗+王俊

【摘 要】移動通信網(wǎng)絡(luò)中,EPC核心網(wǎng)服務(wù)器作為運行通信關(guān)鍵業(yè)務(wù)的設(shè)備,是保障系統(tǒng)安全且有效運作的基礎(chǔ),服務(wù)器的任何故障都有可能導(dǎo)致通信關(guān)鍵業(yè)務(wù)的癱瘓或中斷。為了提高通信系統(tǒng)的穩(wěn)定性,提出了兩臺服務(wù)器共同執(zhí)行同一任務(wù)的雙機熱備架構(gòu)模式,首先分析了OpenSAF方案的優(yōu)點,隨后介紹了SCTP備份的具體實現(xiàn)方案,最后實驗結(jié)果證明了基于SCTP協(xié)議的雙機熱備系統(tǒng)可以有效地防止服務(wù)器錯誤的發(fā)生,從而保證核心網(wǎng)長期、可靠的服務(wù)。

【關(guān)鍵詞】流控制傳輸協(xié)議 熱備份 雙機熱備

中圖分類號:TN929 文獻(xiàn)標(biāo)志碼:A 文章編號:1006-1010(2017)19-0034-07

Application and Implementation of SCTP Protocol in EPC Hot Backup System

WANG Xinpeng1, LI Han2, WANG Jun1

[Abstract] In mobile communication networks, as the device for running critical communication services, EPC sever is the basis to guarantee the safe and effective operation of the system. Any failure of the server would lead to paralysis or disruption of critical communications services. In order to improve the stability of communication system, a hot-standby mode that two servers jointly execute the same task was put forward. Firstly, the advantages of the OpenSAF scheme were analyzed. Then, the concrete implementation solution to SCTP backup was introduced. Finally, experimental results demonstrate the dual hot standby system based on SCTP protocol can effectively prevent the occurrence of server errors and guarantee the long-term and reliable service to the core network.

[Key words]SCTP hot backup dual hot backup

1 引言

雙機熱備即通過運行兩臺服務(wù)器協(xié)作完成一項服務(wù),其中一臺做Active(主設(shè)備)提供服務(wù),另一臺做Standby(從設(shè)備)實時備份業(yè)務(wù)數(shù)據(jù),保證Standby和Active任意時刻狀態(tài)一致,當(dāng)Active出現(xiàn)故障時,Standby快速接管服務(wù),以此來實現(xiàn)系統(tǒng)備份和冗余,從而保證系統(tǒng)的高可靠性。

EPC作為核心網(wǎng)重要的業(yè)務(wù)單元,需要非常可靠的通信鏈路保證,SCTP(流控制傳輸協(xié)議)是提供基于不可靠傳輸業(yè)務(wù)的協(xié)議之上的可靠的數(shù)據(jù)報傳輸協(xié)議。SCTP是在IP網(wǎng)絡(luò)上使用的一種可靠的通用傳輸層協(xié)議,它通過借鑒UDP(用戶數(shù)據(jù)報協(xié)議)的優(yōu)點解決了TCP(傳輸控制協(xié)議)的某些局限。SCTP提供的特性使socket(套接字)初始化的可用性、可靠性和安全性都得以提高,同時支持按序傳輸、防止攻擊、路徑監(jiān)控和路徑冗余等功能。相比之下,TCP是面向字節(jié)的,而SCTP是針對成幀的消息。SCTP作為信令通訊協(xié)議,被廣泛運用于核心網(wǎng)設(shè)備接口中。

2 總體設(shè)計方案

在EPC熱備系統(tǒng)中采用的是Active/Standby雙機熱備方式,當(dāng)Active服務(wù)器出現(xiàn)故障的時候,通過心跳診斷診測將Standby機器激活,保證應(yīng)用在短時間內(nèi)完全恢復(fù)正常使用。在通信系統(tǒng)運行過程中,出現(xiàn)任何網(wǎng)絡(luò)或者是主機故障都會自動觸發(fā)雙機熱備系統(tǒng)軟件的錯誤判定、故障隔離流程,備份服務(wù)器接管被中斷的服務(wù)并在最短的時間內(nèi)通過聯(lián)機恢復(fù)繼續(xù)執(zhí)行中斷的服務(wù)。圖1是熱備系統(tǒng)的結(jié)構(gòu)框圖,EPC熱備系統(tǒng)采用1+1備份模式,由兩臺設(shè)備組成,一臺為Active,另一臺為Standby。

Active連接到網(wǎng)絡(luò),對外提供服務(wù),通過SCTP與連接上的eNodeB進(jìn)行通信;每連接上一個eNodeB,Active內(nèi)部生成一個SCTP socket,通過這個socket收發(fā)數(shù)據(jù)。

Standby不處理任何業(yè)務(wù),設(shè)置成不與外網(wǎng)通信,只與Active相連;EPC服務(wù)器至少是雙網(wǎng)卡,其中一個網(wǎng)卡用于熱備通信,另外一個用于連接到網(wǎng)絡(luò);Standby和網(wǎng)絡(luò)通信的網(wǎng)卡處于down的狀態(tài)。

Active將自身狀態(tài)備份到Standby,在自身狀態(tài)發(fā)生改變時都進(jìn)行備份,包括SCTP socket的狀態(tài),理論上任意時刻Active和Standby保持狀態(tài)完全一致。

當(dāng)發(fā)生故障時,Active重啟,Standby將和網(wǎng)絡(luò)通信的網(wǎng)卡激活,IP地址設(shè)置成原來Active的IP,此時Standby利用備份的狀態(tài)重建socket,作為新的Active開始對外提供服務(wù);原來的Active重啟后,將自身狀態(tài)改成Standby。

即任意時刻Active和Standby互為鏡像,但只有Active連接網(wǎng)絡(luò)發(fā)生故障切換時,Standby變成Active,用同樣的IP地址連接網(wǎng)絡(luò),接管服務(wù),對外部而言整個備份切換都是透明的。endprint

本文描述的EPC系統(tǒng)里的SCTP熱備設(shè)計方案里Active和Standby的備份以及故障檢測和切換是基于開源的OpenSAF項目。OpenSAF主要有兩個作用:

(1)主從設(shè)備之間的通信都通過OpenSAF進(jìn)行,主設(shè)備在需要備份的地方調(diào)用OpenSAF的接口,將要備份的數(shù)據(jù)發(fā)送到從設(shè)備,從設(shè)備收到主設(shè)備的消息后更新系統(tǒng)狀態(tài)。

(2)當(dāng)主設(shè)備宕機后,OpenSAF立刻重啟主設(shè)備,同時為從設(shè)備配置和主設(shè)備一樣的IP,這樣網(wǎng)絡(luò)的數(shù)據(jù)即會發(fā)送到從設(shè)備,此時原來的從設(shè)備變成主設(shè)備提供服務(wù)。

為能獲取和備份SCTP socket的狀態(tài),必須使用用戶態(tài)的SCTP協(xié)議棧。直接調(diào)用Linux系統(tǒng)函數(shù)創(chuàng)建的SCTP socket使用的是內(nèi)核態(tài)的SCTP協(xié)議棧,內(nèi)核態(tài)不能獲取和設(shè)置SCTP socket的狀態(tài)。用戶態(tài)SCTP協(xié)議棧有開源的實現(xiàn)。

3 SCTP熱備架構(gòu)設(shè)計

3.1 SCTP在EPC中的實現(xiàn)

核心網(wǎng)EPC主要由MME(Mobility Management Entity,控制面功能)、SGW(Serving Gateway,用戶面功能)、PGW(PDN Gateway,邊界網(wǎng)關(guān))及PCRF(Policy and Charging Rules Function,策略和計費控制)等網(wǎng)元構(gòu)成。

圖2是EPC的各模塊間接口協(xié)議,從圖中可以看出,eNodeB(基站)和EPC間建立UDP鏈接傳輸數(shù)據(jù)流;建立SCTP鏈接,傳輸信令流(S1/X2信令)。

SCTP是一個面向連接的流傳輸協(xié)議,它可以在兩個端點之間提供穩(wěn)定、有序的數(shù)據(jù)傳遞服務(wù)。SCTP可以看做是TCP協(xié)議的改進(jìn),它繼承了TCP較為完善的擁塞控制并改進(jìn)TCP的一些不足之處:

SCTP與TCP的最大不同之處在于它是多宿主連接,而TCP是單地址連接。

一個TCP連接只能支持一個流,一個SCTP連接可以支持多個流。在SCTP協(xié)議中,流是指從一個SCTP端點到另一端點之間建立的單向邏輯通路,通常情況下所有用戶消息在流中按序傳遞。

SCTP的上述特性使得SCTP socket有非常多的狀態(tài)信息,因此不能直接調(diào)用SCTP的系統(tǒng)函數(shù)(內(nèi)核態(tài)的SCTP socket無法獲取狀態(tài)),必須在用戶態(tài)實現(xiàn)SCTP協(xié)議棧的功能。且提供下列接口:

(1)獲取SCTP socket的狀態(tài)接口:返回指定的SCTP socket的全部狀態(tài)數(shù)據(jù)。

(2)設(shè)置SCTP socket的狀態(tài)接口:將指定的SCTP socket的狀態(tài)設(shè)置成指定的狀態(tài)。

假定有一個SCTP socket A在網(wǎng)絡(luò)上收發(fā)SCTP數(shù)據(jù),創(chuàng)建一個新的SCTP socket B,使用上述接口獲取socket A的狀態(tài),然后用socket A的狀態(tài)數(shù)據(jù)去設(shè)置socket B,那么可以完全用socket B代替socket A收發(fā)數(shù)據(jù)。

EPC的SCTP實現(xiàn)可以分為兩部分:

(1)業(yè)務(wù)層:主要負(fù)責(zé)處理和MME等上層應(yīng)用之間的消息;保存關(guān)于SCTP鏈接的相關(guān)控制信息(uid、spid、地址等信息);負(fù)責(zé)打開關(guān)閉SCTP鏈接以及處理網(wǎng)絡(luò)上收到的數(shù)據(jù),實現(xiàn)中由sctp_task線程負(fù)責(zé)。

(2)傳輸層:負(fù)責(zé)從網(wǎng)絡(luò)上收發(fā)數(shù)據(jù),這里調(diào)用用戶態(tài)SCTP協(xié)議棧的接口來實現(xiàn)建立SCTP鏈接和從SCTP鏈接上收發(fā)數(shù)據(jù),由sctp_io_task線程負(fù)責(zé)。圖3是SCTP實現(xiàn)總體架構(gòu)。

3.2 OpenSAF在SCTP熱備中的應(yīng)用

OpenSAF是一個開源的熱備份解決方案,具有心跳檢測、進(jìn)程監(jiān)控、主備機通信和故障切換等功能,使用OpenSAF可以很方便實現(xiàn)熱備份功能。

OpenSAF對上層的數(shù)據(jù)結(jié)構(gòu)透明,不了解備份的具體數(shù)據(jù)。在OpenSAF內(nèi)部,用sectionid表示備份的數(shù)據(jù),每次備份數(shù)據(jù)時必須指定對應(yīng)的sectionid,相同sectionid的備份數(shù)據(jù)會覆蓋上一次備份的數(shù)據(jù)。

應(yīng)用層需要仔細(xì)設(shè)計備份數(shù)據(jù)對應(yīng)的sectionid,確保同一份數(shù)據(jù)的不同備份使用同樣的sectionid,否則備份到Standby的數(shù)據(jù)會出現(xiàn)重復(fù)或者錯誤。EPC熱備架構(gòu)圖如圖4所示:

使用OpenSAF后,EPC熱備可以只關(guān)注應(yīng)用層各個模塊的業(yè)務(wù):

(1)Active上各個模塊在自己的狀態(tài)數(shù)據(jù)改變時,備份數(shù)據(jù)到Standby。對于備份功能,各模塊是完全獨立的,直接調(diào)用OpenSAF的接口發(fā)送到Standby。

(2)Active通過OpenSAF發(fā)送給Standby的備份消息類別有3類:新增、更新和刪除。Standby根據(jù)收到的消息的類別處理備份信息,分別是將消息內(nèi)容新增到對應(yīng)的狀態(tài)數(shù)據(jù)里、更新狀態(tài)數(shù)據(jù)和從狀態(tài)數(shù)據(jù)里刪除消息內(nèi)容。

(3)當(dāng)發(fā)生故障時,OpenSAF會檢查到故障發(fā)生并重啟Active,將Standby切換為Active。此時Standby根據(jù)備份的狀態(tài)數(shù)據(jù)還原業(yè)務(wù)。如果沒有發(fā)生錯誤,Active所有狀態(tài)的改變都正確地備份,那么此時的Active的狀態(tài)和之前發(fā)生故障的Active完全一致,業(yè)務(wù)可以無縫切換。

4 SCTP備份的具體實現(xiàn)

4.1 SCTP備份的數(shù)據(jù)結(jié)構(gòu)

EPC作為SCTP的server端,在服務(wù)啟動后創(chuàng)建server socket監(jiān)聽來自eNodeB的鏈接。Endpoint結(jié)構(gòu)用于保存server socket業(yè)務(wù)層的狀態(tài)信息,例如監(jiān)聽地址、SCTP的控制參數(shù)等。

當(dāng)有一個eNodeB連接上后,會創(chuàng)建一個connected socket,用于EPC和此eNodeB的通信,assoc結(jié)構(gòu)用于保存connected socket業(yè)務(wù)層的狀態(tài)信息,例如鏈接狀態(tài)、本端和對端的地址、此鏈接的ID等。endprint

對于每個SCTP socket,在傳輸層都有一些狀態(tài)信息用于發(fā)送消息時組包,以及收消息時校驗,切換后必須保證這些信息一致,否則新建立的socket無法直接通信,收發(fā)SCTP數(shù)據(jù)包時會直接校驗失敗,斷開鏈接。這些狀態(tài)信息保存于socketinfo結(jié)構(gòu)中,包括:

(1)本端IP地址;

(2)對端IP地址;

(3)本端驗證標(biāo)簽(my vtag);

(4)對端驗證標(biāo)簽(peer vtag);

(5)傳輸順序號(TSN);

(6)對端接收窗口(rwnd);

(7)鏈接ID(associd);

(8)輸入和輸出流的數(shù)目;

(9)下一個要發(fā)的包的序列號;

(10)最后一次確認(rèn)過的包的序列號;

(11)流的傳輸順序號(TSN)。

3個數(shù)據(jù)結(jié)構(gòu)的關(guān)系如圖5所示。

4.2 SCTP備份點

SCTP備份的原則是只備份穩(wěn)態(tài),非穩(wěn)態(tài)的均不備份。即在SCTP四次握手完成鏈接建立后開始備份,之后每次發(fā)生改變都要進(jìn)行備份,在鏈接斷開后刪除。

對于業(yè)務(wù)層的數(shù)據(jù)結(jié)構(gòu),在發(fā)生改變時進(jìn)行備份。

對于傳輸層,用socketinfo結(jié)構(gòu)來存儲每個SCTP socket自身的狀態(tài)信息,socketinfo在每個socket每次收發(fā)數(shù)據(jù)后都要進(jìn)行備份。否則切換后,SCTP鏈接會因為數(shù)據(jù)包中的字段不匹配而斷開鏈接。

EPC作為SCTP的server端,EPC的SCTP模塊創(chuàng)建一個SCTP server socket,在配置的端口監(jiān)聽鏈接。由于server socket只監(jiān)聽,因此server socket不需要備份。

圖6為SCTP的信令流程,根據(jù)前文描述的備份點:

(1)EPC打開server socket后備份endpoint結(jié)構(gòu)。

(2)當(dāng)有eNodeB連接EPC時,4次握手完成,即EPC發(fā)出消息COOKIE ACK后備份對應(yīng)的assoc結(jié)構(gòu)。

(3)之后EPC收到或者發(fā)出每一條消息都需要備份socketinfo結(jié)構(gòu)。

(4)EPC在收到SHUTDOWN COMPLETE消息后備份assoc結(jié)構(gòu)和socketinfo結(jié)構(gòu),備份消息的類型是delete(刪除)。

4.3 Standby的處理

Standby收到備份的業(yè)務(wù)層數(shù)據(jù)(endpoint結(jié)構(gòu)和assoc結(jié)構(gòu))后,對這些數(shù)據(jù)進(jìn)行還原,還原后數(shù)據(jù)和Active保持一致。由于Standby沒有運行業(yè)務(wù),也沒有建立鏈接,因此沒有SCTP socket,所有狀態(tài)信息里的表示SCTP鏈接的socket字段先置為NULL,等切換為Active的時刻再創(chuàng)建socket結(jié)構(gòu)并賦值。

Standby收到備份的socketinfo結(jié)構(gòu)后,先將其保存到一個hash里。切換為Active時,會利用這些信息創(chuàng)建和恢復(fù)SCTP socket。

備份的所有數(shù)據(jù),Standby都必須保證其唯一性,因此每次收到備份數(shù)據(jù),需要用數(shù)據(jù)里的key去查找,如果有則更新,沒有才能創(chuàng)建。

當(dāng)Standby切換為Active的時候,需要恢復(fù)全部的socket,處理如下:

(1)對于server socket,用備份的endpoint結(jié)構(gòu)中的參數(shù)創(chuàng)建;server socket沒有備份內(nèi)部的狀態(tài)信息,無需還原。

(2)遍歷保存socket狀態(tài)信息的hash,對hash里每一個節(jié)點創(chuàng)建一個SCTP socket,然后用hash節(jié)點里保存的socket狀態(tài)信息還原socket的狀態(tài)。

5 實驗結(jié)果

根據(jù)本文設(shè)計的SCTP熱備,搭建好熱備環(huán)境后,分別啟動Active設(shè)備和Standby設(shè)備,一旦Active設(shè)備發(fā)生故障切換到Standby后,系統(tǒng)的業(yè)務(wù)完全不受影響,和外部網(wǎng)絡(luò)建立的SCTP鏈接正常通信,對端感知不到系統(tǒng)的變化。試驗結(jié)果如圖7所示。

圖7是一次完整的熱備切換試驗過程中在eNodeB的網(wǎng)口上的SCTP數(shù)據(jù)包,其中IP 172.16.137.86是EPC,IP 172.16.137.55是eNodeB。

從圖7可以看出,開始時,EPC是機器AdlinkTe_41:e1:39 (00:30:64:41:e1:39),之后發(fā)生了切換,EPC變成了機器AdlinkTe_41:e1:45 (00:30:64:41:e1:45),EPC的IP沒變,在這個過程中,SCTP鏈接沒有斷開,心跳正常進(jìn)行,eNodeB完全感知不到EPC的變化。

6 結(jié)束語

本文設(shè)計了基于OpenSAF的EPC設(shè)備的熱備解決方案,重點描述了EPC中SCTP模塊的熱備解決方案。使用本文描述的SCTP熱備解決方案,可以實現(xiàn)EPC發(fā)生故障后,自動切換到從設(shè)備,并迅速接管主設(shè)備的EPC業(yè)務(wù),保證連接的所有eNodeB的SCTP鏈接不中斷,eNodeB對EPC的切換完全無感知。

參考文獻(xiàn):

[1] 劉曉潔,黃永佳. Linux的雙機熱備系統(tǒng)的實現(xiàn)技術(shù)[J]. 計算機應(yīng)用研究, 2007,24(4): 255-257.

[2] IETF RFC 2960. Stream control transmission protocol[S]. 2000.

[3] 武建鋒.荊文芳. 雙機系統(tǒng)可靠性研究[J]. 微型電腦應(yīng)用, 2005(12): 13-14.

[4] 王延堯. 以太網(wǎng)技術(shù)與應(yīng)用[M]. 北京: 人民郵電出版社, 2007.

[5] 姜堅華. 雙機熱備系統(tǒng)的技術(shù)研究和具體實現(xiàn)[J]. 微型電腦應(yīng)用, 2004,20(3): 7-9.

[6] 鄭浩. 基于DRBD實現(xiàn)虛擬化系統(tǒng)的雙機熱備[J]. 通化師范學(xué)院學(xué)報, 2016,37(8): 69-71.

[7] ITU-T X214. Information technology-Open Systems Interconnection-Transport service definition[S]. 2000.

[8] 張鵬. 基于狀態(tài)檢測的服務(wù)器熱備方案設(shè)計與實現(xiàn)[J]. 電腦編程技巧與維護(hù), 2014(14): 76-77.

[9] 岳浩. Linux操作系統(tǒng)教程[M]. 北京: 機械工業(yè)出版社, 2005.

[10] 陳劍雄. 基于嵌入式Linux現(xiàn)場總線型開放式數(shù)控系統(tǒng)研究[D]. 福州: 福州大學(xué), 2006.endprint

主站蜘蛛池模板: 亚洲精品片911| 亚洲成人福利网站| 91精品网站| 国产高清在线丝袜精品一区| 福利视频久久| 97国产一区二区精品久久呦| 激情视频综合网| 一本大道香蕉中文日本不卡高清二区 | 午夜精品久久久久久久99热下载 | 日韩国产另类| 狼友视频国产精品首页| 国产精品一区二区无码免费看片| 中文字幕调教一区二区视频| 日韩成人在线一区二区| 国产综合在线观看视频| 黄色网在线| 精品国产免费人成在线观看| 色综合久久88色综合天天提莫| 手机在线免费不卡一区二| 毛片网站观看| 97成人在线视频| 欧美性天天| 日本不卡免费高清视频| 激情无码字幕综合| 91精品情国产情侣高潮对白蜜| 亚洲自拍另类| 国产精品美女在线| 狠狠色狠狠色综合久久第一次| 69av免费视频| 亚洲大学生视频在线播放| 四虎成人免费毛片| 99热这里只有精品国产99| 在线欧美一区| 欧美精品影院| 亚洲成a∧人片在线观看无码| 亚洲福利一区二区三区| 91综合色区亚洲熟妇p| 国产黄色免费看| 欧美性色综合网| 日韩久草视频| 亚洲熟妇AV日韩熟妇在线| 朝桐光一区二区| 亚洲精品日产AⅤ| 国内精品一区二区在线观看| 亚洲娇小与黑人巨大交| 国产视频久久久久| 大乳丰满人妻中文字幕日本| 国产美女丝袜高潮| 女人毛片a级大学毛片免费| 99热国产这里只有精品9九| 在线看片中文字幕| 蜜桃视频一区二区| 四虎免费视频网站| 国产一二三区在线| 国产网站免费观看| 欧美中出一区二区| 国产99精品久久| 亚洲成人动漫在线观看| 青青草原国产av福利网站 | 99色亚洲国产精品11p| 东京热一区二区三区无码视频| 欧美国产在线看| 日韩毛片视频| 午夜视频在线观看免费网站 | 亚欧成人无码AV在线播放| 亚洲无码视频图片| 国产成人h在线观看网站站| 91精品免费久久久| 亚洲男人在线| 亚洲精品国产成人7777| 欧美一区中文字幕| 色噜噜狠狠狠综合曰曰曰| 国产区人妖精品人妖精品视频| 四虎永久在线精品国产免费| 伊人AV天堂| 麻豆国产精品视频| 激情综合图区| 在线免费无码视频| 成人免费一级片| 四虎成人免费毛片| 久久情精品国产品免费| 麻豆精选在线|