《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 業(yè)界動(dòng)態(tài) > 一種提高吞吐量的SCTP協(xié)議改進(jìn)

一種提高吞吐量的SCTP協(xié)議改進(jìn)

《電子技術(shù)應(yīng)用》2007年第1期
2007-11-09
作者:張 瑩1, 姚遠(yuǎn)程1, 肖宇鋒1

摘?要:根據(jù)SCTP協(xié)議多宿的特性,,提出一種基于可用帶寬的Primary destination address選擇策略方案,可以提高吞吐量并降低丟包率,,在仿真平臺(tái)NS2上得到了改進(jìn)算法的驗(yàn)證,。
關(guān)鍵詞:SCTP? 多宿? 可用帶寬?? 仿真

?

IP電話的發(fā)展使通過(guò)信令" title="信令">信令網(wǎng)關(guān)在IP網(wǎng)絡(luò)中組建IP信令網(wǎng)成為可能,。通過(guò)已有的數(shù)據(jù)網(wǎng)絡(luò)處理語(yǔ)音,、數(shù)據(jù)、信令,可以減少建立和維護(hù)多個(gè)網(wǎng)絡(luò)的費(fèi)用,。在PSTN中,NO.7信令仍有重要作用,。IETF的信令傳輸工作組(SIGTRAN)為了在IP網(wǎng)絡(luò)上傳輸NO.7信令制定了新的流控制傳輸協(xié)議" title="傳輸協(xié)議">傳輸協(xié)議SCTP(Stream Control Transfer Protocol:RFC2960)[1][7],主要用于IP網(wǎng)絡(luò)中承載PSTN信令,。由于SCTP具有適合Internet數(shù)據(jù)和多媒體傳輸 的特性,,并可能成為下一代的傳輸層協(xié)議,因此SCTP成為當(dāng)前研究的熱點(diǎn)。
1 SCTP協(xié)議介紹
1.1 SCTP協(xié)議簡(jiǎn)介

SCTP被看做“超級(jí)TCP”,,它不僅沿用了TCP的一些性質(zhì),能夠提供可靠傳輸服務(wù),確保數(shù)據(jù)無(wú)誤按序地通過(guò)網(wǎng)絡(luò),,而且擴(kuò)展了TCP的許多功能。
SCTP與TCP的最大" title="最大">最大區(qū)別就是SCTP采用了多歸屬(Multi-homing)[2]的機(jī)制,,因此SCTP中的偶聯(lián)概念要比TCP中的連接概念含義更廣,。一個(gè)偶聯(lián)的兩個(gè)SCTP端點(diǎn)都向?qū)Ψ教峁┮粋€(gè)SCTP端口號(hào)和一個(gè)IP地址列表,每個(gè)偶聯(lián)都由兩個(gè)SCTP端口號(hào)和兩個(gè)IP地址列表來(lái)識(shí)別,,多歸屬的端點(diǎn)可以接入到不同類型的網(wǎng)絡(luò),。所以SCTP能在兩個(gè)端點(diǎn)間建立穩(wěn)固的通信。一個(gè)SCTP偶聯(lián)可以包含多個(gè)可能的起源與目的地址的組合,,這些組合包含在每個(gè)端點(diǎn)的傳送地址列表中。這樣使得一個(gè)偶聯(lián)可以在多個(gè)傳輸路徑間選擇和切換,,提高了網(wǎng)絡(luò)容錯(cuò)的能力,,從而在SCTP中一個(gè)多歸屬的主機(jī)會(huì)因?yàn)榫W(wǎng)絡(luò)物理上的故障導(dǎo)致通信中斷的情況將很少發(fā)生。
SCTP支持關(guān)聯(lián)的多流(Multiple Streams),,允許把一個(gè)關(guān)聯(lián)的數(shù)據(jù)流分成多個(gè)子流來(lái)同時(shí)處理,,在傳輸過(guò)程中,只需保持子流內(nèi)部有序而不必保持整個(gè)數(shù)據(jù)流的順序,,子流不會(huì)因?yàn)閭鬏攩?wèn)題而阻塞其他子流,,保持互不干擾,這樣就避免了其他流中數(shù)據(jù)丟失造成的隊(duì)頭阻塞情況,;支持對(duì)SYN泛洪攻擊的抵抗,;用戶數(shù)據(jù)無(wú)錯(cuò)誤無(wú)重復(fù)地確認(rèn)傳輸通過(guò)分組序列間隙報(bào)告和選擇性重發(fā)來(lái)實(shí)現(xiàn);SCTP采用了與TCP相似的流量控制和擁塞控制算法,,引用了慢啟動(dòng)機(jī)制,;在數(shù)據(jù)分組的確認(rèn)和重傳機(jī)制上,采用了選擇性確認(rèn),,在一定程度上提高了傳輸效率,。
1.2 SCTP工作方式
SCTP是一個(gè)面向連接的傳輸協(xié)議,在傳輸數(shù)據(jù)前,,網(wǎng)絡(luò)兩端需要建立一個(gè)通信連接,,在SCTP中,,這個(gè)連接稱為關(guān)聯(lián)(Association)。圖1是一個(gè)關(guān)聯(lián)的例子,。

