数据传输方法、装置、数据收发设备、系统及存储介质与流程

文档序号:15358009发布日期:2018-09-05 00:14阅读:152来源:国知局

本发明涉及通信领域,尤其涉及一种数据传输方法、装置、数据收发设备、数据传输系统及计算机可读存储介质。



背景技术:

用户端和服务器之间的通信一般通过socket建立tcp链接或者udp链路进行数据交互,在现有技术中,用户端与服务器之间的通信通常建立一个tcp链路或者一个udp链路进行数据交互,但发明人发现:tcp链路由于保证可靠性的自身机制,受到网络延迟波动的影响容易造成延迟峰值变高。udp链路虽可降低延迟,但是缺乏可靠性保障。另外,无论是tcp还是udp,数据包都经过唯一路径达到对方,路径上出现网络异常(如:拥塞)的情况下,通信就会受阻。



技术实现要素:

针对上述问题,本发明的目的在于提供一种数据传输方法、装置、数据收发设备、数据传输系统及计算机可读存储介质,保证通信可靠性,提高网络稳定性。

第一方面,本发明实施例提供了一种数据传输方法,包括以下步骤:

在第一数据收发端处:

获取第二数据收发端通过n条链路发送的n个相同数据包中最快到达的数据包;其中,n>1,所述n条链路包括1条tcp链路及n-1条udp链路,所述第一数据收发端与所述第二数据收发端的链路之间包括至少一个节点服务器,所述数据包包括表征自身在数据流中的封装顺序的序列号;

将所述最快到达的数据包根据自身的序列号写入缓冲区中相应的缓存队列中,并丢弃次到达的序列号相同的所述数据包;其中,所述缓冲区包括至少一个缓存队列;

根据所述缓存队列中的数据包的缓存情况及序列号顺序,对所述缓存队列中的数据包进行封装处理,以形成第一数据流。

在第一方面的第一种实现方式中,所述缓存队列包括用于缓存数据包的至少一个缓存块;

则所述将所述最快到达的数据包根据自身的序列号写入缓冲区中相应的缓存队列中,并丢弃次到达的序列号相同的所述数据包,具体为:

根据所述最快到达的数据包的序列号,将所述最快到达的数据包写入缓冲区相应缓存队列中预定的缓存块上,并丢弃次到达的序列号相同的所述数据包;

则所述根据所述缓存队列中的数据包的缓存情况及序列号顺序,对所述缓存队列中的数据包进行封装处理,以形成第一数据流,具体为:

当检测到所述缓存队列的队头缓存块上存储有数据包时,依次检测下一个缓存块的缓存情况直到检测到第一个空缓存块;

剔除所述空缓存块之前的所有缓存块上的数据包的序列号,并对剔除序列号的数据包进行封装处理,以形成第一数据流;

将所述所有缓存块移到所述缓存队列的队尾,并更新所述所有缓存块的缓存状态。

根据第一方面的第一种实现方式,在第一方面的第二种实现方式中,所述根据所述最快到达的数据包的序列号,将所述最快到达的数据包写入缓冲区相应缓存队列中预定的缓存块上,并丢弃次到达的序列号相同的所述数据包,具体为:

根据所述最快到达的数据包的序列号,及相应缓存队列中移到队尾的缓存块的数量,确定所述最快到达的数据包对应的缓存块的位置顺序;其中,所述对应的缓存块的位置顺序=所述最快到达的数据包自身的序列号-相应缓存队列中移到队尾的缓存块的数量;

将所述最快到达的数据包写入对应的缓存块上,并丢弃次到达的序列号相同的所述数据包。

则所述的数据传输方法,还包括:

当检测到所述最快到达的数据包序列号与相应缓存队列中移到队尾的缓存块的数量之差,大于所述缓存队列的缓存块数量时,释放所述缓存队列。

在第一方面的第三种实现方式中,还包括:

将产生的第二数据流进行分割处理并按顺序分配序列号,以生成包括序列号的数据包;

通过所述n条链路发送n个相同的所述数据包,以传输给所述第二数据收发端;其中,所述数据包用于触发所述第二数据收发端获取通过n条链路发送的n个相同数据包中最快到达的数据包。

