CN104320273B - 数据传输方法、设备及系统 - Google Patents

数据传输方法、设备及系统 Download PDF

Info

Publication number
CN104320273B
CN104320273B CN201410567387.9A CN201410567387A CN104320273B CN 104320273 B CN104320273 B CN 104320273B CN 201410567387 A CN201410567387 A CN 201410567387A CN 104320273 B CN104320273 B CN 104320273B
Authority
CN
China
Prior art keywords
link
data
udp
data packet
udp link
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410567387.9A
Other languages
English (en)
Other versions
CN104320273A (zh
Inventor
徐星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201410567387.9A priority Critical patent/CN104320273B/zh
Publication of CN104320273A publication Critical patent/CN104320273A/zh
Application granted granted Critical
Publication of CN104320273B publication Critical patent/CN104320273B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种数据传输方法,包括:通过第一UDP链路向数据接收设备发送第一数据封包;在超时检测时刻,检测是否接收到所述数据接收设备返回的所述第一数据封包的确认响应;所述第一数据封包的确认响应表示所述数据接收设备接收到所述第一数据封包;若检测到超过预设时长仍未接收到所述确认响应,则关闭所述第一UDP链路,并创建第二UDP链路;通过所述第二UDP链路向所述数据接收设备发送第二数据封包。本发明还提供了另外两种数据传输方法、一种数据发送设备、一种数据接收设备和一种数据传输系统。本发明可以提高数据传输流畅度、优化传输质量。

Description

数据传输方法、设备及系统
技术领域
本发明涉及互联网技术领域,尤其涉及数据传输方法、设备及系统。
背景技术
在现有技术中,即时通讯通常使用TCP连接方式。比如在网络游戏中,客户端和服务器之间通常采用一条TCP连接进行相互通信,但是如果客户端开了迅雷,或者客户端同局域网的其他机器开了迅雷或者其他下载软件,会极大影响网络游戏的网络流畅度。根据实际的统计数据,在网络游戏中,使用TCP连接的情况下,客户端的掉线率大约为30%-40%。这是因为TCP的主动避让机制导致的。TCP主动避让机制具体为:在网络层发现第一次网络异常(比如丢包)现象之后,TCP机制会主动降低自己的网络速率。例如,如果在网络延时为50ms的时候,TCP第一次发生丢包,系统会在下一个50ms尝试重传,如果仍然丢包,会在下100ms重传,如果仍然丢包,会在下200ms重传。尝试的时间等于上一次尝试时间的一倍,这是一个指数的级别,重传次数如果超过5次,重传等待时间将会比较长,最终很可能掉线。因此客户端和服务器之间采用TCP连接时,当网络质量不稳定时(例如如果网络质量突然很差,之后又再次恢复),TCP尝试重传的时间会等待很久,由于等待时间太久,会导致客户端掉线。
某些应用或软件会采用UDP连接方式发送数据,但是采用UDP连接方式的服务器不会在接收到数据之后返回确认响应,因此采用UDP连接方式不可靠。另外,防火墙等某些软件会限制UDP连接流量,因此当采用UDP连接传输数据较多时,会被限制流量,从而导致数据传输不够流畅、掉线率增加,甚至导致数据传输中断。
发明内容
本发明所要解决的技术问题在于,提供一种提高数据传输流畅度、优化传输质量的数据传输方法及系统。
为解决以上技术问题,本发明提供了一种数据传输方法,包括:
通过第一UDP链路向数据接收设备发送第一数据封包;
在超时检测时刻,检测是否接收到所述数据接收设备返回的所述第一数据封包的确认响应;所述第一数据封包的确认响应表示所述数据接收设备接收到所述第一数据封包;
若检测到超过预设时长仍未接收到所述第一数据封包的确认响应,则关闭所述第一UDP链路,并创建第二UDP链路;
通过所述第二UDP链路向所述数据接收设备发送第二数据封包。
本发明还提供了另外一种数据传输方法,包括:
通过第一UDP链路接收数据发送设备发送的第一数据封包;
向所述数据发送设备返回所述第一数据封包的确认响应;
接收所述数据发送设备发送的第二数据封包;
根据所述第二数据封包检测当前使用的UDP链路是否为第二UDP链路;所述第二UDP链路是所述数据发送设备在超过预设时长仍未接收到所述第一数据封包的确认响应时,关闭所述第一UDP链路之后,再创建的UDP链路;
若检测到当前使用的UDP链路是所述第二UDP链路,则关闭所述第一UDP链路,并通过所述第二UDP链路返回所述第二数据封包的确认响应。
本发明还提供了另外一种数据传输方法,包括:
数据发送设备通过第一UDP链路向数据接收设备发送第一数据封包;
所述数据接收设备通过所述第一UDP链路接收所述数据发送设备发送的第一数据封包;
所述数据接收设备向所述数据发送设备返回所述第一数据封包的确认响应;
所述数据发送设备在超时检测时刻,检测是否接收到所述第一数据封包的确认响应;
所述数据发送设备若检测到超过预设时长仍未接收到所述第一数据封包的确认响应,则关闭所述第一UDP链路,并创建第二UDP链路;
所述数据发送设备通过所述第二UDP链路向所述数据接收设备发送第二数据封包;
所述数据接收设备接收所述数据发送设备发送的第二数据封包,并根据所述第二数据封包检测当前使用的UDP链路是否为第二UDP链路;
所述数据接收设备检测到当前使用的UDP链路是所述第二UDP链路时,关闭所述第一UDP链路,并通过所述第二UDP链路返回所述第二数据封包的确认响应。
本发明还提供了一种数据发送设备,包括:
第一数据封包发送模块,用于通过第一UDP链路向数据接收设备发送第一数据封包;
超时检测模块,用于在超时检测时刻,检测是否接收到所述数据接收设备返回的所述第一数据封包的确认响应;所述第一数据封包的确认响应表示所述数据接收设备接收到所述第一数据封包;
UDP链路创建模块,用于若检测到超过预设时长仍未接收到所述第一数据封包的确认响应,关闭所述第一UDP链路,并创建第二UDP链路;
第二数据封包发送模块,用于通过所述第二UDP链路向所述数据接收设备发送第二数据封包。
本发明还提供了一种数据接收设备,包括:
第一数据封包接收模块,用于通过第一UDP链路接收数据发送设备发送的第一数据封包;
第一确认响应返回模块,用于向所述数据发送设备返回所述第一数据封包的确认响应;
第二数据封包接收模块,用于接收所述数据发送设备发送的第二数据封包;
UDP链路检测模块,用于根据所述第二数据封包检测当前使用的UDP链路是否为第二UDP链路;所述第二UDP链路是所述数据发送设备在超过预设时长仍未接收到所述第一数据封包的确认响应时,关闭所述第一UDP链路之后,再创建的UDP链路;
第二确认响应返回模块,用于若检测到当前使用的UDP链路是所述第二UDP链路,则关闭所述第一UDP链路,并通过所述第二UDP链路返回所述第二数据封包的确认响应。
本发明还提供了一种数据传输系统,
包括数据发送设备和数据接收设备,所述数据发送设备包括第一数据封包发送模块、超时检测模块、UDP链路创建模块和第二数据封包发送模块,所述数据接收设备包括第一数据封包接收模块、第一确认响应返回模块、第二数据封包接收模块、UDP链路检测模块和第二确认响应返回模块;其中:
所述第一数据封包发送模块,用于数据发送设备通过第一UDP链路向数据接收设备发送第一数据封包;
所述第一数据封包接收模块,用于所述数据接收设备通过所述第一UDP链路接收所述数据发送设备发送的第一数据封包;
所述第一确认响应返回模块,用于所述数据接收设备向所述数据发送设备返回所述第一数据封包的确认响应;
所述超时检测模块,用于所述数据发送设备在超时检测时刻检测是否接收到所述第一数据封包的确认响应;
所述UDP链路创建模块,用于所述数据发送设备在检测到超过预设时长仍未接收到所述第一数据封包的确认响应时,关闭所述第一UDP链路,并创建第二UDP链路;
所述第二数据封包发送模块,用于所述数据发送设备通过所述第二UDP链路向所述数据接收设备发送第二数据封包;
所述第二数据封包接收模块,用于所述数据接收设备接收所述数据发送设备发送的第二数据封包;
所述UDP链路检测模块,用于所述数据接收设备根据所述第二数据封包检测当前使用的UDP链路是否为第二UDP链路;
所述第二确认响应返回模块,用于所述数据接收设备检测到当前使用的UDP链路是所述第二UDP链路时,关闭所述第一UDP链路,并通过所述第二UDP链路返回所述第二数据封包的确认响应。
本发明中,数据发送设备通过UDP链路传输数据,数据接收设备会返回一个确认响应,因此可以检测到数据接收设备是否接收到发送的数据;当数据发送设备检测到接收确认响应超时的时候,丢弃之前的UDP链路,创建新的UDP链路,并通过新的UDP链路传输数据,可以有效解决防火墙等某些限制UDP数据流量的应用导致的掉线、数据传输不流畅或中断的问题,可以增加网络流畅度、降低掉线率、优化数据传输质量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的数据传输方法的一个实施例的流程示意图;
图2是本发明提供的数据传输方法的另一个实施例的流程示意图;
图3是本发明提供的数据传输方法的又一个实施例的流程示意图;
图4是本发明提供的数据发送设备的一个实施例的功能模块图;
图5是图4中超时检测模块的模块示意图;
图6是本发明提供的数据接收设备的一个实施例的功能模块图;
图7是图6中UDP链路检测模块的模块示意图;
图8是本发明提供的数据传输系统的一个实施例的功能模块图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明提供的数据传输方法的一个实施例的流程示意图,本实施例是针对于数据发送设备一侧描述的,如图1所示,本发明实施例提供的数据传输方法包括:
S101、通过第一UDP链路向数据接收设备发送第一数据封包。
其中,数据发送设备可以是客户端,数据接收设备可以对应的是服务器;可以理解的,数据发送设备和数据接收设备也可以是两个对等的终端,或者数据发送设备为服务器,数据接收设备对应的为客户端。
S102、将已发送的第一数据封包及其发送时间保存于已发送列表中。
其中,已发送列表是队列结构,其中保存了已发送的数据封包及其发送时间,用于之后的超时检测。
S103、若接收到所述数据接收设备返回的所述第一数据封包的确认响应,从所述已发送列表中删除所述第一数据封包及其发送时间。
具体的,数据接收设备在接收到数据发送设备发送的数据封包后会返回一个确认响应,表示接收到该数据封包。第一数据封包的确认响应表示数据接收设备接收到第一数据封包。若数据发送设备接收到了确认响应后,会将对应的数据封包及其发送时间从已发送列表中删除,因此已发送列表中保存的都是没有接收到确认响应的数据封包。
S104、在超时检测时刻,检测是否接收到所述数据接收设备返回的所述第一数据封包的确认响应。
具体的,S104包括:
在超时检测时刻,检测所述已发送列表是否存在所述第一数据封包;
若存在所述第一数据封包,则判断所述第一数据封包的发送时间与当前时刻的差值是否大于预设时长;
当所述差值大于预设时长时,判定超过预设时长仍未接收到所述确认响应。
另外,若所述发送列表不存在所述第一数据封包,或者所述差值小于或等于预设时长,则继续通过所述第一UDP链路向所述数据接收设备发送第二数据封包。
其中,超时检测是一个周期性的检测,可以是每隔500ms检测一次,对应的预设时长可以为2s。其中已发送列表中保存的都是没有接收到确认响应的数据封包,因此,如果已发送列表没有所述第一数据封包,即表示所述第一数据封包已经接收到第一数据封包。
S105、若检测到超过预设时长仍未接收到所述第一数据封包的确认响应,则关闭所述第一UDP链路,并创建第二UDP链路。
具体的,检测到超过预设时长仍未接收到所述第一数据封包的确认响应表示当前的第一UDP链路有可能被限制或出现网络问题等,因此关闭所述第一UDP链路,并创建第二UDP链路。关闭所述第一UDP链路可以调用系统API(win32系统下为close_socet,unix/linux系统下为:close)通知系统回收第一UDP链路,释放第一UDP链路的相关内存,设置第一UDP链路为初始状态。然后调用系统API建立第二UDP链路,即新的UDP链路。
步骤S104和步骤S105是针对数据发送设备发送的某一数据封包的超时检测过程进行描述的,在实际操作过程中,如果对数据发送设备发送的每一数据封包都进行超时检测,那么会增加内存消耗、降低效率,因此步骤S104和步骤S105在实际操作过程中的具体实施方式可以是:在超时检测时刻,遍历已发送列表中的前几个数据封包(例如前7个),如果存在超过预设时长没有接收到确认响应的数据封包,则向所述数据接收设备请求并建立TCP链路。即只对已发送列表的前几个数据封包进行遍历和超时检测。
S106、通过所述第二UDP链路向所述数据接收设备发送第二数据封包。
接下来通过所述第二UDP链路继续向所述数据接收设备发送数据封包,重复执行步骤S106。
本发明实施例中,数据发送设备通过UDP链路传输数据,数据接收设备会返回一个确认响应,因此可以检测到数据接收设备是否接收到发送的数据;当数据发送设备检测到接收确认响应超时的时候,丢弃之前的UDP链路,创建新的UDP链路,并通过新的UDP链路传输数据,可以有效解决防火墙等某些限制UDP数据流量的应用导致的掉线、数据传输不流畅或中断的问题,可以增加网络流畅度、降低掉线率、优化数据传输质量。
图2是本发明提供的数据传输方法的另一个实施例的流程示意图,本实施例是针对于数据接收设备一侧描述的,如图2所示,本发明实施例提供的数据传输方法包括:
S201、通过第一UDP链路接收数据发送设备发送的第一数据封包。
其中,数据发送设备可以是客户端,数据接收设备可以对应的是服务器;另外,数据发送设备和数据接收设备也可以是两个对等的终端,,或者数据发送设备为服务器,数据接收设备对应的为客户端。
S202、从所述第一数据封包中解析出所述数据发送设备的连接ID和所述第一UDP链路的链路ID,并保存于链路ID表中。
其中,链路ID表可以保存多个数据发送设备的连接ID和采用的UDP链路的链路ID。具体的,链路ID表可以是哈希表,哈希表的key是数据发送设备的连接ID,value是对应采用的UDP链路的链路ID。其中UDP链路的链路ID具体是发送数据封包采用的socket。
S203、向所述数据发送设备返回所述第一数据封包的确认响应。
具体的,数据接收设备在接收到数据发送设备发送的数据封包后都会返回一个确认响应。
S204、接收所述数据发送设备发送的第二数据封包。
其中,数据发送设备在发送第一数据封包之后会继续发送数据封包,所述第二数据封包是数据发送设备在发送第一数据封包之后发送的数据封包。
S205、根据所述第二数据封包检测当前使用的UDP链路是否为第二UDP链路。
其中,所述第二UDP链路是所述数据发送设备在超过预设时长仍未接收到所述第一数据封包的确认响应时,关闭所述第一UDP链路之后,再创建的UDP链路。
具体的,S205包括:
从所述第二数据封包中解析出所述数据发送设备的连接ID和当前使用的UDP链路ID;
根据所述数据发送设备的连接ID从所述链路ID表中查找出所述第一UDP链路的链路ID,并判断所述链路ID是否与所述当前使用的UDP链路ID相同;
若所述第一UDP链路的链路ID与所述当前使用的UDP链路ID不相同,则判定为所述当前使用的UDP链路是第二UDP链路;否则判定为所述当前使用的UDP链路为第一UDP链路。
S206、若检测到当前使用的UDP链路是所述第二UDP链路,则关闭所述第一UDP链路,并通过所述第二UDP链路返回所述第二数据封包的确认响应。
具体的,如果当前使用的UDP链路与之前使用的不一样,则关闭当前UDP链路,并通过新建的UDP链路返回所述第二数据封包的确认响应。
其中关闭所述第一UDP链路可以调用系统API(win32系统下为close_socet,unix/linux系统下为:close)通知系统回收第一UDP链路,释放第一UDP链路的相关内存,设置第一UDP链路为初始状态。然后调用系统API建立第二UDP链路,即新的UDP链路。
S207、将所述链路ID表中所述第一UDP链路的链路ID更新为所述第二UDP链路的链路ID。
接下来,重复执行步骤S205至S207进行数据传输。
本发明实施例中,数据发送设备通过UDP链路传输数据,数据接收设备会返回一个确认响应,因此可以检测到数据接收设备是否接收到发送的数据;当数据发送设备检测到接收确认响应超时的时候,丢弃之前的UDP链路,创建新的UDP链路,并通过新的UDP链路传输数据,可以有效解决防火墙等某些限制UDP数据流量的应用导致的掉线、数据传输不流畅或中断的问题,可以增加网络流畅度、降低掉线率、优化数据传输质量。
图3是本发明提供的数据传输方法的又一个实施例的流程示意图,本实施例是对于数据接收设备和数据发送设备两侧描述的,如图3所示,本发明实施例提供的数据传输方法包括:
S301、数据发送设备通过第一UDP链路向数据接收设备发送第一数据封包,并将已发送的第一数据封包及其发送时间保存于已发送列表中。
其中,数据发送设备可以是客户端,数据接收设备可以对应的是服务器;可以理解的,数据发送设备和数据接收设备也可以是两个对等的终端,或者数据发送设备为服务器,数据接收设备对应的为客户端。其中,已发送列表是队列结构,其中保存了已发送的数据封包及其发送时间,用于之后的超时检测。
S302、所述数据接收设备通过所述第一UDP链路接收所述数据发送设备发送的第一数据封包,并从所述第一数据封包中解析出所述数据发送设备的连接ID和所述第一UDP链路的链路ID,并保存于链路ID表中。
其中,链路ID表可以保存多个数据发送设备的连接ID和采用的UDP链路的链路ID。具体的,链路ID表可以是哈希表,哈希表的key是数据发送设备的连接ID,value是对应采用的UDP链路的链路ID。其中UDP链路的链路ID具体是数据封包的socket。
S303、所述数据接收设备向所述数据发送设备返回所述第一数据封包的确认响应。
具体的,数据接收设备在接收到数据发送设备发送的数据封包后都会返回一个确认响应,表示接收到该数据封包。
S304、所述数据发送设备接收到所述数据接收设备返回的的确认响应时,从所述已发送列表中删除所述第一数据封包及其发送时间。
具体的,当数据发送设备接收到了确认响应后,会将对应的数据封包及其发送时间从已发送列表中删除,因此已发送列表中保存的都是没有接收到确认响应的数据封包。
S305、所述数据发送设备在超时检测时刻,检测是否接收到所述数据接收设备返回的所述第一数据封包的确认响应。
具体的,S305包括:
所述数据发送设备在超时检测时刻,检测所述已发送列表是否存在所述第一数据封包;
若存在所述第一数据封包,则判断所述第一数据封包的发送时间与当前时刻的差值是否大于预设时长;
当所述差值大于预设时长时,判定超过预设时长仍未接收到所述确认响应。
另外,若所述发送列表不存在所述第一数据封包,或者所述差值小于或等于预设时长,则继续通过所述第一UDP链路向所述数据接收设备发送第二数据封包。其中已发送列表中保存的都是没有接收到确认响应的数据封包,因此,如果已发送列表没有所述第一数据封包,即表示所述第一数据封包已经接收到第一数据封包。
其中,超时检测是一个周期性的检测,可以是每隔500ms检测一次,对应的预设时长可以为2s。
S306、所述数据发送设备在检测到超过预设时长仍未接收到所述第一数据封包的确认响应时,关闭所述第一UDP链路,并创建第二UDP链路。
具体的,检测到超过预设时长仍未接收到所述第一数据封包的确认响应表示当前的第一UDP链路有可能被限制或出现网络问题等,因此关闭所述第一UDP链路,并创建第二UDP链路。关闭所述第一UDP链路可以调用系统API(win32系统下为close_socet,unix/linux系统下为:close)通知系统回收第一UDP链路,释放第一UDP链路的相关内存,设置第一UDP链路为初始状态。然后调用系统API建立第二UDP链路,即新的UDP链路。
步骤S305和步骤S306是针对数据发送设备发送的某一数据封包的超时检测过程进行描述的,在实际操作过程中,如果对数据发送设备发送的每一数据封包都进行超时检测,那么会增加内存消耗、降低效率,因此步骤S305和步骤S306在实际操作过程中的具体实施方式可以是:在超时检测时刻,遍历已发送列表中的前几个数据封包(例如前7个),如果存在超过预设时长没有接收到确认响应的数据封包,则向所述数据接收设备请求并建立TCP链路。即只对已发送列表的前几个数据封包进行遍历和超时检测
S307、所述数据发送设备通过所述第二UDP链路向所述数据接收设备发送第二数据封包。
S308、所述数据接收设备接收所述数据发送设备发送的第二数据封包,并根据所述第二数据封包检测当前使用的UDP链路是否为第二UDP链路。
其中,数据发送设备在发送第一数据封包之后会继续发送数据封包,所述第二数据封包是数据发送设备在发送第一数据封包之后发送的数据封包。
其中,所述根据所述第二数据封包检测当前使用的UDP链路是否为第二UDP链路具体包括:
从所述第二数据封包中解析出所述数据发送设备的连接ID和当前使用的UDP链路ID;
根据所述数据发送设备的连接ID从所述链路ID表中查找出所述第一UDP链路的链路ID,并判断是否与所述当前使用的UDP链路ID相同;
若所述第一UDP链路的链路ID与所述当前使用的UDP链路ID不相同,则判定为所述当前使用的UDP链路是第二UDP链路;否则判定为所述当前使用的UDP链路为第一UDP链路。
S309、若检测到当前使用的UDP链路是所述第二UDP链路,则关闭所述第一UDP链路,并通过所述第二UDP链路返回所述第二数据封包的确认响应。
具体的,如果当前使用的UDP链路与之前使用的不一样,则关闭当前UDP链路,并通过新建的UDP链路返回所述第二数据封包的确认响应。
其中关闭所述第一UDP链路可以调用系统API(win32系统下为close_socet,unix/linux系统下为:close)通知系统回收第一UDP链路,释放第一UDP链路的相关内存,设置第一UDP链路为初始状态。然后调用系统API建立第二UDP链路,即新的UDP链路。
S310、将所述链路ID表中所述第一UDP链路的链路ID更新为所述第二UDP链路的链路ID。
接下来,重复执行步骤S306至S310进行数据传输。
本发明实施例中,数据发送设备通过UDP链路传输数据,数据接收设备会返回一个确认响应,因此可以检测到数据接收设备是否接收到发送的数据;当数据发送设备检测到接收确认响应超时的时候,丢弃之前的UDP链路,创建新的UDP链路,并通过新的UDP链路传输数据,可以有效解决防火墙等某些限制UDP数据流量的应用导致的掉线、数据传输不流畅或中断的问题,可以增加网络流畅度、降低掉线率、优化数据传输质量。
图4是本发明提供的数据发送设备的一个实施例的功能模块图,如图4所示,本发明实施例提供的数据发送设备包括:
第一数据封包发送模块401,用于通过第一UDP链路向数据接收设备发送第一数据封包;
数据保存模块402,用于将所述第一数据封包发送模块401发送的第一数据封包及其发送时间保存于已发送列表中;
数据删除模块403,用于当接收到所述数据接收设备返回的的所述第一数据封包的确认响应时,从所述已发送列表中删除所述第一数据封包及其发送时间;
超时检测模块404,用于在超时检测时刻,检测是否接收到所述数据接收设备返回的所述第一数据封包的确认响应;所述第一数据封包的确认响应表示所述数据接收设备接收到所述第一数据封包;
UDP链路创建模块405,用于若检测到超过预设时长仍未接收到所述第一数据封包的确认响应,关闭所述第一UDP链路,并创建第二UDP链路;
第二数据封包发送模块406,用于通过所述第二UDP链路向所述数据接收设备发送第二数据封包。
其中,如图5所示,所述超时检测模块404具体包括:
已发送列表检测单元4041,用于在超时检测时刻,检测所述已发送列表是否存在所述第一数据封包;
超时计算单元4042,用于若存在所述第一数据封包,则判断所述第一数据封包的发送时间与当前时刻的差值是否大于预设时长;
超时判定单元4043,用于当所述差值大于预设时长时,判定超过预设时长仍未接收到所述确认响应。
进一步的,本发明实施例提供的数据发送设备还可以包括:
第三数据封包发送模块(图4未示),用于若所述发送列表不存在所述第一数据封包,或者所述差值小于或等于预设时长,则继续通过所述第一UDP链路向所述数据接收设备发送第二数据封包。
本发明实施例与本发明提供的图1所示的数据传输方法的实施例一一对应,因此,各模块的具体信息请参照本发明提供的数据传输方法的第一实施例,在此不再赘述。
本发明实施例中,数据发送设备通过UDP链路传输数据,数据接收设备会返回一个确认响应,因此可以检测到数据接收设备是否接收到发送的数据;当数据发送设备检测到接收确认响应超时的时候,丢弃之前的UDP链路,创建新的UDP链路,并通过新的UDP链路传输数据,可以有效解决防火墙等某些限制UDP数据流量的应用导致的掉线、数据传输不流畅或中断的问题,可以增加网络流畅度、降低掉线率、优化数据传输质量。
图6是本发明提供的数据接收设备的一个实施例的功能模块图,如图6所示,本发明实施例提供的数据接收设备包括:
第一数据封包接收模块501,用于通过第一UDP链路接收数据发送设备发送的第一数据封包;
第一数据封包解析模块502,用于从所述第一数据封包发送模块501接收的第一数据封包中解析出所述数据发送设备的连接ID和所述第一UDP链路的链路ID,并保存于链路ID表中;
第一确认响应返回模块503,用于向所述数据发送设备返回所述第一数据封包的确认响应;
第二数据封包接收模块504,用于接收所述数据发送设备发送的第二数据封包;
UDP链路检测模块505,用于根据所述第二数据封包检测当前使用的UDP链路是否为第二UDP链路;所述第二UDP链路是所述数据发送设备在超过预设时长仍未接收到所述第一数据封包的确认响应时,关闭所述第一UDP链路之后,再创建的UDP链路;
第二确认响应返回模块506,用于若检测到当前使用的UDP链路是所述第二UDP链路,则关闭所述第一UDP链路,并通过所述第二UDP链路返回所述第二数据封包的确认响应。
其中,如图7所示,所述UDP链路检测模块505具体包括:
数据封包解析单元5051,用于从所述第二数据封包发送模块接收的第二数据封包中解析出所述数据发送设备的连接ID和当前使用的UDP链路ID;
UDP链路查找单元5052,用于根据所述数据发送设备的连接ID从所述链路ID表中查找出所述第一UDP链路的链路ID,并判断是否与所述当前使用的UDP链路ID相同;
UDP链路判定单元5053,用于若所述第一UDP链路的链路ID与所述当前使用的UDP链路ID不相同,则判定为所述当前使用的UDP链路是第二UDP链路;否则判定为所述当前使用的UDP链路为第一UDP链路。
进一步的,本发明实施例提供的数据接收设备还可以包括链路ID表更新模块(图未示),用于将所述链路ID表中所述第一UDP链路的链路ID更新为所述第二UDP链路的链路ID。
本发明实施例与本发明提供的图2所示的数据传输方法的实施例一一对应,因此,各模块的具体信息请参照本发明提供的数据传输方法的第二实施例,在此不再赘述。
本发明实施例中,数据发送设备通过UDP链路传输数据,数据接收设备会返回一个确认响应,因此可以检测到数据接收设备是否接收到发送的数据;当数据发送设备检测到接收确认响应超时的时候,丢弃之前的UDP链路,创建新的UDP链路,并通过新的UDP链路传输数据,可以有效解决防火墙等某些限制UDP数据流量的应用导致的掉线、数据传输不流畅或中断的问题,可以增加网络流畅度、降低掉线率、优化数据传输质量。
图8是本发明提供的数据传输系统的一个实施例的功能模块图,如图8所示,本发明实施例提供的数据传输系统包括数据发送设备61和数据接收设备62,所述数据发送设备61包括第一数据封包发送模块611、数据保存模块612、数据删除模块613、超时检测模块614、UDP链路创建模块615和第二数据封包发送模块616,所述数据接收设备62包括第一数据封包接收模块621、第一数据封包解析模块622、第一确认响应返回模块623、第二数据封包接收模块624、UDP链路检测模块625和第二确认响应返回模块626;其中:
第一数据封包发送模块611,用于数据发送设备61通过第一UDP链路向数据接收设备62发送第一数据封包。
数据保存模块612,用于将所述第一数据封包发送模块611发送的第一数据封包及其发送时间保存于已发送列表中。
数据删除模块613,用于当接收到所述数据接收设备62返回的所述第一数据封包的确认响应时,从所述已发送列表中删除所述第一数据封包及其发送时间。
第一数据封包接收模块621,用于所述数据接收设备62通过所述第一UDP链路接收所述数据发送设备61发送的第一数据封包。
第一数据封包解析模块622,用于从所述第一数据封包接收模块接收的第一数据封包中解析出所述数据发送设备61的连接ID和所述第一UDP链路的链路ID,并保存于链路ID表中。
第一确认响应返回模块623,用于所述数据接收设备62向所述数据发送设备61返回所述第一数据封包的确认响应。
超时检测模块614,用于所述数据发送设备61在超时检测时刻,检测是否接收到所述第一数据封包的确认响应。
UDP链路创建模块615,用于所述数据发送设备61检测到超过预设时长仍未接收到所述第一数据封包的确认响应,则关闭所述第一UDP链路,并创建第二UDP链路。
第二数据封包发送模块616,用于所述数据发送设备61通过所述第二UDP链路向所述数据接收设备62发送第二数据封包。
第二数据封包接收模块624,用于所述数据接收设备62接收所述数据发送设备61发送的第二数据封包。
UDP链路检测模块625,用于所述数据接收设备62根据所述第二数据封包检测当前使用的UDP链路是否为第二UDP链路。
第二确认响应返回模块626,用于若所述数据接收设备62检测到当前使用的UDP链路是所述第二UDP链路,关闭所述第一UDP链路,并通过所述第二UDP链路返回所述第二数据封包的确认响应。
其中,超时检测模块614具体包括:
已发送列表检测单元,用于在超时检测时刻,检测所述已发送列表是否存在所述第一数据封包;
超时计算单元,用于若存在所述第一数据封包,则判断所述第一数据封包的发送时间与当前时刻的差值是否大于预设时长;
超时判定单元,用于当所述差值大于预设时长时,判定超过预设时长仍未接收到所述确认响应。
其中,UDP链路检测模块625具体包括:
数据封包解析单元,用于从所述第二数据封包发送模块接收的第二数据封包中解析出所述数据发送设备61的连接ID和当前使用的UDP链路ID;
UDP链路查找单元,用于根据所述数据发送设备61的连接ID从所述链路ID表中查找出所述第一UDP链路的链路ID,并判断是否与所述当前使用的UDP链路ID相同;
UDP链路判定单元,用于若所述第一UDP链路的链路ID与所述当前使用的UDP链路ID不相同,则判定为所述当前使用的UDP链路是第二UDP链路;否则判定为所述当前使用的UDP链路为第一UDP链路。
进一步的,所述数据发送设备61还可以包括第三数据封包发送模块(图未示),用于若所述发送列表不存在所述第一数据封包,或者所述差值小于或等于预设时长,则继续通过所述第一UDP链路向所述数据接收设备62发送第二数据封包。
进一步的,所述数据接收设备62还可以包括链路ID表更新模块(图未示),用于将所述链路ID表中所述第一UDP链路的链路ID更新为所述第二UDP链路的链路ID。
本发明实施例与本发明提供的图3所示的数据传输方法的实施例一一对应,因此,各模块的具体信息请参照本发明提供的数据传输方法的第三实施例,在此不再赘述。
本发明实施例中,数据发送设备通过UDP链路传输数据,数据接收设备会返回一个确认响应,因此可以检测到数据接收设备是否接收到发送的数据;当数据发送设备检测到接收确认响应超时的时候,丢弃之前的UDP链路,创建新的UDP链路,并通过新的UDP链路传输数据,可以有效解决防火墙等某些限制UDP数据流量的应用导致的掉线、数据传输不流畅或中断的问题,可以增加网络流畅度、降低掉线率、优化数据传输质量。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统和方法可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (22)

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;
超时检测模块,用于在超时检测时刻,检测是否接收到所述数据接收设备返回的所述第一数据封包的确认响应;所述第一数据封包的确认响应表示所述数据接收设备接收到所述第一数据封包;
UDP链路创建模块,用于若检测到超过预设时长仍未接收到所述第一数据封包的确认响应,关闭所述第一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链路发送所述第二数据封包的确认响应。
13.如权利要求12所述的数据发送设备,其特征在于,还包括:
数据保存模块,用于将所述第一数据封包发送模块发送的第一数据封包及其发送时间保存于已发送列表中;
数据删除模块,用于当接收到所述数据接收设备返回的的所述第一数据封包的确认响应时,从所述已发送列表中删除所述第一数据封包及其发送时间。
14.如权利要求13所述的数据发送设备,其特征在于,所述超时检测模块具体包括:
已发送列表检测单元,用于在超时检测时刻,检测所述已发送列表是否存在所述第一数据封包;
超时计算单元,用于若存在所述第一数据封包,则判断所述第一数据封包的发送时间与当前时刻的差值是否大于预设时长;
超时判定单元,用于当所述差值大于预设时长时,判定超过预设时长仍未接收到所述确认响应。
15.如权利要求14所述的数据发送设备,其特征在于,还包括:
第三数据封包发送模块,用于若所述发送列表不存在所述第一数据封包,或者所述差值小于或等于预设时长,则继续通过所述第一UDP链路向所述数据接收设备发送第二数据封包。
16.一种数据接收设备,其特征在于,包括:
第一数据封包接收模块,用于通过第一UDP链路接收数据发送设备发送的第一数据封包;
第一数据封包解析模块,用于从所述第一数据封包发送模块接收的第一数据封包中解析出所述数据发送设备的连接ID和所述第一UDP链路的链路ID,并保存于链路ID表中;所述链路ID表为哈希表,所述哈希表的KEY是数据发送设备的连接ID,所述哈希表的VALUE是对应所述第一UDP链路的链路ID;
第一确认响应返回模块,用于向所述数据发送设备返回所述第一数据封包的确认响应;
第二数据封包接收模块,用于接收所述数据发送设备发送的第二数据封包;
数据封包解析单元,用于从所述第二数据封包发送模块接收的第二数据封包中解析出所述数据发送设备的连接ID和当前使用的UDP链路ID;
UDP链路查找单元,用于根据所述数据发送设备的连接ID从所述链路ID表中查找出所述第一UDP链路的链路ID,并判断是否与所述当前使用的UDP链路ID相同;
UDP链路判定单元,用于若所述第一UDP链路的链路ID与所述当前使用的UDP链路ID不相同,则判定为所述当前使用的UDP链路是第二UDP链路;否则判定为所述当前使用的UDP链路为第一UDP链路;所述第二UDP链路是所述数据发送设备在超过预设时长仍未接收到所述第一数据封包的确认响应时,关闭所述第一UDP链路之后,再创建的UDP链路;
第二确认响应返回模块,用于若检测到当前使用的UDP链路是所述第二UDP链路,则关闭所述第一UDP链路,并通过所述第二UDP链路返回所述第二数据封包的确认响应;其中,所述关闭所述第一UDP链路具体为:通过调用系统API通知系统回收第一UDP链路,释放第一UDP链路的相关内存,设置第一UDP链路为初始状态。
17.如权利要求16所述的数据接收设备,其特征在于,还包括:
链路ID表更新模块,用于将所述链路ID表中所述第一UDP链路的链路ID更新为所述第二UDP链路的链路ID。
18.一种数据传输系统,其特征在于,包括数据发送设备和数据接收设备,所述数据发送设备包括第一数据封包发送模块、超时检测模块、UDP链路创建模块和第二数据封包发送模块,所述数据接收设备包括第一数据封包接收模块、第一确认响应返回模块、第二数据封包接收模块、UDP链路检测模块和第二确认响应返回模块;其中:
所述第一数据封包发送模块,用于数据发送设备通过第一UDP链路向数据接收设备发送第一数据封包;
所述第一数据封包接收模块,用于所述数据接收设备通过所述第一UDP链路接收所述数据发送设备发送的第一数据封包,从所述第一数据封包解析出所述数据发送设备的连接ID和所述第一UDP链路的链路ID,并保存于链路ID表中;所述链路ID表为哈希表,所述哈希表的KEY是数据发送设备的连接ID,所述哈希表的VALUE是对应所述第一UDP链路的链路ID;
所述第一确认响应返回模块,用于所述数据接收设备向所述数据发送设备返回所述第一数据封包的确认响应;
所述超时检测模块,用于所述数据发送设备在超时检测时刻检测是否接收到所述第一数据封包的确认响应;
所述UDP链路创建模块,用于所述数据发送设备在检测到超过预设时长仍未接收到所述第一数据封包的确认响应时,关闭所述第一UDP链路,并创建第二UDP链路;其中,所述关闭所述第一UDP链路具体为:通过调用系统API通知系统回收第一UDP链路,释放第一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链路为初始状态。
19.如权利要求18所述的数据传输系统,其特征在于,所述数据发送设备还包括:
数据保存模块,用于将所述第一数据封包发送模块发送的第一数据封包及其发送时间保存于已发送列表中;
数据删除模块,用于当接收到所述数据接收设备返回的所述第一数据封包的确认响应时,从所述已发送列表中删除所述第一数据封包及其发送时间。
20.如权利要求19所述的数据传输系统,其特征在于,所述超时检测模块具体包括:
已发送列表检测单元,用于在超时检测时刻,检测所述已发送列表是否存在所述第一数据封包;
超时计算单元,用于若存在所述第一数据封包,则判断所述第一数据封包的发送时间与当前时刻的差值是否大于预设时长;
超时判定单元,用于当所述差值大于预设时长时,判定超过预设时长仍未接收到所述确认响应。
21.如权利要求20所述的数据传输系统,其特征在于,所述数据发送设备还包括:
第三数据封包发送模块,用于若所述发送列表不存在所述第一数据封包,或者所述差值小于或等于预设时长,则继续通过所述第一UDP链路向所述数据接收设备发送第二数据封包。
22.如权利要求18所述的数据传输系统,其特征在于,所述数据接收设备还包括:
链路ID表更新模块,用于将所述链路ID表中所述第一UDP链路的链路ID更新为所述第二UDP链路的链路ID。
CN201410567387.9A 2014-10-22 2014-10-22 数据传输方法、设备及系统 Active CN104320273B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410567387.9A CN104320273B (zh) 2014-10-22 2014-10-22 数据传输方法、设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410567387.9A CN104320273B (zh) 2014-10-22 2014-10-22 数据传输方法、设备及系统

Publications (2)

Publication Number Publication Date
CN104320273A CN104320273A (zh) 2015-01-28
CN104320273B true CN104320273B (zh) 2019-03-19

Family

ID=52375448

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410567387.9A Active CN104320273B (zh) 2014-10-22 2014-10-22 数据传输方法、设备及系统

Country Status (1)

Country Link
CN (1) CN104320273B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107872396B (zh) * 2016-09-26 2021-07-16 华为技术有限公司 具有超时控制的通信方法、处理设备、终端设备和服务器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1893428A (zh) * 2005-11-29 2007-01-10 华为技术有限公司 媒体网关控制协议的承载系统及其方法
US7817631B1 (en) * 2008-07-09 2010-10-19 Google Inc. Network transfer protocol
CN102387164A (zh) * 2010-08-30 2012-03-21 上海悠络客电子科技有限公司 一种p2p网络数据传输的方法
CN103036904A (zh) * 2012-12-27 2013-04-10 东方通信股份有限公司 一种在通信网络中使用udp协议进行数据可靠传输的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7760628B2 (en) * 2006-09-26 2010-07-20 Kyocera Corporation Socket based passive server

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1893428A (zh) * 2005-11-29 2007-01-10 华为技术有限公司 媒体网关控制协议的承载系统及其方法
US7817631B1 (en) * 2008-07-09 2010-10-19 Google Inc. Network transfer protocol
CN102387164A (zh) * 2010-08-30 2012-03-21 上海悠络客电子科技有限公司 一种p2p网络数据传输的方法
CN103036904A (zh) * 2012-12-27 2013-04-10 东方通信股份有限公司 一种在通信网络中使用udp协议进行数据可靠传输的方法

Also Published As

Publication number Publication date
CN104320273A (zh) 2015-01-28

Similar Documents

Publication Publication Date Title
US7080173B2 (en) Reducing information reception delays
US20070226375A1 (en) Plug-in architecture for a network stack in an operating system
CN105516080B (zh) Tcp连接的处理方法、装置及系统
CN104486243B (zh) 数据传输方法、设备及系统
CA2489430A1 (en) Adaptive feedback technique implemented in mobile ip networks
CN101436978A (zh) 使用udp协议进行可靠数据传输的方法
US20070226347A1 (en) Method and apparatus for dynamically changing the TCP behavior of a network connection
WO2020119347A1 (zh) 一种消息传输方法、装置、设备及介质
CN105162706B (zh) 组播传输方法、装置及系统
CN104283716B (zh) 数据传输方法、设备及系统
US20100262679A1 (en) Method and system for checking automatically connectivity status of an ip link on ip network
WO2023179538A1 (zh) 数据传输方法、装置、电子设备和存储介质
CN102769520A (zh) 基于sctp协议的无线网络拥塞控制方法
CN111385068B (zh) 数据传输方法、装置、电子设备及通信系统
CN104320273B (zh) 数据传输方法、设备及系统
CN108234089B (zh) 用于低时延通信的方法和系统
JP2007110680A (ja) 通信装置、通信プログラム、通信制御方法および記録媒体
CN102340508B (zh) 一种数据的传输方法和设备
CN106534331B (zh) 一种基于动态端口切换的数据传输方法和系统
WO2019015487A1 (zh) 一种数据重传处理方法、rlc实体和mac实体
WO2016169251A1 (zh) 虚拟机的tcp数据传输方法和虚拟机系统
CN106385409B (zh) 一种tcp报文的处理方法及装置
CN101242296B (zh) 一种释放接口资源的方法、系统及设备
Zhuang et al. Application-aware acceleration for wireless data networks: Design elements and prototype implementation
WO2021140960A1 (ja) 通信装置、及び通信方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant