何世杰 童孟军
摘 要: 为了更好地了解流控制协议—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.