一种通过tcp与udp双模式通讯保障大数据流稳定性的方法技术

技术编号:6883396 阅读:664 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种通过tcp与udp双模式切换保障大数据流稳定的方法。在客户端上包括以下步骤:(1)读出程序配置文件里的默认通讯方式项目,并以该方式连接服务器;(2)纪录当前的通讯模式c1,tcp或udp;(3)每隔一定的时间(N秒)统计收包率a;(4)当收包率a低于一定程度x时,关闭当前和服务器的连接;(5)重新创建与服务器的数据连接,切换通讯模式;(6)正常通讯过程中,心跳周期heart_t一到,向服务器发送心跳包以保障链路的健康。

【技术实现步骤摘要】

本专利技术涉及一种通过tcp与Udp双模式切换保障大数据流稳定的方法。
技术介绍
随着音视频等大带宽数据交换的迅猛发展,带来了需要提高数据流稳定性的迫切需求,通常的通讯方式要么使用Udp要么使用tcp,这在某些特定的网络环境下不能保持数据的连续性,比如一些公司内部封闭了所有对外的Udp链路,使得所用采用UdP模式通信的软件不能不更改配置以图正常运行,由此带来的网络维护开销增加和网络安全风险上升。同时也会有一些网络环境,通常会被路由器限制最大的tcp连接量,这个时候起初是使用tcp连接的软件就会被切断,如果这个时候软件没有能动态的感知到网络变化情况,那么就会造成数据流中断,更甚至非得通过手动配置才能重新使用。
技术实现思路
针对现有的上述问题,本专利技术提供一种通过tcp与Udp双模式切换保障大数据流稳定的方法和系统,能够适应各种网络环境,并能智能的切换tcp或UdP通讯模式,从而自始自终的维持大数据量的传输。本专利技术的方案如下一种通过tcp与UdP双模式切换保障大数据流稳定的方法,在客户端上包括以下步骤(1)读出程序配置文件里的默认通讯方式项目,并以该方式连接服务器;(2)纪录当前的通讯模式cl,tcp或udp;(3)每隔一定的时间(N秒)统计收包率a;(4)当收包率a低于一定程度χ时,关闭当前和服务器的连接;(5)重新创建与服务器的数据连接,切换通讯模式;(6)正常通讯过程中,心跳周期heart_t—到,向服务器发送心跳包以保障链路的健康;在服务端上包括以下步骤(1)能够同时支持tcp和udp接收客户端连接,但一个时刻只能用一种连接方式;(2)与客户端的连接成功之后,向客户端发送需要的数据;(3)在一定时间(M秒)内,若没有接收到客户端的心跳包,则主动中止当前与客户端的通讯连接。进一步的,在上述客户端步骤中(1)读出程序配置文件里的默认通讯方式项目,并以该方式连接服务器; (1.1)从程序的配置文件里获得手动设置的通讯方式; (1. 2)根据通讯方式是UPd还是tcp来连接服务器;(2)纪录当前的通讯模式cl,TCP或UDP; (2. 1)与服务器连接成功;(2. 2)已经接收到从服务器发送过来的持续的数据流; (2. 3)保存当前的通讯模式cl ;(2.4)与服务器连接失败,则切换为另一种通讯方式连接,重复(2. 1广(2.4) (2. 5)如果失败次数超过3次,则中止整个连接过程,把消息传递给上层界面;(3)每隔一定的时间(N秒)统计收包率a;(3. 1)从程序的配置文件里获得手动设置的理论收包数reCV_C0Unt_l ;这个收包数对应程序从某条链路上在一定时间内获得的数据包数量; (3. 2)设置实际收包数recv_c0unt_2为0 ; (3. 3)每接收到一个数据包,recv_count_2累加1 ;(3. 4)定时时间N秒到,则用recv_count_2除以recv_count_l,得到收包率a ;(4)当收包率a低于一定程度x(程序内部设定)时,关闭当前和服务器的连接; (4. 1)如果收包率a小于X,则关闭当前与服务器的数据连接;(5)重新创建与服务器的数据连接,此次连接需要与之前的连接不同;(5. 1)如果之前的通讯模式cl是tcp,则这次改为udp方式连接服务器; (5. 2)如果之前的通讯模式cl是udp,则这次改为tcp方式连接服务器;(6)正常通讯过程中,心跳周期heart_t—到,向服务器发送心跳包以保障链路的健康。进一步的,在上述服务端步骤中(1)能够同时支持tcp和udp接收客户端连接,但一个时刻只能用一种连接方式;(1. 1)当客户端通过tcp进行连接时,判断该客户端是否已经有与服务器当前正在使用的连接,有则关闭该连接,然后响应客户端的连接;(2)与客户端的连接成功之后,向客户端发送需要的数据; (2. 1)服务器接收客户端的数据请求;(2. 2)服务器向客户端发送对应的数据;(3)在一定时间(M秒)内,若没有接收到客户端的心跳包,则主动中止当前与客户端的通讯连接;(3. 1)纪录客户端最近一次心跳包的时间last_client_heart_t ; (3. 2)如果当前时间与last_client_heart_t相差超过心跳超时时间heart_ timeout (单位秒),则表明此链路出现故障,则中断与客户端的连接; (3. 3)连接中断后,等待客户端的下次连接。附图说明图1是读出程序配置文件里的默认通讯方式项目,并以该方式连接服务器的流程图2是纪录当前的通讯模式cl,TCP或UDP的流程图; 图3是每隔一定的时间(N秒)统计收包率a的流程图; 图4是重新创建与服务器的数据连接的流程图;图5是服务器同时支持tcp和Udp接收客户端连接,但一个时刻只能用一种连接方式的流程图6是服务器主动中断与客户端连接的流程图。具体实施例方式实施例1一种通过tcp与UdP双模式切换保障大数据流稳定的方法,在客户端上包括以下步骤(1)读出程序配置文件里的默认通讯方式项目,并以该方式连接服务器; (1. 1)从程序的配置文件里获得手动设置的通讯方式;(1. 2)根据通讯方式是upd还是tcp来连接服务器;(2)纪录当前的通讯模式cl,TCP或UDP; (2. 1)与服务器连接成功;(2. 2)已经接收到从服务器发送过来的持续的数据流; (2. 3)保存当前的通讯模式cl ;(2.4)与服务器连接失败,则切换为另一种通讯方式连接,重复(2. 1广(2.4) (2. 5)如果失败次数超过3次,则中止整个连接过程,把消息传递给上层界面;(3)每隔一定的时间(N秒)统计收包率a;(3. 1)从程序的配置文件里获得手动设置的理论收包数reCV_C0Unt_l ;这个收包数对应程序从某条链路上在一定时间内获得的数据包数量; (3. 2)设置实际收包数recv_c0unt_2为0 ; (3. 3)每接收到一个数据包,recv_count_2累加1 ;(3. 4)定时时间N秒到,则用recv_count_2除以recv_count_l,得到收包率a ;(4)当收包率a低于一定程度x(程序内部设定)时,关闭当前和服务器的连接; (4. 1)如果收包率a小于X,则关闭当前与服务器的数据连接;(5)重新创建与服务器的数据连接,此次连接需要与之前的连接不同;(5. 1)如果之前的通讯模式cl是tcp,则这次改为udp方式连接服务器; (5. 2)如果之前的通讯模式cl是udp,则这次改为tcp方式连接服务器;(6)正常通讯过程中,心跳周期heart_t—到,向服务器发送心跳包以保障链路的健康。在服务端上包括以下步骤(1)能够同时支持tcp和udp接收客户端连接,但一个时刻只能用一种连接方式; (1. 1)当客户端通过tcp进行连接时,判断该客户端是否已经有与服务器当前正在使用的连接,有则关闭该连接,然后响应客户端的连接;(2)与客户端的连接成功之后,向客户端发送需要的数据; (2. 1)服务器接收客户端的数据请求;(2. 2)服务器向客户端发送对应的数据;(3)在一定时间(M秒)内,若没有接收到客户端的心跳包,则主动中止当前与客户端的通讯连接;(3. 1)纪录客户端最近一次心跳包的时间last_clien本文档来自技高网...

【技术保护点】
1.一种通过tcp与udp双模式切换保障大数据流稳定的方法,其特征在于,在客户端上包括以下步骤:(1)读出程序配置文件里的默认通讯方式项目,并以该方式连接服务器;(2)纪录当前的通讯模式c1,tcp或udp;(3)每隔一定的时间(N秒)统计收包率a;(4)当收包率a低于一定程度x时,关闭当前和服务器的连接;(5)重新创建与服务器的数据连接,切换通讯模式;(6) 正常通讯过程中,心跳周期heart_t一到,向服务器发送心跳包以保障链路的健康;在服务端上包括以下步骤:(1)能够同时支持tcp和udp接收客户端连接,但一个时刻只能用一种连接方式;(2)与客户端的连接成功之后,向客户端发送需要的数据;(3)在一定时间(M秒)内,若没有接收到客户端的心跳包,则主动中止当前与客户端的通讯连接。

【技术特征摘要】
1.一种通过tcp与udp双模式切换保障大数据流稳定的方法,其特征在于,在客户端上包括以下步骤(1)读出程序配置文件里的默认通讯方式项目,并以该方式连接服务器;(2)纪录当前的通讯模式cl,tcp或udp;(3)每隔一定的时间(N秒)统计收包率a;(4)当收包率a低于一定程度χ时,关闭当前和服务器的连接;(5)重新创建与服务器的数据连接,切换通讯模式;(6)正常通讯过程中,心跳周期heart_t—到,向服务器发送心跳包以保障链路的健康;在服务端上包括以下步骤(1)能够同时支持tcp和udp接收客户端连接,但一个时刻只能用一种连接方式;(2)与客户端的连接成功之后,向客户端发送需要的数据;(3)在一定时间(M秒)内,若没有接收到客户端的心跳包,则主动中止当前与客户端的通讯连接。2.根据权利要求1所述的一种通过tcp与udp双模式切换保障大数据流稳定的方法, 其特征在于,在上述客户端步骤中(1)读出程序配置文件里的默认通讯方式项目,并以该方式连接服务器; (1. 1)从程序的配置文件里获得手动设置的通讯方式;(1. 2)根据通讯方式是upd还是tcp来连接服务器;(2)纪录当前的通讯模式cl,TCP或UDP; (2. 1)与服务器连接成功;(2. 2)已经接收到从服务器发送过来的持续的数据流; (2. 3)保存当前的通讯模式cl ;(2.4)与服务器连接失败,则切换为另一种通讯方式连接,重复(2. 1广(2.4) (2. 5)如果失败次数超过3次,则中止整个连接过程,把消息传递给上层界面;(3)每隔一定的时间(N秒)统计收包率a;(3. 1)从程序的配置文件里获得手动设置的理论收包数reCV_C0Unt_l ;这个收包数对应程序从某条链路上在一定时间内获得的数据包数量; (3. 2)设...

【专利技术属性】
技术研发人员:严飞
申请(专利权)人:上海悠络客电子科技有限公司
类型:发明
国别省市:31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1