数据传输方法、设备及系统技术方案

技术编号:10910096 阅读:98 留言:0更新日期:2015-01-14 17:40
本发明专利技术公开了一种数据传输方法,包括:通过UDP链路向数据接收设备发送第一数据封包;在超时检测时刻,检测是否接收到所述数据接收设备返回的所述第一数据封包的确认响应;所述第一数据封包的确认响应表示所述数据接收设备接收到所述第一数据封包;若检测到超过预设时长仍未接收到所述确认响应,则向所述数据接收设备请求并建立TCP链路;通过所述UDP链路和TCP链路向所述数据接收设备发送第二数据封包。本发明专利技术还公开了另外两种数据传输方法、一种数据发送设备、一种数据接收设备和一种数据传输系统。本发明专利技术可以提高数据传输流畅度、优化传输质量。

【技术实现步骤摘要】
数据传输方法、设备及系统
本专利技术涉及互联网
,尤其涉及一种数据传输方法及系统。
技术介绍
在现有技术中,即时通讯通常使用TCP连接方式。比如在网络游戏中,客户端和服务器之间通常采用一条TCP连接进行相互通信,但是如果客户端开了迅雷,或者客户端同局域网的其他机器开了迅雷或者其他下载软件,会极大影响网络游戏的网络流畅度。根据实际的统计数据,在网络游戏中,使用TCP连接的情况下,客户端的掉线率大约为30%-40%。这是因为TCP的主动避让机制导致的。TCP主动避让机制具体为:在网络层发现第一次网络异常(比如丢包)现象之后,TCP机制会主动降低自己的网络速率。例如,如果在网络延时为50ms的时候,TCP第一次发生丢包,系统会在下一个50ms尝试重传,如果仍然丢包,会在下100ms重传,如果仍然丢包,会在下200ms重传。尝试的时间等于上一次尝试时间的一倍,这是一个指数的级别,重传次数如果超过5次,重传等待时间将会很恐怖,最终很可能掉线。因此客户端和服务器之间采用TCP连接时,当网络质量不稳定时,例如如果网络质量突然很差,然后又恢复了,TCP尝试重传的时间会等待很久,由于等待时间太久,会导致客户端掉线。在某些应用中也会使用UDP连接方式。比如在网络游戏中,客户端和服务器端之间使用一条UDP连接。但是UDP是不可靠协议,也就是说服务器发送给客户端的封包,客户端不保证可以收到。另外,防火墙等某些软件会限制UDP连接流量,因此当采用UDP连接传输数据较多时,会被限制流量,从而导致数据传输不够流畅、掉线率增加,甚至导致数据传输中断。
技术实现思路
本专利技术所要解决的技术问题在于,提供一种提高数据传输流畅度、优化传输质量的数据传输方法及系统。为解决以上技术问题,本专利技术提供了一种数据传输方法,包括:通过UDP链路向数据接收设备发送第一数据封包;在超时检测时刻,检测是否接收到所述数据接收设备返回的所述第一数据封包的确认响应;所述第一数据封包的确认响应表示所述数据接收设备接收到所述第一数据封包;若检测到超过预设时长仍未接收到所述确认响应,则向所述数据接收设备请求并建立TCP链路;通过所述UDP链路和所述TCP链路向所述数据接收设备发送第二数据封包。本专利技术还提供了另外一种数据传输方法,包括:通过UDP链路接收数据发送设备发送的第一数据封包;向所述数据发送设备返回所述第一数据封包的确认响应;接收所述数据发送设备发送的TCP链路建立请求,并与所述数据发送设备建立TCP链路;所述TCP链路建立请求是所述数据发送设备在检测到超过预设时长仍未接收到所述第一数据封包的确认响应时发送的;通过所述UDP链路和所述TCP链路接收所述数据发送设备发送的第二数据封包,并对所述第二数据封包进行重复数据封包判定和过滤。本专利技术还提供了另外一种数据传输方法,包括:数据发送设备通过UDP链路向数据接收设备发送第一数据封包;所述数据接收设备通过所述UDP链路接收所述数据发送设备发送的第一数据封包;所述数据接收设备向所述数据发送设备返回所述第一数据封包的确认响应;所述数据发送设备在超时检测时刻,检测是否接收到所述数据接收设备返回的所述第一数据封包的确认响应;所述数据发送设备若检测到超过预设时长仍未接收到所述确认响应,则向所述数据接收设备发送TCP链路建立请求;所述数据接收设备接收所述数据发送设备发送的TCP链路建立请求,并与所述数据发送设备建立TCP链路;所述数据发送设备通过所述UDP链路和所述TCP链路向所述数据接收设备发送第二数据封包。所述数据接收设备通过所述UDP链路和所述TCP链路接收所述数据发送设备发送的第二数据封包,并对所述第二数据封包进行重复数据封包判定和过滤。本专利技术还提供了一种数据发送设备,包括:第一数据封包发送模块,用于通过UDP链路向数据接收设备发送第一数据封包;超时检测模块,用于在超时检测时刻,检测是否接收到所述数据接收设备返回的所述第一数据封包的确认响应;所述第一数据封包的确认响应表示所述数据接收设备接收到所述第一数据封包;TCP链路请求建立模块,用于若检测到超过预设时长仍未接收到所述确认响应,则向所述数据接收设备请求并建立TCP链路;第二数据封包发送模块,用于通过所述UDP链路和所述TCP链路向所述数据接收设备发送第二数据封包。本专利技术还提供了一种数据接收设备,包括:第一数据封包接收模块,用于通过UDP链路接收数据发送设备发送的第一数据封包;第一确认响应返回模块,用于向所述数据发送设备返回所述第一数据封包的确认响应;TCP链路建立模块,用于接收所述数据发送设备发送的TCP链路建立请求,并与所述数据发送设备建立TCP链路;所述TCP链路建立请求是所述数据发送设备在检测到超过预设时长仍未接收到所述第一数据封包的确认响应时发送的;第二数据封包接收模块,用于通过所述UDP链路和所述TCP链路接收所述数据发送设备发送的第二数据封包,并对所述第二数据封包进行重复数据封包判定和过滤。本专利技术还提供了一种数据传输系统,包括数据发送设备和数据接收设备,所述数据发送设备包括第一数据封包发送模块、超时检测模块、TCP链路请求建立模块和第二数据封包模块,所述数据接收设备包括第一数据封包接收模块、第一确认响应返回模块、TCP链路建立模块和第二数据封包接收模块;其中:所述第一数据封包发送模块,用于数据发送设备通过UDP链路向数据接收设备发送第一数据封包;所述第一数据封包接收模块,用于所述数据接收设备通过所述UDP链路接收所述数据发送设备发送的第一数据封包;所述第一确认响应返回模块,用于所述数据接收设备向所述数据发送设备返回所述第一数据封包的确认响应;所述超时检测模块,用于所述数据发送设备在超时检测时刻,检测是否接收到所述数据接收设备返回的所述第一数据封包的确认响应;所述TCP链路请求建立模块,用于所述数据发送设备若检测到超过预设时长仍未接收到所述确认响应时,向所述数据接收设备发送TCP链路建立请求;所述TCP链路建立模块,用于所述数据接收设备接收所述数据发送设备发送的TCP链路建立请求,并与所述数据发送设备建立TCP链路;所述第二数据封包发送模块,用于所述数据发送设备通过所述UDP链路和所述TCP链路向所述数据接收设备发送第二数据封包;所述第二数据封包接收模块,用于所述数据接收设备通过所述UDP链路和所述TCP链路接收所述数据发送设备发送的第二数据封包,并对所述第二数据封包进行重复数据封包判定和过滤。本专利技术中,数据发送设备在通过UDP链路传输数据时,数据接收设备会返回一个确认响应,因此可以检测到数据接收设备是否接收到发送的数据;当数据发送设备检测到接收确认响应超时的时候,建立TCP链路,进行辅助传输,之后的数据传输就会通过TCP链路和UDP链路同时传输数据,因此可以保证数据能够传输到另一方,可以有效解决防火墙等某些限制UDP数据流量的应用导致的掉线、数据传输不流畅或中断的问题,可以增加网络流畅度、降低掉线率、优化数据传输质量。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可本文档来自技高网...
数据传输方法、设备及系统

