CN101488840A - 一种数据传输的方法和装置 - Google Patents
一种数据传输的方法和装置 Download PDFInfo
- Publication number
- CN101488840A CN101488840A CN 200910008497 CN200910008497A CN101488840A CN 101488840 A CN101488840 A CN 101488840A CN 200910008497 CN200910008497 CN 200910008497 CN 200910008497 A CN200910008497 A CN 200910008497A CN 101488840 A CN101488840 A CN 101488840A
- Authority
- CN
- China
- Prior art keywords
- blocks
- files
- sliding window
- information
- width
- 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.)
- Granted
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据传输的方法和装置,属于通讯技术领域,所述方法包括:获取当前扫描时刻滑动窗口内各文件块信息的等待确认信息时间值;当未收到确认信息的文件块比例已经很小了或存在等待确认信息时间值大于超时值的文件块信息,则从窗口中移除已发送文件块信息,装入未发送文件块立即发送,如果存在等待确认信息时间值大于超时值的文件块信息还要调整滑动窗口的宽度,重发文件块信息对应的文件块。通过集中窗口内很可能超时的等待确认信息的文件块,减少了窗口内各文件块的依赖,防止出现整个窗口在等待少量超时包而未读入新的文件块并发送的情况,发送文件的效率大大提高,提高了文件块的发送速度,节约了所占用的网络资源。
Description
技术领域
本发明涉及通讯技术领域,特别涉及一种数据传输的方法和装置。
背景技术
随着网络技术的发展,网络即时通讯工具(IM,Instant Messager)发展到今天,已经被大多数的用户所接受,成为用户必不可少的软件工具,不但在平时的休闲娱乐中,而且在用户的工作中得到广泛的使用。因此,用户对IM软件的易用性,稳定性,安全性等方面提出了较高的要求。其中,文件传输作为网络即时通讯工具所支持的一种功能,在IM基础服务中具有举足轻重的低位,如何传输的更快更高效,是一个需要长期研究的问题。
目前,实现文件传输是采用基于UDP(User Datagram Protocol,用户数据报协议)滑动窗口机制的方法:发送方将整个待传输的文件,划分成多个文件块,其中,每个文件块采用文件标识SEQ(Sequence,序列)进行唯一标记,且SEQ按递增分配;然后,将多个连续文件块标识SEQ信息记录到滑动窗口内,并依次发送SEQ信息对应的文件块,当收到接收方返回的一个文件块的确认信息则认为该文件块已成功发送;当滑动窗口内已成功发送的最小文件块的SEQ信息变更时,滑动窗口向后移动(相当于文件传输进度更新),同时读取新的未发送文件块信息并发送,这样该滑动窗口不断向后滑动,直到所有文件块发送完毕,则该文件传输成功。
由于网络的不稳定性、承载传输的资源的有限性等原因,在网络中进行文件传输时,会存在不同程度丢包的情况,因此,现有技术提出一种丢包恢复机制,其中,发送方在滑动窗口内每个文件块发送出去后,根据发送该文件块的时刻以及接收到该文件块的确认信息的时刻,计算出RTT(Round Trip Time,环路时间)(即文件块从发出到收到确认信息的时间间隔),再根据多个RTT计算RTO(Retransmission Time-Out,超时重传时间),如果滑动窗口内某个文件块发送出去后,等待接收确认信息的时间超过RTO,则认为该文件块发送失败,需要重发,其中,对文件块进行重发首先缩小滑动窗口的宽度,清空滑动窗口,然后读取最小的几个未成功发送的文件块放进滑动窗口并进行发送,这样等这些重发的文件块收到确认信息并移动窗口时,之前旧的滑动窗口发送的其他文件块也应该收到确认信息了,从而避免重复发送。
发明人在实现本发明的过程中,发现上述现有技术至少存在以下缺点和不足:一方面,文件块的等待时间只要超过RTO,则发送方认为该文件块发送失败,需要进行文件块的重发,而文件块的等待时间超过RTO,可能由于接收方反馈的确认信息包丢失,即接收方实际已经收到了某个文件块,但由于反馈的确认信息丢失,而造成发送方误认为该文件块发送失败,导致该文件块的重发送,影响了传输进度,浪费了网络传输资源;
另一方面,在进行文件块的重发时,需要首先缩小滑动窗口的宽度,清空滑动窗口,再进行未成功发送的文件块的发送,由于需要清空滑动窗口,导致重发效率低;由于需要缩小滑动窗口的宽度,特别是针对网络不稳定的情况下,重发文件块的机率变大,于是出现需要对滑动窗口宽度的调整的概率变大,导致窗口宽度不断的剧烈波动,进而造成不必要的超时。
发明内容
为了对文件传输进行优化,有效提高文件块的重发效率,本发明实施例提供了一种数据传输的方法和装置。所述技术方案如下:
一方面,本发明实施例提供了一种数据传输的方法,所述方法包括:
发送方定时扫描滑动窗口内的各文件块信息,获取当前扫描时刻各文件块信息的等待确认信息时间值;
获取所述滑动窗口的超时重传时间值;
当所述滑动窗口存在等待确认信息时间值大于超时预警值的文件块信息,则调整所述滑动窗口的宽度,移除已发送文件块信息;其中,所述超时预警值小于超时重传时间值;
利用所述调整宽度后的滑动窗口读取待发送文件块对应的文件块信息并立即发送;
利用调整宽度后的滑动窗口重发文件块,所述重发的文件块为等待确认信息时间值大于超时预警值的文件块信息对应的文件块;
当所述调整宽度后的滑动窗口内位于第一位置的文件块信息对应的文件块成功发送后,则从所述调整宽度后的滑动窗口前部移除连续已发送文件块信息,向后移动所述调整宽度后的滑动窗口。
进一步地,所述方法还包括:
所述发送方定时扫描所述滑动窗口,获取当前扫描时刻滑动窗口内未成功发送文件块个数;
当所述未成功发送的文件块个数小于预设值,则移除所述滑动窗口内成功发送的文件块对应的文件块信息,读取待发送的文件块对应的文件块信息,并发送所述读取的文件块信息对应的文件块。
其中,当所述发送方需要调整滑动窗口宽度时,所述方法还包括:
获取预设时间内平均每秒发送成功的文件块的个数;
根据所述获取的个数,获取丢包系数;
获取所述预设时间内平均环路时间值;
根据所述获取的个数、所述平均环路时间值、以及所述丢包系数,计算合理窗口宽度;
根据计算得到的合理窗口宽度,设置调整后的滑动窗口宽度。
进一步地,当所述发送方向接收方发送当前文件块信息对应的文件块后,所述方法还包括:
所述接收方接收所述文件块后,向所述发送方返回确认信息,所述确认信息中携带所述接收方的最小未接收成功的文件块信息到最大接收成功的文件块信息之间的各文件块信息和状态指示。
再一方面,本发明实施例提供了一种数据传输的方法,所述方法包括:
发送方定时扫描滑动窗口,获取当前扫描时刻滑动窗口内未成功发送文件块个数;
当所述未成功发送的文件块个数小于预设值,则移除所述滑动窗口内成功发送的文件块对应的文件块信息,读取待发送的文件块对应的文件块信息,并发送所述读取的文件块信息对应的文件块。
进一步地,所述方法还包括:
所述发送方定时扫描滑动窗口内的各文件块信息,获取当前扫描时刻各文件块信息的等待确认信息时间值;
获取所述滑动窗口的超时重传时间值;
当所述滑动窗口存在等待确认信息时间值大于超时预警值的文件块信息,则调整所述滑动窗口的宽度,移除已发送文件块信息;其中,所述超时预警值小于超时重传时间值;
利用所述调整宽度后的滑动窗口读取待发送文件块对应的文件块信息并立即发送;
利用调整宽度后的滑动窗口重发文件块,所述重发的文件块为所述等待确认信息时间值大于超时预警值的文件块信息对应的文件块;
当所述调整宽度后的滑动窗口内位于第一位置的文件块信息对应的文件块成功发送后,则从所述调整宽度后的滑动窗口前部移除连续已发送文件块信息,向后移动所述调整宽度后的滑动窗口。
再一方面,本发明实施例提供了一种数据传输的方法,当需要调整滑动窗口宽度时,所述方法包括:
获取预设时间内平均每秒发送成功的文件块的个数;
根据所述获取的个数,获取丢包系数;
获取所述预设时间内平均环路时间值;
根据所述获取的个数、所述平均环路时间值、以及所述丢包系数,计算合理窗口宽度;
根据计算得到的合理窗口宽度,设置调整后的滑动窗口宽度。
再一方面,本发明实施例提供了一种数据传输的方法,当发送方向接收方发送当前文件块信息对应的文件块后,所述方法包括:
所述接收方接收所述文件块后,向所述发送方返回确认信息,所述确认信息中携带所述接收方的最小未接收成功的文件块信息到最大接收成功的文件块信息之间的各文件块信息和状态指示。
再一方面,本发明实施例提供了一种数据传输的装置,所述装置包括:
获取模块,用于定时扫描滑动窗口内的各文件块信息,获取当前扫描时刻各文件块信息的等待确认信息时间值;还用于获取所述滑动窗口的超时重传时间值;
重发模块,用于当所述滑动窗口存在等待确认信息时间值大于超时预警值的文件块信息,则调整所述滑动窗口的宽度,其中,所述超时预警值小于超时重传时间值;从所述滑动窗口中移除已发送文件块信息,利用所述调整宽度后的滑动窗口读取待发送文件块对应的文件块信息并立即发送;利用调整宽度后的滑动窗口重发文件块,所述重发的文件块为等待确认信息时间值大于超时预警值的文件块信息对应的文件块;
处理模块,用于当所述滑动窗口内位于第一位置的文件块信息对应的文件块成功发送后,则从所述滑动窗口前部移除连续的已发送文件块信息,向后移动所述滑动窗口。
再一方面,本发明实施例提供了一种数据传输的装置,所述装置包括:
扫描模块,用于定时扫描滑动窗口,获取当前扫描时刻滑动窗口内未成功发送文件块个数;
重发模块,用于当所述未成功发送的文件块个数小于预设值,则移除所述滑动窗口内成功发送的文件块对应的文件块信息,读取待发送的文件块对应的文件块信息,并发送所述读取的文件块信息对应的文件块。
一方面,本发明实施例提供了一种数据传输装置,所述装置包括:
接收模块,用于接收当前文件块信息对应的文件块;
发送模块,用于返回所述当前文件块信息对应的文件块的确认信息,所述确认信息中携带所述接收方的最小未接收成功的文件块信息到最大接收成功的文件块信息之间的各文件块信息和状态指示。
再一方面,本发明实施例提供了一种数据传输装置,当需要进行滑动窗口调整时,所述装置包括:
获取模块,用于获取预设时间内平均每秒发送成功的文件块的个数;还用于获取所述预设时间内平均环路时间值;
计算模块,用于根据所述获取的个数和所述平均环路时间值,计算合理窗口宽度;
调整模块,用于根据计算得到的合理窗口宽度,设置调整后的滑动窗口宽度。
本发明实施例提供的技术方案的有益效果是:
通过设置超时预警值进行超时处理,发送文件的效率大大提高,提高了文件块的发送速度,节约了所占用的网络资源,将本发明实施例提供的方法应用于即时通讯工具时,提高了用户体验,增加了用户对该工具的使用的黏度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1提供的数据传输的方法流程示意图。
图2是本发明实施例2提供的数据传输的方法流程示意图。
图3是本发明实施例3提供的数据传输的方法流程示意图。
图4是本发明实施例3提供的接收方进度显示示意图。
图5是本发明实施例4提供的数据传输的方法流程示意图。
图6是本发明实施例5提供的数据传输的装置示意图。
图7是本发明实施例6提供的数据传输的装置示意图。
图8是本发明实施例7提供的数据传输的装置示意图。
图9是本发明实施例8提供的数据传输的装置示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
为了对文件传输进行优化,提高文件块的重发效率,避免网络传输资源的浪费,以及有效避免窗口宽度不断的剧烈波动,本发明实施例提供了一种数据传输的方法,该方法内容如下:定时扫描滑动窗口内的各文件块信息,获取当前扫描时刻各文件块信息的等待确认信息时间值;获取滑动窗口的超时重传时间值;当滑动窗口存在等待确认信息时间值大于超时预警值的文件块信息,则调整滑动窗口的宽度,从滑动窗口中移除已发送文件块信息,利用调整宽度后的滑动窗口读取待发送文件块对应的文件块信息并立即发送;利用调整宽度后的滑动窗口重发等待确认信息时间值大于超时预警值的文件块信息对应的文件块;其中,超时预警值小于超时重传时间值;当调整宽度后的滑动窗口内位于第一位置的文件块信息对应的文件块成功发送后,则从调整宽度后的滑动窗口前部移除连续已发送文件块信息,向后移动调整宽度后的滑动窗口。为了对上述本发明实施例提供的方法进行详细说明,请参见如下描述:
本发明实施例提供了一种数据传输的方法,为了便于说明,本实施例以发送方向接收方发送文件XX为例进行说明,其中,根据发送方和接收方在传输之前进行握手商定的大小,该待传输的文件XX被划分为多个文件块,其中每个文件块的同等大小,每个文件块使用文件块标记SEQ唯一进行标记,且,SEQ的大小递增分配。参见表1,为本发明实施例提供的文件块的SEQ示意表。
表1
文件XX | 第一块 | 第二块 | 第三块 | ...... | 第N-1块 | 第N块 |
SEQ | 1 | 2 | 3 | ...... | N-1 | N |
如表1所示,该文件XX被划分得到N个文件块,该文件XX正被通过滑动窗口向接收方发送,参见图2,该方法内容如下:
步骤101:定时扫描滑动窗口内的各文件块信息,获取当前扫描时刻各文件块信息的等待确认信息时间。
其中,根据网络传输的特点等具体需要,设定定时扫描的时间周期,优选地,设定每50ms扫描一次。
假设,在当前扫描时刻Tc,滑动窗口内存在5个文件块,各文件块的SEQ分别为SEQ11、SEQ12、SEQ13、SEQ14和SEQ15,其中,
文件块SEQ11已经在T11时刻(T11<Tc)发送,正在等待接收来自接收方返回确认信息;
文件块SEQ12已经在T12时刻(T12<Tc)发送,正在等待接收来自接收方返回确认信息;
文件块SEQ13已经在T13时刻(T13<Tc)发送,正在等待接收来自接收方返回确认信息;
文件块SEQ14在该Tc时刻还未进行发送;
文件块SEQ15在该Tc时刻还未进行发送。
则,根据当前扫描时刻Tc、以及滑动窗口内的各文件的发送时刻,获取到各文件块等待确认信息时间对应的数值。
即,在当前扫描时刻Tc,获取到文件块SEQ11的等待确认信息时间为Tc-T11;
同理,在当前扫描时刻Tc,获取到文件块SEQ12的等待确认信息时间为Tc-T12;
同理,在当前扫描时刻Tc,获取到文件块SEQ13的等待确认信息时间为Tc-T13。
步骤102:判断滑动窗口是否存在等待确认信息时间大于超时预警值的文件块信息,如果是,则执行步骤103,否则,执行步骤105。
其中,上述超时预警值根据需要进行设定,但要保证该超时预警值小于超时重传时间RTO值,其中,RTO值的获取方式如下:
首先,发送方在滑动窗口内每个文件块发送出去后,可以根据发送该文件块的时刻以及接收到接收方返回的该文件块的确认信息的时刻,计算出每个文件块的环路时间RTT(即文件块从发出到收到确认信息的时间间隔);
然后,根据多个RTT,计算得到本次文件发送的超时重传时间RTO。例如,对多个RTT取均值得到RTO。
通过大量测试实验,优选地,上述超时预警值设置取值如下:
超时预警值=30s内出现的最大的RTT值×1.2+100ms。
另,该超时预警值设置取值还可以为
超时预警值=30s内出现的最大的RTT值+200ms。本实施例对此不做任何限制。
步骤103:缩小滑动窗口宽度,重发等待确认信息时间大于超时预警值的文件块信息对应的文件块。
其中,将之前的滑动窗口宽度缩小,对上述得到的等待确认信息时间大于超时预警值的文件块信息对应的文件块进行重发,例如,仍以上述示例说明,之前,滑动窗口内存在5个文件块信息(SEQ11、SEQ12、SEQ13、SEQ14和SEQ15),假设对应的该滑动窗口的宽度为5,则通过上述步骤101至103获知SEQ11、SEQ12、SEQ13、SEQ14需要进行重发,为了尽量缩小丢包率,则将该滑动窗口的宽度由5缩小为4,然后将SEQ11、SEQ12、SEQ13、SEQ14对应的文件块,进行重发。
步骤104:当滑动窗口内第一位置的文件块信息对应文件块成功发送后,则从滑动窗口前部移除连续已发送的文件块信息,再向后移动该滑动窗口。
仍以上述示例为例,在缩小后的滑动窗口内SEQ11、SEQ12、SEQ13、SEQ14依次排列,位于第一位置的SEQ11发送成功后,则从滑动窗口内移除该SEQ11,向后移动该滑动窗口,读取SEQ15。
步骤105:不执行动作,继续等待下次扫描时刻的到来。
综上,通过上述步骤101-104,只要上述超时预警值设定的合适,则上述超时预警重发的文件块都是真正超时需要进行重发的文件块,通过实验测试,通过上述方法预警重发的文件块都是真正超时的文件块,本发明实施例提供的方法,通过进行超时预警处理跟现有技术相比,由于不需要清空滑动窗口后再读取未成功发送的文件块进行重送,发送效率大大提高,进而提高了文件块的发送速度,节约了所占用的网络资源,将该方法应用于即时通讯工具时,提高了用户体验,增加了用户对该工具的使用的黏度。
实施例2
当存在丢包或网络延迟不稳定时,滑动窗口内容易出现未成功发送文件块零散分布在滑动窗口内的情况,导致窗口无法顺利向后滑动,本发明实施例提供了一种数据传输的方法,该方法内容如下:定时扫描滑动窗口,获取当前扫描时刻滑动窗口内未成功发送文件块个数;当未成功发送的文件块个数小于预设值,则移除滑动窗口内成功发送的文件块对应的文件块信息,读取待发送的文件块对应的文件块信息,并发送读取的文件块信息对应的文件块。参见图2,本发明实施例提供的方法具体包括:
步骤201:定时扫描滑动窗口,获取当前扫描时刻,滑动窗口内未成功发送文件块个数。
其中,设定扫描周期优选地为50ms。
步骤202:判断扫描得到的未成功发送的文件块个数,是否小于预设值,如果是,则执行步骤203;否则,执行步骤204。
其中,根据网络传输的特点,设定该预设值,优选地设置为滑动窗口宽度的1/3。相应地,判断在扫描时刻扫描得到的未成功发送的文件块个数相对较少,即小于窗口宽度1/3。
例如,在Td扫描时刻,假设该滑动窗口内存在的文件块信息如下:
文件块SEQ20已经在T20时刻(T20<Td)发送,正在等待接收来自接收方返回确认信息;
文件块SEQ21已经在T21时刻(T21<Td)成功发送;
文件块SEQ22已经在T22(T22<Td)时刻发送,正在等待接收来自接收方返回确认信息;
文件块SEQ23在该在T23(T23<Td)时刻发送,正在等待接收来自接收方返回确认信息
文件块SEQ24已经在T24时刻(T21<Td)成功发送;
文件块SEQ25已经在T25时刻(T21<Td)发送,正在等待接收来自接收方返回确认信息;
文件块SEQ26已经在T26时刻(T26<Td)发送,正在等待接收来自接收方返回确认信息;
文件块SEQ27已经在T27时刻(T27<Td)成功发送;
文件块SEQ33已经在T33时刻(T33<Td)成功发送;
文件块SEQ49已经在T49时刻(T49<Td)成功发送;
即,设置的该滑动窗口的宽度为30,在该扫描时刻Td,该滑动窗口内未成功发送的文件块为SEQ20、SEQ22、SEQ23、SEQ25、SEQ26,其余各文件块成功发送,由于扫描得到的未成功发送的文件块的个数为5小于窗口宽度30的1/3,则需要执行下述步骤203。
步骤203:移除该滑动窗口内成功发送的文件块信息,向后移动该滑动窗口,并读取待发送的文件块的文件块信息。
其中,通过移除该滑动窗口内成功发送的文件块信息,向后移动该滑动窗口,并读取待发送的文件块的文件块信息,实现对未发送成功的文件块集中发送的目的,并加速了滑动窗口的移动。
步骤204:不执行动作。
综上,通过上述步骤201-204,通过将未成功发送的文件块信息进行集中的方法,加速了滑动窗口移动,大大提高了发送效率,进而提高了文件块的发送速度,节约了所占用的网络资源,将该方法应用于即时通讯工具时,提高了用户体验,增加了用户对该工具的使用的黏度。
其中,将该实施例2提供的方法与实施例1提供的方法结合使用,能够进一步地加速了滑动窗口移动,大大提高了发送效率,进而提高了文件块的发送速度,优化UDP文件传输。
实施例3
在网络进行文件的传输时,可能是由于发送方发送的文件块丢失而导致文件块进行重发,而由于网络的不稳定性等原因,也有可能由于接收方反馈的确认信息包丢失,即接收方实际已经收到了某个文件块,但由于反馈的确认信息丢失,而让发送方误认为该文件块发送失败,导致该文件块的重发,因此,为了有效避免该情况的出现,提高文件发送效率、节约网络传输资源,本发明实施例提供了一种数据传输的方法,当发送方向接收方发送当前文件块信息对应的文件块后,方法包括:接收方接收文件块后,向发送方返回的确认信息,确认信息中携带接收方的最小未接收成功的文件块信息到最大接收成功的文件块信息之间的各文件块信息和状态指示。参见图3,本发明实施例提供了如下的方法:
步骤301:接收方在收到文件块后,向发送方返回的确认信息中加入该接收到的文件块的邻近文件块的信息,其中,该邻近文件块信息包括:最小未接收成功的文件块信息到最大接收成功的文件块信息之间的各文件块信息和状态标记指示。
其中,最小未接收成功的文件块信息,是指接收方SEQ最小的未标记文件块;最大接收成功的文件块信息,是指接收方SEQ最大的已标记文件块,其中,所谓标记是指表示该文件块的接收状态的指示,例如,使用1表示已经接收;使用0表示未接收,如果接收方所有的文件块为已标记,则代表整个文件接收完毕,同理,如果发送方所有文件块为已标记,则代表整个文件块发送完毕。
为了便于说明,假设接收方接收到文件块SEQ13,实际上SEQ9、SEQ12的文件块由于发送方发送丢包,导致接收方未成功接收到,即,在接收方SEQ9和SEQ12为未标记的文件块,且SEQ9为最小未接收成功的文件块;而,SEQ1-SEQ8、SEQ10为已经成功接收的文件块,由于SEQ13接收成功,则SEQ13为最大接收成功的文件块,则接收方向发送方返回该文件块SEQ13的确认信息时,在确认信息中添加最小未接收成功的文件块SEQ9和最大接收成功的文件块SEQ13之间的各文件块信息和状态标记指示。即该确认信息中至少携带:SEQ9(0);SEQ10(1);SEQ11(1);SEQ12(0);SEQ13(1)。其中,(0)表示该文件块的状态是接收方未接收;(1)表示该文件块的状态是接收方已成功接收。
步骤302:发送方接收到接收方返回的确认信息后,读取当前未发送且未收到确认信息的文件块的文件块信息并发送。
仍以上述示例,发送方接收到接收方针对SEQ13返回的确认信息后,根据该确认信息中携带的最小未接收成功的文件块SEQ9和最大接收成功的文件块SEQ13之间的各文件块信息和状态标记指示,获知接收方目前最小未接收成功的文件块为SEQ9,且最大接收成功的文件块为SEQ13,则相应地,向接收方重发SEQ9对应的文件块。继续,当接收方接收到SEQ9对应的文件块后,向发送方返回针对该SEQ9的确认信息时,添加此时最小未接收成功的文件块信息SEQ10和最大接收成功的文件块SEQ13之间的各文件块信息和状态标记指示。
参见图4,为本发明实施例提供的接收方进度显示示意图,在T1时刻,接收方的接收进度由于SEQ9未接收,所以显示接收指示停留在SEQ8;而在T2时刻,通过本发明实施例提供的方法,显示接收指示停留在SEQ11时刻;同理,显示指示进度继续依次前移,直到整个文件显示接收完毕。
其中,上述仅为示例说明,经过测试,本发明实施例提供的该确认信息中可以携带的最大100byte字节大小的数据,由于状态标记指示所占大小为1bit,因此,确认信息中大概可以最多携带800个邻近文件块的信息;并且,通过多次反复测试已验证确认信息丢包对速度或效率的影响几乎可以忽略。
综上所述,本发明实施例提供的方法,通过确认信息中携带冗余确认信息的方式,有效避免由于接收方返回的确认信息丢失,导致的发送方对接收方已经接收到的文件块的重发,提高文件发送效率、节约网络传输资源。
其中,将本实施例3提供的方法结合上述实施例1,在实施例1所述的步骤101中在定时扫描滑动窗口内的各文件块信息,获取当前扫描时刻各文件块信息的等待确认信息时间过程中,通过本发明实施例提供的方法,确保发送方准确的获知已经发送到接收方的文件块的信息,有效防止文件块的重发。或结合上述实施例2,在实施例2所涉及的步骤201定时扫描滑动窗口,获取当前扫描时刻,滑动窗口内未成功发送文件块个数过程中,通过本发明实施例提供的方法,确保发送方的获知已经发送到接收方的文件块的信息,即滑动窗口内未成功发送文件块的确为接收方未收到的文件块,有效避免文件块的重发。可以再次提高文件发送效率、节约网络传输资源,优化UDP文件传输;同理,将本发明实施例3提供的方法与实施例1和实施例2结合使用能够再进一步地提高文件发送效率、节约网络传输资源,优化UDP文件传输。
实施例4
由于在网络传输时,需要对滑动窗口实时的调整,特别是,针对网络不稳定的情况下,重发文件块的机率变大,于是出现需要对滑动窗口宽度的调整的概率变大,导致窗口宽度不断的剧烈波动,进而造成不必要的超时,本发明实施例提供了一种数据传输的方法,当需要调整滑动窗口宽度时,该方法包括:
获取预设时间内平均每秒发送成功的文件块的个数;根据获取的个数,获取丢包系数;获取预设时间内平均环路时间值;根据获取的个数、平均环路时间值、以及丢包系数,计算合理窗口宽度;根据计算得到的合理窗口宽度,设置调整后的滑动窗口宽度。参见图5,该方法内容如下:
步骤401:获取预设时间内平均每秒发送成功的文件块的个数,根据该个数,获取丢包系数;
步骤402:获取该预设时间内平均环路时间RTT值;
步骤403:根据上述获取的个数和RTT值,计算合理窗口宽度。
步骤404:当进行滑动窗口调整时,根据计算得到的合理窗口宽度,设置调整后的滑动窗口宽度。
其中,优选地,预设时间为10s,则合理窗口宽度的计算方式如下:
合理窗口宽度=预设时间(10s)平均每秒发送成功的文件块数×这段时间平均RTT值(单位s)×(1+丢包系数加权值);其中,当丢包率为0时,上述合理窗口宽度为预设时间(10s)平均每秒发送成功的文件块数×这段时间平均RTT值(单位s)。
相应地,对滑动窗口宽度调整要受到该计算得到的合理窗口宽度的限制,优选地,滑动窗口宽度调整后的宽度大小,限制为合理窗口宽度正负5以内。
综上所述,本发明实施例提供的方法,通过预测合理窗口宽度,从而限制滑动窗口的宽度调整的幅度,从而减少窗口宽度波动,减少波动造成的不良影响。
将本实施例提供的方法和上述各实施例提供的方法结合使用,例如与本发明实施例1提供的方法结合使用时,通过控制调整滑动窗口的宽度,减少波动得优化UDP文件传输的更好的效果。由于减少窗口宽度波动,减少波动造成的不良影响,因此提高发送效率大大提高,进而提高了文件块的发送速度,节约了所占用的网络资源,优化UDP文件传输。
综上,上述本发明实施例提供的方法,可以单独使用,还可以任意组合使用,从而得到通过方法的组合使用到达再次优化UDP文件传输的目的,优选地,将上述本发明实施例1-4提供的方法结合使用,可以进一步地取得优化UDP文件传输的更好的效果。
实施例5
与上述实施例1提供的方法相应,本发明实施例提供了一种数据传输的装置,参见图6,装置包括:
获取模块,用于定时扫描滑动窗口内的各文件块信息,获取当前扫描时刻各文件块信息的等待确认信息时间值;还用于获取滑动窗口的超时重传时间值;
重发模块,用于当滑动窗口存在等待确认信息时间值大于超时预警值的文件块信息,则调整滑动窗口的宽度,从滑动窗口中移除已发送文件块信息,利用调整宽度后的滑动窗口读取待发送文件块对应的文件块信息并立即发送;利用调整宽度后的滑动窗口重发等待确认信息时间值大于超时预警值的文件块信息对应的文件块;其中,超时预警值小于超时重传时间值;
处理模块,用于当滑动窗口内位于第一位置的文件块信息对应的文件块成功发送后,则从滑动窗口前部移除连续的已发送文件块信息,向后移动滑动窗口。
其中,实际应用时,上述重发模块对滑动窗口的宽度进行调整时,通常为缩小该滑动窗口的宽度。
本发明实施例提供的装置,通过进行超时预警处理跟现有技术相比,由于不需要清空滑动窗口后再读取未成功发送的文件块进行重送,发送效率大大提高,进而提高了文件块的发送速度,节约了所占用的网络资源,将该方法应用于即时通讯工具时,提高了用户体验,增加了用户对该工具的使用的黏度。
实施例6
与上述实施例2提供的方法相应,本发明实施例提供了一种数据传输的装置,参见图7,装置包括:
扫描模块,用于定时扫描滑动窗口,获取当前扫描时刻滑动窗口内未成功发送文件块个数;
重发模块,用于当未成功发送的文件块个数小于预设值,则移除滑动窗口内成功发送的文件块对应的文件块信息,读取待发送的文件块对应的文件块信息,并发送读取的文件块信息对应的文件块。
本发明实施例提供的装置,通过将未成功发送的文件块信息进行集中的方法,加速了滑动窗口移动,大大提高了发送效率,进而提高了文件块的发送速度,节约了所占用的网络资源,将该方法应用于即时通讯工具时,提高了用户体验,增加了用户对该工具的使用的黏度。
实施例7
与上述实施例3提供的方法相应,本发明实施例提供了一种数据传输的装置,参见图8,所述装置包括:
接收模块,用于接收当前文件块信息对应的文件块;
发送模块,用于返回所述当前文件块信息对应的文件块的确认信息,所述确认信息中携带所述接收方的最小未接收成功的文件块信息到最大接收成功的文件块信息之间的各文件块信息和状态指示。
综上所述,本发明实施例提供的装置,通过确认信息中携带冗余确认信息的方式,有效避免由于接收方返回的确认信息丢失,导致的发送方对接收方已经接收到的文件块的重发,提高文件发送效率、节约网络传输资源。
实施例8
与上述实施例4提供的方法相应,本发明实施例提供了一种数据传输的装置,当需要进行滑动窗口调整时,参见图8,所述装置包括:
获取模块,用于获取预设时间内平均每秒发送成功的文件块的个数;还用于获取所述预设时间内平均环路时间值;
计算模块,用于根据所述获取的个数和所述平均环路时间值,计算合理窗口宽度;
调整模块,用于根据计算得到的合理窗口宽度,设置调整后的滑动窗口宽度。
综上所述,本发明实施例提供的装置,通过预测合理窗口宽度,从而限制滑动窗口的宽度调整的幅度,从而减少窗口宽度波动,减少波动造成的不良影响。
与方法实施例的组合方式类似,上述本发明实施例提供的装置,可以单独使用,还可以任意组合使用,从而得到通过各装置的组合使用到达再次优化UDP文件传输的目的,优选地,例如将上述本发明实施例5-8提供的装置结合使用,可以取得优化UDP文件传输的更好的效果。
本发明实施例提供的装置,通过设置超时预警值进行超时处理,发送文件的效率大大提高,提高了文件块的发送速度,节约了所占用的网络资源;通过将未成功发送的文件块信息进行集中的方法,加速了滑动窗口移动,大大提高了发送效率;并且,通过确认信息中携带冗余确认信息的方式,有效避免由于接收方返回的确认信息丢失,导致的发送方对接收方已经接收到的文件块的重发,提高文件发送效率、节约网络传输资源;通过预测合理窗口宽度,从而限制滑动窗口的宽度调整的幅度,从而减少窗口宽度波动,减少波动造成的不良影响。将本发明实施例提供的装置应用于即时通讯工具时,提高了用户体验,增加了用户对该工具的使用的黏度。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本发明实施例中的部分步骤,可以利用软件实现,相应的软件程序可以存储在可读取的存储介质中,如光盘或硬盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1、一种数据传输的方法,其特征在于,所述方法包括:
发送方定时扫描滑动窗口内的各文件块信息,获取当前扫描时刻各文件块信息的等待确认信息时间值;
获取所述滑动窗口的超时重传时间值;
当所述滑动窗口存在等待确认信息时间值大于超时预警值的文件块信息,则调整所述滑动窗口的宽度,移除已发送文件块信息;其中,所述超时预警值小于超时重传时间值;
利用所述调整宽度后的滑动窗口读取待发送文件块对应的文件块信息并立即发送;
利用调整宽度后的滑动窗口重发文件块,所述重发的文件块为等待确认信息时间值大于超时预警值的文件块信息对应的文件块;
当所述调整宽度后的滑动窗口内位于第一位置的文件块信息对应的文件块成功发送后,则从所述调整宽度后的滑动窗口前部移除连续已发送文件块信息,向后移动所述调整宽度后的滑动窗口。
2、如权利要求1所述的方法,其特征在于,所述方法还包括:
所述发送方定时扫描所述滑动窗口,获取当前扫描时刻滑动窗口内未成功发送文件块个数;
当所述未成功发送的文件块个数小于预设值,则移除所述滑动窗口内成功发送的文件块对应的文件块信息,读取待发送的文件块对应的文件块信息,并发送所述读取的文件块信息对应的文件块。
3、如权利要求1或2所述的方法,其特征在于,当所述发送方需要调整滑动窗口宽度时,所述方法还包括:
获取预设时间内平均每秒发送成功的文件块的个数;
根据所述获取的个数,获取丢包系数;
获取所述预设时间内平均环路时间值;
根据所述获取的个数、所述平均环路时间值、以及所述丢包系数,计算合理窗口宽度;
根据计算得到的合理窗口宽度,设置调整后的滑动窗口宽度。
4、如权利要求1或2所述的方法,其特征在于,当所述发送方向接收方发送当前文件块信息对应的文件块后,所述方法还包括:
所述接收方接收所述文件块后,向所述发送方返回确认信息,所述确认信息中携带所述接收方的最小未接收成功的文件块信息到最大接收成功的文件块信息之间的各文件块信息和状态指示。
5、一种数据传输的方法,其特征在于,所述方法包括:
发送方定时扫描滑动窗口,获取当前扫描时刻滑动窗口内未成功发送文件块个数;
当所述未成功发送的文件块个数小于预设值,则移除所述滑动窗口内成功发送的文件块对应的文件块信息,读取待发送的文件块对应的文件块信息,并发送所述读取的文件块信息对应的文件块。
6、如权利要求5所述的方法,其特征在于,所述方法还包括:
所述发送方定时扫描滑动窗口内的各文件块信息,获取当前扫描时刻各文件块信息的等待确认信息时间值;
获取所述滑动窗口的超时重传时间值;
当所述滑动窗口存在等待确认信息时间值大于超时预警值的文件块信息,则调整所述滑动窗口的宽度,移除已发送文件块信息;其中,所述超时预警值小于超时重传时间值;
利用所述调整宽度后的滑动窗口读取待发送文件块对应的文件块信息并立即发送;
利用调整宽度后的滑动窗口重发文件块,所述重发的文件块为所述等待确认信息时间值大于超时预警值的文件块信息对应的文件块;
当所述调整宽度后的滑动窗口内位于第一位置的文件块信息对应的文件块成功发送后,则从所述调整宽度后的滑动窗口前部移除连续已发送文件块信息,向后移动所述调整宽度后的滑动窗口。
7、一种数据传输的方法,其特征在于,当需要调整滑动窗口宽度时,所述方法包括:
获取预设时间内平均每秒发送成功的文件块的个数;
根据所述获取的个数,获取丢包系数;
获取所述预设时间内平均环路时间值;
根据所述获取的个数、所述平均环路时间值、以及所述丢包系数,计算合理窗口宽度;
根据计算得到的合理窗口宽度,设置调整后的滑动窗口宽度。
8、一种数据传输的方法,其特征在于,当发送方向接收方发送当前文件块信息对应的文件块后,所述方法包括:
所述接收方接收所述文件块后,向所述发送方返回确认信息,所述确认信息中携带所述接收方的最小未接收成功的文件块信息到最大接收成功的文件块信息之间的各文件块信息和状态指示。
9、一种数据传输的装置,其特征在于,所述装置包括:
获取模块,用于定时扫描滑动窗口内的各文件块信息,获取当前扫描时刻各文件块信息的等待确认信息时间值;还用于获取所述滑动窗口的超时重传时间值;
重发模块,用于当所述滑动窗口存在等待确认信息时间值大于超时预警值的文件块信息,则调整所述滑动窗口的宽度,其中,所述超时预警值小于超时重传时间值;从所述滑动窗口中移除已发送文件块信息,利用所述调整宽度后的滑动窗口读取待发送文件块对应的文件块信息并立即发送;利用调整宽度后的滑动窗口重发文件块,所述重发的文件块为等待确认信息时间值大于超时预警值的文件块信息对应的文件块;
处理模块,用于当所述滑动窗口内位于第一位置的文件块信息对应的文件块成功发送后,则从所述滑动窗口前部移除连续的已发送文件块信息,向后移动所述滑动窗口。
10、一种数据传输的装置,其特征在于,所述装置包括:
扫描模块,用于定时扫描滑动窗口,获取当前扫描时刻滑动窗口内未成功发送文件块个数;
重发模块,用于当所述未成功发送的文件块个数小于预设值,则移除所述滑动窗口内成功发送的文件块对应的文件块信息,读取待发送的文件块对应的文件块信息,并发送所述读取的文件块信息对应的文件块。
11、一种数据传输装置,其特征在于,所述装置包括:
接收模块,用于接收当前文件块信息对应的文件块;
发送模块,用于返回所述当前文件块信息对应的文件块的确认信息,所述确认信息中携带所述接收方的最小未接收成功的文件块信息到最大接收成功的文件块信息之间的各文件块信息和状态指示。
12、一种数据传输装置,其特征在于,当需要进行滑动窗口调整时,所述装置包括:
获取模块,用于获取预设时间内平均每秒发送成功的文件块的个数;还用于获取所述预设时间内平均环路时间值;
计算模块,用于根据所述获取的个数和所述平均环路时间值,计算合理窗口宽度;
调整模块,用于根据计算得到的合理窗口宽度,设置调整后的滑动窗口宽度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910008497 CN101488840B (zh) | 2009-02-05 | 2009-02-05 | 一种数据传输的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910008497 CN101488840B (zh) | 2009-02-05 | 2009-02-05 | 一种数据传输的方法和装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110100493 Division CN102170341B (zh) | 2009-02-05 | 2009-02-05 | 一种数据传输的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101488840A true CN101488840A (zh) | 2009-07-22 |
CN101488840B CN101488840B (zh) | 2013-04-17 |
Family
ID=40891535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910008497 Active CN101488840B (zh) | 2009-02-05 | 2009-02-05 | 一种数据传输的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101488840B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101950238A (zh) * | 2010-09-14 | 2011-01-19 | 北京神州泰岳软件股份有限公司 | 文件传输进度显示方法及*** |
WO2015169186A1 (en) * | 2014-05-04 | 2015-11-12 | Tencent Technology (Shenzhen) Company Limited | File transmission method and system |
CN105282200A (zh) * | 2014-07-18 | 2016-01-27 | 中国电信股份有限公司 | 断点续传的方法与服务器 |
CN106293889A (zh) * | 2015-06-05 | 2017-01-04 | 北京国双科技有限公司 | 一种控制滑动窗口移动的方法及装置 |
CN113438180A (zh) * | 2021-06-02 | 2021-09-24 | 广联达科技股份有限公司 | Udp数据包的传输控制方法、装置、设备及可读存储介质 |
CN114157529A (zh) * | 2021-12-01 | 2022-03-08 | 东方财富信息股份有限公司 | 一种分布式数据传输***及方法 |
CN114268416A (zh) * | 2021-12-16 | 2022-04-01 | 无锡联云世纪科技股份有限公司 | 数据传输方法、装置及电子设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1214810A1 (en) * | 1999-09-20 | 2002-06-19 | Nokia Corporation | Error control method and apparatus |
US7035214B1 (en) * | 1999-09-28 | 2006-04-25 | Nortel Networks Limited | System and method for a negative acknowledgement-based transmission control protocol |
US7444578B2 (en) * | 2002-11-18 | 2008-10-28 | Telefonaktiebolaget L M Ericsson (Publ) | Data unit sender and method of controlling the same |
US8150995B2 (en) * | 2005-09-30 | 2012-04-03 | Microsoft Corporation | Receive window auto-tuning |
CN101212283B (zh) * | 2006-12-25 | 2011-07-20 | 华为技术有限公司 | 通信***中传输确认/非确认信息的方法 |
JP4778453B2 (ja) * | 2007-01-24 | 2011-09-21 | 株式会社エヌ・ティ・ティ・ドコモ | 通信端末、輻輳制御方法および輻輳制御プログラム |
-
2009
- 2009-02-05 CN CN 200910008497 patent/CN101488840B/zh active Active
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101950238A (zh) * | 2010-09-14 | 2011-01-19 | 北京神州泰岳软件股份有限公司 | 文件传输进度显示方法及*** |
CN101950238B (zh) * | 2010-09-14 | 2013-04-24 | 北京神州泰岳软件股份有限公司 | 文件传输进度显示方法及*** |
WO2015169186A1 (en) * | 2014-05-04 | 2015-11-12 | Tencent Technology (Shenzhen) Company Limited | File transmission method and system |
CN105282200A (zh) * | 2014-07-18 | 2016-01-27 | 中国电信股份有限公司 | 断点续传的方法与服务器 |
CN105282200B (zh) * | 2014-07-18 | 2018-12-28 | 中国电信股份有限公司 | 断点续传的方法与服务器 |
CN106293889A (zh) * | 2015-06-05 | 2017-01-04 | 北京国双科技有限公司 | 一种控制滑动窗口移动的方法及装置 |
CN106293889B (zh) * | 2015-06-05 | 2019-11-19 | 北京国双科技有限公司 | 一种控制滑动窗口移动的方法及装置 |
CN113438180A (zh) * | 2021-06-02 | 2021-09-24 | 广联达科技股份有限公司 | Udp数据包的传输控制方法、装置、设备及可读存储介质 |
CN114157529A (zh) * | 2021-12-01 | 2022-03-08 | 东方财富信息股份有限公司 | 一种分布式数据传输***及方法 |
CN114157529B (zh) * | 2021-12-01 | 2024-01-23 | 东方财富信息股份有限公司 | 一种分布式数据传输***及方法 |
CN114268416A (zh) * | 2021-12-16 | 2022-04-01 | 无锡联云世纪科技股份有限公司 | 数据传输方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101488840B (zh) | 2013-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101488840B (zh) | 一种数据传输的方法和装置 | |
US6401136B1 (en) | Methods, systems and computer program products for synchronization of queue-to-queue communications | |
CN101945103B (zh) | Ip网络应用加速*** | |
US6321269B1 (en) | Optimized performance for transaction-oriented communications using stream-based network protocols | |
CN101933298A (zh) | 无线通信***中通过多条链路进行的分组传输 | |
CN103905300A (zh) | 一种数据报文发送方法、设备及*** | |
CN103957169A (zh) | 一种基于反向请求的可靠udp的实现方法 | |
CN112261142B (zh) | 一种rdma网络的数据重传方法、装置及fpga | |
US8095116B2 (en) | Method for delivering multimedia files | |
CN102170341B (zh) | 一种数据传输的方法和装置 | |
CN101453751A (zh) | 窄带网络环境下传输大文件数据的方法 | |
CN110233856B (zh) | 报文处理方法、装置及计算机可读存储介质 | |
CN114745273A (zh) | Tcp加速代理方法、装置、卫星地面站及可读存储介质 | |
CN107209713A (zh) | 按需文件修复的方法和*** | |
CN102013962A (zh) | 数据传输方法及设备 | |
CN102065372B (zh) | 以广播方式传输数据的方法及相关装置 | |
JP2004080070A (ja) | データ転送方法及びデータ転送システム並びにコンテンツ配信システム | |
CN113300818A (zh) | 数据传输***及方法 | |
CN101299711B (zh) | 数据单元转换的方法、设备及数据单元传输的*** | |
CN102802197A (zh) | 应用数据的传输方法及装置 | |
CN113517955B (zh) | 信息发送、接收方法及发送设备和接收设备 | |
CN113612737A (zh) | 一种基于分组与重传机制的长报文可靠传输方法 | |
CN110865891B (zh) | 一种异步消息编排方法和装置 | |
CN104426746A (zh) | 客户端消息的推送方法、装置和服务器 | |
CN113489786A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |