Chinaunix首页 | 论坛 | 博客
  • 博客访问: 156071
  • 博文数量: 207
  • 博客积分: 10280
  • 博客等级: 上将
  • 技术积分: 2600
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-11 11:01
文章分类

全部博文(207)

文章存档

2011年(1)

2008年(206)

我的朋友
最近访客

分类:

2008-10-19 22:49:51

一种提高吞吐量的SCTP协议改进


摘 要:根据SCTP协议多宿的特性,提出一种基于可用带宽的Primary destination address选择策略方案,可以提高吞吐量并降低丢包率,在仿真平台NS2上得到了改进算法的验证。
关键词:SCTP  多宿  可用带宽   仿真
 
IP电话的发展使通过信令网关在IP网络中组建IP信令网成为可能。通过已有的数据网络处理语音、数据、信令,可以减少建立和维护多个网络的费用。在PSTN中,NO.7信令仍有重要作用。IETF的信令传输工作组(SIGTRAN)为了在IP网络上传输NO.7信令制定了新的流控制传输协议SCTP(Stream Control Transfer Protocol:RFC2960)[1][7],主要用于IP网络中承载PSTN信令。由于SCTP具有适合Internet数据和多媒体传输 的特性,并可能成为下一代的传输层协议,因此SCTP成为当前研究的热点。
1 SCTP协议介绍
1.1 SCTP协议简介
SCTP被看做“超级TCP”,它不仅沿用了TCP的一些性质,能够提供可靠传输服务,确保数据无误按序地通过网络,而且扩展了TCP的许多功能。
SCTP与TCP的最大区别就是SCTP采用了多归属(Multi-homing)[2]的机制,因此SCTP中的偶联概念要比TCP中的连接概念含义更广。一个偶联的两个SCTP端点都向对方提供一个SCTP端口号和一个IP地址列表,每个偶联都由两个SCTP端口号和两个IP地址列表来识别,多归属的端点可以接入到不同类型的网络。所以SCTP能在两个端点间建立稳固的通信。一个SCTP偶联可以包含多个可能的起源与目的地址的组合,这些组合包含在每个端点的传送地址列表中。这样使得一个偶联可以在多个传输路径间选择和切换,提高了网络容错的能力,从而在SCTP中一个多归属的主机会因为网络物理上的故障导致通信中断的情况将很少发生。
SCTP支持关联的多流(Multiple Streams),允许把一个关联的数据流分成多个子流来同时处理,在传输过程中,只需保持子流内部有序而不必保持整个数据流的顺序,子流不会因为传输问题而阻塞其他子流,保持互不干扰,这样就避免了其他流中数据丢失造成的队头阻塞情况;支持对SYN泛洪攻击的抵抗;用户数据无错误无重复地确认传输通过分组序列间隙报告和选择性重发来实现;SCTP采用了与TCP相似的流量控制和拥塞控制算法,引用了慢启动机制;在数据分组的确认和重传机制上,采用了选择性确认,在一定程度上提高了传输效率。
1.2 SCTP工作方式
SCTP是一个面向连接的传输协议,在传输数据前,网络两端需要建立一个通信连接,在SCTP中,这个连接称为关联(Association)。图1是一个关联的例子。
 


所谓的关联可以这样表述:Association={[10.13.61.10,161.10.31.20:101]:[128.10.11.2:201] },这样一个SCTP的关联可以拥有两条端到端的通信路径,一条是10.13.61.10到128.10.11.2,另一条是161.10.31.20到128.10.11.2,这就体现了SCTP的多宿性。当关联建立起来后,协议会把数据流分成多个子流,通过某条路径来传输各子流的数据。当前路径不能使用时,关联会自动查找自己的路径列表,确定一条可用的路径来继续传输。
2 基于可用带宽测试的改进方法
2.1改进原理
SCTP作为一种新兴的、并未广泛应用的协议,存在很多可以改进的地方。本文针对其多宿的特点提出了一种性能改进的方法和基于可用带宽的Primary destination address选择策略,以提高SCTP的传输性能。
如果能在关联建立初始化或需要调整Primary destination address时选择一个可用带宽最大的通信连接,就能够提高传输的速度,并且动态地根据网络情况适当地调整通信路径。图2给出了TCP(Reno)、SCTP和改进SCTP的一个比较。纵坐标表示当前连接所占用的带宽,横坐标表示时间。对于某一条网络路径,在拥塞点前,三个传输协议的动作基本相同。拥塞出现后,三个协议都会采用相似的拥塞控制算法,调整速率,占用的带宽都会显著减少。当拥塞非常严重,原来路径很难正常使用时,SCTP会自动调整通信连接,即转移本关联目的地址。而改进SCTP会根据现有的几个可用连接,选择一条可用带宽最大的通信连接,所以占用带宽在调整后不会小于一般SCTP占用带宽。对于TCP,最幸运的情况是TCP不会中断,而是一直维持一个占用带宽很小的通信连接。所以,在调整点后,可以看到出现了三个明显的分支。
 
 