【技术保护点】
一种数据传输方法,其特征在于,包括:通过UDP链路向数据接收设备发送第一数据封包;在超时检测时刻,检测是否接收到所述数据接收设备返回的所述第一数据封包的确认响应;所述第一数据封包的确认响应表示所述数据接收设备接收到所述第一数据封包;若检测到超过预设时长仍未接收到所述确认响应,则向所述数据接收设备请求并建立TCP链路;通过所述UDP链路和所述TCP链路向所述数据接收设备发送第二数据封包。

【技术特征摘要】
1.一种数据传输方法,其特征在于,包括:通过UDP链路向数据接收设备发送第一数据封包;将已发送的第一数据封包及其发送时间保存于已发送列表中;当接收到所述数据接收设备返回的所述第一数据封包的确认响应时,从所述已发送列表中删除所述第一数据封包及其发送时间;在超时检测时刻,检测是否接收到所述数据接收设备返回的所述第一数据封包的确认响应;所述第一数据封包的确认响应表示所述数据接收设备接收到所述第一数据封包;若检测到超过预设时长仍未接收到所述确认响应,则向所述数据接收设备请求并建立TCP链路;其中,所述检测到超过预设时长仍未接收到所述确认响应是指:在超时检测时刻,遍历已发送列表中的前n个数据封包,检测到存在超过预设时长没有接收到确认响应的数据封包;通过所述UDP链路和所述TCP链路向所述数据接收设备发送第二数据封包。2.如权利要求1所述的数据传输方法,其特征在于,在所述通过所述UDP链路和所述TCP链路向所述数据接收设备发送第二数据封包之后,还包括:接收所述数据接收设备通过所述UDP链路和所述TCP链路返回的数据封包,并对所述数据封包进行重复数据封包判定和过滤。3.如权利要求1所述的数据传输方法,其特征在于,所述在超时检测时刻,检测是否接收到所述数据接收设备返回的所述第一数据封包的确认响应,具体包括:在超时检测时刻,检测所述已发送列表是否存在所述第一数据封包;若存在所述第一数据封包,则判断所述第一数据封包的发送时间与当前时刻的差值是否大于预设时长;当所述差值大于预设时长时,判定超过预设时长仍未接收到所述确认响应。4.如权利要求1至3中任意一项所述的数据传输方法,其特征在于,所述第二数据封包包含所述数据发送设备的连接ID,以使所述数据接收设备能够根据所述连接ID对所述数据发送设备进行身份验证,并在验证通过后通过所述UDP链路和所述TCP链路向所述数据发送设备返回所述第二数据封包的确认响应。5.一种数据传输方法,其特征在于,包括:通过UDP链路接收数据发送设备发送的第一数据封包;向所述数据发送设备返回所述第一数据封包的确认响应;接收所述数据发送设备发送的TCP链路建立请求,并与所述数据发送设备建立TCP链路;所述TCP链路建立请求是所述数据发送设备在检测到超过预设时长仍未接收到所述第一数据封包的确认响应时发送的;其中,所述TCP链路建立请求是所述数据发送设备在超时检测时刻,遍历已发送列表中的前几个数据封包,当存在超过预设时长没有接收到确认响应的数据封包时向所述数据接收设备发送的;所述已发送列表用于保存所述数据发送设备已发送的第一数据封包及其发送时间,并且当所述数据发送设备接收到返回的所述第一数据封包的确认响应时,从所述已发送列表中删除所述第一数据封包及其发送时间;通过所述UDP链路和所述TCP链路接收所述数据发送设备发送的第二数据封包,并对所述第二数据封包进行重复数据封包判定和过滤。6.如权利要求5所述的数据传输方法,其特征在于,在所述通过UDP链路接收数据发送设备发送的第一数据封包之后,还包括:从所述第一数据封包解析出所述数据发送设备的连接ID,并保存于数据发送设备信息列表中。7.如权利要求6所述的数据传输方法,其特征在于,在所述通过所述UDP链路和所述TCP链路接收所述数据发送设备发送的第二数据封包,并对所述第二数据封包进行重复数据封包判定和过滤之后,还包括:从通过所述TCP链路接收的第二数据封包中解析出所述数据发送设备的连接ID,并根据所述连接ID对所述数据发送设备进行身份验证;若身份验证通过,则通过所述UDP链路和所述TCP链路向当前数据发送设备返回所述第二数据封包的确认响应。8.如权利要求7所述的数据传输方法,其特征在于,所述根据所述连接ID对所述数据发送设备进行身份验证,具体包括:检测所述连接ID是否在所述数据发送设备信息列表中;若所述连接ID在所述数据发送设备信息列表中,则判定为身份验证通过。9.一种数据传输方法,其特征在于,包括:数据发送设备通过UDP链路向数据接收设备发送第一数据封包;所述数据发送设备将已发送的第一数据封包及其发送时间保存于已发送列表中;所述数据接收设备通过所述UDP链路接收所述数据发送设备发送的第一数据封包;所述数据接收设备向所述数据发送设备返回所述第一数据封包的确认响应;所述数据发送设备在接收到所述数据接收设备返回的所述第一数据封包的确认响应时,从所述已发送列表中删除所述第一数据封包及其发送时间;所述数据发送设备在超时检测时刻,检测是否接收到所述数据接收设备返回的所述第一数据封包的确认响应;所述数据发送设备若检测到超过预设时长仍未接收到所述确认响应,则向所述数据接收设备发送TCP链路建立请求;其中,所述检测到超过预设时长仍未接收到所述确认响应是指:在超时检测时刻,遍历已发送列表中的前n个数据封包,检测到存在超过预设时长没有接收到确认响应的数据封包;所述数据接收设备接收所述数据发送设备发送的TCP链路建立请求,并与所述数据发送设备建立TCP链路;所述数据发送设备通过所述UDP链路和所述TCP链路向所述数据接收设备发送第二数据封包;所述数据接收设备通过所述UDP链路和所述TCP链路接收所述数据发送设备发送的第二数据封包,并对所述第二数据封包进行重复数据封包判定和过滤。10.如权利要求9所述的数据传输方法,其特征在于,所述数据发送设备在超时检测时刻,检测是否接收到所述数据接收设备返回的所述第一数据封包的确认响应,具体包括:在超时检测时刻,检测所述已发送列表是否存在所述第一数据封包;若存在所述第一数据封包,则判断所述第一数据封包的发送时间与当前时刻的差值是否大于预设时长;当所述差值大于预设时长时,判定为超过预设时长仍未接收到所述确认响应。11.如权利要求9所述的数据传输方法,其特征在于,在所述数据接收设备通过所述UDP链路接收所述数据发送设备发送的第一数据封包之后,还包括:所述数据接收设备从所述第一数据封包解析出所述数据发送设备的连接ID,并保存于数据发送设备信息列表中。12.如权利要求11所述的数据传输方法,其特征在于,在所述数据接收设备通过所述UDP链路和所述TCP链路接收所述数据发送设备发送的第二数据封包,并对所述第二数据封包进行重复数据封包判定和过滤,之后还包括:所述数据接收设备从通过TCP链路接收的第二数据封包中解析出所述数据发送设备的连接ID,并根据所述连接ID对所述数据发送设备进行身份验证;若身份验证通过,则所述数据接收设备通过所述UDP链路和TCP链路向当前数据发送设备返回所述第二数据封包的确认响应。13.如权利要求12所述的数据传输方法,其特征在于,所述根据所述连接ID对所述数据发送设备进行身份验证,具体包括:检测所述连接ID是否在所述数据发送设备信息列表中;若所述连接ID在所述数据发送设备信息列表中,判定为身份验证通过。14.如权利要求12或13所述的数据传输方法,其特征在于,在所述数据接收设备通过所述UDP链路和所述TCP链路向所述当前数据发送设备返回所述第二数据封包的确认响应之后,还包括:所述数据发送设备接收所述数据接收设备通过所述UDP链路和TCP链路返回的确认响应,并对接收的确认响应进行重复数据封包判定和过滤。15.一种数据发送设备,其特征在于,包括:第一数据封包发送模块,用于通过UDP链路向数据接收设备发送第一数据封包;数据保存模块,用于将所述第一数据封包发送模块发送的第一数据封包及其发送时间保存于已发送列表中;数据删除模块,用于当接收到所述数据接收设备返回的...

【专利技术属性】
技术研发人员:徐星
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:浙江;33

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

1