文章目录

  • 一、TCP 拥塞控制
  • 二、TCP 拥塞控制算法
  • 三、慢开始 和 拥塞避免 算法
  • 四、快重传 和 快回复 算法

一、TCP 拥塞控制


TCP 拥塞控制 :

① 拥塞出现表现 : 资源需求总和 大于 可用资源 ;

② 拥塞问题发展 : 网络中 资源 供应不足 -> 网络性能降低 -> 网络吞吐量随着负荷增加而降低

③ 拥塞控制 : 防止数据大量注入到网络中 , 降低整体网络中主机的发送速率 , 流量控制 是 降低一台主机的发送速率 ;

④ 流量控制 与 拥塞控制 : 流量控制 是 点到点 的问题 , 拥塞控制 是 全局性 问题 ;

二、TCP 拥塞控制算法


TCP 拥塞控制算法 :

  • 慢开始
  • 拥塞避免
  • 快重传
  • 快恢复

TCP 拥塞控制相关术语 :

① 单向传输 : 拥塞控制假定单向传输数据 , 发送方 向 接收方 发送 数据 , 接收方 向 发送方 回送 确认信息 ;

② 发送窗口 : 接收方 缓存空间 足够大 , 发送窗口大小 取决于 网络拥塞程度 ; 发送窗口大小 是 接收窗口 rwnd 和 拥塞窗口 cwnd 中的 较小的值 ;

③ 接收窗口 : 接收方 根据 接收缓存 设置 接收窗口 大小值 , 同时将该大小 告知发送方 , 可以反映接 收方容量 ;

④ 拥塞窗口 : 发送方 估算 网络拥塞程度 , 设置 合适的 拥塞窗口 值 , 反映当前 网络容量 ;

( 知道每个算法的原理 , 细节仅做了解 )

三、慢开始 和 拥塞避免 算法


坐标系说明 :

① 纵坐标 : 纵坐标 是 拥塞窗口 cnwd 大小 , 单位是 一个报文段 , 长度是一个最大报文段长度 MSS ;

  • 如 : 纵坐标的 4 指的是 4 个 MSS , 8 指的是 8 个 MSS ;

② 横坐标 : 横坐标 是 传输轮次 ;

  • 往返时延 : 一个传输轮次 是 发送一批报文段 , 并接收到它们的 确认信息 所花费的时间 ; 即 RTT ;
  • 如 : 发送方 向 接收方 发送 N 个报文段 , 发送方 发送完毕后 , 接收到所有 N 个 报文段的确认信息 , 所花费的时间 , 就是 一个传输轮次 ;
  • 报文段发送间隔 : 也可以理解成 发送方 开发发送一批 拥塞窗口 中的报文段 , 到 开始发送 下一批 拥塞窗口 报文段 的时间 ;

慢开始 和 拥塞避免 算法 :

① 慢开始 : 拥塞窗口 开始设置成 1 , 每隔一个 传输轮次 , 收到上一个报文段的确认报文后 , 拥塞窗口翻倍 , 即变为之前的 两倍 ;

② 慢开始门限值 ( ssthresh ) : 当 拥塞窗口 到达 慢开始门限值 ( ssthresh ) 初始值时 , 停止指数级增长 , 开始线性增长 ;

③ 拥塞避免 : 进入到 慢开始门限值 后 , 开始进行 拥塞避免算法 , 每个传输轮次 , 拥塞窗口 增加 1 ;

④ 网络拥塞 : 当 拥塞窗口 增加到一定值 , 检测到了 网络拥塞 , 此时瞬间将 拥塞窗口降为 1 ; 继续执行慢开始算法 , 新的 慢开始门限值 变为 网络拥塞时 的 拥塞窗口的 1/2 大小 ;

拥塞窗口改变时机 :

  • 收到上一个报文段的确认报文后 , 拥塞窗口翻倍 ;
  • 收到上一个报文段的拥塞信息后 , 拥塞窗口变为 1 ;

四、快重传 和 快回复 算法


快重传算法 : 收到 3 个冗余的 确认后 , 执行快重传算法 ;

示例 : 发送方 给 接收方 发送 1 2 3 4 5 , 五个报文 , 2 号报文丢失 , 如果收到 3 4 5 号报文 , 其中会携带期待 发送方 发送 2 号报文 , 此时触发 快重传 算法机制 , 在超时计时器到时之前 , 快速发送 丢失的 2 号 报文 ;

