TCP流量控制和拥塞控制详解!图解分析,两分钟搞定TCP知识点!

您所在的位置:网站首页 拥塞控制解决方案 TCP流量控制和拥塞控制详解!图解分析,两分钟搞定TCP知识点!

TCP流量控制和拥塞控制详解!图解分析,两分钟搞定TCP知识点!

2024-07-16 02:15:23| 来源: 网络整理| 查看: 265

目录

 1、TCP流量控制和拥塞控制有什么区别?

2、介绍下TCP 的流量控制?

3、介绍下TCP的拥塞控制?

 1、TCP流量控制和拥塞控制有什么区别?

🔷流量控制:

作用:为了解决发送方和接收方速度不同而导致的数据丢失问题,当发送方发送的太快,接收方来不及接受就会导致数据丢失;

方式:由接收端采用滑动窗口的形式,告知发送方允许/停止发包解决TCP丢包问题。

🔷拥塞控制:

作用:为了解决过多的数据注入到网络导致网络崩溃和超负荷问题;

方式:由发送方采用拥塞窗口的形式去判断网络状态,从而采取不同算法执行TCP动态发包解决网络整体质量问题。

2、介绍下TCP 的流量控制?

作用:为了解决发送方和接收方速度不同而导致的数据丢失问题,当发送方发送的太快,接收方来不及接受就会导致数据丢失;

方式:由接收端采用滑动窗口的形式,告知发送方允许/停止发包解决TCP丢包问题。

发送端会根据自己的实际情况发送数据,但因为接收端接收不过来的话,接收方只能把处理不过来的数据存在缓存区里。如果缓存区都满了对方还在疯狂发送数据,接收方只能把收到的数据包丢掉,这就造成了网络资源的浪费!典型的场景如以太网场景中10G设备向1G设备发TCP包:

为了防止这种现象的发生,TCP 提供一种机制可以让发送端根据接收端的实际接收能力控制发送的数据量。这就是所谓的流控制。

它的具体操作是:

(1)接收端主机向发送端主机通知自已可以接收数据的大小;

(2)于是发送端会发送不超过这个限度的数据,该大小限度就被称作窗口大小。窗口大小的值由接收端主机决定,而在TCP 首部中,专门有一个字段用来通知窗口大小:

(3)接收主机将自己可以接收的缓冲区大小放入这个字段中通知给发送端,这个字段的值越大,说明网络的吞吐量越高。

不过,接收端的这个缓冲区一旦面临数据溢出时,窗口大小的值也会随之被设置为一个更小的值通知给发送端,从而控制数据发送量。也就是说,发送端主机会根据接收端主机的指示,对发送数据的量进行控制。这也就形成了一个完整的TCP流控制(流量控制)。当Window=0时,即告知发送方停止发送数据。

下图为根据窗口大小控制流量过程的示例:

       如图所示,当接收端收到从 3001 号开始的数据段后其缓冲区即满,不得不暂时停止接收数据。之后,在收到发送窗口更新通知后通信才得以继续进行如果这个窗口的更新通知在传送途中丢失,可能会导致无法继续通信;为避免此类问题的发生,发送端主机会时不时的发送一个叫做窗口探测的数据段,此数据段仅含一个字节以获取最新的窗口大小信息。

3、介绍下TCP的拥塞控制?

作用:为了解决过多的数据注入到网络导致网络崩溃和超负荷问题;

方式:由发送方采用拥塞窗口的形式去判断网络状态,从而采取不同算法执行TCP动态发包解决网络整体质量问题。

先了解两个概念:

■ 拥塞窗口(cwnd):发送方维持的一个状态变量,其大小取决于网络的拥塞程度,并且动态变化。

■ 慢开始门限(ssthresh):为了防止拥塞窗口cwnd的增长过大引起网络拥塞所设置的一个门限值。

通过四种算法实现拥塞管理:

■ 慢开始

■ 拥塞避免

■ 超时重传(1988年TCP Tahoe版本,已废弃不用)

■ 快重传(1990年Reno版本,在用)

■ 快恢复(1990年Reno版本,在用)

也就是说发送方会动态判定网络状态并按照上述算法调整TCP的发包节奏,那么如何确认使用算法呢?如下:

|当cwnd < ssthresh时,使用慢开始算法;

|当cwnd > ssthresh时,停止使用慢开始算法而改用拥塞避免算法;

|当cwnd = ssthresh时,既可使用慢开始算法,也可使用拥塞避免算法。

🔷一:慢开始

发送方先探测网络拥塞程度,并不是一开始就发送大量的数据,发送方会根据拥塞程度增大拥塞窗口cwnd。

计算方法:每经过一个传输轮次cwnd值就加倍,让cwnd值呈指数增加。

如上图,大体过程:

① 当前发送方cwnd值为1,因此只能发送一个数据报文段(拥塞窗口cwnd值是几就能发送几个数据段)

② 接收方收到该数据报文段后回复一个确认报文段,发送方收到该确认报文后,将cwnd值变为2(加倍);

③ 发送方此时可以连续发送两个数据段,接收方收到该数据段后一次发回2个确认报文段;

④ 发送方收到这两个确认报文后,将cwnd值加2变为4(加倍)后可以连续发送4个数据段,以此类推直至cwnd=ssthresh。

🔷二:拥塞避免

继上图达到cwnd≥ssthresh后采用该算法用来控制拥塞窗口的增长速率。

计算方法:每经过一个传输轮次cwnd值加1,让cwnd值呈线性缓慢增大。

🔷三:拥塞发生

当网络发生拥塞丢包时(如图假定cwnd=24),会有两种情况:

● 超时重传(1988年TCP Tahoe版本,已废弃不用)

更新后的 ssthresh 值变为 12(即为出现超时时的窗口数值 24 的一半),拥窗口再重新设置为1,并执行慢开始算法。当cwnd = ssthresh = 12 时改为执行拥塞避免算法拥塞窗口按线性规律增长,每经过一个往返时间增加一个MSS的大小。在TCP拥塞控制的文献中经常可看见“乘法减小”(Multiplicative Decrease)和“加法增大”(Additive Increase)这样的提法。“乘法减小”是指不论在开始阶段还是拥塞避免阶段,只要出现超时(即很可能出现了网络拥塞),就把慢开始门限值 ssthresh 减半,即设置为当前的拥塞窗口的一半(与此同时,执行慢开始算法)。而“加法增大”是指执行拥塞避免算法后,使拥塞窗口缓慢增大,以防止网络过早出现拥塞。上面两种算法合起来常称为 AIMD算法(加法增大乘法减小)。

● 快重传和快恢复(1990年TCP Reno版本,在用)

超时重传算法直接把cwnd减小到1太过强烈,若还能收到连续3个ACK说明网络质量没那么差。同时采用快重传和快恢复算法,过程如下:

(1)当发送方连续收到3个重复确认时即执行“乘法减小”算法,把慢开始门限ssthresh 减半;

(2)由于发送方现在认为网络不那么差,于是把cwnd值设置为开始门限ssthresh 减半后的数值;

(3)开始执行拥塞避免算法 (“加法增大”)使拥塞窗口缓慢地线性增大。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