在第一方面的第四种实现方式中,所述第一数据收发端为用户端,所述第二数据收发端为目标服务器;或者,

所述第一数据收发端为目标服务器,所述第二数据收发端为用户端。

在第一方面的第五种实现方式中,所述第一数据收发端为用户端,所述第二数据收发端为目标服务器;

则所述数据传输方法,还包括:

在选定的m个节点服务器中,根据选择的至少一个节点服务器与所述目标服务器建立tcp链路连接;其中,m≥n;

在接收所述目标服务器的连接确认通知后,根据其余m-1个节点服务器与所述目标服务器建立n-1条udp链路连接;其中,所述n条链路上的节点服务器互不相同。

第二方面,本发明提供了一种数据传输装置,包括:在第一数据收发端处:

数据包获取模块,用于获取第二数据收发端通过n条链路发送的n个相同数据包中最快到达的数据包;其中,n>1,所述n条链路包括1条tcp链路及n-1条udp链路,所述第一数据收发端与所述第二数据收发端的链路之间包括至少一个节点服务器,所述数据包包括表征自身在数据流中的封装顺序的序列号;

数据包写入模块,用于将所述最快到达的数据包根据自身的序列号写入缓冲区中相应的缓存队列中,并丢弃次到达的序列号相同的所述数据包;其中,所述缓冲区包括至少一个缓存队列;

数据包封装模块,用于根据所述缓存队列中的数据包的缓存情况及序列号顺序,对所述缓存队列中的数据包进行封装处理,以形成第一数据流。

第三方面,本发明提供了一种数据收发设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面中任意一项所述的数据传输方法。

第四方面,本发明提供了一种数据传输系统,包括至少一个第一数据收发端、至少一个第二数据收发端第二数据收发端及至少一个节点服务器;其中,所述第一数据收发端与所述第二数据收发端通过节点服务器建立n条链路连接,n>1,所述n条链路包括1条tcp链路及n-1条udp链路;

所述第二数据收发端,用于将产生的第一数据流进行分割处理并按顺序分配序列号,以生成包括序列号的数据包;通过所述n条链路发送n个相同的所述数据包,以传输给所述第一数据收发端;

所述第一数据收发端,用于获取所述第二数据收发端通过n条链路发送的n个相同数据包中最快到达的数据包;将所述最快到达的数据包根据自身的序列号写入缓冲区中相应的缓存队列中,并丢弃次到达的序列号相同的所述数据包;其中,所述缓冲区包括至少一个缓存队列;

所述第一数据收发端,还用于根据所述缓存队列中的数据包的缓存情况及序列号顺序,对所述缓存队列中的数据包进行封装处理,以形成第一数据流。

第五方面,本发明提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行第一方面中任意一项所述的数据传输方法。

本发明实施例提供了一种数据传输方法、装置、数据收发设备、数据传输系统及计算机可读存储介质,其一个实施例具有如下有益效果:

所述第一数据收发端通过获取第二数据收发端通过n条链路发送的n个相同数据包中最快到达的数据包,并将所述最快到达的数据包根据自身的序列号写入缓冲区中相应的缓存队列中,并丢弃次到达的序列号相同的所述数据包,最后根据所述缓存队列中的数据包的缓存情况及序列号顺序,对所述缓存队列中的数据包进行封装处理,以形成第一数据流,采用tcp与udp结合的通信方式,降低了单tcp链路受网络波动影响的几率,降低了通信的延迟峰值,同时利用udp链路延迟低的特点,使整体的通信延迟优于单tcp链路,利用tcp的可靠性弥补udp可能丢包导致的数据缺失可能,同时数据包经过多节点转发,只接受最快到达的数据包,在不影响传输速率的同时也避免唯一路径出现故障导致的通信受阻,从而增强了稳定性。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明第一实施例提供的数据传输方法的流程示意图。

图2是本发明第一实施例提供的分割处理并分配序列号的示意图。

图3是本发明第一实施例提供的第一数据收发端与第二数据收发端的n条链路连接的示意图。

