学习笔记18——个人理解为什么快速重传是3次ACK

  • 为什么快速重传是选择3次ACK?

    • 个人理解:首先网络中的丢包,乱序以及网路故障都会让服务器端发回duplicated ACK,表示有一个包一直未收到。快速重传是通过3次ACK来区分乱序,丢包和网路拥塞的情况,是基于实践经验得到的,所以说这种判断方式不一定准确,只是"大概率"可以解决问题。
    • 在timeout期间,如果并没有收到ACK,就直接超时重传并执行慢开始
    • 在timeout期间,如果收到的duplicated ACK小于等于两次,那么很可能是因为包到达的顺序是乱序:包A后边的包先到了,但是A还没有到达,所以服务器端就会请求包A,由于网络中没有别的问题,所以服务器稍微等了一会儿(一般小于等于两次),包A就到了,如果是这种情况,那么我们不需要做任何改动,因为乱序问题服务器端TCP会处理
    • 在timeout期间,如果收到的duplicated ACK达到3次,那么很可能是因为丢包或者网络拥塞导致包无法发送到服务器端:
      • 如果是网络拥塞,那么我们直接降低网络流量是合理的
      • 如果是因为偶然的错误某个包丢了,我们就慢开始从1开始发送网络流量,就很影响传输效率
    • 对于上述情况出现概率都是50%,我们采用一种稍微乐观的态度(毕竟3次都能传回来,应该心态好点),将上述情况中和一下,也不重新慢开始,也不能什么都不做,当看到3次 duplicated ACK,我们快速重传一次(不等重传计时器),并使用快恢复策略,即拥塞窗口减半,阈值等于拥塞窗口。
  • 个人理解,欢迎指正!

相关推荐
AM越.1 小时前
助睿:!!零代码解决!!订单利润分流数据加工o(* ̄▽ ̄*)ブ
数据仓库·笔记·etl·助睿
zhangfeng11331 小时前
适合 5人以内小团队的Git 工作流 + Code Review + 自动化部署方案 FastAdmin +linunx服务器宝塔系统 外包项目 —
服务器·git·自动化·php·代码复审
Bechamz2 小时前
大数据开发学习Day25
java·大数据·学习
魔都大虾2 小时前
旧时光里面有那些情话句子 什么比较热门
笔记
Java成神之路-2 小时前
【算法刷题笔记】全题型导航目录
笔记·算法
zhangrelay2 小时前
云课实践速通系列-基础篇汇总-必修-通识基础和专业基础-2026--工科--自动化、电气、机器人、测控等
linux·笔记·单片机·学习·ubuntu·机器人·自动化
计算机安禾2 小时前
【计算机网络】第5篇:网桥学习与生成树算法——环路拓扑中的路径收敛问题
学习·计算机网络·算法
05候补工程师2 小时前
【编译原理】自顶向下语法分析深度解析:从 LL(1) 文法判定、改写到预测分析表
经验分享·笔记·考研·自然语言处理
知识分享小能手3 小时前
R语言入门学习教程,从入门到精通,R语言局部整体型数据可视化(10)
学习·信息可视化·r语言
zx2859634003 小时前
Laravel 7.x新特性全解析
php·laravel