我们在开始假定:

1:数据是单方向传递,另一个窗口只发送确认.
2:接收方的缓存足够大,因此发送方的大小的大小由网络的拥塞程度来决定.

一:慢开始算法和拥塞避免算法

发送方会维持一个拥塞窗口,刚开始的拥塞窗口和发送窗口相等,一般开始均设置1,然后我们每收到一个确认,就让拥塞窗口大小变为原来的两倍,接着发送分组也是原来的两倍,以此类推,当窗口值等于16(慢开始门限),然后我们开始采用”加法增大”的策略,即不在以2倍的方式增加,而是转变为每次加1的方式.直到网络拥塞.我们开始采用”拥塞避免”算法:让新的慢开始门限值变为发生拥塞时候的值的一半,将拥塞窗口置为1,然后让它再次重复,这时一瞬间会将网络中的数据量大量降低.

二:快重传和快恢复算法
快重传可以提高网络的吞吐量而快恢复算法相当于拥塞避免算法的后半恢复部分的优化.
假设以下情况:如果在发送方设置的超时定时器到时间还没有收到确认,那么有一种可能是网络发生堵塞,这种情况下,tcp会将拥塞窗口置为一,新的门限值变为发生阻塞时的一半并且开始执行慢开始算法.当我们使用快重传的时候,要求接收方接收到一个失序的报文段后就立即发出 重复确认,(目的是让对方早知道有报文段没有到达)

假设发送方发送了M1–M4四个分组,接收方收到了M1和M2,以及M4,这些分组.
现在接收方不能确认M4,因为M3没有收到,此时接收方可以什么都不干,也可以发送对M2的确认,但是快重传算法要求这样做:
接收方应该及时发送对M2的重复确认,这样可以让发送方知道M3并没有被传过来,发送方还会试着发送M5,M6,接收方收到之后,我们会继续发送对M2的确认,这样一共发了好几个对M2的确认,按照规定,只要发送方收到三个重复确认,就立即重传对方未收到的报文段M3.这样可以避免阻塞,并且提高我们网络的吞吐量.

快恢复算法与快重传算法配合使用

  • 当发送方收到三个连续确认时,就执行”乘法减小”算法,把”慢开始门限”减半,注意接下来不会执行慢开始算法.
  • 由于此时没有发送网络阻塞(要是发生阻塞的话就不会连续收到4个确认),因此此时不执行慢开始算法,并不会将拥塞窗口的值置为1,而是将它置为慢开始门限的一半.然后再实行拥塞避免算法,每次收到确认之后+1.