图4是本发明第一实施例提供的将最快到达的数据包写入缓冲区的示意图。

图5是本发明第一实施例提供的剔除序列号并封装数据包的示意图。

图6是本发明第一实施例提供的将缓存块移到队尾的示意图。

图7是本发明第一实施例提供的最快到达的数据包没有缓存位置的示意图。

图8是本发明第五实施例提供的数据传输装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,本发明实施例提供了一种数据传输方法,包括以下步骤:

在第一数据收发端处:

s11,获取第二数据收发端通过n条链路发送的n个相同数据包中最快到达的数据包;其中,n>1,所述n条链路包括1条tcp链路及n-1条udp链路,所述第一数据收发端与所述第二数据收发端的链路之间包括至少一个节点服务器,所述数据包包括表征自身在数据流中的封装顺序的序列号。

在本发明实施例中,所述第一数据收发端为用户端,所述第二数据收发端为目标服务器;或者,所述第一数据收发端为目标服务器,所述第二数据收发端为用户端,所述用户端包括桌上型计算机、笔记本、掌上电脑及移动终端等计算设备。

在本发明实施例中,请参阅图2,所述第二数据收发端将产生的第一数据流进行分割处理,并为分割后的数据包分配一个表征自身在数据流中的封装顺序的序列号,然后将分配了序列号的数据包通过n条链路进行发送,即发送数据包时,向所述n条链路都发送该数据包,所述数据包在经过n条链路的传输及链路中节点服务器的转发之后,将所述数据包传输给第一数据收发端,请参阅图3,所述n条链路包括1条tcp链路及n-1条udp链路,tcp链路具有可靠性保障,利用tcp特性,提供两个作用:1.建立链接时以便目标服务器验证用户端;2.作为保底链路,当所有udp都发生丢包的情况下也保证数据可靠;而udp是无连接的,这里的udp链路是逻辑链路,udp数据包经过不同节点服务器看作一条链路,即客户端->节点b->服务器、客户端->节点c->服务器,提供两个作用:1.降低延迟;2.改善点节点的稳定性,所述第一数据收发端与所述第二数据收发端的链路之间包括至少一个节点服务器,所述节点服务器用于收发数据,各个链路上的节点服务器各不相同,需要说明的是,目标服务器可作为特殊的节点服务器供用户端直接连接,然后所述第一数据收发端接收所述第二数据收发端通过n条链路发送的数据包,然后只获取第二数据收发端通过n条链路发送的n个相同数据包中最快到达的数据包,并丢弃次到达的相同的所述数据包。

s12,将所述最快到达的数据包根据自身的序列号写入缓冲区中相应的缓存队列中,并丢弃次到达的序列号相同的所述数据包;其中,所述缓冲区包括至少一个缓存队列。

在本发明实施例中,请参阅图4,所述缓存队列包括用于缓存数据包的至少一个缓存块,所述第一数据收发端根据所述最快到达的数据包的序列号,将所述最快到达的数据包写入缓冲区相应缓存队列中预定的缓存块上,并丢弃次到达的序列号相同的所述数据包。

s13,根据所述缓存队列中的数据包的缓存情况及序列号顺序,对所述缓存队列中的数据包进行封装处理,以形成第一数据流。

在本发明实施例中,请参阅图5,当所述第一数据收发端检测到所述缓存队列的队头缓存块上存储有数据包时,依次检测下一个缓存块的缓存情况直到检测到第一个空缓存块,然后所述第一数据收发端剔除所述空缓存块之前的所有缓存块上的数据包的序列号,并对剔除序列号的数据包进行封装处理,以形成第一数据流,然后将数据流提交给对应的业务进行处理,请参阅图6,所述第一数据收发端在处理完数据之后,将所述所有缓存块移到所述缓存队列的队尾,并更新所述所有缓存块的缓存状态,将其置为wait状态。

