|
首页->大浪淘沙
断点续传工具的使用
作者:马健
邮箱:stronghorse@tom.com
主页:http://stronghorse.yeah.net
新手上路:一个任务开5个线程,因为这是续传工具的缺省设置。后果:
- 消耗服务器端连接数,剥夺他人下载机会。一般情况下,对于客户端的每个连接请求,服务器端都会开启一个单独的服务线程来提供服务,直到连接终止。每个服务线程均需要占用服务器资源(内存、CPU、带宽等),而服务器的资源是有限的,所以明里暗里,服务器都会有一个连接总数的限制。续传工具的每个线程都会单独向服务器发送连接请求,线程越多,占用的连接数越多。
- 增加建立连接的时间消耗,无形中增加上网费用。对于Internet常用的TCP/IP通讯协议来说,建立客户端和服务器端的连接是一个很耗时间的过程,因为需要完成域名解析、路由、启动/激活服务线程等过程,连接建立后的传输一般只受线路影响,相对感觉要快一些,这点相信用过的人都会有体会。使用多线程下载时,在下载到尾部时由于每个线程的任务都会很快完成,因此会频繁地向服务器发送连接请求,等待连接的时间可能比下载的时间还长。一般多线程续传工具把这种现象称为“尾部震荡”,可以在选项中增加“分段下载的每段最小尺寸”来减轻震荡。
- 增加数据包丢失的机会,因无谓的重发请求而增加总下载时间。基于TCP/IP协议的数据传输是以数据包(可以看做是一段数据,长度有限)为单位的,IP收到的数据包可能是顺序混乱的,由TCP负责将这些数据包按正确顺序拼装起来,以连续数据流的形式提供给高层的HTTP或FTP。TCP检测到包丢失或错误时需要向服务器发送请求,要求重新发送数据包。在多个连接同时存在的情况下,就好象一堆人同时过一道门,人比门宽时就会出现堵塞,TCP就会因为没有按时收到数据包而多发重发请求,增加网络和服务器负担,TCP拼装数据包时也累。表现在下载工具显示的速度曲线上,就是一条起伏蜿蜒的曲线。
半瓶醋:一个任务开10个线程,因为这是续传工具允许多最大设置。后果:上面的坏处全部翻番都不止(某些现象是非线形的),典型的损人不利己。
真正老鸟:一次一个任务,每个任务一个线程;带宽有富裕时增加同时下载的任务数,而不是每个任务的线程数,当然任务数也不能超过服务器允许同一IP地址建立的连接数。后果:对服务器端资源消耗少;尾部震荡现象是不存在的;原来一堆人同时过一道门,现在变成一个人同时过一道门,表现在下载工具显示的速度曲线上,就是一条流畅的水平线。
|