- 1、本文档共48页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章_流拥控_TCP
* * * * 特点 收敛到效率,公平线 实现容易 全分布 不需要知道系统状态 (用户数目,链路带宽) * * * * * * * * * * fast recovery时,partial ACK recognition TCP拥塞控制 拥塞避免(congestion avoidance) TCP慢启动(slow start) 快速重传(Fast Retransmit) 快速恢复(Fast Recovery) * 交换与通信网理论基础@bjtu.edu.cn * TCP 拥塞控制的变量 CWND – 拥塞窗口 RWND – 流控窗口(接收窗口) ssthresh – (慢启动)窗口门限 (用于更新 CWND) 实际发送窗口: win = min(RWND,CWND) RTT, RTO 交换与通信网理论基础@bjtu.edu.cn * 目标:快速到达knee 一旦开始 cwnd =1 每收到一个ACK, cwnd++ 慢启动结束:cwnd = ssthresh 慢启动特点并不慢 拥塞窗口增长得非常快,指数增长 试探网络状况 ACK 2 segment 1 cwnd = 1 cwnd = 2 segment 2 segment 3 ACK 4 cwnd = 4 segment 4 segment 5 segment 6 segment 7 ACK8 cwnd = 8 TCP: 慢启动(slow start) * 拥塞避免(Congestion Avoidance) 减速 “慢启动” Ssthresh 是对knee的位置的下限的猜测 If cwnd ssthresh 那么 每收到一个ACK,cwnd += 1/cwnd 只有当上一个窗口中的所有分组都被确认,cwnd 才增加1 * 慢启动/拥塞避免 例 假设ssthresh = 8 Round Trip Times Cwnd (in segments) ssthresh * TCP伪代码(Pseudocode) Initially: cwnd = 1; ssthresh = infinite; New ack received: if (cwnd ssthresh) /* Slow Start*/ cwnd = cwnd + 1; else /* Congestion Avoidance */ cwnd = cwnd + 1/cwnd; Timeout: /* Multiplicative decrease */ ssthresh = cwnd/2; cwnd = 1; while (next unack + win) transmit next packet; where win = min(cwnd, flow_win); unack next win seq # * The big picture Time cwnd Timeout Slow Start Congestion Avoidance 改进的可能? * 快速重发(Fast Retransmit) 使用3 个重复的 ACK,而不是超时作为分组丢失的指示信号 ACK 2 segment 1 cwnd = 1 cwnd = 2 segment 2 segment 3 ACK 4 cwnd = 4 segment 4 segment 5 segment 6 segment 7 ACK 3 3个重复的 ACK ACK 4 ACK 4 ACK 4 * 快速恢复(Fast Recovery) 快速重发后,cwnd=ssthresh/2,而不是cwnd =1 但是,RTO超时 cwnd = 1 * 快速重发和快速恢复 3个重复ACK后重发 避免了“昂贵”的超时 不需要再进入慢启动 cwnd 波动更接近窗口最优值 Time cwnd Slow Start Congestion Avoidance * 快速重发和快速恢复 Time cwnd Slow Start Congestion Avoidance Time cwnd Timeout Slow Start Congestion Avoidance TCP的不同版本 TCP-Tahoe 分组丢失(超时)? W=1 TCP-Reno 分组丢失? W=W/2 快速重发 / 快速恢复 超时? W=1 目前Internet 的主流版本 TCP-newReno TCP-Vegas TCP-SACK * 交换与通信网理论基础@bjtu.edu.cn TCP吞吐量性能分析(1) [Mathis97] 假设:(1)TCP处于拥塞避免阶段;(2)
文档评论(0)