?


所謂的關(guān)聯(lián)可以這樣表述:Association={[10.13.61.10,161.10.31.20:101]:[128.10.11.2:201] },,這樣一個(gè)SCTP的關(guān)聯(lián)可以擁有兩條端到端的通信路徑,一條是10.13.61.10到128.10.11.2,,另一條是161.10.31.20到128.10.11.2,,這就體現(xiàn)了SCTP的多宿性。當(dāng)關(guān)聯(lián)建立起來(lái)后,,協(xié)議會(huì)把數(shù)據(jù)流分成多個(gè)子流,,通過(guò)某條路徑來(lái)傳輸各子流的數(shù)據(jù)。當(dāng)前路徑不能使用時(shí),,關(guān)聯(lián)會(huì)自動(dòng)查找自己的路徑列表,,確定一條可用的路徑來(lái)繼續(xù)傳輸。
2 基于可用帶寬測(cè)試的改進(jìn)方法
2.1改進(jìn)原理
SCTP作為一種新興的,、并未廣泛應(yīng)用的協(xié)議,,存在很多可以改進(jìn)的地方。本文針對(duì)其多宿的特點(diǎn)提出了一種性能改進(jìn)的方法和基于可用帶寬的Primary destination address選擇策略,,以提高SCTP的傳輸性能,。
如果能在關(guān)聯(lián)建立初始化或需要調(diào)整Primary destination address時(shí)選擇一個(gè)可用帶寬最大的通信連接,就能夠提高傳輸?shù)乃俣?,并且?dòng)態(tài)地根據(jù)網(wǎng)絡(luò)情況適當(dāng)?shù)卣{(diào)整通信路徑,。圖2給出了TCP(Reno)、SCTP和改進(jìn)SCTP的一個(gè)比較,??v坐標(biāo)表示當(dāng)前連接所占用的帶寬,橫坐標(biāo)表示時(shí)間,。對(duì)于某一條網(wǎng)絡(luò)路徑,,在擁塞點(diǎn)前,三個(gè)傳輸協(xié)議的動(dòng)作基本相同,。擁塞出現(xiàn)后,,三個(gè)協(xié)議都會(huì)采用相似的擁塞控制算法,調(diào)整速率,,占用的帶寬都會(huì)顯著減少,。當(dāng)擁塞非常嚴(yán)重,原來(lái)路徑很難正常使用時(shí),,SCTP會(huì)自動(dòng)調(diào)整通信連接,,即轉(zhuǎn)移本關(guān)聯(lián)目的地址。而改進(jìn)SCTP會(huì)根據(jù)現(xiàn)有的幾個(gè)可用連接,,選擇一條可用帶寬最大的通信連接,,所以占用帶寬在調(diào)整后不會(huì)小于一般SCTP占用帶寬,。對(duì)于TCP,最幸運(yùn)的情況是TCP不會(huì)中斷,,而是一直維持一個(gè)占用帶寬很小的通信連接,。所以,在調(diào)整點(diǎn)后,,可以看到出現(xiàn)了三個(gè)明顯的分支,。

?


2.2 改進(jìn)方案
改進(jìn)SCTP的方案首先確定Primary destination address調(diào)整時(shí)機(jī),其次確定一個(gè)及時(shí)而且比較準(zhǔn)確的可用帶寬測(cè)試模塊,,選擇可用帶寬最大的通信連接,。
本文考慮了三個(gè)Primary destination address調(diào)整時(shí)機(jī):SCTP關(guān)聯(lián)初始化、SCTP關(guān)聯(lián)正在使用的連接遇到嚴(yán)重的網(wǎng)絡(luò)擁塞和關(guān)聯(lián)正在使用的連接出現(xiàn)故障中斷,。SCTP關(guān)聯(lián)初始化時(shí),,通過(guò)測(cè)試現(xiàn)有幾個(gè)連接的可用帶寬,找到對(duì)應(yīng)最大帶寬的傳輸接口" title="傳輸接口">傳輸接口來(lái)設(shè)定Primary destination address,。關(guān)聯(lián)正在使用的連接遇到嚴(yán)重的網(wǎng)絡(luò)擁塞時(shí),,如果擁塞持續(xù)時(shí)間過(guò)長(zhǎng),就應(yīng)該考慮改變傳輸接口,,以提高傳輸速度,。關(guān)聯(lián)正在使用的連接出現(xiàn)故障中斷時(shí),SCTP默認(rèn)方式是尋找一個(gè)可用的通信連接,;而改進(jìn)的方式是在測(cè)試可用帶寬后,,選擇一個(gè)帶寬最大的連接,找到對(duì)應(yīng)最大帶寬的傳輸接口來(lái)設(shè)定Primary destination address,。
帶寬測(cè)試模塊用來(lái)發(fā)現(xiàn)一個(gè)可用帶寬最大的通信連接,作為改進(jìn)SCTP的一個(gè)輔助模塊應(yīng)該在較短時(shí)間內(nèi)發(fā)現(xiàn)可用帶寬,。這里需要使用自加載周期性探測(cè)流SLoPS(Self-Loading Periodic Stream)帶寬測(cè)試算法,如工具pathload[3][4],、pathchirp[5]的算法等來(lái)設(shè)計(jì)測(cè)試模塊。根據(jù)現(xiàn)有連接的可用帶寬,,選擇可用帶寬最大的通信連接,。
2.3方案實(shí)現(xiàn)
調(diào)整SCTP源代碼如下:
void SctpAgent::RtxMarkedChunks(SctpRtxLimit_E eLimit)
{
……
?//原SCTP調(diào)整Primary destination的方法,注釋掉
//spRtxDest = GetNextDest(spCurrBuffNodeData->spDest);?
//新的Primary destination設(shè)置方法,,上述一行代碼替代為下面代碼
spRtxDest = GetInterfaceMaxAW();
……
}
SctpDest_S SctpAgent::GetInterfaceMaxAW()
{
(1)掃描除當(dāng)前Primary destination外的每個(gè)接口,,在其上執(zhí)行自載流折半查找算法BinarySearchSL(),測(cè)試多個(gè)接口對(duì)應(yīng)路徑的可用帶寬,;
(2) 從測(cè)試結(jié)果中找出可用帶寬最大的路徑,,返回該路徑對(duì)應(yīng)的目的接口;
}
long BinarySearchSL(SctpDest_S *)
{
//自載流折半查找算法實(shí)現(xiàn),;
}
3 實(shí)驗(yàn)仿真
仿真軟件采用NS2[6],,版本為2.29,。仿真網(wǎng)絡(luò)結(jié)構(gòu)如圖3,網(wǎng)絡(luò)中布置的兩個(gè)主機(jī)H0和H1都是多宿的,,H0配置有if0,、if1和if2三個(gè)接口,H1配置有if0,、if1和if2三個(gè)接口,。另外還有6個(gè)中間節(jié)點(diǎn)N0、N1,、N2,、N3、N4和N5,。這樣,,在主機(jī)H0與H1之間形成了三條路徑:(H0_if0,N0,,N3,,H1_if0)、(H0_if1,,N1,,N4,H1_if1)和(H0_if2,,N2,,N5,H1_if2),。
?H0 向H1發(fā)送300KB的數(shù)據(jù),,應(yīng)用層采用FTP協(xié)議,傳輸層采用SCTP協(xié)議,,比較下面三個(gè)場(chǎng)景下數(shù)據(jù)傳輸花費(fèi)的時(shí)間,,仿真時(shí)間為10秒。

?


場(chǎng)景一,,原SCTP實(shí)現(xiàn),,網(wǎng)絡(luò)中沒(méi)有背景流量。
場(chǎng)景二,,原SCTP實(shí)現(xiàn),,模擬在擁塞時(shí)默認(rèn)調(diào)整primary-destination的情況。鏈路" title="鏈路">鏈路(N0,N3)上有CBR流,,速率為490kbps,,形成擁塞;鏈路(N1,N4)上有CBR流,,速率為100kbps,,可用帶寬為400kbps,;鏈路(N2,N5)空閑,可用帶寬為500kbps,,路徑(H0_if0,,N0,N3,,H1_if0)不可用,,SCTP自動(dòng)把傳輸路徑轉(zhuǎn)向下一個(gè)可用路徑(H0_if1,N1,,N4,,H1_if1),調(diào)整primary-destination為H1的if1,。
場(chǎng)景三,,改進(jìn)的SCTP實(shí)現(xiàn),模擬SCTP在擁塞時(shí)根據(jù)可用帶寬最大路徑調(diào)整primary-destination的情況,。鏈路(N0,N3)上有CBR流,,速率為490kbps,形成擁塞,;鏈路(N1,N4)上有CBR流,,速率為100kbps,可用帶寬為400kbps,;鏈路(N2,N5)空閑,,可用帶寬為500kbps。路徑(H0_if0,,N0,,N3,H1_if0)不可用,,改進(jìn)SCTP,,及時(shí)發(fā)現(xiàn)三條傳輸路徑上的可用帶寬,并選擇可用帶寬最大的路徑(H0_if2,,N2,N5,,H1_if2),,調(diào)整primary-destination為H1的if2。
圖4對(duì)比了這三種場(chǎng)景的數(shù)據(jù)傳輸時(shí)間和丟包數(shù),。場(chǎng)景一因?yàn)闆](méi)有背景流量,,網(wǎng)絡(luò)狀況良好,所以傳輸時(shí)間最快,;場(chǎng)景二因?yàn)榫W(wǎng)絡(luò)中出現(xiàn)了擁塞,,傳輸時(shí)間延長(zhǎng)了,;場(chǎng)景三中也出現(xiàn)了擁塞,由于及時(shí)選擇了可用帶寬最大路徑作為新路徑的策略,,所以傳輸時(shí)間明顯要少于場(chǎng)景二,;場(chǎng)景一中丟包情況最少,場(chǎng)景二和場(chǎng)景三因?yàn)閾砣霈F(xiàn)了較多的丟包,,二者丟包數(shù)目相當(dāng)也說(shuō)明采用本文的SCTP改進(jìn)策略,,不會(huì)為原來(lái)的SCTP帶來(lái)其它不良影響。

