TCP拥塞响应函数指吞吐与丢包率之间的一个关系,传统Reno-TCP执行以下两个操作:1)将丢包视为网络发生了拥塞,将拥塞窗口降低一半;2)在拥塞避免阶段,每个RTT周期,拥塞窗口增加1。以上两者决定了在丢包率和平均吞吐之间形成了一个简单的关系,这里的丢包率和吞吐都是指的一个稳定的状态值,不考虑丢包率急剧变化的情况。

由于现实中传统TCP实现的一些具体情况,导致其对拥塞的反应比理论上要缓慢,例如较长的超时时间、SlowStart恢复算法、发送窗口限制以及延时ACK等,都将导致实际的窗口增长相比理论上要慢,所以,这里给出的是拥塞窗口的一个上限值。

以下假设在这样一个TCP(稳定的丢包率)模型中,拥塞窗口增长到一定值W时,发生拥塞,假定丢失了一个报文,并且,在增长到W值之前没有发生过丢包。按照以上的介绍,传统TCP发生丢包之后,TCP发送端将拥塞窗口减少一半(W/2),之后,每个RTT周期拥塞窗口加1(W/2 + 1),一直到再次增加到之前丢包时的窗口值W。TCP发送端至少需要发送如下的报文量:

W 2 + ( W 2 + 1 ) + . . . + W ≈ 3 8 W 2 (1) \tag{1} \frac{W}{2} + \left( \frac{W}{2} + 1 \right) + ... + W ≈ \frac{3}{8}W^{\smash{2}} 2W​+(2W​+1)+...+W≈83​W2(1)

并且,要想恢复到窗口值W,在发送以上数量的报文时,不能发生丢包,即丢包率不能高于以上值的倒数(丢包率p上限):

p ≤ 8 3 W 2 (2) \tag{2} p \le \frac{8}{3W^{2}} p≤3W28​(2)

由 (2)可得:

W ≤ 8 3 p (3) \tag{3} W \le \sqrt{\frac{8}{3p}} W≤3p8​ ​(3)

以上公式 (3)给出了在一个稳定的丢包率为p的网络中,传统TCP所能达到的最大拥塞窗口W。那么,此段时间内的平均窗口大小为:

W ≤ 4 3 p (4) \tag{4} W \le \sqrt{\frac{4}{3p}} W≤3p4​ ​(4)

取近似值,得到如下的传统TCP响应函数:

W ≤ 1.2 p (5) \tag{5} W \le \frac{1.2}{\sqrt{p}} W≤p ​1.2​(5)

公式5给出了平均拥塞窗口值w(单位是MSS大小的报文数量),与丢包率p的关系。如下表所示,列举了一些典型值。

丢包率p 拥塞窗口W RTTs Between Losses
10^-2 12 8
10^-3 38 25
10^-4 120 80
10^-5 379 252
10^-6 1200 800
10^-7 3795 2530
10^-8 12000 8000

