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

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

【技术实现步骤摘要】
数据传输方法、设备及系统
本专利技术涉及互联网
,尤其涉及数据传输方法、设备及系统。
技术介绍
在现有技术中,即时通讯通常使用TCP连接方式。比如在网络游戏中,客户端和服务器之间通常采用一条TCP连接进行相互通信,但是如果客户端开了迅雷,或者客户端同局域网的其他机器开了迅雷或者其他下载软件,会极大影响网络游戏的网络流畅度。根据实际的统计数据,在网络游戏中,使用TCP连接的情况下,客户端的掉线率大约为30%-40%。这是因为TCP的主动避让机制导致的。TCP主动避让机制具体为:在网络层发现第一次网络异常(比如丢包)现象之后,TCP机制会主动降低自己的网络速率。例如,如果在网络延时为50ms的时候,TCP第一次发生丢包,系统会在下一个50ms尝试重传,如果仍然丢包,会在下100ms重传,如果仍然丢包,会在下200ms重传。尝试的时间等于上一次尝试时间的一倍,这是一个指数的级别,重传次数如果超过5次,重传等待时间将会比较长,最终很可能掉线。因此客户端和服务器之间采用TCP连接时,当网络质量不稳定时(例如如果网络质量突然很差,之后又再次恢复),TCP尝试重传的时间会等待很久,由于等待时本文档来自技高网...

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

