首页 > 其他分享 >TCP 的拥塞控制

TCP 的拥塞控制

时间:2022-11-01 08:22:07浏览次数:55  
标签:控制 网络 TCP 闭环控制 拥塞 分组

拥塞控制的一般原理
在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。这种现象称为拥塞 (congestion)。
最坏结果:系统崩溃。
拥塞产生的原因
出现拥塞的原因:
∑ 对资源需求 > 可用资源

网络拥塞往往是由许多因素引起的。例如:
点缓存的容量太小;
链路的容量不足;
处理机处理的速率太慢;
拥塞本身会进一步加剧拥塞;

增加资源能解决拥塞吗? 不能。
这是因为网络拥塞是一个非常复杂的问题。简单地采用上述做法,在许多情况下,不但不能解决拥塞问题,而且还可能使网络的性能更坏。
网络拥塞往往是由许多因素引起的。例如:

增大缓存,但未提高输出链路的容量和处理机的速度,排队等待时间将会大大增加,引起大量超时重传,解决不了网络拥塞;
提高处理机处理的速率会会将瓶颈转移到其他地方;

拥塞控制与流量控制的区别

定义

  • 拥塞控制防止过多的数据注入到网络中,使网络中的路由器或链路不致过载;
  • 流量控制抑制发送端发送数据的速率,以使接收端来得及接收;

需要步骤

  • 拥塞控制是一个全局性的过程,涉及到与降低网络传输性能有关的所有因素。

  • 流量控制是点对点通信量的控制,是端到端的问题;

流量控制做的好会大大降低拥塞;但是拥塞不仅仅和流量控制有关。

拥塞控制所起的作用
没有拥塞的时候 预防拥塞
即将拥塞时,减少流量
已经拥塞 防止损失
image

拥塞控制的一般原理

拥塞控制的前提:网络能够承受现有的网络负荷。
实践证明,拥塞控制是很难设计的,因为它是一个动态问题。
分组的丢失是网络发生拥塞的征兆而不是原因。
在许多情况下,甚至正是拥塞控制本身成为引起网络性能恶化、甚至发生死锁的原因。

开环控制和闭环控制

开环控制
在设计网络时,事先考虑周全,力求工作时不发生拥塞;
思路:力争避免发生拥塞。

闭环控制
基于反馈环路的概念;
根据网络当前的运行状态采取相应控制措施;
思路:在发生拥塞后,采取措施进行控制,消除拥塞。

闭环控制
属于闭环控制的有以下几种措施:
(1) 监测网络系统,以便检测到拥塞在何时、何处发生。
(2) 将拥塞发生的信息传送到可采取行动的地方。
(3) 调整网络系统的运行以解决出现的问题。

闭环控制措施

  1. 监测
  2. 传送
  3. 调整
    监测网络的拥塞
    主要指标有:
    由于缺少缓存空间而被丢弃的分组的百分数;
    平均队列长度;
    超时重传的分组数;
    平均分组时延;
    分组时延的标准差,等等。
    上述这些指标的上升都标志着拥塞的增长。
    传递拥塞通知
    发送通知拥塞发生的分组;
    在分组中保留表示拥塞状态的字段;
    周期性地发出探测分组等。

采取行动的时机
过于频繁,会使系统产生不稳定的振荡;
过于迟缓地采取行动又不具有任何实用价值。

image

TCP 的拥塞控制方法

TCP 采用基于窗口的方法进行拥塞控制。该方法属于闭环控制方法。

TCP发送方维持一个拥塞窗口 cwnd (Congestion Window)
发送端利用拥塞窗口根据网络的拥塞情况调整发送的数据量。
发送窗口大小不仅取决于接收方窗口,还取决于网络的拥塞状况,所以真正的发送窗口值为:
真正的发送窗口值 = Min (接收方窗口值,拥塞窗口值)

慢开始

主动队列管理 AQM

TCP 拥塞控制和网络层采取的策略有密切联系。
若路由器对某些分组的处理时间特别长,那么这就可能使这些分组中的TCP报文段经过很长时间才能到达终点,结果引起发送方超时,对这些报文段进行重传。
重传会使 TCP 连接的发送端认为在网络中发生了拥塞,但实际上网络并没有发生拥塞。
对 TCP 拥塞控制影响最大的就是路由器的分组丢弃策略。

标签:控制,网络,TCP,闭环控制,拥塞,分组
From: https://www.cnblogs.com/kingwz/p/16843468.html

相关文章