2.2 改进方案
改进SCTP的方案首先确定Primary destination address调整时机,其次确定一个及时而且比较准确的可用带宽测试模块,选择可用带宽最大的通信连接。
本文考虑了三个Primary destination address调整时机:SCTP关联初始化、SCTP关联正在使用的连接遇到严重的网络拥塞和关联正在使用的连接出现故障中断。SCTP关联初始化时,通过测试现有几个连接的可用带宽,找到对应最大带宽的传输接口来设定Primary destination address。关联正在使用的连接遇到严重的网络拥塞时,如果拥塞持续时间过长,就应该考虑改变传输接口,以提高传输速度。关联正在使用的连接出现故障中断时,SCTP默认方式是寻找一个可用的通信连接;而改进的方式是在测试可用带宽后,选择一个带宽最大的连接,找到对应最大带宽的传输接口来设定Primary destination address。
带宽测试模块用来发现一个可用带宽最大的通信连接,作为改进SCTP的一个辅助模块应该在较短时间内发现可用带宽。这里需要使用自加载周期性探测流SLoPS(Self-Loading Periodic Stream)带宽测试算法,如工具pathload[3][4]、pathchirp[5]的算法等来设计测试模块。根据现有连接的可用带宽,选择可用带宽最大的通信连接。
2.3方案实现
调整SCTP源代码如下:
void SctpAgent::RtxMarkedChunks(SctpRtxLimit_E eLimit)
{
……
 //原SCTP调整Primary destination的方法,注释掉
//spRtxDest = GetNextDest(spCurrBuffNodeData->spDest); 
//新的Primary destination设置方法,上述一行代码替代为下面代码
spRtxDest = GetInterfaceMaxAW();
……
}
SctpDest_S SctpAgent::GetInterfaceMaxAW()
{
(1)扫描除当前Primary destination外的每个接口,在其上执行自载流折半查找算法BinarySearchSL(),测试多个接口对应路径的可用带宽;
(2) 从测试结果中找出可用带宽最大的路径,返回该路径对应的目的接口;
}
long BinarySearchSL(SctpDest_S *)
{
//自载流折半查找算法实现;
}
3 实验仿真
仿真软件采用NS2[6],版本为2.29。仿真网络结构如图3,网络中布置的两个主机H0和H1都是多宿的,H0配置有if0、if1和if2三个接口,H1配置有if0、if1和if2三个接口。另外还有6个中间节点N0、N1、N2、N3、N4和N5。这样,在主机H0与H1之间形成了三条路径:(H0_if0,N0,N3,H1_if0)、(H0_if1,N1,N4,H1_if1)和(H0_if2,N2,N5,H1_if2)。
 H0 向H1发送300KB的数据,应用层采用FTP协议,传输层采用SCTP协议,比较下面三个场景下数据传输花费的时间,仿真时间为10秒。
 
 

场景一,原SCTP实现,网络中没有背景流量。
场景二,原SCTP实现,模拟在拥塞时默认调整primary-destination的情况。链路(N0,N3)上有CBR流,速率为490kbps,形成拥塞;链路(N1,N4)上有CBR流,速率为100kbps,可用带宽为400kbps;链路(N2,N5)空闲,可用带宽为500kbps,路径(H0_if0,N0,N3,H1_if0)不可用,SCTP自动把传输路径转向下一个可用路径(H0_if1,N1,N4,H1_if1),调整primary-destination为H1的if1。
场景三,改进的SCTP实现,模拟SCTP在拥塞时根据可用带宽最大路径调整primary-destination的情况。链路(N0,N3)上有CBR流,速率为490kbps,形成拥塞;链路(N1,N4)上有CBR流,速率为100kbps,可用带宽为400kbps;链路(N2,N5)空闲,可用带宽为500kbps。路径(H0_if0,N0,N3,H1_if0)不可用,改进SCTP,及时发现三条传输路径上的可用带宽,并选择可用带宽最大的路径(H0_if2,N2,N5,H1_if2),调整primary-destination为H1的if2。
图4对比了这三种场景的数据传输时间和丢包数。场景一因为没有背景流量,网络状况良好,所以传输时间最快;场景二因为网络中出现了拥塞,传输时间延长了;场景三中也出现了拥塞,由于及时选择了可用带宽最大路径作为新路径的策略,所以传输时间明显要少于场景二;场景一中丢包情况最少,场景二和场景三因为拥塞出现了较多的丢包,二者丢包数目相当也说明采用本文的SCTP改进策略,不会为原来的SCTP带来其它不良影响。
 
 

图5反映了在10秒的仿真过程中,场景二、三中SCTP关联的连接可使用的带宽情况。此图说明,场景三中由于按最大可用带宽调整了传输路径,拥塞发生后,原有的数据传输仍有较大的可用带宽提供使用。
 
 

从上述数据来看,根据最大可用带宽来调整Primary destination address,可以提高SCTP的吞吐量,加快传输速度。
本文提出的基于可用带宽Primary destination address选择策略的SCTP协议改进,在仿真平台上进行了验证性实验,证明改进后可以提高网络性能参数,同时存在测量可用带宽程序运行时间长等缺点,有待下一步改进。
参考文献
[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]. 
[7]  信息产业部电信研究院.流控制传送协议(SCTP) 技术规范(V1.0)[S],2000.

    本文可能所用到的IC型号:        
阅读(288) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~