总的来说,拥塞的原因是网络上被送入了过多的数据分组,超出了网络的承载能力。“超出了网络的承载能力”,这话说得十分概括,网络拥塞时的状况也可以非常复杂。我们借助几个交通堵塞的例子来帮助大家理解网络拥塞的一些基本状况。
图5-15(a)所示的是拥塞最基本、最简单的形式。从A地向B地进行公路运输,A地与X地、Y地与B地之间的道路通行能力是每分钟100辆车,X地与Y地之间的道路通行能力是每分钟10辆车。若从A地按照本地可见的道路通行能力发车,在X地必然产生大量车辆被堵,排起长长的车队的现象。对应的,来看图5-15(b),把地点换成设备,同样会在X设备上出现数据分组拥堵现象,在X设备的等待队列里不断聚集来不及发送的数据分组。因交通堵塞而等待的车辆不会凭空消失,它可以在道路上不断延长队伍。多年前看国外的新闻报道,有在公路上排队长达几十甚至上百千米的情况,用几天时间来进行全部疏散。在网络设备等待队列满溢的情况下,新来的数据分组就只能被丢弃。
图5-15 拥塞状况示意(一)
图5-16(a)示意了另外一种情况。有两处风景名胜M地和N地,X地是可以通向它们的一处枢纽城镇。现在,只有A地来的游客想去N地,其他来源的游客都以M地为目的地。尽管各条道路的通行能力都一样,但在X城镇,因为以M地为目的地造成的交通拥堵,同样会影响从A到N的交通。虽然表面看起来,从A地到N地道路通行能力匹配,不会发生拥堵。对应地,如图5-16(b)所示,把地点换成网络或者设备,不同来源的数据分组都在X设备进行排队,X设备的拥堵影响所有经过它的通信。
图5-16 拥塞状况示意(二)
前面两个例子都可以视为速度匹配造成的拥塞。看交通的例子,车辆进入X城镇的速度大于它们离开X城镇的速度;看网络的例子,数据分组进入X设备的速度大于它们离开X设备的速度。这样的速度差必然会在特定位置造成车辆或者数据的积累,形成拥塞。
如图5-17所示,在一条高速公路上设置一个收费站。进入收费站和离开收费站的都是这条高速公路,进、出的通行能力是匹配的。假设收费站只有少量人工收费窗口,每分钟仅能处理10辆汽车的收费工作,当大量汽车涌来时同样会造成拥堵排队现象。类似地,网络通信问题也是存在的。(www.xing528.com)
图5-17 拥塞状况示意(三)
实际上,当网络拥塞发生时,总可以找到类似这几个例子中“X设备”这样的拥塞点。其是某个网络设备,它或者因为数据分组的流出速度比不上流入的速度(或由其所连接链路网速差异造成,或由一定时段的流量特点造成),或者是因为自身处理能力不足,虽然链路速度匹配不存在问题,却无法应对大量的分组转发。这都会造成拥塞,但无论何种原因,拥塞的表现都会是拥塞点设备的等待队列的逐渐满溢,即无论速度匹配差异问题还是处理能力问题,都会造成数据在设备排队队列内的积累,直到队列内再也放不下任何数据。
前面介绍了网络拥塞的两种最基本原因,即进、出速度不匹配和设备处理能力不足。但实际网络中的拥塞情况是很复杂的,不过,它们都会表现为某些网络设备的等待队列逐渐满溢,最终开始丢失分组的过程。在这个等待队列逐渐满溢的过程中,随着等待队列不断变长,网络时延也会因为排队时延的增加而变长。所以,随着网络负载的增加,在达到队列满溢的程度前,网络的性能就会逐渐低于理想数值。随着等待队列满溢而开始丢包,就一定会触发TCP重传,造成更多的重复数据进入网络占用带宽,最终会导致数据完全无法发送的状况发生。如果能够采取一定的措施进行拥塞控制,虽然会因为付出额外的处理而导致网络性能有所损失,但是却可以使网络无论如何都不会陷入死锁状态。
图5-18所示为拥塞控制效果示意,它展示了当进入网络的流量不断增加时,网络实际吞吐量的变化。理想的网络,其吞吐量先随着进入网络的负载线性增加,吞吐量达到网络传输能力的最大值以后便保持恒定。
图5-18 拥塞控制效果示意
在实际的网络中,如果不采用拥塞控制,在网络负载达到其最大吞吐能力之前,网络的吞吐量也会逐渐增加,但增长率却逐渐减小。这是由于随着网络负载的增加,排队时延也会增加,并开始有一些分组被丢弃了。当网络负载超过其最大吞吐能力后,丢包和大量的重传导致了网络的实际传输能力迅速下降,直到无法传输数据,但如果有了拥塞控制,虽然控制上的代价对传输效率有所影响,但只要网络没有断,通信总是可以进行的。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。