免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1440 | 回复: 0
打印 上一主题 下一主题

多线程下载--广域网 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-29 16:53 |只看该作者 |倒序浏览
前段时间写过一篇
《闲谈文件传输》
,里面谈到多线程下载的有效性问题。近日,因为比较关注TCP协议在广域网中的表现,所以感觉以前的讨论不够全面,本文重新探讨多线程下载在广域网中的有效性问题。
我这里所谈及的广域网是具有大带宽,长延时的网络环境,专业术语为Long Fat pipe
Network,简写为LFN。比较典型的例子为卫星链路。因为TCP协议是面相连接的,提供可靠服务的传输层协议,所以发送方必须等到它所发送的数据得
到确认后,才能将本地的缓存里面的数据丢弃,不然就有可能造成数据的丢失。
为了简单,不考虑网络中可能发生的拥塞,即差错率为0%。发送端为了确保链路的可靠性,不得不在每次将数据包送出后,等待此数据包的回应,在此时间段内链
路基本处于空闲,整体的效率也就很低了。为了充分利用现有的网络带宽,就必须使等待的时间降为0,这就需要加大发送窗口,到底需要多大的发送窗口呢?
理想窗口大小 = 带宽 × 延时
带宽利用率 = 窗口大小 / (带宽 × 延时)
可见在带宽未达到饱和的情况下,带宽利用率和窗口大小是成正比关系的。可实际的情况呢?
考虑带宽为2Mbps,延时为500ms的情况,理想的发送端口大小最小为:128K bytes,实际上在TCP协议的实现过程中多选择的窗口大小为64K bytes,实际的带宽利用率也就只有50%了。
作为下载方,我们对于发送方的窗口大小没办法做优化,但是我们可以通过增加下载线程数来变相增加发送方的窗口大小,进而获得更高的传输速率。在上面的理想情况下,我们只需要开两个线程,就能动力十足了。实际情况,所需线程数可能略有增加,但整体偏差不会差得太多。
可见,多线程下载,在广域网中还有变相加大发送方发送窗口大小的作用,那么它能加速文件传输的秘密也就不是什么秘密了。
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/5251/showart_119823.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP