基于udt的数据传输方法及装置制造方法

文档序号:7796052阅读:107来源:国知局
基于udt的数据传输方法及装置制造方法
【专利摘要】本发明实施例公开了一种基于UDT的数据传输方法及装置,数据发送装置按照预设规则将待传输的UDT数据包流分块,得到至少两个UDT数据块,每个UDT数据块包含至少一个UDT数据包;依次向目标终端发送所述UDT数据块;接收所述目标终端返回的针对每个UDT数据块的响应信息,若所述响应信息表示其对应的UDT数据块接收失败,则重新向所述目标终端发送所述对应的UDT数据块。本发明可降低丢包率,提高传输可靠性,并能够有效地实现断点传输。
【专利说明】基于UDT的数据传输方法及装置
【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种基于UDT的数据传输方法及装置。
【背景技术】
[0002]随着BDP (Bandwidth Delay Product,网络带宽时延积)的增加,通常的TCP协议开始变的低效。这是因为它的 AIMD (additive increase multiplicative decrease,加性增、乘性减)算法完全减少了 TCP拥塞窗口,但不能快速的恢复可用带宽。理论上的流量分析表明TCP在BDP增加到很高的时候比较容易受包损失攻击。另外,继承自TCP拥塞控制的不公平的RTT也成为在分布式数据密集程式中的严重问题。拥有不同RTT的并发TCP流将不公平地分享带宽。尽管在小的BDP网络中使用通常的TCP来实现相对平等的共享带宽,但在拥有大量BDP的网络中,通常的基于TCP的程式就必须承受严重的不公平的问题。这个基于RTT的算法严重的限制了其在广域网分布式计算(例如internet上的网格计算)的效率。
[0003]而另一种直接位于IP(网际协议)协议的顶层的UDP协议,则不属于连接型协议,因而具有资源消耗小、处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。
[0004]使用基于UDP 的数据传输协议(UDP-based Data Transfer Protocol,简称 UDT)进行数据传输时,UDT总是试着将应用层数据打包成固定的大小,除非数据不够这么大。和TCP相似的是,这个固定的包大小叫做MSS (最大包大小)。由于期望m)T用来传输大块数据流,因此假定只有很小的一部分不规则的大小的包在UDT会话中。MSS能够通过应用程式来安装,MTU是其最优值(包括任何包头)。若网络质量不太好时,UDP的数据丢包现象会比较严重,可能会影响整体数据的传输以及后续的用户体验。另外,在现有的UDT中,还不能很好地支持断点续传,在网络环境不好的情况下,要求的数据重传将过于频繁,影响效率。以互联网应用UDT协议单个包应用数据一般设计为512字节计算,序号231-1,支持约IT的大数据发送,实践应用中这类大数据传输发送往往依靠断点续传而非一次完成,。在不能很好支持断点续传的情况下,序号最大值设计止于象征意义。

【发明内容】

