何世杰 童孟軍
摘 要: 為了更好地了解流控制協議—SCTP的相關性能,利用NS-2網絡仿真軟件,從單路徑和多路徑兩個方面對TCP和SCTP協議進行了比較。實驗結果表明,在應對鏈路惡化的情況下,SCTP協議的吞吐量更大,也具有更高的穩定性,更能滿足現在網絡高性能傳輸的要求。
關鍵詞: 流控制傳輸協議; 傳輸控制協議; 單路徑; 多路徑; 吞吐率; 延遲
中圖分類號:TP393 文獻標志碼:A 文章編號:1006-8228(2013)05-03-04
Comparison study of TCP and SCTP routing protocol
He Shijie, Tong Mengjun
(School of computer science, Hangzhou Dianzi University, Hangzhou, Zhejiang 310018, China)
Abstract: In order to get better understanding of SCTP protocol performance, the NS-2 network simulation software is utilized to compare TCP and SCTP protocols from a single path and multi path. The experimental results show that, in response to the link's deteriorating condition, the SCTP protocol has a larger throughput capacity , and also a higher stability, and it can meet the transmission requirement of high performance network.
Key words: stream control transmission protocol; transmission control protocol; single path; multi path; throughput rate; delay
0 引言
SCTP代表的是流控制傳輸協議,它是由IEFT的信令傳輸工作組(SIGTRAN)新近提出的一種面向多媒體通信的流控制協議(SCTP),用于在IP網絡上傳輸PSTN信令消息,即通常所說的SS7 over IP。
在國內,1985年是流控制傳輸協議技術開始萌芽的時期。從1985到1995年,該技術主要局限于計算機網絡中接人端口數據流的控制技術,以防止計算設備之間大量數據互相通信時出現阻塞,保證更高的傳輸效率和可靠性。目前對該技術的研發仍處于較淺的層次,對整個IP網絡中實規PSTN信令傳輸的技術還鮮有涉及;國內的SCTP研究還主要側重于應用方面,比如SCTP與TCP的比較、SCTP在移動環境下的性能研究(例如平滑切換,移動IP,最后一跳性能惡化問題,基于SCTP移動Internet傳輸模型等)、基于獨立路徑擁塞控制的SCTP負荷分擔機制研究、結合SS7的研究,以及SCTP的安全問題研究、軍事應用等。
國外則更側重于起草標準,如:定義SCTP負荷分擔草案(多路徑同時傳輸);制定部分可靠傳輸標準;提交建立SCTP偶聯后的動態地址重配置;提交SCTP API草案;定義SCTP對移動IP的支持;提交單播擁塞控制建議標準;TCP友好可變速率控制等等。目前,IETF致力于把SCTP作為一種通用的傳輸協議。對SCTP本身的研究集中在對其功能的完善和擴展上,主要是從兩個本質特點入手:多路徑和多流。同時,對SCTP應用的研究主要集中在兩個方面:在移動網絡中的應用和對多媒體的傳輸。
本文的主要研究工作是利用NS-2構建仿真平臺,對SCTP和TCP這兩種協議進行對比,并根據仿真的結果計算、分析和比較這兩種協議的性能,發現它們各自的優缺點。
1 TCP和SCTP的單路徑的對比研究
單路徑的實驗拓撲圖如圖1所示,一共有6個節點,2個路由節點。其中0-2是發送節點,5-7是相應的接收節點。3個發送節點都綁定了FTP應用,其中0號節點的數據包發送往5號節點,流標簽為1;1號節點的數據包發送往6號節點,流標簽為2;2號節點的數據包發送往7號節點,流標簽為3。設置最大的傳輸單元為1500。路由3、4間的droptail隊列大小分別為5、10。本實驗主要更改了1號節點和6號節點的傳輸協議。現在設0-5號節點的路徑為L1,1-6號節點的路徑為L2,2-7號的路徑為L3。變量主要在L1上面。其中發送節點到路由節點3,路由節點4到接收節點的帶寬均為10Mbps,延遲均為15ms。路由節點3、4直接的帶寬為1.7Mbps,延遲為15ms。這樣路由節點3、4之間就成為接收方和發送方直接的瓶頸。
圖1 實驗拓撲圖
實驗一的過程是:在0.5s的時候三個節點同時開始發送數據,4s的時候斷開L1,7s的時候斷開L2。這樣做的主要目的是讓L1的數據包先在有兩個TCP傳輸協議競爭的情況下進行數據傳輸,然后逐漸斷開其他兩個鏈路的數據傳輸,來觀察TCP和SCTP在有TCP競爭條件下,數據傳輸的吞吐量,延遲和丟包率。吞吐量如圖2所示。
圖2 實驗一中TCP和SCTP數據的吞吐量
圖2所表示的是鏈路L2上的數據吞吐量。X坐標軸表示時間的變化,單位為s,Y坐標軸表示接收的數據量,單位為Byte。紅色線表示TCP協議在droptail隊列為5時的數據吞吐量。綠色線表示TCP協議在droptail隊列為10時的數據吞吐量。藍色線為SCTP協議在droptail隊列為5時的數據吞吐量,黃色為SCTP協議在droptail隊列為10時的數據吞吐量。從圖2中可以看出,總體上SCTP的吞吐量遠遠高過TCP。對于SCTP來說,在droptail隊列為5的時候,其吞吐量比10的時候略高,但差距不是很大。在兩個TCP數據傳輸斷掉以后,兩種情況下的吞吐量趨于相同,而且數據吞吐量趨于穩定。看趨勢,在9s以后,droptail隊列為10的時候,其吞吐量會略大于5的時候。對于TCP協議來說,很明顯,在droptail隊列為10的時候,其吞吐量高于5的時候,在兩個TCP協議的數據傳輸都斷掉以后,數據吞吐量的增長率趨于平行式增長。
圖3 實驗一中TCP和SCTP延遲對比
圖3是實驗一中SCTP和TCP兩種協議數據傳輸延遲的對比。如圖所示,是TCP和SCTP在droptail隊列為5的時候,兩種協議延遲的對比。紅色線為TCP的延遲,綠色的為SCTP的延遲。X坐標軸表示數據傳輸的時間變化,單位為s,Y坐標軸表示兩種協議在某個時刻的延遲,單位為s。從圖3中可以看到,兩者的數據線略有交叉,SCTP的延遲略高于TCP;TCP的延遲是在一個范圍內上下波動,而SCTP的延遲呈一種階段性的梯度變化。從這里也可以看出兩種數據傳輸的差別:TCP在鏈路達到穩定的時候,每次傳輸的數據量一定;而SCTP的數據傳輸,在沒有擁塞避免的情況下,是呈指數增長的。
根據實驗一的拓撲圖,更改鏈路L1和L3的數據傳輸時間,此為實驗二。在0.5s的時候1號節點開始發送數據,在1.5s的時候0號節點開始發送數據,在4.5s的時候3號節點開始發送數據,在7.5s的時候將L1和L3兩條鏈路斷開連接,8s的時候結束數據傳輸。通過觀察TCP和SCTP協議在逐漸有一個TCP協議和兩個TCP協議競爭的條件下的數據吞吐量,延遲和丟包率來對比兩種協議。
圖4 實驗二中TCP和SCTP兩種協議的數據吞吐量
在圖4中,表示的是鏈路L2上的數據吞吐量。X坐標軸表示時間的變化,單位為s,Y坐標軸表示接收的數據量,單位為Byte。紅色線表示TCP協議在droptail隊列為5時的數據吞吐量。綠色線表示TCP協議在droptail隊列為10時的數據吞吐量。藍色線為SCTP協議在droptail隊列為5時的數據吞吐量,黃色為SCTP協議在droptail隊列為10時的數據吞吐量。從圖4中可以看出,總體上來說,在相同的droptail隊列值的情況下,SCTP的吞吐量遠大于TCP的吞吐量。在兩個TCP競爭數據傳輸出現后,它們的吞吐量都有一個短暫性的下降,然后繼續趨于上升。在8.0s的時候,兩種協議的吞吐量開始趨于穩定。
對比實驗一和實驗二中數據吞吐量的圖,我們看到,由于實驗一和實驗二的區別在于競爭的TCP協議出現的時間不同,在實驗一的環境下,SCTP在有其他協議競爭的條件下,能夠更容易、更快地達到數據吞吐的穩定狀態,這樣非常有利于數據的傳輸。
圖5是實驗二中鏈路L2在droptail隊列值為10的時候的延遲對比。紅色線為TCP的延遲,綠色的為SCTP的延遲。X坐標軸表示數據傳輸的時間變化,單位為s,Y坐標軸表示兩種協議在某個時刻的延遲,單位為s。由圖5中可以看出,SCTP與TCP延遲隨時間的走勢相互交叉,與實驗一中的情形類似,SCTP的延遲略高于TCP。
圖5 實驗二TCP和SCTP的延遲對比
圖6 TCP和SCTP競爭時的延遲和吞吐量
圖6是在實驗一環境下,SCTP和TCP相互競爭下的延遲和吞吐量的對比,主要是鏈路L2和L3的對比,紅色線表示的是TCP,綠色線表示TCP。圖6上圖中,X坐標軸表示數據傳輸的時間變化,單位為s,Y坐標軸表示兩種協議在某個時刻的延遲,單位為s;圖6下圖中,X坐標軸表示時間的變化,單位為s,Y坐標軸表示接收的數據量,單位為Byte。從圖6中可以看出,情況基本與上面的實驗保持一致。在相同的droptail隊列值的情況下,SCTP的吞吐量遠大于TCP,但是TCP和SCTP的延遲相互交叉,SCTP延遲略高于TCP。
2 TCP和SCTP的多路徑的對比研究
多路徑的實驗拓撲圖如圖7所示,節點0-2合起來是一個發端,節點3-5合起來是一個收端。0是核心節點,1、2是接口,即該端點的兩個IP地址;3也是核心節點,4、5也是接口,也即該端點的兩個IP地址。1和4路徑命名為if0;2和5路徑命名為if1。
在SCTP傳輸過程中,數據只能從接口發或收,不能直接從核心節點發或收。該實驗過程為:應用層傳輸FTP數據,在0.5s后開始傳輸;在第5s前,路徑if0、if1的帶寬為5M,時延為50ms;在第5s,路徑if0性能惡化,帶寬變成1M,時延變為200ms;在第8s,傳輸結束。
圖7 SCTP多路徑仿真拓撲圖
由于TCP沒有多路徑這個特點,所以,要與SCTP作對比,只能重新建立拓撲圖。拓撲圖如圖8所示:數據傳輸過程和SCTP一樣,應用層傳輸FTP數據,在0.5s后開始傳輸;在第5s的時候鏈路發生惡化,帶寬變成1M,時延變為200毫秒;在第8s,傳輸結束。
圖8 相應的TCP拓撲圖
對于這兩種協議延遲方面的比較,我們在上一節中已經有過很詳細的對比,所以在這里,主要針對兩種協議在多路徑的情況下,對數據吞吐量作比較,如圖9所示。
圖9 多路徑下TCP與SCTP吞吐量的比較
如圖9,其中為了表示自己搭建的TCP網絡和SCTP網絡有對比性,所以測試了在圖8中拓撲圖中SCTP數據的吞吐量,如圖9中的綠線。從圖中來看,在6.5s以前兩種拓撲圖中SCTP的數據吞吐量完全吻合,這樣看來,兩種拓撲圖是具有可比性的。圖中藍色線表示TCP協議的吞吐量,黃色線表示if0路徑上SCTP的吞吐量,紅色線表示if1路徑是SCTP的吞吐量。X坐標軸表示時間的變化,單位為s,Y坐標軸表示接收的數據量,單位為Byte。從圖9中看,5s之前鏈路沒有惡化,SCTP默認if0是主路徑,5s之后鏈路if0惡化,吞吐量開始下降,此時,因為有另一條路徑if1的存在,而且鏈路狀態比if0好,SCTP開始將if1作為主路徑進行傳輸,圖中if1的吞吐量開始上升,由此可以看出,SCTP的吞吐量在經過一段時間的降低之后,會恢復原來的吞吐量,使數據傳輸不受影響。由圖9可以看出,TCP在路徑出現惡化的時候,吞吐量開始下降,如果路徑得不到緩解,吞吐量會受到很大的影響。由此可以看出,SCTP多路徑的特點較TCP存在很大的優勢。我們再來分析路徑if0數據傳輸與時間的關系,如圖10所示。圖10中有上(紅色)、中(綠色)、下(藍色)三條線。上線(紅色)代表 SCTP 把數據包發送到緩存,即入隊列;中線(綠色)代表數據包從緩存注入到網絡,即出隊列;下線(藍色)代表數據包從收端反饋回來的證實 SACK。縱坐標代表所發送的數據包序列號,橫坐標代表時間,斜率指示傳輸速率(下面類似圖的信息也是這樣的)。在第5s,帶寬和時延發生變化,路徑性能變差,所以第5s后的斜率小于第5s前的斜率,即第5s后的傳輸速率小于第5s前的傳輸速率。
圖10 if0上數據傳輸與時間的關系
3 結束語
本文主要是通過NS-2構建仿真平臺,對TCP和SCTP在單路徑和多路徑的條件下進行對比。通過兩個實驗對比發現,兩種協議在數據傳輸的延遲方面,SCTP協議略高于TCP協議,相差不是很大,但是SCTP的數據吞吐量遠遠大于TCP協議。由于SCTP具有多路徑和多重定址的特點,在應對鏈路惡化的情況時,SCTP表現出更高的穩定性。作為一個新的傳輸協議,SCTP還具有很大的發展空間,SCTP較TCP更能滿足高性能傳輸的要求,隨著IP網絡的迅猛發展,SCTP一定會有更廣闊的應用空間。
參考文獻:
[1] Esbold Unurkhaan, Erwin P, Andreas Jungmaier. Secure SCTP-A
Versatile Secure Transport Protocol[J].Springer,2004.10(3):273
[2] V. Jaclbson. Congestion Avoidance and Contrl[J].ACM SIGCOMN,
1988.36(2):273
[3] K.Fall and S.Floyd.Simulation-based comparisons of Tahoe Reno
and SACK TCP[J]. ACM Computer Communication Review,1996.26(3):5
[4] L.Brakmo and L.Peterson.TCP Vegas:End to End Congestion
Avoidance on a Gloabal Internet[J]. IEEE Journal on Selected Areas in Communication,1995.13(8):1465
[5] 周開波,劉桐,蔣皓等.mSCTP協議異構網絡切換性能評估[J].現代電
信科技,2011.3(3):19
[6] 方路平,劉世華,陳盼等.NS-2網絡模擬基礎與應用[M].國防工業出
版社,2008.
[7] 胡文靜.SCTP主路徑自動切換的研究[D].吉林大學碩士學位論文,
2006.
[8] 葉凌偉,陳雁.SCTP與TCP的功能對比及應用分析[J].中國數據通
信,2003.1(2):43
[9] 賀翀,張繼棠.流控傳輸協議SCTP的研究[J].山西電子技術,
2005.11(5):21
[10] 黃曉波,鄭應平.流控制傳輸協議與TCP協議的比較[J].微型機與應
用,2005.7(6):37
[11] 成為青.流控制傳輸協議概述[J].電子電氣教學學報,2003.4(2):31
[12] 何志亨,程榮祥,鄧德雋.NS2仿真實驗——多媒體和無線網絡通信[M].
電子工業出版社,2009.