一种文件传输的方法及子发送器的制作方法

文档序号:7700440阅读:122来源:国知局
专利名称:一种文件传输的方法及子发送器的制作方法
技术领域
本发明涉及计算机技术领域,特别涉及一种文件传输的方法及子发送器。
背景技术
随着网络技术的发展,网络即时通讯工具发展到今天,也已经被大多数的 网民所接受,已经成为用户必不可少的软件工具,不但在平时的休闲娱乐中,
而且在用户的工作中得到广泛的使用。因此用户对IM软件的易用性,稳定性, 安全性等方面提出了较高的要求。在IM软件中,人性化的服务可以为用户提 供一种更加强烈的粘性作用,用户在网络生活中必不可少的使用IM软件进行 着曰常的交流与沟通,IM软件可以说是用户桌面不可缺少的工具之一,成为 工作与生活中不可或缺的一部分。文件传输作为一种主要沟通方式,在IM基 础服务中具有举足轻重的低位,如何传输得更快更高效,是一个需要长期研究 的问题。
现有技术中采用仿TCP ( Transmission Control Protocol,传输控制协议)滑 动窗口的UDP (User Datagram Protocol ,用户数据报协议)文件传输方法,由 于方法与TCP特性相似,因此受网络环境(丢包、延迟、抖动等)影响较大、 带宽利用率较低。

发明内容
为了提高文件传输的速度和效率,本发明实施例提供了一种文件传输的方 法及子发送器。所述技术方案如下
一种文件传输的方法,所述方法包括
子发送器收到上次发送的文件块的应答之后,确定自身有效时,向协调器查 询下一个待发送的文件块的标号;
3接收所述协调器返回的下一个待发送的文件块的标号,并发送所述文件块。
所述方法还包括
收到上次发送的文件块的应答之后,确定自身无效时,停止发送。 所述方法还包括
发出第一文件块后,若在重传时限内没有收到应答,则重新发送所述第一文 件块。
一种子发送器,所述子发送器包括查询模块和第一发送模块;
所述查询;f莫块,用于收到上次发送的文件块的应答之后,确定自身有效时, 向协调器查询下一个待发送的文件块的标号;
所述发送模块,用于接收所述协调器返回的下一个待发送的文件块的标号, 并发送所述文件块。
所述子发送器还包括确定模块,用于收到上次发送的文件块的应答之后, 确定自身无效时,停止发送。
所述子发送器还包括第二发送模块,用于发出第一文件块后,在重传时限 内没有收到应答,则重新发送所述第一文件块。
本发明实施例提供的技术方案的有益效果是通过多个子发送器独立传输 文件块,大大提高了 UDP文件传输的速度和效率。


