基于流控制传输协议的多地址选择方法

文档序号:7896837阅读:205来源:国知局
专利名称:基于流控制传输协议的多地址选择方法
技术领域
本发明涉及网络通信技术领域,尤其涉及一种基于流控制传输协议的多地址选择方法。
背景技术
SCTP(Stream Control Transmission Protocol,流控制传输协议)为用于IP(网际协议)网络的流控制传输协议,是由IETF(互联网工程任务组)在原TCP(传输控制协议)基础上改进而来的专为信令消息在IP网上传输的一种协议,该协议可以保证信令消息的可靠、有序传输。
SCTP使用的底层的IP是TCP/IP协议族内的标准IP协议,与TCP相比SCTP对信令的传输具有实时、安全、可靠性更高的特点,同时SCTP能够提供面向连接的可靠数据包传输,无须上层实现数据定界功能,并有实时性好、安全性高、避免了行头阻塞(行头阻塞是TCP的缺陷,SCTP通过在一个连接内支持多个流,使得在一个流中数据受到阻塞不会影响其他的流中的数据传输)、支持多归属等诸多优点,因此,SCTP已在信令消息的传输领域已广泛应用。
针对IP网络的特点,SCTP提供了多归属的特点,即一个SCTP端点可以有多个IP地址,这样,一条SCTP连接的数据可以走不同的IP网络,增强了数据传输的可靠性。SCTP中规定如果端点是多归属的,上层用户需指定一条首选的路径,包括主用的本地地址和对端地址;当首选路径不可达时,则更换一对本端-对端地址传输。这样,在选择地址对时,如果没有合理的方案进行地址对的更换,则可能出现部分地址一直无法被选到的问题;而且,对于用户指定的主用本地地址和对端地址,当主用地址对出现故障后又恢复正常时,则因为此时已选为其他非主用地址对进行传输,而导致主用地址一旦故障,即使恢复正常也无法再使用主用地址对进行传输。现有的SCTP协议标准未提供选择地址对时保证每个地址均被选到的技术方案,且无法实现优先选择用户指定的主用地址对。

发明内容
本发明的目的是提供一种基于流控制传输协议的多地址选择方法,以实现当一个SCTP端点存在多个IP地址时,保证每个地址均可以被选择到,且可以实现优先选择用户指定的主用地址。
本发明的目的是这样实现的一种基于流控制传输协议的多地址选择方法为对存在多地址的SCTP(流控制传输协议)端点需要更换发送数据所选择的地址时,分别依次选择使用该SCTP端点上所有的对端地址及本地地址。
该方法包括a、为需要选择新的地址进行发送的数据选择新的对端地址,并进行数据的发送;
b、判断SCTP端点所有的对端地址是否均已经被选择到,如果是,执行步骤c,否则,执行步骤a;c、为需要选择新的地址进行发送的数据选择新的本地地址,并进行数据的发送。
所述的步骤a为为确定需要选择新的地址进行发送的数据依次选择新的对端地址作为其对端地址,并进行数据的发送。
所述的步骤b为记录已经更换对端地址次数,并判断已经更换对端地址次数是否等于该SCTP端点存在的对端地址数目,如果等于,则执行步骤c,否则,执行步骤a。
所述的步骤c为c1、为需要选择新的地址进行发送的数据选择新的本地地址,并进行数据的发送;c2、记录已经更换本地地址次数,并判断已经更换本地地址次数是否等于该SCTP端点存在的本地地址数目,如果等于,则执行步骤a,否则,继续执行步骤c1。
本发明所述的方法还包括对主用的本地地址发生故障时的处理过程d、确定主用的本地地址发生故障,选择该SCTP端点上其他好的本地地址进行数据传输,并启动定时器;
e、当定时器超时时,判断主用的本地地址是否可用,如果可用,则执行选择该恢复正常的本地地址进行数据的传输,否则,执行步骤f;f、重新启动定时器,并在定时器超时时执行步骤e。
所述的定时器的定时时长不小于将所有本地地址轮询一遍的时间。
本发明所述的方法还包括对主用的对端地址发生故障时的处理过程g、确定主用的对端地址发生故障,选择该SCTP端点上的其他对端地址进行数据的传输;h、当发送心跳报文的定时器超时时,向主用的对端地址发送心跳消息;i、判断是否收到了主用的对端地址返回的心跳响应报文,如果收到,则执行步骤j,否则,执行步骤k;j、选择该主用的对端地址进行数据的传输;k、在该SCTP端点上选择其他好的对端地址进行数据的传输。
由上述技术方案可以看出,本发明所述的基于流控制传输协议的多地址选择方法实现了在SCTP端点存在多地址的情况下,如果使用的首选路径故障,那么通过遍历算法,可以找出可用的路径,且在选址过程中可以保证SCTP端点所存在的各个地址均可以被选择到;同时,本发明对于主用的本地地址或对端地址曾经失效过后又恢复的情况,SCTP连接仍然可以使用主用地址进行数据传输,以满足用户的传输需求。