TCP控制拥塞的四种算法:慢开始,拥塞避免,快重传,快恢复相关推荐

  1. ML之DTRFRExtraTRGBR:基于四种算法(DT、RFR、ExtraTR、GBR)对Boston(波士顿房价)数据集(506,13+1)进行价格回归预测并对比各自性能

    ML之DT&RFR&ExtraTR&GBR:基于四种算法(DT.RFR.ExtraTR.GBR)对Boston(波士顿房价)数据集(506,13+1)进行价格回归预测并对比各自 ...

  2. 3.1.5 操作系统之动态分区分配的四种算法(首次适应算法、最佳适应算法、最坏适应算法、临近适应算法)

    文章目录 0.思维导图 1.首次适应算法 2.最佳适应算法 3.最坏(大)适应算法 4.临近适应算法 5.四种算法归纳比较 0.思维导图 本篇文章是对上一篇文章内存的分配与回收提到的动态分区分配算法的 ...

  3. 求解最大流的四种算法介绍、利用最大流模型解题入门

    求解最大流的四种算法介绍.利用最大流模型解题入门 上一篇中介绍了网络流的基础,最大流最小割定理的证明,下面来看如何求一个容量网络的最大流,这里介绍四种算法:EK算法.SAP算法.DINIC算法.HLP ...

  4. 四种算法求最大公约数

    四种算法求最大公约数(C++) 一. 实验目的 明确算法的概念和特点. 通过对问题的分析,设计合理的算法解决问题: 二. 实验内容 运行最大公约数的常用算法,并进行程序的调式与测试,要求程序设计风格良 ...

  5. java实现子序列最大和_算法入门:最大子序列和的四种算法(Java)

    最近再学习算法和数据结构,推荐一本书:Data structures and Algorithm analysis in Java 3rd 以下的四种算法出自本书 四种最大子序列和的算法: 问题描述 ...

  6. 【计算机网络】传输层 : TCP 拥塞控制 ( 慢开始 | 拥塞避免 | 快重传 | 快恢复 )

    文章目录 一.TCP 拥塞控制 二.TCP 拥塞控制算法 三.慢开始 和 拥塞避免 算法 四.快重传 和 快回复 算法 一.TCP 拥塞控制 TCP 拥塞控制 : ① 拥塞出现表现 : 资源需求总和 ...

  7. 最大公约数的四种算法

    一.题目分析 运行最大公约数的常用算法,并进行程序的调式与测试,要求程序设计风格良好,并添加异常处理模块(如输入非法等).用四种方法进行运算. 1.辗转相除法: 其算法过程为:设两数为a,b设其中a ...

  8. 预产期计算器在线计算生男生女计算机,预产期计算器生男生女的四种算法

    预产期计算器生男生女可以提前算出宝宝是男孩还是女孩,那么预测生男生女计算公式是怎么样的?计算的方法有下面的四种.有想要早点了解宝宝是男是女的准妈妈们就用生男生女计算器来算一下吧. 1. 口诀计算法 6 ...

  9. 2-27 最短路径《啊哈算法》2-28完成四种算法

    第一节 只有五行的算法Floyd算法 问题:求任意两个城市之间的最短路径?多源最短路径. 解法1:O(n ²)的深度或广度遍历优先搜索 解法2:Floyd,O(n³) Floyd 算法:从i号点到j ...

  10. 监督学习最常见的四种算法

    在机器学习中,无监督学习(Unsupervised learning)就是聚类,事先不知道样本的类别,通过某种办法,把相似的样本放在一起归位一类:而监督型学习(Supervised learning) ...

最新文章

  1. 车联网,挖掘数据价值
  2. pycharm 运行控制台中文乱码解决办法
  3. 为什么我们总认为开源不挣钱?
  4. 在asp.net中如何管理cache
  5. cv2.putText 文字换行('\n')无法解析换行
  6. 计算机里的游戏可以找回吗,找回电脑游戏作文
  7. 分解因数 递归_递归分解WAR文件
  8. python外部库是什么_如何使用Portable Python安装外部库?
  9. java setpriority_Java TaskEntity.setPriority方法代碼示例
  10. mysql的sql性能分析器
  11. 联发科MT6763处理器参数MT6763芯片资料
  12. tcpudp测试工具的使用,串口转wifi模块udp测试
  13. java 熄灯问题_Java算法应用之熄灯问题解决
  14. PowerShell复制粘贴快捷键
  15. Introduction to Modern Cryptography (Second Edition)
  16. 手把手带你入门 Spring Security
  17. R语言错误的提示(中英文翻译)
  18. 石川:异象、因子和多因子模型
  19. stm32f429之多通道ADC通过DMA数据采集
  20. 第一章:2030.5、CSIP、Rule21简介 and 本项目内容介绍

热门文章

  1. 2012服务器系统怎么安装sql,使用安装向导安装 SQL Server 2012(安装程序)
  2. c语言实验报告 订票系统,【C语言】火车订票系统
  3. 快来加入木东居士的数据交流群吧~
  4. 英伟达失去手机与平板市场:拖延症惹的祸
  5. 第五届A/B组 地宫取宝 JAVA
  6. java.io.IOException: Failed to create local dir in /tmp/blockmgr-adb70127-0a28-4256-a205-c575acc74f9
  7. android Logcat打印格式说明
  8. 华硕2020年显卡_显卡涨价?2020年12月不溢价电脑装机配置推荐——华硕3070 DUAL雪豹篇...
  9. java ee与j2ee_JavaEE/J2EE与J2SE/JDK版本的相关性
  10. 【渝粤教育】广东开放大学 管理会计 形成性考核 (33)