TCP Taho 实现如下
- 将阈值设为当前拥塞窗口的一半
- 将拥塞窗口设为 1 MSS
- 重新开始慢开始算法
- 拥塞窗口减半
- 将阈值设为当前拥塞窗口
- 进入快恢复阶段(重发对端需要的包,一旦收到一个新的 ACK 答复就退出该阶段),这种方式在丢失多个包的情况下就不那么好了
- 使用拥塞避免算法
TCP New Reno 算法改进了之前 TCP Reno 算法的缺陷 。在之前,快恢复中只要收到一个新的 ACK 包,就会退出快恢复 。
在 TCP New Reno 中,TCP 发送方先记下三个重复 ACK 的分段的最大序号 。
假如我有一个分段数据是 1 ~ 10 这十个序号的报文,其中丢失了序号为 3 和 7 的报文,那么该分段的最大序号就是 10 。发送端只会收到 ACK 序号为 3 的应答 。这时候重发序号为 3 的报文,接收方顺利接收的话就会发送 ACK 序号为 7 的应答 。这时候 TCP 知道对端是有多个包未收到,会继续发送序号为 7 的报文,接收方顺利接收并会发送 ACK 序号为 11 的应答,这时发送端认为这个分段接收端已经顺利接收,接下来会退出快恢复阶段 。
小结这一篇文章的内容偏多,充斥了大量的术语,需要大家反复研读,另外对于不理解的生词希望大伙能自行多去学习 。下面总结一下这一篇文章的内容:
- 介绍TCP协议的起源、分层结构和头部信息
- 建立连接需要三次握手,断开连接需要四次握手
- 滑动窗口解决了数据的丢包、顺序不对和流量控制问题
- 拥塞窗口实现了对流量的控制,保证在全天候环境下最优的传递数据
推荐阅读
- 黑客术语介绍!web渗透小白的进阶之路
- Linux 进阶语句
- linux进程间通信——深入理解linux信号量
- 每个架构师都在研究的康威定律,程序员进阶路上,你思考过吗?
- 工程师开发了一种全新的量子计算架构
- MySQL进阶篇 | 合理的使用索引结构和查询
- 纳粹月球基地 纳粹德国月球基地
- 范振钰|钓鱼大师的饵料值得信服吗?进阶换饵鱼不认,为何蓝鲫有靠谱标签
- 30名工程师,历时1300天打造,又一“国产”AI框架开源了
- MySQL innodb引擎深入讲解