图1为本发明的具体实施方式
流程图;图2为对主用的本地地址的选择过程流程图;图3为对主用的对端地址的选择过程流程图。
具体实施例方式
本发明所述的基于流控制传输协议的多地址选择方法的具体实施方式
如图1所示,包括以下步骤地步骤1确定需要选择新的地址进行数据的发送;如当数据需要重新发送时,便需要重新进行地址的选择;步骤2为需要选择新的地址进行发送的数据在SCTP端点上依次选择新的对端地址;即每一次重发选择的对端地址都更换,且更换对端地址为依次选择该SCTP端点的各个对端地址;步骤3判断SCTP端点的所有对端地址是否均已经被选择到,如果是,则执行步骤4,否则,对于需要选择新的地址进行发送的数据,继续执行步骤2,继续选择新的对端地址,直至所有的对端地址均被选择到时执行步骤4;假设,记录数据重新发送的次数为n1,即已经更换对端地址的次数为n1,且该SCTP端点存在的对端地址个数为N1,那么在重新发送数据时,首先选择下一个对端地址进行数据的传输,并判断(n1-N1)是否等于0,如果等于0,则说明所有的对端地址均被选择到,执行步骤4,并将数据重新发送的次数n1清0,否则,保持本地地址不改变,继续执行步骤2,并更新数据重新发送的次数n1;步骤4为需要选择新的地址进行发送的数据依次选择本地地址,即每一次重新发送数据选择的本地地址需要根据所有的对端地址是否全部都被选择更换过,如果所有的对端地址都已选择过,才开始更换新的本地地址,以保证所有的地址对能够被选到;假设,记录数据重新发送的次数为n2,即已经更换本地地址的次数为n2,且该SCTP端点存在的对端地址个数为N2,那么在重新发送数据时,首先选择下一个本地地址进行数据的传输,并判断(n2-N2)是否等于0,如果等于0,则说明所有的本地地址均被选择到,执行步骤2,并将数据重新发送的次数n2清0,否则,保持对端地址不改变,继续执行步骤4,并更新数据重新发送的次数n2。
本发明所述的基于流控制传输协议的多地址选择方法还包括对主用地址发生故障时的处理过程,该过程又进一步包括对主用的本地地址发生故障时的处理过程和对主用的对端地址发生的处理过程,其中主用的本地地址为用户指定的进行数据传输时所使用的本地地址,如果主用的本地地址正常,则进行数据发送选用该主用的本地地址作为发送该数据的本地地址,如果主用的本地地址发生故障,则选择该SCTP端点上其他好的本地地址进行数据的传输;对主用的本地址发生故障的处理过程参见图2,具体包括以下步骤
步骤5确定主用的本地地址由激活变为故障,并选择该SCTP端点上的其他好的本地地址进行数据传输;步骤6启动定时器,设定的定时器的定时时长不小于将所有本地地址轮询一遍的时间;步骤7定时器超时时,检查判断主用的本地地址是否已可用,即是否恢复正常,如果仍然故障,则重新启动定时器,即执行步骤6;否则,执行步骤8;步骤8选择该恢复正常的主用本地地址进行数据的传输。
主用的对端地址为用户指定的进行数据传输时所使用的对端地址,如果主用的对端地址正常,则进行数据发送选用该主用的对端地址作为发送该数据的对端地址,如果主用的对端地址发生故障,则选择该SCTP端点上其他好的对端地址进行数据的传输;对主用的对端地址选择过程参见图3,具体包括以下步骤步骤9当通过心跳报文或者数据重新发送情况,发现主用的对端地址故障时,则选择该SCTP端点上的其他对端地址进行数据的传输;步骤10当发送心跳报文的定时器超时时,向主用的对端地址发送心跳消息以探测该主用的对端地址是否恢复正常;即,当发送心跳的定时器超时,则需要选择空闲时间最长的对端地址发送一个心跳消息以探测对端地址是否恢复,该对端地址可能是主用的对端地址,也可能不是主用的对端地址,所述的空闲指的是未收发数据;如果找到的空闲的对端地址不是用户指定的主用的对端地址,则需要同时向主用的对端地址发送一个心跳消息;步骤11判断是否收到了主用的对端地址返回的心跳响应报文,如果收到,则执行步骤12,否则,执行步骤13;步骤12如果收到了主用的对端地址发送来的心跳响应报文,且当前使用的对端地址不是该主用的对端地址,则选择该主用的对端地址进行数据的传输;步骤13在该SCTP端点上选择其他好的对端地址进行数据的传输。
权利要求
1.一种基于流控制传输协议的多地址选择方法,其特征在于对存在多地址的SCTP(流控制传输协议)端点需要更换发送数据所选择的地址时,分别依次选择使用该SCTP端点上所有的对端地址及本地地址。
2.根据权利要求1所述的基于流控制传输协议的多地址选择方法,其特征在于该方法包括a、为需要选择新的地址进行发送的数据选择新的对端地址,并进行数据的发送;b、判断SCTP端点所有的对端地址是否均已经被选择到,如果是,执行步骤c,否则,执行步骤a;c、为需要选择新的地址进行发送的数据选择新的本地地址,并进行数据的发送。
3.根据权利要求2所述的基于流控制传输协议的多地址选择方法,其特征在于所述的步骤a为为确定需要选择新的地址进行发送的数据依次选择新的对端地址作为其对端地址,并进行数据的发送。
4.根据权利要求2或3所述的基于流控制传输协议的多地址选择方法,其特征在于所述的步骤b为记录已经更换对端地址次数,并判断已经更换对端地址次数是否等于该SCTP端点存在的对端地址数目,如果等于,则执行步骤c,否则,执行步骤a。
5.根据权利要求2所述的基于流控制传输协议的多地址选择方法,其特征在于所述的步骤c为c1、为需要选择新的地址进行发送的数据选择新的本地地址,并进行数据的发送;c2、记录已经更换本地地址次数,并判断已经更换本地地址次数是否等于该SCTP端点存在的本地地址数目,如果等于,则执行步骤a,否则,继续执行步骤c1。
6.根据权利要求1或2所述的基于流控制传输协议的多地址选择方法,其特征在于该方法还包括对主用的本地地址发生故障时的处理过程d、确定主用的本地地址发生故障,选择该SCTP端点上其他好的本地地址进行数据传输,并启动定时器;e、当定时器超时时,判断主用的本地地址是否可用,如果可用,则执行选择该恢复正常的本地地址进行数据的传输,否则,执行步骤f;f、重新启动定时器,并在定时器超时时执行步骤e。
7.根据权利要求6所述的基于流控制传输协议的多地址选择方法,其特征在于所述的定时器的定时时长不小于将所有本地地址轮询一遍的时间。
8.根据权利要求1或2所述的基于流控制传输协议的多地址选择方法,其特征在于该方法还包括对主用的对端地址发生故障时的处理过程g、确定主用的对端地址发生故障,选择该SCTP端点上的其他对端地址进行数据的传输;h、当发送心跳报文的定时器超时时,向主用的对端地址发送心跳消息;i、判断是否收到了主用的对端地址返回的心跳响应报文,如果收到,则执行步骤j,否则,执行步骤k;j、选择该主用的对端地址进行数据的传输;k、在该SCTP端点上选择其他好的对端地址进行数据的传输。
全文摘要
本发明涉及一种基于流控制传输协议的多地址选择方法。该方法实现了对于存在多地址的SCTP(流控制传输协议)端点进行数据重新传输时,分别依次选择使用所有的对端及本地地址;这样,如果使用的首选路径故障,还可以找出其他可用的路径,且在选址过程中可以保证SCTP端点所存在的各个地址均可以被选择到;同时,本发明对于主用的本地地址或对端地址曾经失效过后又恢复的情况,SCTP连接仍然可以使用主用地址进行数据传输,以满足用户的传输需求。
文档编号H04Q3/00GK1534951SQ0310890
公开日2004年10月6日 申请日期2003年4月2日 优先权日2003年4月2日
发明者林铭, 林 铭 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1