我们认识到在收到一个失序的报文段时,TCP立即需要产生一个ACK(一个重复的ACK)。这个重复的ACK不应该被迟延。该重复的ACK的目的在于让对方知道收到一个失序的报文段,并告诉对方自己希望收到的序号。

我们不知道一个重复的ACK是有一个丢失的报文段引起的,还是由于仅仅出现了几个报文段的重新排序,因此我们等待少量重复的ACK到来。假如这只是一些报文段的重新排序,则在重新排序的报文段被处理并产生一个新的ACK之前,只可能产生1~2个重复的ACK。如果一连串收到3个或者3个以上的重复ACK,就非常可能是一个报文段的丢失了。于是我们就重传丢失的数据报文段,而无需等待超时定时器的溢出。这就是快速重传算法。接下来执行的不是慢启动算法而是拥塞避免算法。这就是快速恢复算法。

快速重传与快速恢复算法相关推荐

  1. TCP-IP详解:快速重传与快速恢复

    快速重传算法 快速重传算法在之前的文章中有介绍,如果收到一个out-of-order的报文段时, TCP需要立刻产生一个ACK,这个ACK不应该被延时,目的在于让对方知道收到一个失序的报文,并告诉对方 ...

  2. TCP的拥塞避免、超时重传、快速重传、快速恢复

    转自:http://blog.csdn.net/itmacar/article/details/12278769 感谢博主的辛勤成果! 为了防止网络的拥塞现象,TCP提出了一系列的拥塞控制机制.最初由 ...

  3. 传输层 TCP 拥塞控制(3):快速重传与快速恢复

    当出现丢包的时候,我们将重新执行慢启动,此时意味着拥塞窗口大幅度下降发送速率也会大幅度下降,当丢包场景并不是很严重的时候,我们还可以采用快速重传,与快速恢复这样一个阶段. 为何会接收到一个失序数据段? ...

  4. 【RFC6582 TCP快速恢复算法的NewReno修改】(翻译)

    原文 https://datatracker.ietf.org/doc/html/rfc6582  The NewReno Modification to TCP's Fast Recovery Al ...

  5. TCP的拥塞控制--慢启动,拥塞避免,快重传,快速恢复

    拥塞现象是指到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿,即出现死锁现象.这种现象跟公路网中经常所见的 ...

  6. TCP-F(orward)ACK:植入快速重传灵魂的强制快速重传

    纸上学来终学浅,绝知此事要躬行. 今日和友人争辩快速重传,只拿着书本上的东西和人对飙近20分钟,还自认为略有取胜,真是汗颜加羞愧. 中文版计算机网络,书上还写着接收到3次重复ACK启用快速重传.TCP ...

  7. TCP快速重传为什么是三次冗余ack,这个三次是怎么定下来的?

    先理解ACK的基本工作原理,当发送端发送第N-1个包后,接收端答复的ACK序列号实际上跟发送端发送下一个包,也就是第N个包的序列号一致. 假设有个主机ISN是5000,发送500字节报文至接收方.一旦 ...

  8. 【计算机网络】传输层 : TCP 可靠传输 ( 可靠传输机制 | 快速重传机制 )

    文章目录 一.TCP 可靠传输 二.TCP 可靠传输机制 三.TCP 快速重传 机制 一.TCP 可靠传输 可靠性 : 保证 接收方进程 从 TCP 缓冲区 中读取的数据 与 发送方进程 发送的数据 ...

  9. TCP快速重传为什么是三次冗余ack

    先理解ACK的基本工作原理,当发送端发送第N-1个包后,接收端答复的ACK序列号实际上跟发送端发送下一个包,也就是第N个包的序列号一致. 重复ACK是指在接收方收到乱序报文时,所发出的一类TCP报文. ...

最新文章

  1. 下载服务 php,文件下载: 云---php服务---pc
  2. SCI2012年收录的中文期刊
  3. Oracle监听注册和sqlnet,Oracle监听的动态注册与静态注册
  4. java.net.unknown_android -------- java.net.UnknownServiceException
  5. 武警五防一体化是什么?五防光端机产品介绍!
  6. webpack指定第三方模块的查找路径
  7. HTTP协议中POST、GET、HEAD、PUT等请求方法及相应值得含义
  8. 代码中有个get是啥意思_是时候秀一波了,甩掉get和set,Lombok让代码更简洁
  9. Spring源码分析-循环依赖
  10. 这一次,我们“抓住了” 100 万个程序员!
  11. java.util.Random 类的 nextInt(int num )
  12. 开启windows远程共享
  13. 阅读笔记——基于CART决策树的计算机网络课程学生成绩分析
  14. 通俗易懂讲解什么是Java分布式
  15. xcode ios 模拟器安装运行
  16. showModalDialog的title问题,去掉网页对话框
  17. 《生物信息学》阅读笔记 (一):生物信息学的概念及发展历史
  18. 教你如何批量修改图片分辨率?
  19. this指向,防抖函数中的fn.apply(this,arguments)作用
  20. opencv 场景文字识别

热门文章

  1. 小数加分数怎样计算讲解_小学数学整数、小数、分数加减法运算法则及练习(可打印)...
  2. 给docker存储目录扩容
  3. 2021最新PHP域名防封系统源码4.0+后台管理功能+个人免签支付接口网站源码
  4. Arduino,单片机,树莓派,ARM开发板之间什么关系?
  5. Android开发基础——Activity基本用法
  6. QProcess设置运行环境
  7. 案例解读华为隐私计算产品TICS如何实现城市跨部门数据隐私计算
  8. 数据结构上机题——队列及其应用
  9. CentOS安装并使用Nginx
  10. H5手机/WEB抽奖程序设计(二)参与的用户模式