【趣解】TCP的滑动窗口:流量控制的艺术
开篇:发送太快会怎样?
你网购了一件易碎品,卖家一次发10万件。
快递公司一次只能送1万件。
结果:爆仓!
TCP的滑动窗口就是解决这个问题的——控制发送速度,不让对方"爆仓"。
滑动窗口是什么?
滑动窗口 = 发送方"信用额度"
对方告诉你:“我只能缓存N个包,你一次别发超过N个。”
为什么需要滑动窗口?
问题:发送太快
发送方:哐哐哐发了100个包 接收方:缓存只有50个 结果:50个包被丢弃!问题:往返时间差异
光纤:RTT = 50ms 卫星:RTT = 600ms如果每次只发1个包:
- 光纤:1秒发20个
- 卫星:1秒只发1.6个
太慢了!
滑动窗口的工作原理
窗口大小
接收方告诉发送方:“我还有多大空间能缓存你的数据”