快回复算法 : 与 上面的 拥塞避免算法的 区别是 , 出现 网络拥塞 之后 , 拥塞窗口 不降为 1 , 而是降低到 慢开始门限值 , 即当前的 拥塞窗口大小的 1/2 , 然后线性增加 拥塞窗口 ;

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

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

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

  2. 计算机网络 --- 传输层TCP协议

    TCP协议的特点 TCP是面向连接(虚连接)的传输层协议. 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的. TCP提供可靠交付的服务,无差错.不丢失.不重复.按序到达.可靠有序,不丢 ...

  3. 传输层 TCP 拥塞控制(2):拥塞避免

    之前介绍的慢启动算法是以指数级别增加拥塞控制 拥塞避免 • 慢启动阈值 ssthresh(slow start threshold):             • 达到 ssthresh 后,以线性方 ...

  4. 5.3.3 计算机网络传输层之TCP拥塞控制(慢开始与拥塞避免、快重传和快恢复)

    文章目录 1.什么是拥塞控制? 2.拥塞控制与流量控制的区别 3.拥塞控制的4种算法 (1)慢开始与拥塞避免 (2)快重传和快恢复 1.什么是拥塞控制? 所谓拥塞控制,是指防止过多的数据注入网络,保证 ...

  5. 【计算机网络】传输层 : TCP 连接管理 ( TCP 连接建立 | 三次握手 | TCP 连接释放 | 四次挥手 )

    文章目录 一.TCP 连接管理 二.TCP 连接建立 三.TCP 连接建立 相关报文段 字段 四.SYN 洪泛攻击 五.TCP 连接释放 一.TCP 连接管理 TCP 传输数据过程 : 建立连接 -& ...

  6. 5.3.1计算机网络传输层之TCP可靠传输

    文章目录 0.前言 1.TCP可靠传输简介 2.序号 3.确认 4.重传 0.前言 再看此篇文章之前,得熟悉一下TCP首部报文等知识 计算机网络传输层之TCP协议(tcp协议特点.tcp报文段首部格式 ...

  7. 计算机网络-传输层(TCP流量控制)

    rwin=10 表示窗口 rwin=0 表示发送窗口为0 表示不发生送 ACK=15表示发第15个包 ack=20 表示发送第20个包 TCP流量控制是通过 接收端告诉发送端 接收窗口多大来实现的. ...

  8. 计算机网络 - 传输层

    一.传输层 为进程提供通用数据传输服务.由于应用层协议很多,定义通用的传输层协议就可以支持不断增多的应用层协议.运输层包括两种协议:传输控制协议 TCP,提供面向连接.可靠的数据传输服务,数据单位为报 ...

  9. 自顶向下计算机网络 传输层

    自顶向下计算机网络学习 传输层 一.概述和传输层服务 1.1 传输层提供的服务 1.2传输层和网络层的关系 1.3 传输层协议 可靠的.保序的传输:TCP 不可靠.不保序的传输:UDP 二.多路复用与 ...

最新文章

  1. wpsarm64linux,WPS Office 2019 For Linux 11.1.0.9080版发布下载,附更新介绍和安装
  2. Android startActivityForResult的使用
  3. python语言编程环境-day02--编程语言的分类与Python开发环境的搭建
  4. 试试博客园的markdown编辑器
  5. Android拖拽详解
  6. 日常工作部门及体系相关单词
  7. 快速重置vuex数据 - Vue
  8. hmc如何进入aix系统_linux系统中如何进入退出vim编辑器,方法及区别
  9. 小甲鱼 OllyDbg 教程系列 (十二) : inline patch ( 内嵌补丁 ) 之 调用堆栈查找法
  10. Word2vec加TextRank算法生成文章摘要
  11. Mean Shift算法(2)在OpenCV上的实现目标跟踪——直方图反向投影
  12. 在Web应用程序中执行常见搜索场景的服务器端方法
  13. MySQL系统认识与使用-----最全MySQL应用
  14. Bugku MISC 再也没有纯白的灵魂
  15. astar插件下载 就行_PS模拟下雨插件下载 一键为照片添加下雨效果 小伙伴们收货啦...
  16. 01. 全彩RGB LED灯模块使用教程
  17. 互联网指标体系构建及分析方法
  18. STI、LOD与WPE概念:WPE效应对SPICE Model 的影响
  19. unity地面添加材质球_为Unity3D创建素材(1):图片、着色器、材质球
  20. drools规则引擎的在项目中的使用手记

热门文章

  1. vue keep-alive解决关闭标签动态缓存问题
  2. mtr命令详解诊断网络路由
  3. FreeMarker 语法 include 引用模板
  4. 读书方法(如果努力有用的话,那还要天才干什么!)
  5. angular具体用法及代码
  6. Awk中调用shell命令
  7. 【原创】字符串工具类--找出单元字符串
  8. 《Effective C#》读书笔记——条目11:理解短小方法的优势C#语言习惯
  9. [源码和文档分享]基于VC++控制台实现的图书信息管理系统
  10. 《搬砖日记》Obi Rope插件的简单使用