I如何利用TCP原理优化FTP下载速率.docVIP

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
I如何利用TCP原理优化FTP下载速率

TCP原理和优化FTP服务器 某地部分无线和部分核心FTP下载速率慢的问题. FTP的传输是基于TCP协议.如果能根据TCP的原理进行优化FTP下载速率会有所提高. 尽管TCP在很多网络环境中具有很高的效率,但是这并不意味着它在每个环境中都是如此。例如: 在那些存在严重无线噪声的无线环境中,TCP可能会将因为基于射频的信号中断与相应的分组丢弃而造成的后果与网络拥塞造成的后果相混淆,导致TCP会话过早、过久地降低发送速率。 现代TCP的实现包括4个纠缠不清的算法:慢启动、拥塞避免、快速重发和快速恢复 一、慢启动   以前的TCP连接是通过发送者向接收者发送多块的片段,从而达到一定的窗口大小来 建立起来的。这个窗口的大小是由接收者来声明的。虽然这种做法在同一个局域网的两 台主机之间是行得通的,但如果它们之间的通讯要通过多台路由器并且它们之间的带宽 不是很足够的话,问题就产生了。某些中间路由器必须把数据包排队,这有可能耗尽路 由器的资源。   避免这种情况发生的算法就叫做慢启动。它的原理:新数据包发送的比率就是接 收方返回的ACK消息的比率。   慢启动增加另外的一个窗口(连到发送者的TCP):拥塞窗口,叫做cwnd。当与另 一个网络的一台主机建立新的连接时,拥塞窗口被初始为一个片段(片段的大小或是由 另一端规定,或为缺省值,一般为536或512)。每收到一个ACK消息,拥塞窗口就增加一 个片段的大小。发送者可以最大传输这样大小的数据包:拥塞窗口和广告窗口之间的小 者。这两个窗口都用于流量控制。拥塞窗口施加于发送方,而广告窗口施加于接收方。 前者是基于发送方的对网络拥塞的估计感知;后者跟这次连接的接收方的可用缓冲空间 有关。   开始时,发送方传输一个片段大小的数据包,然后等它的ACK消息。当它收到ACK消 息后,它就把拥塞窗口增加为2个片段。当这2个片段发出后,都收到了ACK消息,拥塞窗 口就被增加为4。可以看出,它是一个近指数形式的增加。为什么说是近指数呢?因为 接收方有可能延迟发送ACK消息,它仅为它收到的2个数据包发送一个ACK消息。   在有些地方,因特网的带宽有限。这时,中间路由器将开始丢弃数据包。这告诉发 送方它的拥塞窗口太大了。   早期慢启动总是应用于不同的网络。现在,在同一个局域网内,也执行慢启动。 二、拥塞避免   什么情况下会发生拥塞呢?当很多数据包到达一个快速的LAN,而要把这些数据包从 一个较慢速的LAN发出时就会产生拥塞。这种情形很像一个漏斗。拥塞也会发生在路由器 中,当许多输入流到达路由器而路由器的输出能力不足时。拥塞避免就是为了解决要这 种问题而提出的。   该算法假定数据包的丢失率是很低的(远小于1%),因此数据包的丢失会产生一个 信号:处于源地址和目的地址之间的某个地方有拥塞现象。有2种包丢失的指示:超时和 收到重复的ACKs。   拥塞避免和慢启动是2种不同的相互独立的算法。但是,当拥塞发生时,TCP会减低 数据包的发送速度,这会降低总的数据包的传输率。所以说在实际情况中,它们共同相 互作用。   拥塞避免和慢启动要求在一个连接中维持2个变量:一个拥塞窗口,也就是cwnd和一 个慢启动限值大小,就是ssthresh。结合起来后的算法如下:   ●?为一个连接初始化。设置cwnd为一个片段,设置ssthresh为65535字节。   ●?TCP输出例程不会发送超出cwnd和广告窗口中小者的大小   ●?当拥塞发生时(超时或收到重复ACKs),会把当前窗口大小的1/2数值存入ssth resh。另外,如拥塞是由于超时引起的,那么cwnd就被设为一个片段。   ●?当新的数据包发出后,又收到对方发来的ACK消息,就会增加cwnd的大小。但增 加的方式要看TCP是执行慢启动还是拥塞避免。   如果cwnd小于或等于ssthresh,则TCP处在慢启动状态;否则TCP正执行拥塞避免。 一直运行慢启动,直到拥塞发生,之后拥塞避免就取代慢启动。   慢启动刚开始时,cwnd大小是1个片段,当收到ACK后就增加1个片段。前面所说的, 它的增加是指数形式的:发送1个片段,然后2个,4个…。拥塞避免的cwnd增加按照seg size*segsize/cwnd的规律增加,segsize是片段的大小,cwnd的单位是字节。这是cwnd 的线性增加,而不是慢启动的指数增加。在一个来回程时间中,cwnd的增加至少为一个 片段的大小(不管这一时间内有多少个ACKs),而慢启动根据ACK的数量增加cwnd的大小 。   有许多实现不正确的增加片段的大小,会出现分数的形式(通常是片段的大小被除 8)。这是错误的,以后不应效仿。 三、快速重发   1990年,对拥塞避免算法的修正的建议被提出。在描述这更改之前,要了解

文档评论(0)

wuyuanli + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档