專利名稱:一種sctp路徑選擇方法
技術(shù)領(lǐng)域:
本發(fā)明屬于網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及一種SCTP路徑選擇方法。
背景技術(shù):
在SCTP (STREAM CONTROL TRANSMISSION PROTOCOL,流控制傳輸協(xié)議)中,一個偶聯(lián)建立多個路徑連接,采用單路徑傳輸(最優(yōu)路徑傳輸)時,選擇其中一個作為主路徑進行數(shù)據(jù)傳輸,其他備選路徑作為備份冗余;采用多路徑同時傳輸時,數(shù)據(jù)可以同時在多條路徑上同時傳輸。在SCTP單路徑傳輸中,數(shù)據(jù)傳輸只在主路徑上進行,備選路徑上通過心跳數(shù)據(jù)包(HeartBeat數(shù)據(jù)包)測試該路徑是否連通,但這只能保證備選路徑的連通性,無法測量路徑數(shù)據(jù)傳輸性能;同時由于默認心跳數(shù)據(jù)包在30秒的時間間隔后才會再次發(fā)送,備選路徑的連通性和數(shù)據(jù)傳輸性能都無法及時獲取。因此,SCTP進行主路徑切換和路徑選擇時,無法對備選路徑性能進行測量,制約了路徑切換的決策準確性,限制了數(shù)據(jù)傳輸效率的提高。同時,在SCTP多路徑同時傳輸中,如果各條路徑性能差異很大,將引起數(shù)據(jù)包嚴重亂序,容易導(dǎo)致接收端緩沖區(qū)溢出,因此有選擇地進行多路徑同時傳輸成為必要。在多路徑同時傳輸中,當前正在進行數(shù)據(jù)傳輸?shù)穆窂降臅r延和帶寬等性能指標很容易進行測量,但是在未進行數(shù)據(jù)傳輸?shù)穆窂街?,路徑性能的測量顯得困難。本發(fā)明針對SCTP單路徑傳輸和多路徑同時傳輸中對備選路徑的性能不能進行準確測量的問題,根據(jù)SCTP的特點,使用心跳數(shù)據(jù)包機制進行時延和帶寬測量。本發(fā)明能夠在不改變SCTP分組格式和控制流程的基礎(chǔ)上,準確測量備選路徑性能,并在此基礎(chǔ)上進行路徑選擇。
發(fā)明內(nèi)容
本發(fā)明的目的在于,針對SCTP單路徑傳輸和多路徑同時傳輸中對備選路徑的性能不能進行準確測量的問題,提出一種SCTP路徑選擇方法。為了實現(xiàn)上述目的,本發(fā)明提出的技術(shù)方案是,一種SCTP路徑選擇方法,其特征是所述方法包括步驟I :初始化參數(shù),包括設(shè)定主路徑的時延初值和帶寬初值,設(shè)定每條可達到的備選路徑的時延初值和帶寬初值,設(shè)定丟失錯誤閾值和路徑選擇評價參考值;步驟2 :任意選取一條備選路徑;步驟3 :發(fā)送端在該備選路徑上分別連續(xù)發(fā)送2個相同的心跳數(shù)據(jù)包,同時針對每個心跳數(shù)據(jù)包,在該備選路徑上啟動I個定時器;步驟4 :接收端在該備選路徑上收到2個心跳數(shù)據(jù)包后,針對每個心跳數(shù)據(jù)包,通過該備選路徑向發(fā)送端發(fā)送I個心跳確認數(shù)據(jù)包;步驟5 :發(fā)送端接收到2個心跳確認數(shù)據(jù)包后,檢測該備選路徑的2個定時器,如果任意I個定時器超時,則認為該備選路徑發(fā)生數(shù)據(jù)包丟失,執(zhí)行步驟6 ;否則,執(zhí)行步驟9 ;步驟6 :發(fā)送端丟棄在此之后該備選路徑收到的當前心跳數(shù)據(jù)包的心跳確認數(shù)據(jù)包,并使心跳確認數(shù)據(jù)包丟失次數(shù)加I ;步驟7 :判斷心跳確認數(shù)據(jù)包丟失次數(shù)與丟失錯誤閾值之間的大小,當心跳確認數(shù)據(jù)包丟失次數(shù)大于丟失錯誤閾值時,則執(zhí)行步驟8 ;否則,不改變備選路徑,返回步驟3 ;步驟8 :將該備選路徑標記為不可到達的備選路徑,選取一條未曾被選取過的備選路徑,返回步驟3;步驟9 :判斷接收到的2個心跳確認數(shù)據(jù)包是否為亂序的心跳確認數(shù)據(jù)包,如果接收到的2個心跳確認數(shù)據(jù)包是亂序的心跳確認數(shù)據(jù)包,則丟棄接收到的2個心跳確認數(shù)據(jù)包,不改變備選路徑,執(zhí)行步驟3 ;否則,執(zhí)行步驟10 ;
步驟10 :將該備選路徑標記為可到達的備選路徑,計算該可到達的備選路徑的時延和帶寬;步驟11 :判斷是否已經(jīng)計算出所有可到達的備選路徑的時延和帶寬,如果已經(jīng)計算出所有可到達的備選路徑的時延和帶寬,則執(zhí)行步驟12 ;否則,選取一條未曾被選取的備選路徑,返回步驟3;步驟12 :計算每條可到達的備選路徑的路徑評價值以及所有可到達的備選路徑的路徑評價值的最大值;步驟13 :根據(jù)每條可到達的備選路徑的路徑評價值確定可選擇的路徑。所述計算該可到達的備選路徑的時延利用公式iiJT: =RTTn+RTTn淇中 -
In 1 1 Cl!!
是第i條可到達的備選路徑的時延,RTTil和RTTi2分別是第i條可到達的備選路徑上發(fā)送端接收到的心跳確認數(shù)據(jù)包的時間和與之對應(yīng)的發(fā)送端發(fā)送的心跳數(shù)據(jù)包的時間間隔,i=1,2,. . .,η,η為可到達的備選路徑的總數(shù)。所述計算該可到達的備選路徑的帶寬利用公式其4 I第i條可
intern /" an
到達的備選路徑的帶寬,tintOTval是發(fā)送端接收到的2個心跳確認數(shù)據(jù)包的時間間隔,S是發(fā)送端發(fā)送的心跳數(shù)據(jù)包的大小。
ΨΙ'ΤP!所述計算每條可到達的備選路徑的路徑評價值利用公式乓+ ;其
K
Λ"., ^pri
中,Ei為第i條可到達的備選路徑的路徑評價值,RTTph是主路徑的時延,Bph是主路徑的帶寬,是第i條可到達的備選路徑的時延,是第i條可到達的備選路徑的帶寬,α和β分別為路徑評價參數(shù),且O彡α彡1,0彡β彡1,α+β=1。所述根據(jù)每條可到達的備選路徑的路徑評價值確定可選擇的路徑包括步驟101 :設(shè)定入選路徑集合為空集;步驟102 :根據(jù)公式6 計算每條可到達的備選路徑的路徑選擇評價值,根據(jù)
^best
公式故—計算主路徑的路徑選擇評價值;其中,θ i為第i條可到達的備選路徑的路徑
Λ ;
選擇評價值,Ei為第i條可到達的備選路徑的路徑評價值,Ebest為所有可到達的備選路徑的路徑評價值的最大值;步驟103 :判斷每條可到達的備選路徑的路徑選擇評價值與路徑選擇評價參考值的大小,當可到達的備選路徑的路徑選擇評價值大于等于路徑選擇評價參考值時,將該可到達的備選路徑加入入選路徑集合;判斷主路徑的路徑選擇評價值與路徑選擇評價參考值的大小,當主路徑的路徑選擇評價值大于等于路徑選擇評價參考值時,將主路徑加入入選路徑集合;步驟104 :將入選路徑集合中路徑選擇評價值最大的路徑設(shè)置為主路徑,此時入選路徑集合中的路徑即為可選擇的路徑。
本發(fā)明使用心跳數(shù)據(jù)包機制對備選路徑的性能進行準確測量,其能夠在不改變SCTP分組格式和控制流程的基礎(chǔ)上為SCTP的路徑切換和多路徑同時傳輸?shù)穆窂竭x擇提供支持。
圖I是本發(fā)明提供的SCTP路徑選擇方法流程圖。 圖2是路徑選擇流程圖。
具體實施例方式下面結(jié)合附圖,對優(yōu)選實施例作詳細說明。應(yīng)該強調(diào)的是,下述說明僅僅是示例性的,而不是為了限制本發(fā)明的范圍及其應(yīng)用。圖I是本發(fā)明提供的SCTP路徑選擇方法流程圖。圖I中,本發(fā)明提供的一種SCTP路徑選擇方法,其特征是所述方法包括步驟I :初始化參數(shù)。首先,為了描述方便,本實施例設(shè)定SCTP偶聯(lián)中共有三條路徑Pathi, i = 0,1,2 ;其中一條路徑設(shè)定為主路徑(Pathci)進行數(shù)據(jù)傳輸;備選路徑有兩條,分別為備選路徑I(Path1)和備選路徑2(path2)。設(shè)定主路徑時延初值RTTph,init和帶寬初值Bp^init ;設(shè)定備選路徑Path1的時延初值_和帶寬初值;設(shè)定備選路徑path2的時延初值
和帶寬初值。設(shè)定丟失錯誤閾值Lostthre和路徑選擇評價參考值0thr。步驟2 :任意選取一條備選路徑,如備選路徑Pathi, i = 1,2。步驟3 :發(fā)送端在備選路徑Pathi上分別連續(xù)發(fā)送2個相同的心跳數(shù)據(jù)包HeartBeatil和HeartBeati2,心跳數(shù)據(jù)包的大小為S。同時針對每個心跳數(shù)據(jù)包,在該備選路徑上分別啟動超時定時器Timer1和Timer2。步驟4 :接收端在路徑Pathi上收到心跳數(shù)據(jù)包HeartBeatil后,立即經(jīng)過路徑Pathi向發(fā)送端發(fā)送心跳確認數(shù)據(jù)包HeartBeatACKil ;接收端在路徑Pathi上收到心跳數(shù)據(jù)包HeartBeati2后,立即經(jīng)過路徑Pathi向發(fā)送端發(fā)送心跳確認數(shù)據(jù)包HeartBeatACKi2。步驟5 :發(fā)送端接收到2個心跳確認數(shù)據(jù)包后,檢測備選路徑的定時器,如果某一定時器超時,即Timeri ^ SRTTi時(RTTi為前一時刻測量得到的該備選路徑的時延),則認為該路徑發(fā)生數(shù)據(jù)包丟失,執(zhí)行步驟6 ;否則,執(zhí)行步驟9。步驟6 :發(fā)送端丟棄在此之后該備選路徑收到的當前心跳數(shù)據(jù)包的心跳確認數(shù)據(jù)包,并使心跳確認數(shù)據(jù)包丟失次數(shù)Losti加I。
步驟7 :判斷心跳確認數(shù)據(jù)包丟失次數(shù)Losti與丟失錯誤閾值Lostthre之間的大小,當心跳確認數(shù)據(jù)包丟失次數(shù)Losti大于丟失錯誤閾值Lostthre時,則執(zhí)行步驟8 ;否則,不改變備選路徑,返回步驟3。步驟8 :將該備選路徑標記為不可到達的備選路徑,選取一條未曾被選取過的備選路徑,返回步驟3。步驟9:判斷接收到的2個心跳確認數(shù)據(jù)包是否為亂序的心跳確認數(shù)據(jù)包。如果發(fā)送端在接收到心跳確認數(shù)據(jù)包HeartBeatACKil之前接收到心跳確認數(shù)據(jù)包HeartBeatACKi2,則說明這2個心跳確認數(shù)據(jù)包是亂序 的心跳確認數(shù)據(jù)包,丟棄接收到的2個心跳確認數(shù)據(jù)包,不改變備選路徑,執(zhí)行步驟3 ;否則,執(zhí)行步驟10。步驟10 :將該備選路徑標記為可到達的備選路徑,計算該可到達的備選路徑的時延和帶寬。
RTT 4_ RTT計算該可到達的備選路徑的時延利用公式iWI,=^其中,是
alt
第i條可到達的備選路徑的時延,RTTn/RTTi2是第i條可到達的備選路徑上發(fā)送端接收到的心跳確認數(shù)據(jù)包HeartBeatACKn/HeartBeatACKi2的時間和發(fā)送端發(fā)送的心跳數(shù)據(jù)包HeartBeatn/HeartBeati2的時間間隔,i = I, 2, . . . , η, η為可到達的備選路徑的總數(shù)。計算可到達的備選路徑的帶寬利用公式B, =7^;其中,/T是第i條可到達
Uittrva/alt
的備選路徑的帶寬,tinterval是發(fā)送端接收到的2個心跳確認數(shù)據(jù)包的HeartBeatACKil和HeartBeatACKi2的時間間隔,S是發(fā)送端發(fā)送的心跳數(shù)據(jù)包的大小。步驟11 :判斷是否已經(jīng)計算出所有可到達的備選路徑的時延和帶寬,如果已經(jīng)計算出所有可到達的備選路徑的時延和帶寬,則執(zhí)行步驟12 ;否則,選取一條未曾被選取的備選路徑,返回步驟3。對于本實施例,如果備選路徑Path1和備選路徑Path2都是可到達的備選路徑,則需要計算出備選路徑Path1和備選路徑path2的時延和帶寬。在計算出備選路徑Path1的時延和帶寬后,選擇出備選路徑path2,并返回步驟3,依照步驟3-11計算出備選路徑path2的時延和帶寬。步驟12 :計算每條可到達的備選路徑的路徑評價值以及所有可到達的備選路徑的路徑評價值的最大值。
IUT... B'.計算每條可到達的備選路徑的路徑評價值利用公式/(.唭中,Ei
為第i條可到達的備選路徑的路徑評價值,RTTpri是主路徑的時延,Bpri是主路徑的帶寬,二是第i條可到達的備選路徑的時延,是第i條可到達的備選路徑的帶寬,α和β分別為路徑評價參數(shù),且O彡a ^ 1,0 ^ β ^ I, α+β=1。計算所有可到達的備選路徑的路徑評價值的最大值利用公式匕、,=/;·,其中η為可到達的備選路徑的總數(shù)。步驟13 :根據(jù)每條可到達的備選路徑的路徑評價值確定可選擇的路徑,包括步驟101 :設(shè)定入選路徑集合為空集。
步驟102 :根據(jù)公式6 =·^計算每條可到達的備選路徑的路徑選擇評價值,根據(jù)
1^best
公式4 一計算主路的徑路徑選擇評價值;其中,θ i為第i條可到達的備選路徑的路徑
^best
選擇評價值,Ei為第i條可到達的備選路徑的路徑評價值,Ebest為所有可到達的備選路徑的路徑評價值的最大值。步驟103 :判斷每條可到達的備選路徑的路徑選擇評價值Θ i與路徑選擇評價參考值Gtto的大小,當可到達的備選路徑的路徑選擇評價值Θ i大于等于路徑選擇評價參考值Qtto時,將該可到達的備選路徑加入入選路徑集合;判斷主路徑的路徑選擇評價值Qtl與路徑選擇評價參考值Gtto的大小,當主路徑的路徑選擇評價值Qtl大于等于路徑選擇評價參考值時,將主路徑加入入選路徑集合。其中,OS1.0,在單路徑傳輸中·Θ thr=l. 0,在多路徑同時傳輸中,建議取值為Θ thr=0. 5。步驟104 :將入選路徑集合中路徑選擇評價值最大的路徑設(shè)置為主路徑,此時入選路徑集合中的路徑即為可選擇的路徑。本發(fā)明根據(jù)SCTP特有的備選路徑分組數(shù)據(jù)傳輸特點,使用心跳數(shù)據(jù)包機制進行時延和帶寬測量,在不改變SCTP分組格式和控制流程的基礎(chǔ)上,準確地測量備選路徑時延和帶寬值,為SCTP的路徑切換和多路徑同時傳輸?shù)穆窂竭x擇提供支持。以上所述,僅為本發(fā)明較佳的具體實施方式
,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)該以權(quán)利要求的保護范圍為準。
權(quán)利要求
1.一種SCTP路徑選擇方法,其特征是所述方法包括 步驟I :初始化參數(shù),包括設(shè)定主路徑的時延初值和帶寬初值,設(shè)定每條可達到的備選路徑的時延初值和帶寬初值,設(shè)定丟失錯誤閾值和路徑選擇評價參考值; 步驟2 :任意選取一條備選路徑; 步驟3 :發(fā)送端在該備選路徑上分別連續(xù)發(fā)送2個相同的心跳數(shù)據(jù)包,同時針對每個心跳數(shù)據(jù)包,在該備選路徑上啟動I個定時器; 步驟4 :接收端在該備選路徑上收到2個心跳數(shù)據(jù)包后,針對每個心跳數(shù)據(jù)包,通過該備選路徑向發(fā)送端發(fā)送I個心跳確認數(shù)據(jù)包; 步驟5 :發(fā)送端接收到2個心跳確認數(shù)據(jù)包后,檢測該備選路徑的2個定時器,如果任意I個定時器超時,則認為該備選路徑發(fā)生數(shù)據(jù)包丟失,執(zhí)行步驟6 ;否則,執(zhí)行步驟9 ;步驟6 :發(fā)送端丟棄在此之后該備選路徑收到的當前心跳數(shù)據(jù)包的心跳確認數(shù)據(jù)包,并使心跳確認數(shù)據(jù)包丟失次數(shù)加I ; 步驟7 :判斷心跳確認數(shù)據(jù)包丟失次數(shù)與丟失錯誤閾值之間的大小,當心跳確認數(shù)據(jù)包丟失次數(shù)大于丟失錯誤閾值時,則執(zhí)行步驟8 ;否則,不改變備選路徑,返回步驟3 ; 步驟8 :將該備選路徑標記為不可到達的備選路徑,選取一條未曾被選取過的備選路徑,返回步驟3; 步驟9 :判斷接收到的2個心跳確認數(shù)據(jù)包是否為亂序的心跳確認數(shù)據(jù)包,如果接收到的2個心跳確認數(shù)據(jù)包是亂序的心跳確認數(shù)據(jù)包,則丟棄接收到的2個心跳確認數(shù)據(jù)包,不改變備選路徑,執(zhí)行步驟3 ;否則,執(zhí)行步驟10 ; 步驟10 :將該備選路徑標記為可到達的備選路徑,計算該可到達的備選路徑的時延和帶寬; 步驟11 :判斷是否已經(jīng)計算出所有可到達的備選路徑的時延和帶寬,如果已經(jīng)計算出所有可到達的備選路徑的時延和帶寬,則執(zhí)行步驟12 ;否則,選取一條未曾被選取的備選路徑,返回步驟3 ; 步驟12 :計算每條可到達的備選路徑的路徑評價值以及所有可到達的備選路徑的路徑評價值的最大值; 步驟13 :根據(jù)每條可到達的備選路徑的路徑評價值確定可選擇的路徑。
2.根據(jù)權(quán)利要求I所述的SCTP路徑選擇方法,其特征是所述計算該可到達的備選路徑 ./Λ rI lrJ 7 \ rI^r的時延利用公式=^^^ ;其中,是第i條可到達的備選路徑的時延,RTTil和RTTi2分別是第i條可到達的備選路徑上發(fā)送端接收到的心跳確認數(shù)據(jù)包的時間和與之對應(yīng)的發(fā)送端發(fā)送的心跳數(shù)據(jù)包的時間間隔,i = 1,2,. . .,η,η為可到達的備選路徑的總數(shù)。
3.根據(jù)權(quán)利要求2所述的SCTP路徑選擇方法,其特征是所述計算該可到達的備選路徑的帶寬利用公式疋》其中《是第i條可到達的備選路徑的帶寬,tintOTval是發(fā)送端 mi ervaiall接收到的2個心跳確認數(shù)據(jù)包的時間間隔,S是發(fā)送端發(fā)送的心跳數(shù)據(jù)包的大小。
4.根據(jù)權(quán)利要求3所述的SCTP路徑選擇方法,其特征是所述計算每條可到達的備選路徑的路徑評價值利用公式乓
5.根據(jù)權(quán)利要求4所述的SCTP路徑選擇方法,其特征是所述根據(jù)每條可到達的備選路徑的路徑評價值確定可選擇的路徑包括 步驟101:設(shè)定入選路徑集合為空集; 步驟102 :根據(jù)公式6 計算每條可到達的備選路徑的路徑選擇評價值,根據(jù)公式 =·^一計算主路徑的路徑選擇評價值;其中,Θ i為第i條可到達的備選路徑的路徑選擇 評價值,Ei為第i條可到達的備選路徑的路徑評價值,Ebest為所有可到達的備選路徑的路徑評價值的最大值; 步驟103 :判斷每條可到達的備選路徑的路徑選擇評價值與路徑選擇評價參考值的大小,當可到達的備選路徑的路徑選擇評價值大于等于路徑選擇評價參考值時,將該可到達的備選路徑加入入選路徑集合;判斷主路徑的路徑選擇評價值與路徑選擇評價參考值的大小,當主路徑的路徑選擇評價值大于等于路徑選擇評價參考值時,將主路徑加入入選路徑集合; 步驟104 :將入選路徑集合中路徑選擇評價值最高的路徑設(shè)置為主路徑,此時入選路徑集合中的路徑即為可選擇的路徑。
全文摘要
本發(fā)明公開了網(wǎng)絡(luò)通信技術(shù)領(lǐng)域中的一種SCTP路徑選擇方法。包括初始化參數(shù);發(fā)送端發(fā)送心跳數(shù)據(jù)包;接收端接收心跳數(shù)據(jù)包并回復(fù)心跳確認數(shù)據(jù)包;發(fā)送端接收心跳確認數(shù)據(jù)包;判斷心跳確認數(shù)據(jù)包是否超時;測量備選路徑時延;判斷心跳確認數(shù)據(jù)包是否亂序;測量備選路徑帶寬;測量其他可達備選路徑的時延和帶寬;路徑評價;路徑選擇。本發(fā)明在不改變SCTP分組格式和控制流程的基礎(chǔ)上進行備選路徑時延和帶寬進行測量,并在此基礎(chǔ)上進行路徑評價和路徑選擇。
文檔編號H04L12/26GK102821048SQ20121028244
公開日2012年12月12日 申請日期2012年8月9日 優(yōu)先權(quán)日2012年8月9日
發(fā)明者李國棟, 劉琳, 李凱, 靳鵬飛, 羅晗, 宋自立, 仇玨, 宋志新, 李小龍, 黃琳華 申請人:華北電力大學(xué)