CN103763374A - 基于udt的数据传输方法及装置 - Google Patents
基于udt的数据传输方法及装置 Download PDFInfo
- Publication number
- CN103763374A CN103763374A CN201410032524.9A CN201410032524A CN103763374A CN 103763374 A CN103763374 A CN 103763374A CN 201410032524 A CN201410032524 A CN 201410032524A CN 103763374 A CN103763374 A CN 103763374A
- Authority
- CN
- China
- Prior art keywords
- udt
- data block
- target terminal
- data
- udt data
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种基于UDT的数据传输方法及装置,数据发送装置按照预设规则将待传输的UDT数据包流分块,得到至少两个UDT数据块,每个UDT数据块包含至少一个UDT数据包;依次向目标终端发送所述UDT数据块;接收所述目标终端返回的针对每个UDT数据块的响应信息,若所述响应信息表示其对应的UDT数据块接收失败,则重新向所述目标终端发送所述对应的UDT数据块。本发明可降低丢包率,提高传输可靠性,并能够有效地实现断点传输。
Description
技术领域
本发明涉及通信领域,尤其涉及一种基于UDT的数据传输方法及装置。
背景技术
随着BDP(Bandwidth Delay Product,网络带宽时延积)的增加,通常的TCP协议开始变的低效。这是因为它的AIMD(additive increase multiplicative decrease,加性增、乘性减)算法完全减少了TCP拥塞窗口,但不能快速的恢复可用带宽。理论上的流量分析表明TCP在BDP增加到很高的时候比较容易受包损失攻击。另外,继承自TCP拥塞控制的不公平的RTT也成为在分布式数据密集程式中的严重问题。拥有不同RTT的并发TCP流将不公平地分享带宽。尽管在小的BDP网络中使用通常的TCP来实现相对平等的共享带宽,但在拥有大量BDP的网络中,通常的基于TCP的程式就必须承受严重的不公平的问题。这个基于RTT的算法严重的限制了其在广域网分布式计算(例如internet上的网格计算)的效率。
而另一种直接位于IP(网际协议)协议的顶层的UDP协议,则不属于连接型协议,因而具有资源消耗小、处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。
使用基于UDP的数据传输协议(UDP-based Data Transfer Protocol,简称UDT)进行数据传输时,UDT总是试着将应用层数据打包成固定的大小,除非数据不够这么大。和TCP相似的是,这个固定的包大小叫做MSS(最大包大小)。由于期望UDT用来传输大块数据流,因此假定只有很小的一部分不规则的大小的包在UDT会话中。MSS能够通过应用程式来安装,MTU是其最优值(包括任何包头)。若网络质量不太好时,UDP的数据丢包现象会比较严重,可能会影响整体数据的传输以及后续的用户体验。另外,在现有的UDT中,还不能很好地 支持断点续传,在网络环境不好的情况下,要求的数据重传将过于频繁,影响效率。以互联网应用UDT协议单个包应用数据一般设计为512字节计算,序号231-1,支持约1T的大数据发送,实践应用中这类大数据传输发送往往依靠断点续传而非一次完成,。在不能很好支持断点续传的情况下,序号最大值设计止于象征意义。
发明内容
本发明实施例所要解决的技术问题在于,针对现有技术中UDP协议断点续传性能不佳、且在网络环境不好的情况下丢包率较高的缺陷,提供一种基于UDP的数据传输方法及装置,可较好地支持断点续传,且丢包率较低,传输可靠性较高。
为了解决上述技术问题,本发明实施例提供了一种基于UDT的数据发送方法,包括:
按照预设规则将待传输的UDT数据包流分块,得到至少两个UDT数据块,每个UDT数据块包含至少一个UDT数据包;
依次向目标终端发送所述UDT数据块;
接收所述目标终端返回的针对每个UDT数据块的响应信息,若所述响应信息表示其对应的UDT数据块接收失败,则重新向所述目标终端发送所述对应的UDT数据块。
其中,所述按照预设规则将待传输的UDT数据包流分块的步骤包括:
检测当前网络状态;
根据所述当前网络状态将待传输的UDT数据包流分块,得到至少两个UDT数据块,并生成用于标识所述UDT数据块的分块号;
将分块号分别标识在各自UDT数据块所包含的UDT数据包中。
其中,所述接收所述目标终端返回的针对每个UDT数据块的响应信息,若所述响应信息表示其对应的UDT数据块接收失败,则重新向所述目标终端发送所述对应的UDT数据块的步骤包括:
分别根据每个UDT数据块的数据内容生成发送端校验码;
接收所述目标终端返回的针对每个UDT数据块的目标终端校验码,所述目 标终端校验码是所述目标终端根据所接收的UDT数据块的数据内容生成的;
判断所述UDT数据块的目标终端校验码与该UDT数据块的发送端校验码是否匹配;
若所述UDT数据块的目标终端校验码与该UDT数据块的发送端校验码不匹配,则判定该UDT数据块接收失败,重新向所述目标终端发送所述对应的UDT数据块。
其中,所述依次向目标终端发送所述UDT数据块的步骤包括:
在所述UDT数据块中标识目标终端地址;
通过多线程分别将所述UDT数据块发送给所述目标终端。
相应地,本发明还提供了一种基于UDT的数据接收方法,包括:
接收来自发送端的UDT数据块,所述UDT数据块是所述发送端按照预设规则将待传输的UDT数据包流分块后得到的;
根据接收的所述子UDT数据包向发送端返回接收响应信息,以便所述发送端在所述接收响应信息表明所述子UDT数据包接收失败时重新发送所述子UDT数据包。
另外,本发明还提供了一种基于UDT的数据发送装置,包括:
分块模块,用于按照预设规则将待传输的UDT数据包流分块,得到至少两个UDT数据块,每个UDT数据块包含至少一个UDT数据包;
数据发送模块,用于依次向目标终端发送所述UDT数据块;
响应接收模块,用于接收所述目标终端返回的针对每个UDT数据块的响应信息,
重发模块,用于根据所述响应信息判断所述目标终端是否成功接收所述响应信息对应的UDT数据块,若判断为否,则通过所述数据发送模块重新向所述目标终端发送所述对应的UDT数据块。
其中,所述分块模块包括:
网络状态检测模块,用于检测当前网络状态;
数据块生成模块,用于根据所述当前网络状态将待传输的UDT数据包流分块,得到至少两个UDT数据块,并生成用于标识所述UDT数据块的分块号;
分块号插入模块,用于将分块号分别标识在各自UDT数据块所包含的UDT 数据包中。
其中,所述装置还包括:
发送端校验码生成模块,用于分别根据每个UDT数据块的数据内容生成发送端校验码;
所述响应接收模块用于接收所述目标终端返回的针对每个UDT数据块的目标终端校验码,所述目标终端校验码是所述目标终端根据所接收的UDT数据块的数据内容生成的;
所述重发模块用于判断所述UDT数据块的目标终端校验码与该UDT数据块的发送端校验码是否匹配,若判断为否,则判定该UDT数据块接收失败,重新向所述目标终端发送所述目标终端检验码对应的UDT数据块。
其中,所述数据发送模块包括:
目标终端地址标识模块,用于在所述UDT数据块中标识目标终端地址;
多线程处理模块,用于通过多线程分别将所述UDT数据块发送给所述目标终端。
相应地,本发明还提供了一种基于UDT的数据接收装置,包括:
数据接收模块,用于接收来自发送端的UDT数据块,所述UDT数据块是所述发送端按照预设规则将待传输的UDT数据包流分块后得到的;
响应信息返回模块,用于根据接收的所述子UDT数据包向发送端返回接收响应信息,以便所述发送端在所述接收响应信息表明所述子UDT数据包接收失败时重新发送所述子UDT数据包。
实施本发明实施例,具有如下有益效果:通过将待传输的UDT数据包流分块,将分块得到的UDT数据块作为整体发送给目标终端,并针对每个UDT数据块设置应答响应机制,使发送端能够在目标终端对任意UDT数据块接收失败时,重新向目标终端发送该UDT数据块,降低丢包率,提高传输可靠性,并能够有效地实现断点传输。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述 中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的基于UDT的数据发送方法的第一实施例流程图;
图2是本发明提供的基于UDT的数据发送方法的第二实施例流程图;
图3是本发明提供的基于UDT的数据发送方法的第三实施例流程图;
图4是本发明提供的基于UDT的数据发送方法的第四实施例流程图;
图5是本发明提供的基于UDT的数据传输系统的示例性结构示意图;
图6是本发明提供的基于UDT的数据接收方法的流程图;
图7是本发明提供的基于UDT的数据发送装置的第一实施例结构示意图;
图8是本发明提供的基于UDT的数据发送装置的第二实施例结构示意图;
图9是本发明提供的基于UDT的数据发送装置的第三实施例结构示意图;
图10是本发明提供的基于UDT的数据发送装置的第四实施例结构示意图;
图11是本发明提供的基于UDT的数据接收装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
UDT是一种互联网数据传输协议,其主要目的是支持高速广域网上的海量数据传输,而互联网上的标准数据传输协议TCP在高带宽长距离网络上性能很差。顾名思义,UDT建于UDP之上,并引入新的拥塞控制和数据可靠性控制机制。UDT是面向连接的双向的应用层协议,它同时支持可靠的数据流传输和部分可靠的数据报传输。由于UDT完全在UDP上实现,它也可以应用在除了高速数据传输之外的其它应用领域,例如点到点技术(P2P)、防火墙穿透、多媒体数据传输等等。
UDT包通常有两种,分别为UDT数据包和UDT控制包。UDT数据包和UDT控制包通过包头的第一位(标志位)来区分,标志位0表示数据包,标识位1表示控制包。
UDT数据包的结构如下:
包序号是UDT数据包包头中唯一的内容,它是一个无符号整数,使用标志位后的31位来表示,每个非重传的UDT数据包的包序号都增加1,包序号在到达最大值231-1的时候覆盖,紧跟在包序号后面的是需要传输的正文内容。
UDT控制包的结构如下:
UDT控制包的类型大致包括6种,可以用标识位后的3位(即bit1-3)来表示UDT控制包的类型。前32位在包头中必须存在,控制信息字段包括0(例如,它不存在)或者多个32位无符号整数,这由UDT控制包的类型决定。UDT控制包使用应答子序号的方法,每个ACK/ACK2类型UDT控制包有一个无符号的16位序号,它独立于UDT数据包,使用bit16-31,应答需要从0到(216-1),bit16-31在其他类型的UDT控制包中没有定义。下表1是常见的几种类型的UDT控制包。
表1
注意,对于UDT数据包和UDT控制包来说,可以从UDP协议头中得到实际的UDT包大小。UDT包大小信息能被用来得到有效的数据负载和NAK包中的控制信息字段大小。
在现有技术中,发送端通常将UDT数据包单个地依次发送给目标终端,不管目标终端是否收到每个UDT数据包,不仅丢包率较高,而且无法实现断点续传,可靠性较低。为了解决这个问题,本申请提供了一种基于UDT的数据发送方法,如图1所示,该方法包括:
S101、按照预设规则将待传输的UDT数据包流分块,得到至少两个UDT数据块,每个UDT数据块包含至少一个UDT数据包。例如,可以预先设置每个UDT数据块分别包含的UDT数据包的个数,或者预先设置每个UDT数据块的大小。又例如,可以根据目标终端的类型、待发送UDT数据包流的内容格式、通信网络的类型、当前网络状况等来将待传输的UDT数据包流分块。另外,也可以随机地对待传输的UDT数据包流分块。
S102、依次向目标终端发送所述UDT数据块。例如,由于UDT数据包均具有包序号,因此可以按照UDT数据块中包含的UDT数据包的包序号的顺序依次发送UDT数据块,以便目标终端能够按照顺序接收UDT数据块。
S103、接收所述目标终端返回的针对每个UDT数据块的响应信息。具体地,目标终端每接收到一个UDT数据块,可以立即根据该UDT数据块生成该UDT数据块的响应信息,这种响应信息用于表示目标终端是否成功接收该响应信息对应的UDT数据块。
S104、根据所述响应信息判断所述目标终端是否成功接收所述响应信息对应的UDT数据块。
若步骤S104的判断结果为否,则执行步骤S105。S105、重新向所述目标终端发送所述对应的UDT数据块。
若步骤S104的判断结果为是,则本方法流程结束。
本发明实施例提供的基于UDT的数据发送方法,通过将待传输的UDT数 据包流分块,将分块得到的UDT数据块作为整体发送给目标终端,并针对每个UDT数据块设置应答响应机制,使发送端能够在目标终端对任意UDT数据块接收失败时,重新向目标终端发送该UDT数据块,降低丢包率,提高传输可靠性,并能够有效地实现断点传输。
请参见图2,是本发明第二实施例提供的基于UDT的数据发送方法的流程图,该方法包括:
S201、检测当前网络状态。例如可以利用类型为“10”的UDT控制包的设计,协议连接握手UDT控制包回带当前网络状态响应回复,从而获取当前网络状态。
S202、根据所述当前网络状态将待传输的UDT数据包流分块,得到至少两个UDT数据块,并生成用于标识所述UDT数据块的分块号。具体地,可以先根据当前网络状态确定UDT数据块的大小,即确定包偏移量,然后分析待传输的UDT数据包流,将待传输的UDT数据包流分块;最后,按照分块顺序分别生成每个UDT数据块对应的分块号。在确定UDT数据块的大小时,通常来说,网络状况好的时候,将UDT数据块的大小设置较大,而网络状况不好的时候,则将UDT数据块的大小设置较小。
S203、将分块号分别标识在各自UDT数据块所包含的UDT数据包中。例如,原始的UDT数据包中,用31位来表示包序号,在本申请中,从这31位中划分一部分存储空间(例如5位)用来表示分块号,然后在每个UDT数据块内,利用预留的31位减去分块号后的存储空间来编写包序号。分块号的位数可以根据步骤S202中得到的UDT数据块的数量确定,实际使用到的包序号最大值可以由各个UDT数据块中包含的数据包的数量确定。
S204、依次向目标终端发送所述UDT数据块。
S205、接收所述目标终端返回的针对每个UDT数据块的响应信息。具体地,目标终端每接收到一个UDT数据块,可以立即根据该UDT数据块生成该UDT数据块的响应信息,这种响应信息用于表示目标终端是否成功接收该响应信息对应的UDT数据块。
S206、根据所述响应信息判断所述目标终端是否成功接收所述响应信息对应的UDT数据块。
若步骤S206的判断结果为否,则执行步骤S207。S207、重新向所述目标终端发送所述对应的UDT数据块。
若步骤S206的判断结果为是,则本方法流程结束。
图2所示的实施例中,通过根据网络状况的好坏来确定UDT数据块的大小,可以提高网络状况较佳时的网络利用率,同时还可以提高网络状况不佳时的传输准确率;另外,通过为每个UDT数据块设置对应的分块号,可以更好地对各个UDT数据块进行区分,便于实现UDT数据块的重传和断点续传。
请参见图3,是本发明第三实施例提供的基于UDT的数据发送方法的流程图,该方法包括:
S301、检测当前网络状态。
S302、根据所述当前网络状态将待传输的UDT数据包流分块,得到至少两个UDT数据块,并生成用于标识所述UDT数据块的分块号。
S303、将分块号分别标识在各自UDT数据块所包含的UDT数据包中。
S304、在所述UDT数据块中标识目标终端地址。
S305、通过多线程分别将所述UDT数据块发送给所述目标终端。
S306、接收所述目标终端返回的针对每个UDT数据块的响应信息。具体地,目标终端每接收到一个UDT数据块,可以立即根据该UDT数据块生成该UDT数据块的响应信息,这种响应信息用于表示目标终端是否成功接收该响应信息对应的UDT数据块。
S307、根据所述响应信息判断所述目标终端是否成功接收所述响应信息对应的UDT数据块。
若步骤S307的判断结果为否,则执行步骤S308。S308、重新向所述目标终端发送所述对应的UDT数据块。
若步骤S307的判断结果为是,则本方法流程结束。
例如,将图3所示的方法应用到图5所示的部署有多服务器与多PC端的网络模型中,可以执行多对一的文件传输请求,支持多线程的块文件传输和断点续传。例如,服务器(发送端)将UDT数据块1发送给PC端1,将UDT数据块2发送给PC端2,将UDT数据块3发送给PC端3,将UDT数据块4发送给PC端4,然后PC端2、PC端3、PC端4分别将各自接收到的UDT数据块 2、UDT数据块3、UDT数据块4分发给PC端1,PC端1可以根据分块号将各个UDT数据块组合解码得到原始的UDT数据包流。
请参见图4,是本发明提供的基于UDT的数据发送方法的第四实施例流程图,该方法包括:
S401、按照预设规则将待传输的UDT数据包流分块,得到至少两个UDT数据块,每个UDT数据块包含至少一个UDT数据包。
S402、分别根据每个UDT数据块的数据内容生成发送端校验码。例如,可以根据UDT数据块的数据内容生成SMD5格式的发送端校验码。
S403、依次向目标终端发送所述UDT数据块。
S404、接收所述目标终端返回的针对每个UDT数据块的目标终端校验码,所述目标终端校验码是所述目标终端根据所接收的UDT数据块的数据内容生成的。例如,目标终端可以根据接收到的UDT数据块的数据内容生成SMD5格式的目标终端校验码。
S405、判断所述UDT数据块的目标终端校验码与该UDT数据块的发送端校验码是否匹配。
若步骤S405的判断结果为否,则执行步骤S406。S406、判定该UDT数据块接收失败,重新向所述目标终端发送所述对应的UDT数据块。
若步骤S405的判断结果为是,则本方法流程结束。
请参见图6,是本发明提供的基于UDT的数据接收方法的第一实施例流程图,该方法包括:
S601、接收来自发送端的UDT数据块,所述UDT数据块是所述发送端按照预设规则将待传输的UDT数据包流分块后得到的。
S602、根据接收的所述子UDT数据包向发送端返回接收响应信息,以便所述发送端在所述接收响应信息表明所述子UDT数据包接收失败时重新发送所述子UDT数据包。具体地,发送端可以根据每个UDT数据块的数据内容生成发送端校验码。例如,发送端可以根据UDT数据块的数据内容生成SMD5格式的发送端校验码。步骤S602中,目标终端可以根据所接收的UDT数据块的数据内容生成目标终端校验码。例如,目标终端可以根据接收到的UDT数据块的数据内容生成SMD5格式的目标终端校验码。然后,目标终端可以将目标终端校 验码返回给发送端,发送端可以判断所述UDT数据块的目标终端校验码与该UDT数据块的发送端校验码是否匹配,若不匹配,则判定该UDT数据块接收失败,重新向所述目标终端发送所述对应的UDT数据块。
本发明实施例提供的基于UDT的数据接收方法,通过将待传输的UDT数据包流分块,将分块得到的UDT数据块作为整体发送给目标终端,并针对每个UDT数据块设置应答响应机制,使发送端能够在目标终端对任意UDT数据块接收失败时,重新向目标终端发送该UDT数据块,降低丢包率,提高传输可靠性,并能够有效地实现断点传输。
另外,本发明实施例还提供了一种基于UDT的数据发送装置700,如图7所示,该装置700包括:
分块模块710,用于按照预设规则将待传输的UDT数据包流分块,得到至少两个UDT数据块,每个UDT数据块包含至少一个UDT数据包。例如,可以预先设置每个UDT数据块分别包含的UDT数据包的个数,或者预先设置每个UDT数据块的大小。又例如,可以根据目标终端的类型、待发送UDT数据包流的内容格式、通信网络的类型、当前网络状况等来将待传输的UDT数据包流分块。另外,也可以随机地对待传输的UDT数据包流分块。
数据发送模块720,用于依次向目标终端发送所述UDT数据块。例如,由于UDT数据包均具有包序号,因此可以按照UDT数据块中包含的UDT数据包的包序号的顺序依次发送UDT数据块,以便目标终端能够按照顺序接收UDT数据块。
响应接收模块730,用于接收所述目标终端返回的针对每个UDT数据块的响应信息。具体地,目标终端每接收到一个UDT数据块,可以立即根据该UDT数据块生成该UDT数据块的响应信息,这种响应信息用于表示目标终端是否成功接收该响应信息对应的UDT数据块。
重发模块740,用于根据所述响应信息判断所述目标终端是否成功接收所述响应信息对应的UDT数据块,若判断结果为否,则通过所述数据发送模块720重新向所述目标终端发送所述响应信息对应的UDT数据块。
本发明实施例提供的基于UDT的数据发送装置,通过将待传输的UDT数据包流分块,将分块得到的UDT数据块作为整体发送给目标终端,并针对每个 UDT数据块设置应答响应机制,使发送端能够在目标终端对任意UDT数据块接收失败时,重新向目标终端发送该UDT数据块,降低丢包率,提高传输可靠性,并能够有效地实现断点传输。
请参见图8,是本发明第二实施例提供的基于UDT的数据发送装置800的结构示意图,其中,分块模块710包括:
网络状态检测模块711,用于检测当前网络状态。例如可以利用类型为“10”的UDT控制包的设计,协议连接握手UDT控制包回带当前网络状态响应回复,从而获取当前网络状态。
数据块生成模块712,用于根据所述当前网络状态将待传输的UDT数据包流分块,得到至少两个UDT数据块,并生成用于标识所述UDT数据块的分块号。具体地,可以先根据当前网络状态确定UDT数据块的大小,即确定包偏移量,然后分析待传输的UDT数据包流,将待传输的UDT数据包流分块;最后,按照分块顺序分别生成每个UDT数据块对应的分块号。在确定UDT数据块的大小时,通常来说,网络状况好的时候,将UDT数据块的大小设置较大,而网络状况不好的时候,则将UDT数据块的大小设置较小。
分块号插入模块713,用于将分块号分别标识在各自UDT数据块所包含的UDT数据包中。例如,原始的UDT数据包中,用31位来表示包序号,在本申请中,从这31位中划分一部分存储空间(例如5位)用来表示分块号,然后在每个UDT数据块内,利用预留的31位减去分块号后的存储空间来编写包序号。分块号的位数可以根据步骤S202中得到的UDT数据块的数量确定,实际使用到的包序号最大值可以由各个UDT数据块中包含的数据包的数量确定。
图8所示的实施例中,通过根据网络状况的好坏来确定UDT数据块的大小,可以提高网络状况较佳时的网络利用率,同时还可以提高网络状况不佳时的传输准确率;另外,通过为每个UDT数据块设置对应的分块号,可以更好地对各个UDT数据块进行区分,便于实现UDT数据块的重传和断点续传。
请参见图9,是本发明第三实施例提供的基于UDT的数据发送装置900的结构示意图,其中,数据发送模块720包括:
目标终端标识模块721,用于在所述UDT数据块中标识目标终端地址。
多线程处理模块722,用于通过多线程分别将所述UDT数据块发送给所述 目标终端。
例如,将图9所示的装置900应用到图5所示的部署有多服务器与多PC端的网络模型中,可以执行多对一的文件传输请求,支持多线程的块文件传输和断点续传。例如,服务器(数据发送装置900)将UDT数据块1发送给PC端1(目标终端或称为数据接收装置1100),将UDT数据块2发送给PC端2,将UDT数据块3发送给PC端3,将UDT数据块4发送给PC端4,然后PC端2、PC端3、PC端4分别将各自接收到的UDT数据块2、UDT数据块3、UDT数据块4分发给PC端1,PC端1可以根据分块号将各个UDT数据块组合解码得到原始的UDT数据包流。
请参见图10,是本发明提供的基于UDT的数据发送装置1000的第四实施例结构示意图,数据发送装置1000还包括:
发送端检验码生成模块750,用于分别根据每个UDT数据块的数据内容生成发送端校验码。例如,可以根据UDT数据块的数据内容生成SMD5格式的发送端校验码。
响应接收模块730用于接收所述目标终端返回的针对每个UDT数据块的目标终端校验码,所述目标终端校验码是所述目标终端根据所接收的UDT数据块的数据内容生成的。例如,目标终端可以根据接收到的UDT数据块的数据内容生成SMD5格式的目标终端校验码。
重发模块740用于判断所述UDT数据块的目标终端校验码与该UDT数据块的发送端校验码是否匹配,若判断结果为否,则判定该UDT数据块接收失败,通过所述数据发送模块710重新向所述目标终端发送所述发送端校验码对应的UDT数据块。
请参见图11,是本发明提供的基于UDT的数据接收装置1100的示例性结构示意图,该装置1100包括:
数据接收模块1110,用于接收来自发送端的UDT数据块,所述UDT数据块是所述发送端按照预设规则将待传输的UDT数据包流分块后得到的。
响应信息返回模块1120,用于根据接收的所述子UDT数据包向发送端返回接收响应信息,以便所述发送端在所述接收响应信息表明所述子UDT数据包接收失败时重新发送所述子UDT数据包。具体地,发送端可以根据每个UDT数 据块的数据内容生成发送端校验码。例如,发送端可以根据UDT数据块的数据内容生成SMD5格式的发送端校验码。响应信息返回模块1120可以根据所接收的UDT数据块的数据内容生成目标终端校验码。例如,目标终端可以根据接收到的UDT数据块的数据内容生成SMD5格式的目标终端校验码。然后,响应信息返回模块1120可以将目标终端校验码返回给发送端,发送端可以判断所述UDT数据块的目标终端校验码与该UDT数据块的发送端校验码是否匹配,若不匹配,则判定该UDT数据块接收失败,重新向所述目标终端发送所述对应的UDT数据块。
本发明实施例提供的基于UDT的数据接收装置,通过将待传输的UDT数据包流分块,将分块得到的UDT数据块作为整体发送给目标终端,并针对每个UDT数据块设置应答响应机制,使发送端能够在目标终端对任意UDT数据块接收失败时,重新向目标终端发送该UDT数据块,降低丢包率,提高传输可靠性,并能够有效地实现断点传输。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (10)
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数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410032524.9A CN103763374A (zh) | 2014-01-23 | 2014-01-23 | 基于udt的数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410032524.9A CN103763374A (zh) | 2014-01-23 | 2014-01-23 | 基于udt的数据传输方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103763374A true CN103763374A (zh) | 2014-04-30 |
Family
ID=50530533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410032524.9A Pending CN103763374A (zh) | 2014-01-23 | 2014-01-23 | 基于udt的数据传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103763374A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104639568A (zh) * | 2015-03-12 | 2015-05-20 | 成都金本华科技股份有限公司 | 一种基于udp的数据传输方法 |
CN104917590A (zh) * | 2015-06-09 | 2015-09-16 | 西安长远电子工程有限责任公司 | 一种信道编码纠错方法 |
CN105072702A (zh) * | 2015-07-20 | 2015-11-18 | 上海摩软通讯技术有限公司 | Wifi-Direct网络的数据传输方法及系统 |
CN108881378A (zh) * | 2018-05-02 | 2018-11-23 | 象翌微链科技发展有限公司 | 一种文件的传输方法、系统及设备 |
CN109150406A (zh) * | 2018-09-20 | 2019-01-04 | 丁顺敏 | 一种字节流通信的数据包分包方法 |
CN109347607A (zh) * | 2018-10-17 | 2019-02-15 | 中国科学院自动化研究所 | 高效可靠传输控制方法和系统 |
CN116471109A (zh) * | 2022-12-01 | 2023-07-21 | 黄建邦 | 数据传输方法、系统、第一端及控制设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080159295A1 (en) * | 2006-12-29 | 2008-07-03 | Samsung Electronics Co., Ltd. | Stream recording method, apparatus, and system |
CN102143073A (zh) * | 2011-03-23 | 2011-08-03 | 深圳创维数字技术股份有限公司 | 一种数据传输方法及系统 |
CN102238206A (zh) * | 2010-04-23 | 2011-11-09 | 英业达集团(天津)电子技术有限公司 | 映像文件的补包方法 |
CN103209195A (zh) * | 2012-01-11 | 2013-07-17 | 国家电网公司 | 数据获取方法、终端以及远端设备 |
CN103248452A (zh) * | 2012-02-10 | 2013-08-14 | 宇龙计算机通信科技(深圳)有限公司 | 数据发送装置、数据接收装置、终端和数据传输方法 |
CN103312719A (zh) * | 2013-06-27 | 2013-09-18 | 博图旭然(北京)科技有限公司 | 网络环境下基于udp的速率自适应传输方法 |
-
2014
- 2014-01-23 CN CN201410032524.9A patent/CN103763374A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080159295A1 (en) * | 2006-12-29 | 2008-07-03 | Samsung Electronics Co., Ltd. | Stream recording method, apparatus, and system |
CN102238206A (zh) * | 2010-04-23 | 2011-11-09 | 英业达集团(天津)电子技术有限公司 | 映像文件的补包方法 |
CN102143073A (zh) * | 2011-03-23 | 2011-08-03 | 深圳创维数字技术股份有限公司 | 一种数据传输方法及系统 |
CN103209195A (zh) * | 2012-01-11 | 2013-07-17 | 国家电网公司 | 数据获取方法、终端以及远端设备 |
CN103248452A (zh) * | 2012-02-10 | 2013-08-14 | 宇龙计算机通信科技(深圳)有限公司 | 数据发送装置、数据接收装置、终端和数据传输方法 |
CN103312719A (zh) * | 2013-06-27 | 2013-09-18 | 博图旭然(北京)科技有限公司 | 网络环境下基于udp的速率自适应传输方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104639568A (zh) * | 2015-03-12 | 2015-05-20 | 成都金本华科技股份有限公司 | 一种基于udp的数据传输方法 |
CN104917590A (zh) * | 2015-06-09 | 2015-09-16 | 西安长远电子工程有限责任公司 | 一种信道编码纠错方法 |
CN104917590B (zh) * | 2015-06-09 | 2017-12-12 | 西安长远电子工程有限责任公司 | 一种信道编码纠错方法 |
CN105072702A (zh) * | 2015-07-20 | 2015-11-18 | 上海摩软通讯技术有限公司 | Wifi-Direct网络的数据传输方法及系统 |
CN105072702B (zh) * | 2015-07-20 | 2018-11-27 | 上海摩软通讯技术有限公司 | Wifi-Direct网络的数据传输方法及系统 |
CN108881378A (zh) * | 2018-05-02 | 2018-11-23 | 象翌微链科技发展有限公司 | 一种文件的传输方法、系统及设备 |
CN109150406A (zh) * | 2018-09-20 | 2019-01-04 | 丁顺敏 | 一种字节流通信的数据包分包方法 |
CN109150406B (zh) * | 2018-09-20 | 2021-05-25 | 丁顺敏 | 一种字节流通信的数据包分包方法 |
CN109347607A (zh) * | 2018-10-17 | 2019-02-15 | 中国科学院自动化研究所 | 高效可靠传输控制方法和系统 |
CN116471109A (zh) * | 2022-12-01 | 2023-07-21 | 黄建邦 | 数据传输方法、系统、第一端及控制设备 |
CN116471109B (zh) * | 2022-12-01 | 2024-03-05 | 黄建邦 | 数据传输方法、系统、第一端及控制设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103763374A (zh) | 基于udt的数据传输方法及装置 | |
US11934340B2 (en) | Multi-path RDMA transmission | |
CN110995697B (zh) | 一种大数据传输方法及系统 | |
CN108881008B (zh) | 一种数据传输的方法、装置和系统 | |
US8799504B2 (en) | System and method of TCP tunneling | |
EP3352431B1 (en) | Network load balance processing system, method, and apparatus | |
US8583831B2 (en) | Thin client discovery | |
JP2018528679A (ja) | 負荷平衡システムにおいて接続を確立するデバイス及び方法 | |
CN111294664A (zh) | 音视频传输数据方法、电子设备及存储介质 | |
CN103546258B (zh) | 一种数据传输方法及装置 | |
CN103957169A (zh) | 一种基于反向请求的可靠udp的实现方法 | |
CN107995233B (zh) | 建立连接的方法及相应的设备 | |
CN111181698B (zh) | 数据处理方法、装置、设备及介质 | |
CN102427452B (zh) | 同步报文发送方法、装置和网络设备 | |
CN105227276A (zh) | 一种基于udt的对等网络数据传输方法 | |
CN114598675A (zh) | 基于arp实现主机阻断的控制方法、装置、设备及介质 | |
CN107277185B (zh) | 网络通讯系统及网络穿透方法 | |
CN116032998A (zh) | 数据传输方法、装置、计算机可读存储介质及电子设备 | |
CN116260887A (zh) | 数据传输方法、数据发送装置、数据接收装置和存储介质 | |
CN110995680A (zh) | 虚拟机报文接收方法、系统、装置及计算机可读存储介质 | |
US8676993B1 (en) | Bundled transmission control protocol connections | |
CN107483424B (zh) | 远程过程调用协议的处理方法和装置 | |
US9172774B2 (en) | Technique for managing communications at a router | |
Cascallana et al. | Collecting packet traces at high speed | |
CN104320273A (zh) | 数据传输方法、设备及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140430 |
|
RJ01 | Rejection of invention patent application after publication |