综上所述,本发明第一实施例提供了一种数据传输方法,所述第一数据收发端通过获取第二数据收发端通过n条链路发送的n个相同数据包中最快到达的数据包,并将所述最快到达的数据包根据自身的序列号写入缓冲区中相应的缓存队列中,并丢弃次到达的序列号相同的所述数据包,最后根据所述缓存队列中的数据包的缓存情况及序列号顺序,对所述缓存队列中的数据包进行封装处理,以形成第一数据流,采用tcp与udp结合的通信方式,降低了单tcp链路受网络波动影响的几率,降低了通信的延迟峰值,同时利用udp链路延迟低的特点,使整体的通信延迟优于单tcp链路,利用tcp的可靠性弥补udp可能丢包导致的数据缺失可能,同时数据包经过多节点转发,只接受最快到达的数据包,在不影响传输速率的同时也避免唯一路径出现故障导致的通信受阻,从而增强了稳定性。

为了便于对本发明的理解,下面将对本发明的一些优选实施例做更进一步的描述。

本发明第二实施例:

在本发明第一实施例的基础上,所述根据所述最快到达的数据包的序列号,将所述最快到达的数据包写入缓冲区相应缓存队列中预定的缓存块上,并丢弃次到达的序列号相同的所述数据包,具体为:

根据所述最快到达的数据包的序列号,及相应缓存队列中移到队尾的缓存块的数量,确定所述最快到达的数据包对应的缓存块的位置顺序;其中,所述对应的缓存块的位置顺序=所述最快到达的数据包自身的序列号-相应缓存队列中移到队尾的缓存块的数量。

将所述最快到达的数据包写入对应的缓存块上,并丢弃次到达的序列号相同的所述数据包。

在本发明实施例中,所述第一数据收发端在将所述最快到达的数据包存入缓冲区时,首先根据所述最快到达的数据包的序列号获取其对应的缓存队列,然后检测所述缓存队列中移到队尾的缓存块的数量,则所述最快到达的数据包对应的缓存块的位置顺序=所述最快到达的数据包自身的序列号-相应缓存队列中移到队尾的缓存块的数量,例如,请参阅图6,所述最快到达的数据包的序列号为5,已知移到队尾的缓存块的数量为4,则所述最快到达的数据包对应的缓存块的位置为队头第1个缓存块,在确定对应的缓存块的位置顺序后,所述第一数据收发端将所述最快到达的数据包写入对应的缓存块上,并丢弃次到达的序列号相同的所述数据包。

则所述的数据传输方法,还包括:

当检测到所述最快到达的数据包序列号与相应缓存队列中移到队尾的缓存块的数量之差,大于所述缓存队列的缓存块数量时,释放所述缓存队列。

在本发明实施例中,当所述数据收发端检测到所述最快到达的数据包序列号与相应缓存队列中移到队尾的缓存块的数量之差,大于所述缓存队列的缓存块数量时,例如,请参阅图7,当所述最快到达的数据包的序列号为13,这时移到队尾的缓存块的数量为0,计算得出所述最快到达的数据包对应的缓存块为第13块,而整个缓存队列仅包括12块缓存块,则触发断线处理,释放所述缓存队列,关闭tcp的scoket描述符,并释放tcp链路和各个udp链路的内存资源。

本发明第三实施例:

在本发明第一实施例的基础上,还包括:

将产生的第二数据流进行分割处理并按顺序分配序列号,以生成包括序列号的数据包。

通过所述n条链路发送n个相同的所述数据包,以传输给所述第二数据收发端;其中,所述数据包用于触发所述第二数据收发端获取通过n条链路发送的n个相同数据包中最快到达的数据包。

在本发明实施例中,请参阅图2,所述第一数据收发端将自身因业务需求所产生的第二数据流进行分割处理并按顺序分配并封装序列号,以生成包括序列号的数据包,然后将所述包括序列号的数据包通过n条链路进行发送,即发送数据包时,向所述n条链路都发送该数据包,所述数据包在经过n条链路的传输及链路中节点服务器的转发之后,将所述数据包传输给第二数据收发端,让第二数据收发端可以根据序号重新组装数据,保证数据有序性。

本发明第四实施例:

在本发明第一实施例的基础上,所述第一数据收发端为用户端,所述第二数据收发端为目标服务器。