?


圖5反映了在10秒的仿真過(guò)程中,,場(chǎng)景二,、三中SCTP關(guān)聯(lián)的連接可使用的帶寬情況。此圖說(shuō)明,,場(chǎng)景三中由于按最大可用帶寬調(diào)整了傳輸路徑,,擁塞發(fā)生后,原有的數(shù)據(jù)傳輸仍有較大的可用帶寬提供使用,。

?


從上述數(shù)據(jù)來(lái)看,,根據(jù)最大可用帶寬來(lái)調(diào)整Primary destination address,可以提高SCTP的吞吐量,,加快傳輸速度,。
本文提出的基于可用帶寬Primary destination address選擇策略的SCTP協(xié)議改進(jìn),在仿真平臺(tái)上進(jìn)行了驗(yàn)證性實(shí)驗(yàn),,證明改進(jìn)后可以提高網(wǎng)絡(luò)性能參數(shù),,同時(shí)存在測(cè)量可用帶寬程序運(yùn)行時(shí)間長(zhǎng)等缺點(diǎn),有待下一步改進(jìn),。
參考文獻(xiàn)
[1]?STEWART R, XIE Q. RFC 2960: Stream control transmissionprotocol[S].2000.
[2]?IYENGAR J R. Concurrent multipath transfer using sctpmultihoming. In SPECTS 2004,San Jose, July 2004.
[3] ?JAIN M, DOVROLIS C. Pathload: A measurement tool for end-to-endAvailable bandwidth. Passive and active measurements workshop, Fort Collins CO., 2002-03.
[4] ?JAIN M and DOVROLIS C. End-to-End available bandwidth: measurement methodology, dynamics, and relation
?with TCP throughput. IEEE/ACM Trans. on Networking,?2003,11(4):537-549.
[5]?RIBEIRO V, RIEDI R, BARANIUK R, et al. Pathchirp:efficient available bandwidth estimation for network paths.?In Proceedings of passive and active measurements (PAM)?workshop, Apr. 2003.
[6]? The Network Simulator-ns-2 [EB/OL].?http://www.isi.edu/nsnam/ns/
[7]? 信息產(chǎn)業(yè)部電信研究院.流控制傳送協(xié)議(SCTP) 技術(shù)規(guī)范(V1.0)[S],2000.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]