图1是本发明实施例1提供的一种文件传输的方法流程图2是本发明实施例2 4是供的一种调整子发送器个数的方法流程图3是本发明实施例3提供的子发送器结构示意图4是本发明实施例4提供的一种调整子发送器个数的装置结构示意图5是本发明实施例4提供的另一种调整子发送器个数的装置结构示意图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明 实施方式作进一步地详细描述。 实施例1
参见图l,本发明实施例提供了一种文件传输的方法,该方法包括101:收到上次发送的文件块的应答之后,确定自身有效时,向协调器查询
下一个待发送的文件块的标号;
102:接收协调器返回的下一个待发送的文件块的标号,并发送具有该标号 的文件块。
例如,上一个发送的文件块的标号为13,则某子发送器向协调器查询出下 一个待发送的文件块的标号为14,则该某子发送器将发送标号为14的文件块, 然后另一个子发送器再向协调器查询时,下一个待发送的文件的标号为15。
其中,该方法还包4舌
收到上次发送的文件块的应答之后,确定自身无效时,停止发送。
例如,当前有10个子发送器正在工作,分别为第一子发送器到第十子发送
器,协调器计算出传输当前文件需要的子发送器个数为9,则第十子发送器就处
于无效状态。
其中,该方法还包4舌
发出第 一文件块后,在RTO (Retransmission Timeout,重传时限)内没有收 到应答,则重新发送该第一文件块。
例如,第一子发送器发出文件块10后,该文件块10即为第一文件块,在 RTO内没有收到该文件块10的应答,则重新发送该文件块10,然后在RTO内 还是没有收到应答,则再次重新发送该文件块10,以此循环,直到收到应答, 由于所有子发送器独立传输文件块,第一子发送器之外的其他子发送器仍旧发 送其他的文件块,第一子发送器循环发送文件块10时,文件块11及以后的文 件块由其他的子发送器发送。
本实施例中,子发送器的个数可以通过实施例2提供的方法进行调整,但不 限于实施例2提供的两种方法。在使用实施例2提供的方法调整子发送器个数 时,多发增量等可以相应的做些变化。
本发明实施例通过多个子发送器独立传输文件块,大大提高了 UDP文件传 输的速度和效率。
实施例2
本发明实施例提供了一种调整如实施例l提供的子发送器个数的方法,该方 法包括步骤bl:将第一预设时间段内的实时平均速度和该预设时间段内的实时平 均RTT (Round-Trip Time,往返时延)相乘,得到保持当前实时平均速度所需 子发送器的最少个数。
其中,设第一预设时间段为5s,则实时平均速度为5s内发出的文件块总数 /5s,如果上次计算的5s是2到6s,则下次计算的5s可以是3到7s,即时间段 可以有重叠。
其中,该方法包^":
步骤b2:给上述计算出的保持当前实时平均速度所需子发送器的最少个数 乘以多发系数,得到多发的子发送器个数。
其中,考虑到丢包影响,子发送器数目要比保持当前实时平均速度所需子发
送器的最少个数多,多发系数为丢包率系数4RTO/实时平均RTT,丢包率系数可
以是l/(l-实时丟包率)-1,在丢包率较小时丢包率系数约等于丟包率;多发系
数还可以是丢包率系数*1^0/实时平均RTT与乘系数增量之和,乘系数增量可
以在10%-20%之间。
其中,实时丟包率与实时效率的和为1,设预设时间段为5s,实时效率则为
最近5s收到的应答it/最近5s发出的文件块总数,如果上次计算的5s是2到6s,
则下次计算的5s可以3到7s,即时间l史可以有重叠。
其中,参见图2,该方法还包括
步骤b3:给多发后的子发送器个数再加上多发增量,并和保持当前实时平 均速度所需子发送器的最少个数相加,得到实际所需的子发送器个数。
其中,考虑到当网络变好时速度能够快速上去,可以加上多发增量,该多发 增量可以是l, 2或3,但不限于这三个值。
其中,用实时平均速度乘以实时平均RTT计算出保持当前实时平均速度所 需子发送器的最少个数之前,该方法还包括
步骤al:根据子发送器个数,计算第二预设时间段内发送文件块的实时平均 速度和实时效率;
步骤a2:根据该实时平均速度和实时效率调整子发送器个数,并执行步骤 303,直到实时平均速度下降到预设阈值或实时效率稳定在预设范围内,执^f亍步 骤301。
例如,第二预设时间段为5s,则实时平均速度为最近5s内发出的文件块总 凄t/5s,实时效率为最近5s收到的应答凄t/最近5s发出的文件块总数,如果上次
6计算的5s是2到6s,则下次计算的5s为7到lls。
步骤al和步骤a2可以称为快速调节子发送器个数的阶段,在快速调节阶段, 计算实时平均速度和实时效率时,时间段没有重叠。
本发明实施例提供的调整子发送器个数的方法不限于应用在实施例1提供 的文件传输过程中,比如,也可以应用在语音传输等过程中,如果应用在其他 的场景中,多发增量等可以相应的做些变化。
本发明实施例通过计算子发送器个数,可以控制实时流量,使子发送器发送 文件的实时平均速度和实时效率处于最佳状态;当距离目标子发送器个数比较 远时,可以先快速调节子发送器个数,使子发送器个数尽快到达子发送器个数 最佳值附近,减少了调整的时间,然后计算子发送器个数,子发送器发送文件 的实时平均速度和实时效率也就能快速处于最佳状态。
实施例3
参见图3,本发明实施例提供了一种子发送器,该子发送器包括 查询模块201和第一发送模块202;
查询模块201,用于收到上次发送的文件块的应答之后,确定自身有效时, 向协调器查询下一个纟寺发送的文件块的标号;
第一发送模块202,用于接收协调器返回的下一个待发送的文件块的标号, 并发送具有该标号的文件块。
例如,上一个发送的文件块的标号为13,则某子发送器向协调器查询出下 一个待发送的文件块的标号为14,则该某子发送器将发送标号为14的文件块, 然后另一个子发送器再向协调器查询时,下一个待发送的文件的标号为15。
其中,该子发送器还包括
确定模块,用于收到上次发送的文件块的应答之后,确定自身无效时,停止 发送。
例如,当前有10个子发送器正在工作,分别为第一子发送器到第十子发送 器,协调器计算出传输当前文件需要的子发送器个数为9,则第十子发送器就处 于无效状态。
其中,该子发送器还包括
第二发送模块,用于发出第一文件块后,在重传时限RTO内没有收到应答,则重新发送该第 一文件块。
例如,第一子发送器发出文件块10后,该文件块10即为第一文件块,在 RTO内没有收到该文件块10的应答,则重新发送该文件块10,然后在RTO内 还是没有收到应答,则再次重新发送该文件块10,以此循环,直到收到应答, 由于所有子发送器独立传输文件块,第一子发送器之外的其他子发送器仍旧发 送其他的文件块,第一子发送器循环发送文件块10时,文件块11及以后的文 件块由其他的子发送器发送。
本发明实施例通过多个子发送器独立传输文件块,大大提高了 UDP文件传 输的速度和效率。
实施例4
本发明实施例提供了一种调整如实施例3提供的子发送器个数的装置,该装 置包括第一相乘模块301;
第一相乘模块301,用于将预设时间段内的实时平均速度和该预设时间段内 的实时平均RTT相乘,得到保持实时平均速度所需子发送器的最少个数。
其中,设预设时间段为5s,则实时平均速度为5s内发出的文件块总粉5s, 如果上次计算的5s是2到6s,则下次计算的5s可以是3到7s,即时间段可以 有重叠。
其中,该装置还包括第二相乘模块302,用于对第一相乘模块301得到的 保持当前实时平均速度所需子发送器的最少个数乘以多发系数,得到多发的子 发送器个数。
其中,考虑到丟包影响,子发送器数目要比保持当前实时平均速度所需子发
送器的最少个数多,多发系数为丟包率系数*11丁0/实时平均1111\丟包率系数可
以是l/(l-实时丟包率)-1,在丢包率较小时丟包率系数约等于丟包率;多发系
数还可以是丢包率系数*11丁0/实时平均RTT与乘系数增量之和,乘系数增量可
以在10%-20%之间。
其中,实时丟包率与实时效率的和为1,设预设时间段为5s,实时效率则为
最近5s收到的应答数/最近5s发出的文件块总数,如果上次计算的5s是2到6s,
则下次计算的5s可以3到7s,即时间段可以有重叠。
其中,参见图4,该装置还包括相加模块303,用于对第二相乘模块302
8得到的多发后的子发送器个数再加上多发增量,并和保持当前实时平均速度所需子发送器的最少个数相加,得到实际所需的子发送器个数。
其中,考虑到当网络变好时速度能够快速上去,可以加上多发增量,该多发
增量可以是l, 2或3,但不限于这三个值。其中,参见图5,该装置还包括
计算模块304,用于根据子发送器个数,计算第二预设时间段内发送文件块
的实时平均速度和实时效率;
调整模块305,用于根据计算模块304计算的实时平均速度和实时效率调整
子发送器个数,并通知计算模块304,直到实时平均速度下降到预设阈值或实时
效率稳定在预设范围内,通知第 一相乘模块301 。
例如,第二预设时间段为5s,则实时平均速度为最近5s内发出的文件块总
数/5s,实时效率为最近5s收到的应答凄t/最近5s发出的文件块总数,如果上次
计算的5s是2到6s,则下次计算的5s为7到lls。
计算模块304和调整模块305可以称为快速调节子发送器个数的阶段,在快速调节阶段,计算实时平均速度和实时效率时,时间段没有重叠。
本发明实施例提供的调整子发送器个数的装置不限于应用在实施例1提供的文件传输过程中,比如,也可以应用在语音传输等过程中,如果应用在其他的场景中,多发增量等可以相应的做些变化。
本发明实施例通过计算子发送器个数,可以控制实时流量,使子发送器发送文件的实时平均速度和实时效率处于最佳状态;当距离目标子发送器个数比较远时,可以先快速调节子发送器个数,使子发送器个数尽快到达子发送器个数最佳值附近,减少了调整的时间,然后计算子发送器个数,子发送器发送文件的实时平均速度和实时效率也就能快速处于最佳状态。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
9
权利要求
1.一种文件传输的方法,其特征在于,所述方法包括子发送器收到上次发送的文件块的应答之后,确定自身有效时,向协调器查询下一个待发送的文件块的标号;接收所述协调器返回的下一个待发送的文件块的标号,并发送具有所述标号的文件块。
2. 根据权利要求1所述的方法,其特征在于,所述方法还包括 收到上次发送的文件块的应答之后,确定自身无效时,停止发送。
3. 根据权利要求1所述的方法,其特征在于,所述方法还包括 发出第一文件块后,若在重传时限内没有收到应答,则重新发送所述第一文件块。
4. 一种子发送器,其特征在于,所述子发送器包括查询模块和第一发送 模块;所述查询模块,用于收到上次发送的文件块的应答之后,确定自身有效时, 向协调器查询下一个待发送的文件块的标号;所述第一发送模块,用于接收所述协调器返回的下一个待发送的文件块的 标号,并发送所述文件块。
5. 根据权利要求4所述的子发送器,其特征在于,所述子发送器还包括 确定模块,用于收到上次发送的文件块的应答之后,确定自身无效时,停止发 送。
6. 根据权利要求4所述的子发送器,其特征在于,所述子发送器还包括 第二发送模块,用于发出第一文件块后,在重传时限内没有收到应答,则重新 发送所述第一文件块。
全文摘要
本发明实施例公开了一种文件传输的方法及子发送器,属于计算机技术领域。所述方法包括子发送器收到上次发送的文件块的应答之后,确定自身有效时,向协调器查询下一个待发送的文件块的标号;接收所述协调器返回的下一个待发送的文件块的标号,并发送所述具有所述标号的文件块。所述子发送器包括查询模块和第一发送模块。本发明实施例提供的技术方案大大提高了UDP文件传输的速度和效率。
文档编号H04L1/18GK101562508SQ20091008478
公开日2009年10月21日 申请日期2009年5月19日 优先权日2009年5月19日
发明者陈家君 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1