[发明专利]一种减少下载结束拖尾的方法和系统有效
申请号: | 201510072727.5 | 申请日: | 2015-02-11 |
公开(公告)号: | CN104661243B | 公开(公告)日: | 2018-04-10 |
发明(设计)人: | 余再跃 | 申请(专利权)人: | 上海大唐移动通信设备有限公司;大唐移动通信设备有限公司 |
主分类号: | H04W24/02 | 分类号: | H04W24/02 |
代理公司: | 北京路浩知识产权代理有限公司11002 | 代理人: | 王莹 |
地址: | 200233 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 减少 下载 结束 方法 系统 | ||
技术领域
本发明涉及一种减少下载结束拖尾的方法和系统,属于通信技术领域。
背景技术
在对无线网络优化时,通常需要通过移动终端多线程FTP下载文件测试无线网络。测出下载的峰速和平均速率,如平均速率果偏低,再进行网络优化。现在的一些移动终端通过多线程FTP下载时,一般指定下载的数据量大小(如1024K字节)和线程数量。下载过程中,每个线程打开一个FTP连接,进行下载,将各个线程下载的数据量进行累计,一旦达到指定数量(如1024K),则各个线程都关闭连接,然后退出。但是,使用多线程进行FTP下载时,下载结束瞬间各个线程关闭连接和退出的速度并不相同。例如,10个线程下载,退出时,从10个线程到9个线程,再到8个线程,最后,所有线程逐步退出,整个过程,线程逐步减少。这种下载结束时,多个线程逐渐退出的过程称为下载拖尾。从线程的角度看,会有这种拖尾现象。从网络连接关闭的过程看,也是有这种拖尾现象。例如:从10个连接,至全部连接断开。历时几秒,连接陆续断开。这里下载达到指定的数据量到连接全部关闭、线程全部退出的时间称之为拖尾时间。
现有的一些移动终端在多线程FTP下载过程中,每个线程都通过调用CFRunLoop(启动事件循环,监控任务的输入源,不停的调度工作以及处理输入事件)。如果没有事件发生,则休眠,一旦有事件,则处理相应事件;如果有数据包过来,则也会有相应事件触发,然后处理该数据包。目前,移动终端在下载完成后,线程退出的方法,主要有3种:
方法一:
方法二:第1个发现数据量已经达到的线程,通知其他线程,告诉其他线程数据量已经达到,其他线程收到通知后,调用[NSThread exit]退出线程。
方法三是:使用标志位方法,即最先发现数据量已经达到的线程,调用线程cancel方法,但这方法实际上只是设置一个标志位,需要在各种事件处理过程中判断这个标志位,根据这个标志位决定是否退出。
对于方法一和方法三:从用户指定的数据量下载完,到全部线程都退出,一般会经历几秒钟,一般都会有拖尾现象。并且,常常会超出用户指定的目标下载数据量比较多,因为各个线程各自独立下载,部分线程不能及时发现已经下载完成,不能及时关闭连接。即使发现了下载数据量超过目标,但是已经收到的数据还得继续处理,即将这些收到的数据继续累加到下载数据总量中,如果不处理这些超过目标下载量的数据,则会影响一些测量指标的正确性,如下载数据总量等,因而不得不处理,由于处理需要时间,因此拖尾时间就更长了。对于方法二,主要有以下缺陷,其一,线程正在忙时,响应通知时间不确定,不能准确预料。其次,线程退出时,也许会在将一个数据包累计到T(总数据量)前一瞬间退出,导致数据包没有加进去,影响测量指标的准确性。总之,退出时机不可预料和准确控制,影响指标测量的准确性。同时,其也不能避免拖尾现象。
网络优化中的FTP下载,并不要求保证文件下载的完全正确,而是通过下载产生流量,从而测试网络速度。由于拖尾现象存在,使得下载平均速率会相应降低,影响测量指标。
发明内容
本发明要解决的技术问题是:解决现有网络测试中下载拖尾导致网络测试不准确的问题。
为实现上述的发明目的,本发明提供了一种减少下载结束拖尾的方法和系统。
一方面,本发明提供一种减少下载结束拖尾的方法,包括如下步骤:
当线程完成当前一次传输后;
对线程各次传输的数据量采样得到单一线程平均每次传输的数据量;
累加所有线程已传输的数据量得到已传输的数据总量;
需要传输的数据总量与已传输的数据总量取差得到剩余需要传输的数据量;
根据剩余需要传输的数据量、单一线程平均每次传输的数据量、当前线程数确定是否结束本线程。
其中较优地,所述对线程各次传输的数据量采样得到平均每次传输的数据量的步骤具体包括:
对线程各次传输的输数据量采样,对采样的线程各次传输的数据量取平均值得到单一线程平均每次传输的数据量。
其中较优地,所述线程各次传输的数据量是线程接收到各次流有可读数据的事件后,从流读取到的数据量。
其中较优地,所述根据剩余需要传输的数据量、单一线程平均每次传输的数据量、当前线程数确定是否结束本线程的步骤包括:
如果当前线程数满足以下条件,则结束本线程:
S/D×n×p>1
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海大唐移动通信设备有限公司;大唐移动通信设备有限公司,未经上海大唐移动通信设备有限公司;大唐移动通信设备有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510072727.5/2.html,转载请声明来源钻瓜专利网。