则所述数据传输方法,还包括:

在选定的m个节点服务器中,根据选择的至少一个节点服务器与所述目标服务器建立tcp链路连接;其中,m≥n。

在接收所述目标服务器的连接确认通知后,根据其余m-1个节点服务器与所述目标服务器建立n-1条udp链路连接;其中,所述n条链路上的节点服务器互不相同。

在本发明实施例中,请参阅图3,在服务区域上部署l(l≥2)个节点服务器(下称节点),每个节点间网络联通并且在不同区域(如:服务区为中国,不同节点可以分别部署在广东、北京、四川……),节点负责转发数据,其中目标服务器也可以看作特殊节点允许客户端联通交互,用户端选择其中一个节点服务器a和目标服务器建立tcp链接,所述目标服务器在验证通过后通知用户端,随后用户端使用其它节点(a节点服务器除外)发送udp链路建立协议,和服务器建立多条udp链路,tcp链路具有可靠性保障,利用tcp特性,提供两个作用:1.建立链接时以便目标服务器验证用户端;2.作为保底链路,当所有udp都发生丢包的情况下也保证数据可靠;而udp是无连接的,这里的udp链路是逻辑链路,udp数据包经过不同节点服务器看作一条链路,即客户端->节点b->服务器、客户端->节点c->服务器,提供两个作用:1.降低延迟;2.改善点节点的稳定性,需要说明的是,每条链路上的节点服务器不限数量,用户可以不选择服务器而直接连接目标服务器,也可以选择节点服务器以转发数据,且由于多节点多链路同发送同一个数据包可能会造成资源的浪费,因此需根据业务的重要性和实际需求决定节点数。

请参阅图8,本发明第五实施例提供了一种数据传输装置,包括:在第一数据收发端处:

数据包获取模块11,用于获取第二数据收发端通过n条链路发送的n个相同数据包中最快到达的数据包;其中,n>1,所述n条链路包括1条tcp链路及n-1条udp链路,所述第一数据收发端与所述第二数据收发端的链路之间包括至少一个节点服务器,所述数据包包括表征自身在数据流中的封装顺序的序列号。

数据包写入模块12,用于将所述最快到达的数据包根据自身的序列号写入缓冲区中相应的缓存队列中,并丢弃次到达的序列号相同的所述数据包;其中,所述缓冲区包括至少一个缓存队列。

数据包封装模块13,用于根据所述缓存队列中的数据包的缓存情况及序列号顺序,对所述缓存队列中的数据包进行封装处理,以形成第一数据流。

在第五实施例的第一种实现方式中,所述缓存队列包括用于缓存数据包的至少一个缓存块。

则所述数据包写入模块12具体包括:

数据包写入单元,用于根据所述最快到达的数据包的序列号,将所述最快到达的数据包写入缓冲区相应缓存队列中预定的缓存块上,并丢弃次到达的序列号相同的所述数据包。

则所述数据包封装模块13具体包括:

空缓存检测单元,用于当检测到所述缓存队列的队头缓存块上存储有数据包时,依次检测下一个缓存块的缓存情况直到检测到第一个空缓存块。

封装处理单元,用于剔除所述空缓存块之前的所有缓存块上的数据包的序列号,并对剔除序列号的数据包进行封装处理,以形成第一数据流。

缓存块移动单元,用于将所述所有缓存块移到所述缓存队列的队尾,并更新所述所有缓存块的缓存状态。

根据第五实施例的第一种实现方式,在第五实施例的第二种实现方式中,所述数据包写入单元具体包括:

缓存块位置确定子单元,用于根据所述最快到达的数据包的序列号,及相应缓存队列中移到队尾的缓存块的数量,确定所述最快到达的数据包对应的缓存块的位置顺序;其中,所述对应的缓存块的位置顺序=所述最快到达的数据包自身的序列号-相应缓存队列中移到队尾的缓存块的数量。

数据包存入子单元,用于将所述最快到达的数据包写入对应的缓存块上,并丢弃次到达的序列号相同的所述数据包。

则所述的数据传输方法,还包括:

断线处理模块,用于当检测到所述最快到达的数据包序列号与相应缓存队列中移到队尾的缓存块的数量之差,大于所述缓存队列的缓存块数量时,释放所述缓存队列。

在第五实施例的第三种实现方式中,还包括:

数据流分割模块,用于将产生的第二数据流进行分割处理并按顺序分配序列号,以生成包括序列号的数据包。

数据包传输模块,用于通过所述n条链路发送n个相同的所述数据包,以传输给所述第二数据收发端;其中,所述数据包用于触发所述第二数据收发端获取通过n条链路发送的n个相同数据包中最快到达的数据包。

在第五实施例的第四种实现方式中,所述第一数据收发端为用户端,所述第二数据收发端为目标服务器。或者,

所述第一数据收发端为目标服务器,所述第二数据收发端为用户端。

在第五实施例的第五种实现方式中,所述第一数据收发端为用户端,所述第二数据收发端为目标服务器。

则所述数据传输方法,还包括:

tcp链路建立模块,用于在选定的m个节点服务器中,根据选择的至少一个节点服务器与所述目标服务器建立tcp链路连接;其中,m≥n。

udp链路建立模块,用于在接收所述目标服务器的连接确认通知后,根据其余m-1个节点服务器与所述目标服务器建立n-1条udp链路连接;其中,所述n条链路上的节点服务器互不相同。

本发明第六实施例提供了一种数据收发设备。该实施例的数据收发设备包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如数据传输程序。所述处理器执行所述计算机程序时实现上述各个数据传输方法实施例中的步骤,例如图1所示的步骤s11。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如数据包写入模块。

示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述数据收发设备中的执行过程。

所述数据收发设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述数据收发设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,上述部件仅仅是数据收发设备的示例,并不构成对数据收发设备的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述数据收发设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述数据收发设备的控制中心,利用各种接口和线路连接整个数据收发设备的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述数据收发设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

其中,所述数据收发设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

本发明第七实施例提供了数据传输系统,包括至少一个第一数据收发端、至少一个第二数据收发端第二数据收发端及至少一个节点服务器;其中,所述第一数据收发端与所述第二数据收发端通过节点服务器建立n条链路连接,n>1,所述n条链路包括1条tcp链路及n-1条udp链路。

所述第二数据收发端,用于将产生的第一数据流进行分割处理并按顺序分配序列号,以生成包括序列号的数据包;通过所述n条链路发送n个相同的所述数据包,以传输给所述第一数据收发端。

所述第一数据收发端,用于获取所述第二数据收发端通过n条链路发送的n个相同数据包中最快到达的数据包;将所述最快到达的数据包根据自身的序列号写入缓冲区中相应的缓存队列中,并丢弃次到达的序列号相同的所述数据包;其中,所述缓冲区包括至少一个缓存队列。

所述第一数据收发端,还用于根据所述缓存队列中的数据包的缓存情况及序列号顺序,对所述缓存队列中的数据包进行封装处理,以形成第一数据流。

在第六实施例的第一种实现方式中,所述第一数据收发端为用户端,所述第二数据收发端为目标服务器。或者,

所述第一数据收发端为目标服务器,所述第二数据收发端为用户端。

在第六实施例的第二种实现方式中,所述第一数据收发端为用户端,所述第二数据收发端为目标服务器。

则所述用户端,还用于在选定的m个节点服务器中,将选择的至少一个节点服务器与及tcp连接请求发送给所述目标服务器;其中,m≥n。

所述目标服务器,用于接收所述用户端发送的所述节点服务器及tcp连接请求,根据所述节点服务器与tcp连接请求,与所述用户端的建立tcp链路连接,并向所述用户端发送连接确认通知。

所述用户端,还用于在接收所述目标服务器的连接确认通知后,将选择的m-1个节点服务器udp连接请求发送给所述目标服务器。

所述目标服务器,还用于接收所述用户端发送的m-1个节点服务器及udp连接请求,根据所述m-1个节点服务器及udp连接请求,与所述用户端建立n-1条的udp链路连接。

需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1