本发明涉及信息通信领域,特别涉及一种基于链路活跃状态寻址的通信方法及通信设备。
背景技术:
在信息通信领域,越来越多通信设备间基于传输控制协议(tcp)进行通信。为了提高设备间的业务吞吐率和增加可靠性,设备之间往往会建立多个并行的tcp链接,如图1所示。
多个并行的tcp链接带来高性能通信效率的同时也存在着安全隐患。如图2所示,因为对侧网络设备对多个并行的tcp链接管理不当,在创建了多个连接后只对部分链接(tcp链接1、tcp链接2)进行数据收发操作,未收取其余tcp链接的网络数据(tcp链接3)。而在本地设备的开发人员无法知道对侧设备的链接管理情况,在发送数据时,因为tcp链接3是正常的,仍然将数据向tcp链接3中发送,在通道阻塞满后会一直发送失败。如图这样会陷入本地设备发送数据失败,对侧设备却收取不到数据的死循环,导致两个设备间无法正常进行数据通信。
技术实现要素:
为了解决上述无法正常通信的问题,提高本地通信设备的灵活性和可靠性,本发明提出一种根据链路活跃状态进行链路查找的方法,极大降低了因对侧通信设备的处理失误导致网络瘫痪的风险,提高本地通信设备的兼容性和可靠性,进而提高整个业务系统的可靠性。
本发明采用的技术方案如下:一种基于链路活跃状态寻址的通信方法,应用于存在多个tcp链接的通信设备中,包括,初始化所有tcp链接,对tcp链接进行活跃状态判定,通信设备根据活跃状态选择tcp链接进行数据传输。
进一步的,所述初始化具体包括:在链接初始化时,将所有链接的状态设置为活跃状态。
进一步的,所述活跃状态的判定方法:实时对每个并行的tcp链接的收发数据状态进行统计;根据每个tcp链接状态统计信息,确定链接的活跃状态。
进一步的,所述确定链接的活跃状态具体方法为:在当有数据接收成功或有数据写入链接成功时,将活跃状态设置为活跃;当长时间返回链接不可用的错误码时,将活跃状态设置为不活跃。
进一步的,所述通信设备优先选择活跃的tcp链接进行数据传输。
进一步的,还包括,在没有处于活跃的tcp链接时,从当前已建立的所有tcp链接中选择一个链路进行数据发送,确保数据不丢包。
进一步的,所述方法中,数据发送流程包括:
s1、从tcp链接列表中查找活跃的tcp链接,查找成功后直接跳转至s3;
s2、从tcp链接列表中查找不活跃的tcp链接;
s3、向查找后的tcp链接中写入数据,写入失败,跳转至s5;反之,进入s4;
s4、将链接状态更新为活跃状态;
s5、当长时间返回链接暂不可用的错误码后,将链接状态更新为不活跃状态,跳转至步骤s1继续执行。
本发明还提供了一种通信设备,执行上述基于链路活跃状态寻址的通信方法进行数据传输。
与现有技术相比,采用上述技术方案的有益效果为:采用本发明技术,可在本地设备上通过tcp链接的数据收发统计确定对应tcp链接的活跃状态,并优先选择当前活跃的tcp链接进行数据发送,极大的降低的数据拥塞的风险,同时在没有活跃tcp链接时,依然选择当前存在的tcp链接进行数据发送,做到数据不丢包,提高系统的健壮性;能够大大提高本地通信设备的兼容性,当对侧通信设备的一部分tcp链接进入错误状态后,依然能保持通信设备间的业务数据不间断。
附图说明
图1为现有技术中网络设备通信示意图。
图2为现有技术中网络设备通信故障示意图。
图3为本发明中链接活跃状态更新示意图。
图4为本发明的通信方法流程图。
具体实施方式
下面结合附图对本发明做进一步描述。
本发明可在本地设备上通过tcp链接的数据收发统计确定对应tcp链接的活跃状态,并优先选择当前活跃的tcp链接进行数据发送,极大的降低的数据拥塞的风险。同时在没有活跃tcp链接时,依然选择当前存在的tcp链接进行数据发送,做到数据不丢包,提高系统的健壮性。具体技术方案如下:
一种基于链路活跃状态寻址的通信方法,应用于存在多个tcp链接的通信设备中,包括,初始化所有tcp链接,对tcp链接进行活跃状态判定,通信设备根据活跃状态选择tcp链接进行数据传输。
如图3所示,具体的,所述初始化具体包括:在链接初始化时,将所有链接的状态设置为活跃状态。
所述活跃状态的判定方法:实时对每个并行的tcp链接的收发数据状态进行统计;根据每个tcp链接状态统计信息,确定链接的活跃状态。
所述确定链接的活跃状态具体方法为:在当有数据接收成功或有数据写入链接成功时,将活跃状态设置为活跃;当长时间返回链接不可用的错误码时,将活跃状态设置为不活跃。
所述通信设备优先选择活跃的tcp链接进行数据传输。
所述基于链路活跃状态寻址的通信方法还包括,在没有处于活跃的tcp链接时,从当前已建立的所有tcp链接中选择一个链路进行数据发送,确保数据不丢包。
如图4所示,所述方法中,数据发送流程包括:
s1、从tcp链接列表中查找活跃的tcp链接,查找成功后直接跳转至s3;
s2、从tcp链接列表中查找不活跃的tcp链接;
s3、向查找后的tcp链接中写入数据,写入失败,跳转至s5;反之,进入s4;
s4、将链接状态更新为活跃状态;
s5、当长时间返回链接暂不可用的错误码后,将链接状态更新为不活跃状态,跳转至步骤s1继续执行。
本发明还提供了一种通信设备,用于执行上述通信方法。
本发明的于链路活跃状态寻址的通信方法可应用于存在多个冗余tcp链接的通信设备上。使用本发明的方法实现的通信设备,在网络上部署后,能提高设备的兼容性和可靠性。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。如果本领域技术人员,在不脱离本发明的精神所做的非实质性改变或改进,都应该属于本发明权利要求保护的范围。
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
1.一种基于链路活跃状态寻址的通信方法,其特征在于,应用于存在多个tcp链接的通信设备中,包括,初始化所有tcp链接,对tcp链接进行活跃状态判定,通信设备根据活跃状态选择tcp链接进行数据传输。
2.根据权利要求1所述的基于链路活跃状态寻址的通信方法,其特征在于,所述初始化过程包括:在链接初始化时,将所有链接的状态设置为活跃状态。
3.根据权利要求2所述的基于链路活跃状态寻址的通信方法,其特征在于,所述活跃状态的判定方法:实时对每个并行的tcp链接的收发数据状态进行统计;根据每个tcp链接状态统计信息,确定链接的活跃状态。
4.根据权利要求3所述的基于链路活跃状态寻址的通信方法,其特征在于,所述确定链接的活跃状态具体方法为:在当有数据接收成功或有数据写入链接成功时,将活跃状态设置为活跃;当长时间返回链接不可用的错误码时,将活跃状态设置为不活跃。
5.根据权利要求1所述的基于链路活跃状态寻址的通信方法,其特征在于,所述通信设备优先选择活跃的tcp链接进行数据传输。
6.根据权利要求1所述的基于链路活跃状态寻址的通信方法,其特征在于,还包括,在没有处于活跃的tcp链接时,从当前已建立的所有tcp链接中选择一个链路进行数据发送,确保数据不丢包。
7.根据权利要求6所述的基于链路活跃状态寻址的通信方法,其特征在于,所述方法中,数据发送流程包括:
s1、从tcp链接列表中查找活跃的tcp链接,查找成功后直接跳转至s3;
s2、从tcp链接列表中查找不活跃的tcp链接;
s3、向查找后的tcp链接中写入数据,写入失败,跳转至s5;反之,进入s4;
s4、将链接状态更新为活跃状态;
s5、当长时间返回链接暂不可用的错误码后,将链接状态更新为不活跃状态,跳转至步骤s1继续执行。
8.一种通信设备,其特征在于,执行所述权利要求1-7任一项基于链路活跃状态寻址的通信方法进行数据传输。