[0005]本发明实施例所要解决的技术问题在于,针对现有技术中UDP协议断点续传性能不佳、且在网络环境不好的情况下丢包率较高的缺陷,提供一种基于UDP的数据传输方法及装置,可较好地支持断点续传,且丢包率较低,传输可靠性较高。
[0006]为了解决上述技术问题,本发明实施例提供了一种基于UDT的数据发送方法,包括:
[0007]按照预设规则将待传输的UDT数据包流分块,得到至少两个UDT数据块,每个UDT数据块包含至少一个UDT数据包;
[0008]依次向目标终端发送所述UDT数据块;[0009]接收所述目标终端返回的针对每个UDT数据块的响应信息,若所述响应信息表示其对应的UDT数据块接收失败,则重新向所述目标终端发送所述对应的UDT数据块。
[0010]其中,所述按照预设规则将待传输的UDT数据包流分块的步骤包括:
[0011]检测当前网络状态;
[0012]根据所述当前网络状态将待传输的UDT数据包流分块,得到至少两个UDT数据块,并生成用于标识所述UDT数据块的分块号;
[0013]将分块号分别标识在各自UDT数据块所包含的UDT数据包中。
[0014]其中,所述接收所述目标终端返回的针对每个UDT数据块的响应信息,若所述响应信息表示其对应的UDT数据块接收失败,则重新向所述目标终端发送所述对应的UDT数据块的步骤包括:
[0015]分别根据每个UDT数据块的数据内容生成发送端校验码;
[0016]接收所述目标终端返回的针对每个UDT数据块的目标终端校验码,所述目标终端校验码是所述目标终端根据所接收的UDT数据块的数据内容生成的;
[0017]判断所述UDT数据块的目标终端校验码与该UDT数据块的发送端校验码是否匹配;
[0018]若所述UDT数据块的目标终端校验码与该UDT数据块的发送端校验码不匹配,则判定该UDT数据块接收失败,重新向所述目标终端发送所述对应的UDT数据块。
[0019]其中,所述依次向目标终端发送所述UDT数据块的步骤包括:
[0020]在所述UDT数据块中标识目标终端地址;
[0021]通过多线程分别将所述UDT数据块发送给所述目标终端。
[0022]相应地,本发明还提供了一种基于UDT的数据接收方法,包括:
[0023]接收来自发送端的UDT数据块,所述UDT数据块是所述发送端按照预设规则将待传输的UDT数据包流分块后得到的;
[0024]根据接收的所述子UDT数据包向发送端返回接收响应信息,以便所述发送端在所述接收响应信息表明所述子UDT数据包接收失败时重新发送所述子UDT数据包。
[0025]另外,本发明还提供了一种基于UDT的数据发送装置,包括:
[0026]分块模块,用于按照预设规则将待传输的UDT数据包流分块,得到至少两个UDT数据块,每个UDT数据块包含至少一个UDT数据包;
[0027]数据发送模块,用于依次向目标终端发送所述UDT数据块;
[0028]响应接收模块,用于接收所述目标终端返回的针对每个UDT数据块的响应信息,
[0029]重发模块,用于根据所述响应信息判断所述目标终端是否成功接收所述响应信息对应的UDT数据块,若判断为否,则通过所述数据发送模块重新向所述目标终端发送所述对应的UDT数据块。
[0030]其中,所述分块模块包括:
[0031]网络状态检测模块,用于检测当前网络状态;
[0032]数据块生成模块,用于根据所述当前网络状态将待传输的UDT数据包流分块,得到至少两个UDT数据块,并生成用于标识所述UDT数据块的分块号;
[0033]分块号插入模块,用于将分块号分别标识在各自UDT数据块所包含的UDT数据包中。[0034]其中,所述装置还包括:
[0035]发送端校验码生成模块,用于分别根据每个UDT数据块的数据内容生成发送端校验码;
[0036]所述响应接收模块用于接收所述目标终端返回的针对每个UDT数据块的目标终端校验码,所述目标终端校验码是所述目标终端根据所接收的UDT数据块的数据内容生成的;
[0037]所述重发模块用于判断所述UDT数据块的目标终端校验码与该UDT数据块的发送端校验码是否匹配,若判断为否,则判定该UDT数据块接收失败,重新向所述目标终端发送所述目标终端检验码对应的UDT数据块。
[0038]其中,所述数据发送模块包括:
[0039]目标终端地址标识模块,用于在所述UDT数据块中标识目标终端地址;
[0040]多线程处理模块,用于通过多线程分别将所述UDT数据块发送给所述目标终端。
[0041]相应地,本发明还提供了一种基于UDT的数据接收装置,包括:
[0042]数据接收模块,用于接收来自发送端的UDT数据块,所述UDT数据块是所述发送端按照预设规则将待传输的UDT数据包流分块后得到的;
[0043]响应信息返回模块,用于根据接收的所述子UDT数据包向发送端返回接收响应信息,以便所述发送端在所述接收响应信息表明所述子UDT数据包接收失败时重新发送所述子UDT数据包。
[0044]实施本发明实施例,具有如下有益效果:通过将待传输的UDT数据包流分块,将分块得到的UDT数据块作为整体发送给目标终端,并针对每个UDT数据块设置应答响应机制,使发送端能够在目标终端对任意UDT数据块接收失败时,重新向目标终端发送该UDT数据块,降低丢包率,提高传输可靠性,并能够有效地实现断点传输。
【专利附图】

