26、拥塞控制算法(网络层)

引言

  • 网络中存在太多的数据包导致数据包被延迟和丢失,从而降低了传输性能,这种情况称为拥塞。网络层和传输层的共同承载着处理拥塞的责任。由于拥塞发生在网络内部,正是网络层直接经历拥塞,而且必须由它最终确定如何处理过载的数据包。然而,控制拥塞的最好方法是减少传输层注入网络的负载。这就需要网络层和传输层协同工作。本章将着眼于拥塞控制在网络层方面的处理;下一章讲解在传输层的处理。
  • 图中描绘了拥塞的发生。当主机发送到网络的数据包数量在其承载范围之内时,送达的数据包数与发送的数据包数成正比例增长。然而,随着负载接近承载能力,偶尔突发的流量填满了路由器内部的缓冲区,因而某些数据包会被丢失。这些丢失的数据包消耗了部分容量,因此,送达的数据包数量低于理想曲线,网络开始拥挤了。在这里插入图片描述
  • 除非网络是精心设计的,否则极有可能会遭遇拥塞崩溃,表现为随着注入负载的增加到超出网络的容量,网络性能骤降。这种可能非常有可能发生,因为数据包在网络内部遭遇到了足够的延迟,使得它们离开网络后已经不再有用。例如,在早期Internet中有许多慢速的56kbps链路,那么通过这样的链路发送的数据包,包花在等待积压在前面数据包排空的的时间远远超过了允许其在网络中的最大生存期,因此不得不扔到。这种延迟很长的数据包会被认为已经丢失而需要重传,相同的数据包的副本将通过网络传送,再次浪费了网络的容量。为了捕捉这些因素,图中的y轴表示实际吞吐量,表示网络传递有用数据包的传送速率。
  • 我们设想这样的网络:首先尽可能地避免产生拥挤,其次如果它们确实拥挤时不会遭遇拥塞崩溃。不幸的是,拥塞不可能完全避免。如果突然间,从三四条线路入境的的数据包流都需要转发到相同的输出线路,则会形成一个队列。如果没有足够的内存来容纳所有这些数据包,数据包将被丢弃。为路由器添加更多的内存可以缓解这一点,但Nagle认识到如果路由器拥有无限内存,拥堵情况会更加恶化,这是因为当数据包排到前面时,它们早就超时了并且它们的副本也可能在队列中,最终导致拥塞崩溃。
  • 低带宽链路或者处理数据包速度比线路速率还低的路由器也会变得拥挤不堪。在这种情况下,把一些流量导出瓶颈区域指向网络的其他部分可以改善这种拥塞状况。然而,最终网络的所有区域都将出现拥塞,只能通过卸下负载或建立一个更快的网络。
  • 值得指出的是拥塞控制和流量控制之间有很大差异。拥塞控制的任务是确保网络能够承载所有到达的流量,这是一个全局性的问题,涉及各方面的行为,包括所有的主机和路由器。流量控制只是与特定的发送方和特定的接收方的点到点流量有关,它的任务是确保一个快速的发送方不会持续地以超过接收方能力的速率传输数据。拥塞控制和流量控制之所以常常被混淆的原因在于处理上述两个问题的最好方法都是迫使主机慢下来。因此,一台主机接收到“慢速前行”的消息可能是来自不能处理负载的接收方,也可能是不能处理负载的网络。我们首先考查在不同的时间尺度可使用的一些方法,作为学习拥塞控制的开始;然后,我们将考查把预防拥塞放在首位的方法,其次学习一旦拥塞发生后的各种动态处理算法。
1、拥塞控制的途径
  • 拥塞的出现意味着负载(暂时)大于资源(在网络的一部分)可以处理的能力。很自然人们想到两个解决方案:增加资源或减少负载。如图,这些方案通常用在不同的时间尺度上,要么预先避免拥塞,要么拥塞之后立即做出反应。在这里插入图片描述
  • 避免拥塞的最基本方法是建立一个于流量匹配的良好的网络。如果存在一条低带宽的链路,大多数流量所走的路径都要经过这条链路,那么发生拥塞的可能性非常大。有时出现严重拥塞时,可以动态增加网络资源,例如把通常只用了备份的路由器或线路(使系统容错&#x
  • 9
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值