传统TCP(Reno)拥塞响应函数相关推荐

  1. TCP协议拥塞控制算法(Reno、HSTCP、BIC、Vegas、Westwood)

    TCP协议拥塞控制算法(Reno.HSTCP.BIC.Vegas.Westwood) 一.TCP拥塞控制的研究框架 二.现有TCP拥塞控制的算法(Reno.HSTCP.Vegas.Westwood) ...

  2. TCP协议拥塞控制算法(Reno、HSTCP、BIC、Vegas、Westwood

    一.TCP拥塞控制的研究框架 二.现有TCP拥塞控制的算法(Reno.HSTCP.Vegas.Westwood) 三.参考文献 一.TCP拥塞控制的研究框架   注: l 基于丢包反馈:通过ACK所带 ...

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

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

  4. 「深度好文」TCP BBR拥塞控制算法深度解析

    linux服务器开发相关视频解析: tcpip,accept,11个状态,细枝末节的秘密,还有哪些你不知道 徒手实现网络协议栈,请准备好环境,一起来写代码 c/c++ linux服务器开发学习地址:c ...

  5. 来自Google的TCP BBR拥塞控制算法解析

    写本文的初衷一部分来自于工作,更多的来自于发现国内几乎还没有中文版的关于TCP bbr算法的文章,我想抢个沙发.本文写于2016/10/15!         本文的写作方式可能稍有不同,之前很多关于 ...

  6. Google的TCP BBR拥塞控制算法深度解析

    原作者:dog250,授权发布 重新整理:极客重生 hi ,大家好,今天推荐一篇我认为在TCP BBR技术里面分析非常透彻的文章,希望大家可以学习到一些真正的知识,理解其背后的设计原理,才能应对各种面 ...

  7. 基于TCP Reno的拥塞控制的基本原理

    TCP的一个关键部分就是拥塞控制机制,因为IP层不向端系统提供显式的网络拥塞反馈,因此TCP必须使用端到端拥塞控制而不是使用网络辅助的拥塞控制.TCP Reno 就是广受赞誉的TCP拥塞控制算法,该算 ...

  8. 个人感悟—来自Google的TCP BBR拥塞控制算法解析

    地址:TCR BBR拥塞控制算法另类解析 写本文的初衷一部分来自于工作,更多的来自于发现国内几乎还没有中文版的关于TCP bbr算法的文章,我想抢个沙发.本文写于2016/10/15! 本文的写作方式 ...

  9. tcp协议栈优化1-增加TCP初始拥塞窗口

    看linux3.0 network代码,发现TCP initcwd(初始拥塞窗口)默认已经调为10,同时,TCP rcvwnd初始接收窗口也已调为10.      tcp initcwd初始化函数-- ...

最新文章

  1. 【人工智能】人工智能的发展历程
  2. python 中 feedparser的简单用法
  3. 产品经理如何基于需求迭代产品(下篇3):产品的整体设计之逻辑层和交互层...
  4. 倾向得分匹配的stata命令_计量方法的适用条件汇总(二):倾向得分匹配
  5. javascript保留两位
  6. Python + Flask 执行异步任务
  7. 如何解决php 生成验证码图片不显示问题
  8. python广度优先算法最短路径_最短路径问题的Dijkstra算法 -python
  9. 优雅的校验参数-javax.validation
  10. ipmitool介绍_ipmitool管理工具
  11. 【转】Topshelf 搭建 Windows 服务
  12. 计算机思维论文1万字,计算机思维学论文选题 计算机思维论文题目怎么取
  13. java面向对象程序设计课后习题答案_JAVA面向对象程序设计课后习题参考答案
  14. 非极大值抑制(NMS)讲解
  15. AlphaControls 控件 锐浪报表 Grid++Report 打印浏览显示问题解决
  16. 用idea对git的merge进行撤销
  17. 你要小心那些涉世不深的老实人
  18. Hudi-集成Flink(Flink操作hudi表)
  19. Tsunami: A Learned Multi-dimensional Index for Correlated Data and SkewedWorkloads(VLDB21)
  20. 分享5款让你工作事半功倍的软件

热门文章

  1. 数据库系统—SQL建表+基础
  2. 切android 图标插件,Android解决Cutterman切割图标命名问题
  3. Idea 连接 MySQL 数据库
  4. 如何将试卷扫描成电子版?几个步骤轻松拿捏
  5. 我们把计算机硬件系统和软件系统统称为,计算机基础综合应用.doc
  6. 解决如何整理出乡镇级的地图json,以此使用echarts绘制出乡镇级的地图数据(国家级、省级、市级的地图信息也可以获取)
  7. spring boot项目-上传头像
  8. 听说三年前那些月入30K的程序员都是这样开始轻松构建算法交易机器:一点python基础+一点运气
  9. @Validated和@Valid的区别
  10. 文件管理系统----文件目录