【附图说明】
[0045]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0046]图1是本发明提供的基于UDT的数据发送方法的第一实施例流程图;
[0047]图2是本发明提供的基于UDT的数据发送方法的第二实施例流程图;
[0048]图3是本发明提供的基于UDT的数据发送方法的第三实施例流程图;
[0049]图4是本发明提供的基于UDT的数据发送方法的第四实施例流程图;
[0050]图5是本发明提供的基于UDT的数据传输系统的示例性结构示意图;
[0051]图6是本发明提供的基于UDT的数据接收方法的流程图;
[0052]图7是本发明提供的基于UDT的数据发送装置的第一实施例结构示意图;
[0053]图8是本发明提供的基于UDT的数据发送装置的第二实施例结构示意图;
[0054]图9是本发明提供的基于UDT的数据发送装置的第三实施例结构示意图;
[0055]图10是本发明提供的基于UDT的数据发送装置的第四实施例结构示意图;
[0056]图11是本发明提供的基于UDT的数据接收装置的结构示意图。【具体实施方式】
[0057]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0058]UDT是一种互联网数据传输协议,其主要目的是支持高速广域网上的海量数据传输,而互联网上的标准数据传输协议TCP在高带宽长距离网络上性能很差。顾名思义,UDT建于UDP之上,并引入新的拥塞控制和数据可靠性控制机制。UDT是面向连接的双向的应用层协议,它同时支持可靠的数据流传输和部分可靠的数据报传输。由于UDT完全在UDP上实现,它也可以应用在除了高速数据传输之外的其它应用领域,例如点到点技术(P2P)、防火墙穿透、多媒体数据传输等等。
[0059]UDT包通常有两种,分别为UDT数据包和UDT控制包。UDT数据包和UDT控制包通过包头的第一位(标志位)来区分,标志位O表示数据包,标识位I表示控制包。
[0060]UDT数据包的结构如下:
[0061]
【权利要求】
1.一种基于UDT的数据发送方法,其特征在于,包括: 按照预设规则将待传输的UDT数据包流分块,得到至少两个UDT数据块,每个UDT数据块包含至少一个UDT数据包; 依次向目标终端发送所述UDT数据块; 接收所述目标终端返回的针对每个UDT数据块的响应信息,若所述响应信息表示其对应的UDT数据块接收失败,则重新向所述目标终端发送所述对应的UDT数据块。
2.如权利要求1所述的基于UDT的数据发送方法,其特征在于,所述按照预设规则将待传输的UDT数据包流分块的步骤包括: 检测当前网络状态; 根据所述当前网络状态将待传输的UDT数据包流分块,得到至少两个UDT数据块,并生成用于标识所述UDT数据块的分块号; 将分块号分别标识在各自UDT数据块所包含的UDT数据包中。
3.如权利要求1所述的基于UDT的数据发送方法,其特征在于,所述接收所述目标终端返回的针对每个UDT数据块的响应信息,若所述响应信息表示其对应的UDT数据块接收失败,则重新向所述目标终端发送所述对应的UDT数据块的步骤包括: 分别根据每个UDT数 据块的数据内容生成发送端校验码; 接收所述目标终端返回的针对每个UDT数据块的目标终端校验码,所述目标终端校验码是所述目标终端根据所接收的UDT数据块的数据内容生成的; 判断所述UDT数据块的目标终端校验码与该UDT数据块的发送端校验码是否匹配;若所述UDT数据块的目标终端校验码与该UDT数据块的发送端校验码不匹配,则判定该UDT数据块接收失败,重新向所述目标终端发送所述对应的UDT数据块。
4.如权利要求2所述的基于UDT的数据发送方法,其特征在于,所述依次向目标终端发送所述UDT数据块的步骤包括: 在所述UDT数据块中标识目标终端地址; 通过多线程分别将所述UDT数据块发送给所述目标终端。
5.一种基于UDT的数据接收方法,其特征在于,包括: 接收来自发送端的UDT数据块,所述UDT数据块是所述发送端按照预设规则将待传输的UDT数据包流分块后得到的; 根据接收的所述子UDT数据包向发送端返回接收响应信息,以便所述发送端在所述接收响应信息表明所述子UDT数据包接收失败时重新发送所述子UDT数据包。
6.一种基于UDT的数据发送装置,其特征在于,包括: 分块模块,用于按照预设规则将待传输的UDT数据包流分块,得到至少两个UDT数据块,每个UDT数据块包含至少一个UDT数据包; 数据发送模块,用于依次向目标终端发送所述UDT数据块; 响应接收模块,用于接收所述目标终端返回的针对每个UDT数据块的响应信息, 重发模块,用于根据所述响应信息判断所述目标终端是否成功接收所述响应信息对应的UDT数据块,若判断为否,则通过所述数据发送模块重新向所述目标终端发送所述对应的UDT数据块。
7.如权利要求6所述的基于UDT的数据发送装置,其特征在于,所述分块模块包括:网络状态检测模块,用于检测当前网络状态; 数据块生成模块,用于根据所述当前网络状态将待传输的UDT数据包流分块,得到至少两个UDT数据块,并生成用于标识所述UDT数据块的分块号; 分块号插入模块,用于将分块号分别标识在各自UDT数据块所包含的UDT数据包中。
8.如权利要求6所述的基于UDT的数据发送装置,其特征在于,所述装置还包括: 发送端校验码生成模块,用于分别根据每个UDT数据块的数据内容生成发送端校验码;所述响应接收模块用于接收所述目标终端返回的针对每个UDT数据块的目标终端校验码,所述目标终端校验码是所述目标终端根据所接收的UDT数据块的数据内容生成的;所述重发模块用于判断所述UDT数据块的目标终端校验码与该UDT数据块的发送端校验码是否匹配,若判断 为否,则判定该UDT数据块接收失败,重新向所述目标终端发送所述目标终端检验码对应的UDT数据块。
9.如权利要求7所述的基于UDT的数据发送装置,其特征在于,所述数据发送模块包括: 目标终端地址标识模块,用于在所述UDT数据块中标识目标终端地址; 多线程处理模块,用于通过多线程分别将所述UDT数据块发送给所述目标终端。
10.一种基于UDT的数据接收装置,其特征在于,包括: 数据接收模块,用于接收来自发送端的UDT数据块,所述UDT数据块是所述发送端按照预设规则将待传输的UDT数据包流分块后得到的; 响应信息返回模块,用于根据接收的所述子UDT数据包向发送端返回接收响应信息,以便所述发送端在所述接收响应信息表明所述子UDT数据包接收失败时重新发送所述子UDT数据包。
【文档编号】H04L29/08GK103763374SQ201410032524
【公开日】2014年4月30日 申请日期:2014年1月23日 优先权日:2014年1月23日
【发明者】王建政 申请人:深圳联友科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1