【技术特征摘要】
1.一种数据传输方法,其特征在于,包括:通过第一UDP链路向数据接收设备发送第一数据封包,以使得所述数据接收设备解析所述第一数据封包并将所述数据发送设备的连接ID和所述第一UDP链路的链路ID并保存于链路ID表;所述链路ID表为哈希表,所述哈希表的KEY是数据发送设备的连接ID,所述哈希表的VALUE是对应所述第一UDP链路的链路ID;在超时检测时刻,检测是否接收到所述数据接收设备返回的所述第一数据封包的确认响应;所述第一数据封包的确认响应表示所述数据接收设备接收到所述第一数据封包;若检测到超过预设时长仍未接收到所述确认响应,则关闭所述第一UDP链路,并创建第二UDP链路;其中,所述关闭所述第一UDP链路具体为:通过调用系统API通知系统回收第一UDP链路,释放第一UDP链路的相关内存,设置第一UDP链路为初始状态;通过所述第二UDP链路向所述数据接收设备发送第二数据封包,以使得所述数据接收设备从所述第二数据封包中解析出所述数据发送设备的连接ID和当前使用的UDP链路ID,根据所述数据发送设备的连接ID从所述链路ID表中查找出所述第一UDP链路的链路ID,并判断所述第一UDP链路的链路ID是否与所述当前使用的UDP链路ID相同;若所述第一UDP链路的链路ID与所述当前使用的UDP链路ID不相同,则判定为所述当前使用的UDP链路是第二UDP链路,并通过所述第二UDP链路发送所述第二数据封包的确认响应。2.如权利要求1所述的数据传输方法,其特征在于,在所述通过第一UDP链路向数据接收设备发送第一数据封包之后,还包括:将已发送的第一数据封包及其发送时间保存于已发送列表中;当接收到所述数据接收设备返回的的所述第一数据封包的确认响应时,从所述已发送列表中删除所述第一数据封包及其发送时间。3.如权利要求2所述的数据传输方法,其特征在于,所述在超时检测时刻,检测是否接收到所述数据接收设备返回的所述第一数据封包的确认响应,具体包括:在超时检测时刻,检测所述已发送列表是否存在所述第一数据封包;若存在所述第一数据封包,则判断所述第一数据封包的发送时间与当前时刻的差值是否大于预设时长;当所述差值大于预设时长时,判定超过预设时长仍未接收到所述确认响应。4.如权利要求3所述的数据传输方法,其特征在于,若所述发送列表不存在所述第一数据封包,或者所述差值小于或等于预设时长,则继续通过所述第一UDP链路向所述数据接收设备发送第二数据封包。5.一种数据传输方法,其特征在于,包括:通过第一UDP链路接收数据发送设备发送的第一数据封包;从所述第一数据封包解析出所述数据发送设备的连接ID和所述第一UDP链路的链路ID,并保存于链路ID表中;所述链路ID表为哈希表,所述哈希表的KEY是数据发送设备的连接ID,所述哈希表的VALUE是对应所述第一UDP链路的链路ID;向所述数据发送设备返回所述第一数据封包的确认响应;接收所述数据发送设备发送的第二数据封包;从所述第二数据封包中解析出所述数据发送设备的连接ID和当前使用的UDP链路ID,根据所述数据发送设备的连接ID从所述链路ID表中查找出所述第一UDP链路的链路ID,并判断所述链路ID是否与所述当前使用的UDP链路ID相同;若所述第一UDP链路的链路ID与所述当前使用的UDP链路ID不相同,则判定为所述当前使用的UDP链路是第二UDP链路;否则判定为所述当前使用的UDP链路为第一UDP链路;所述第二UDP链路是所述数据发送设备在超过预设时长仍未接收到所述第一数据封包的确认响应时,关闭所述第一UDP链路之后,再创建的UDP链路;若检测到当前使用的UDP链路是所述第二UDP链路,则关闭所述第一UDP链路,并通过所述第二UDP链路返回所述第二数据封包的确认响应;其中,所述关闭所述第一UDP链路具体为:通过调用系统API通知系统回收第一UDP链路,释放第一UDP链路的相关内存,设置第一UDP链路为初始状态。6.如权利要求5所述的数据传输方法,其特征在于,所述通过所述第二UDP链路返回所述第二数据封包对应的确认响应之后,还包括:将所述链路ID表中的所述第一UDP链路的链路ID更新为所述第二UDP链路的链路ID。7.一种数据传输方法,其特征在于,包括:数据发送设备通过第一UDP链路向数据接收设备发送第一数据封包;所述数据接收设备通过所述第一UDP链路接收所述数据发送设备发送的第一数据封包,从所述第一数据封包解析出所述数据发送设备的连接ID和所述第一UDP链路的链路ID,并保存于链路ID表中;所述链路ID表为哈希表,所述哈希表的KEY是数据发送设备的连接ID,所述哈希表的VALUE是对应所述第一UDP链路的链路ID;所述数据接收设备向所述数据发送设备返回所述第一数据封包的确认响应;所述数据发送设备在超时检测时刻,检测是否接收到所述第一数据封包的确认响应;所述数据发送设备若检测到超过预设时长仍未接收到所述第一数据封包的确认响应,则关闭所述第一UDP链路,并创建第二UDP链路;其中,所述关闭所述第一UDP链路具体为:所述数据发送设备通过调用系统API通知系统回收第一UDP链路,释放第一UDP链路的相关内存,设置第一UDP链路为初始状态;所述数据发送设备通过所述第二UDP链路向所述数据接收设备发送第二数据封包;所述数据接收设备接收所述数据发送设备发送的第二数据封包,并从所述第二数据封包中解析出所述数据发送设备的连接ID和当前使用的UDP链路ID,根据所述数据发送设备的连接ID从所述链路ID表中查找出所述第一UDP链路的链路ID,并判断所述链路ID是否与所述当前使用的UDP链路ID相同;若所述第一UDP链路的链路ID与所述当前使用的UDP链路ID不相同,则判定为所述当前使用的UDP链路是第二UDP链路;否则判定为所述当前使用的UDP链路为第一UDP链路;所述数据接收设备检测到当前使用的UDP链路是所述第二UDP链路时,关闭所述第一UDP链路,并通过所述第二UDP链路返回所述第二数据封包的确认响应;其中,所述关闭所述第一UDP链路具体为:所述数据接收设备通过调用系统API通知系统回收第一UDP链路,释放第一UDP链路的相关内存,设置第一UDP链路为初始状态。8.如权利要求7所述的数据传输方法,其特征在于,在所述数据发送设备通过第一UDP链路向数据接收设备发送第一数据封包之后,还包括:所述数据发送设备将已发送的第一数据封包及其发送时间保存于已发送列表中;在所述数据接收设备向所述数据发送设备返回所述第一数据封包的确认响应之后,还包括:所述数据发送设备接收到所述数据接收设备返回的的确认响应时,从所述已发送列表中删除所述第一数据封包及其发送时间。9.如权利要求8所述的数据传输方法,其特征在于,所述数据发送设备在超时检测时刻,检测是否接收到所述第一数据封包的确认响应,具体包括:所述数据发送设备在超时检测时刻,检测所述已发送列表是否存在所述第一数据封包;若存在所述第一数据封包,则判断所述第一数据封包的发送时间与当前时刻的差值是否大于预设时长;当所述差值大于预设时长时,判定超过预设时长仍未接收到所述确认响应。10.如权利要求9所述的数据传输方法,其特征在于,所述数据发送设备在在所述发送列表不存在所述第一数据封包,或者所述差值小于或等于预设时长时,继续通过所述第一UDP链路向所述数据接收设备发送第二数据封包。11.如权利要求7所述的数据传输方法,其特征在于,所述通过所述第二UDP链路返回所述第二数据封包的确认响应之后,还包括:将所述链路ID表中所述第一UDP链路的链路ID更新为所述第二UDP链路的链路ID。12.一种数据发送设备,其特征在于,包括:第一数据封包发送模块,用于通过第一UDP链路向数据接收设备发送第一数据封包,以使得所述数据接收设备解析所述第一数据封包并将所述数据发送设备的连接ID述第一UDP链路的链路ID并保存于链路ID表;所述链路ID表为哈希表,所述哈希表的KEY是数据发送设备的连接ID,所述哈希表的VALUE是对应所述第一UDP链路的链路ID;超时检测模块,用于...

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

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

1