网络详解 - 传输层(3)网络拥塞控制

网络拥塞控制是防止过多数据涌入网络,导致性能下降的关键。本文详细探讨了慢开始、拥塞避免、快重传、快恢复等TCP拥塞控制算法,以及网络层的尾部丢弃策略、随机早期检测RED和显式拥塞控制ECN,阐述了这些机制如何协同工作以改善网络性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网络拥塞(congestion)是指在分组交换网络中传送分组的数目太多时,由于存储转发节点的资源有限而造成网络传输性能下降的情况。当网络发生拥塞时,一般会出现数据丢失,时延增加,吞吐量下降,严重时甚至会导致“拥塞崩溃”(congestion collapse)。通常情况下,当网络中负载过度增加致使网络性能下降时,就会发生网络拥塞。

另外一种说法,在网络中,链路带宽、节点的缓存、处理设备都是资源,当对资源的需求大于提供,网络的性能就会下降,就会出现网络拥塞。网络拥塞是全局的一个状态,不能仅仅改变一个部分的性能来改善,比如拥有了一台无限缓存的路由器,当分组的输入大于处理设备的能力时候,分组就会逐步在缓存堆积,以至于当缓存中的分组还未发送时,发送端迟迟收到不到应答,超时后重发了分组,更加加剧网络的拥塞。或者提高处理设备的能力,但是这样就将瓶颈丢到了别的地方,只有当全局的设备趋于平衡的时候,整个网络才能才能够顺畅运行。

拥塞控制和流量控制也是有一定的差别的,拥塞控制就是防止过多的数据涌入网络,导致网络处理不过来,是全局的,涉及所有的主机路由器。当TCP连接迟迟收不到应答就可以认定为网络发生了拥塞。只是无法确定在何处发送。
而流量控制就是防止数据输出过快导致对方来不急处理,是端对端的控制,只要抑制发送端的发送速率即可。

拥塞控制和流量控制经常会被人们给混淆,主要是一些拥塞控制算法同样会将控制信息发送给发送端来,这点和流量控制一致。当然如果网络发生拥塞,拥塞控制算法还要发送控制信息,这些信息同样会加剧网络拥塞。

拥塞控制

TCP 拥塞控制常用的下列四种算法,慢开始 拥塞避免 快重传 快恢复。为了介绍这几种算法,假设下列2情况。
1.接受方只是对数据报做出应答,不进行传输数据。
2.接受方的滑动窗口数无限大的。因为实际的窗口上限 = Min(接受方的滑动窗口数,发送方的拥塞窗口数),这样的发送窗口数就大小就有拥塞窗口数来决定。

接下来讨论是基于拥塞窗口数 cwnd(congestion windos),实际上拥塞窗口的单位是字节,在这里我们为了减少复杂度,理解算法的核心内容,讨论中的拥塞窗口数就用 SMSS(Sender Max) 作为单位

这个拥塞控制算法的核心思想就是:刚刚建立连接的时候,假设网络是拥塞的,先向网络传输一点数据。等到确认数据接收完毕后,就继续加大数据向网络里面塞。当窗口是超过阈值的时候,系统认为网络可能要发生拥塞,就减少了窗口数增大的速率。当系统通过某一种方式得知了网络发生了拥塞,就减少数据发送效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值