`
jiangduxi
  • 浏览: 458947 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
阅读更多
   拥塞现象是指到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿,即出现死锁现象。这种现象跟公路网中经常所见的交通拥挤一样,当节假日公路网中车辆大量增加时,各种走向的车流相互干扰,使每辆车到达目的地的时间都相对增加(即延迟增加),甚至有时在某段公路上车辆因堵塞而无法开动(即发生局部死锁)。 网络的吞吐量与通信子网负荷(即通信子网中正在传输的分组数)有着密切的关系。当通信子网负荷比较小时,网络的吞吐量(分组数/秒)随网络负荷(每个节点中分组的平均数)的增加而线性增加。当网络负荷增加到某一值后,若网络吞吐量反而下降,则表征网络中出现了拥塞现象。在一个出现拥塞现象的网络中,到达某个节点的分组将会遇到无缓冲区可用的情况,从而使这些分组不得不由前一节点重传,或者需要由源节点或源端系统重传。当拥塞比较严重时,通信子网中相当多的传输能力和节点缓冲器都用于这种无谓的重传,从而使通信子网的有效吞吐量下降。由此引起恶性循环,使通信子网的局部甚至全部处于死锁状态,最终导致网络有效吞吐量接近为零。

造成拥塞的原因:
引用

  1. 多条流入线路有分组到达,并需要同一输出线路,此时,如果路由器没有足够的内存来存放所有这些分组,那么有的分组就会丢失。

2. 路由器的慢带处理器的缘故,以至于难以完成必要的处理工作,如缓冲区排队,更新路由表等

防止拥塞的方法:
引用

  1. 在传输层采用:重传策略、乱序缓存策略、确认策略、流控制策略和确定超时策略。
  2. 在网络层采用: 子网内部的虚电路与数据报策略、分组排队和服务策略、分组丢弃策略、路由算法和分组生存管理
  3. 在数据链路层采用:重传策略、乱序缓存策略、确认策略和流控制策略。

拥塞控制方法
引用

(1) 缓冲区预分配法。该法用于虚电路分组交换网中。在建立虚电路时,让呼叫请求分组途经的节点为虚电路预先分配一个或多个数据缓冲区。若某个节点缓冲器已被占满,则呼叫请求分组另择路由,或者返回一个"忙"信号给呼叫者。这样,通过途经的各节点为每条虚电路开设的永久性缓冲区(直到虚电路拆除),就总能有空间来接纳并转送经过的分组。此时的分组交换跟电路交换很相似。当节点收到一个分组并将它转发出去之后,该节点向发送节点返回一个确认信息。该确认一方面表示接收节点已正确收到分组,另一方面告诉发送节点,该节点已空出缓冲区以备接收下一个分组。上面是"停一等"协议下的情况,若节点之间的协议允许多个未处理的分组存在,则为了完全消除拥塞的可能性,每个节点要为每条虚电路保留等价于窗口大小数量的缓冲区。这种方法不管有没有通信量,都有可观的资源(线路容量或存储空间)被某个连接占有,因此网络资源的有效利用率不高。这种控制方法主要用于要求高带宽和低延迟的场合,例如传送数字化语音信息的虚电路。

(2) 分组丢弃法。该法不必预先保留缓冲区,当缓冲区占满时,将到来的分组丢弃。若通信子网提供的是数据报服务,则用分组丢弃法来防止拥塞发生不会引起大的影响。但若通信子网提供的是虚电路服务,则必须在某处保存被丢弃分组的备份,以便拥塞解决后能重新传送。有两种解决被丢弃分组重发的方法,一种是让发送被丢弃分组的节点超时,并重新发送分组直至分组被收到;另一种是让发送被丢弃分组的节点在尝试一定次数后放弃发送,并迫使数据源节点超时而重新开始发送。但是不加分辨地随意丢弃分组也不妥,因为一个包含确认信息的分组可以释放节点的缓冲区,若因节点元空余缓冲区来接收含确认信息的分组,这便使节点缓冲区失去了一次释放的机会。解决这个问题的方法可以为每条输入链路永久地保留一块缓冲区,以用于接纳并检测所有进入的分组,对于捎带确认信息的分组,在利用了所捎带的确认释放缓冲区后,再将该分组丢弃或将该捎带好消息的分组保存在刚空出的缓冲区中。

(3) 定额控制法。这种方法在通信子网中设置适当数量的称做"许可证"的特殊信息,一部分许可证在通信子网开始工作前预先以某种策略分配给各个源节点,另一部分则在子网开始工作后在网中四处环游。当源节点要发送来自源端系统的分组时,它必须首先拥有许可证,并且每发送一个分组注销一张许可证。目的节点方则每收到一个分组并将其递交给目的端系统后,便生成一张许可证。这样便可确保子网中分组数不会超过许可证的数量,从而防止了拥塞的发生。


死锁及其防止
引用

拥塞的极端后果是死锁。

死锁是网络中最容易发生的故障之一,即使在网络负荷不很重时也会发生。死锁发生时,一组节点由于没有空闲缓冲区而元法接收和转发分组,节点之间相互等待,既不能接收分组也不能转发分组,并一直保持这一僵局,严重时甚至导致整个网络的瘫痪。此时,只能靠人工干预来重新启动网络,解除死锁。但重新启动后并未消除引起死锁的隐患,所以可能再次发生死锁。死锁是由于控制技术方面的某些缺陷所引起的,起因通常难以捉摸、难以发现,即使发现,也常常不能立即修复。因此,在各层协议中都必须考虑如何避免死锁的问题。

(1) 存储转发死锁及其防止。最常见的死锁是发生在两个节点之间的直接存储转发死锁。例如,A节点的所有缓冲区装满了等待输出到B节点的分组,而B节点的所有缓冲区也全部装满了等待输出到A节点的分组;此时,A节点不能从B节点接收分组,B节点也不能从A节点接收分组,从而造成两节点间的死锁。这种情况也可能发生在一组节点之间,例如,A节点企图向B节点发送分组、B节点企图向C节点发送分组、而C节点又企图向A节点发送分组,但此时每个节点都无空闲缓冲区用于接收分组,这种情形称做间接存储转发死锁。当一个节点处于死锁状态时,所有与之相连的链路将被完全拥塞。

一种防止存储转发死锁的方法是,每个节点设置M+1个缓冲区,并以0到M编号。M为通信子网的直径,即从任一源节点到任一目的节点间的最大链路段数。每个源节点仅当其0号缓冲区空时才能接收源端系统来的分组,而此分组仅能转发给1号缓冲区空闲的相邻节点,再由该节点将分组转发给它的2号缓冲区空闲的相邻节点……最后,该分组或者顺利到达目的节点并被递交给目的端系统,或者到了某个节点编号为M的缓冲区中再也转发不下去,此时一定发生了循环,应该将该分组丢弃。由于每个分组都是按照编号递增规则分配缓冲区,所以节点之间不会相互等待空闲缓冲区而发生死锁现象。这种方法的不足之处在于,当某节点虽然有空闲缓冲区,但正巧没有所需要的特定编号的缓冲区时,分组仍要等待,从而造成了缓冲区和链路的浪费。

另一种防止存储转发死锁的方法是,使每个分组上都携带一个全局性的惟一的"时间戳",每个节点要为每条输入链路保留一个特殊的接收缓冲区,而其它缓冲区均可用于存放中转分组。在每条输出链路的队列上分组按时间戳顺序排队。例如,节点A要将分组送到节点B,若B节点没有空闲缓冲区,但正巧有要送到A节点的分组,此时A、B节点可通过特殊的接收缓冲区交换分组;若B节点既没有空闲缓冲区,也没有要送往A节点的分组,B节点只好强行将一个出路方向大致与A节点方向相同的分组与A节点互相交换分组,但此时A节点中的分组必须比B节点中的分组具有更早的时间戳,这样才能保证子网中某个最早的分组不受阻挡地转发到目的地。由此可见,每个分组最终总会成为最早的分组,并总能被一步一步地发送到目的节点,从而避免了死锁现象的发生。

(2) 重装死锁及其防止。死锁中比较严重的情况是重装死锁。假设发给一个端系统的报文很长,被源节点拆成若干个分组发送,目的节点要将所有具有相同编号的分组重新装配成报文递交给目的端系统,若目的节点用于重装报文的缓冲区空间有限,而且它无法知道正在接收的报文究竟被拆成多少个分组,此时,就可能发生严重的问题:为了接收更多的分组,该目的节点用完了它的缓冲空间,但它又不能将尚未拼装完整的报文递送给目的端系统,而邻节点仍在不断地向它传送分组,但它却无法接收。这样,经过多次尝试后,邻节点就会绕道从其它途径再向该目的节点传送分组,但该目的节点已被死锁,其周边区域也由此发生了拥塞。下面几种方法可用以避免重装死锁的发生:

1.允许目的节点将不完整的报文递交给目的端系统;
2.一个不能完整重装的报文能被检测出来,并要求发送该报文的源端系统重新传送;
3.为每个节点配备一个后备缓冲空间,用以暂存不完整的报文。
1,2两种方法不能很满意地解决重装死锁,因为它们使端系统中的协议复杂化了。一般的设计中,网络层应该对端系统透明,也即端系统不该考虑诸如报文拆、装之类的事。3方法虽然不涉及端系统,但使每个节点增加了开销。


拥塞控制的当前标准
引用

端到端拥塞控制的IETF标准关注的方面包括集中在特定的协议(例如TCP协议[RFC2581],可靠的多点传送协议[RFC2357]);终端节点和路由器之间的拥塞信息(例如明确的拥塞通告[RFC2481])交换的句法和语义;不同服务的服务质量的期望值。端到端的拥塞控制的作用也在一个关于“Internet中的队列管理和避免拥塞的建议”[参见RFC2309]的RFC报告中进行了讨论。RFC2309提出了在路由器中活跃的队列管理机制的配置和对路由器机制设计的延续来处理对拥塞通告无回应的流。我们能够轻松地从RFC2309中借用一些端到端的拥塞控制的概括性的讨论。

与上面提到的RFCs资料相比,本文档对拥塞控制的原理进行更一般性的讨论。Internet成功的一个关键因素就是TCP协议的避免拥塞机制。当前TCP协议在Internet中仍然是占主导地位的传输协议,但它不是适用于任何地方,有越来越多的应用由于某种原因没有选择使用TCP协议。通信不仅包括多点传送通信,而且包括单点传送通信,诸如不需要可靠性的流化的多媒体,以及包括象DNS(DomainNameServer域名服务器)或路由信息的通信,它们带有被认为对网络运行至关重要的短信息。许多通信并不使用任何形式的预留带宽或端到端拥塞控制。为了保持最优传输量,端到端的拥塞控制的继续使用对保持Internet的稳定至关重要。


完成拥塞控制时,确定拥塞窗口大小的过程
引用

确定拥塞窗口的大小的过程:在刚建立连接时,将拥塞窗口的大小初始化为该连接所需的最大连接数据段的长度值,并发送一个最大长度的数据段(当然必须是接收窗口允许的)。如果在定时器超时前得到确认,将拥塞窗口的大小增加一个数据段的字节数,并发送两个数据段,如果每个数据段在定时器超时前都得到确认,就再在原基础上增加一倍,即为4个数据段的大小,如此反复,每次都在前一次的基础上加倍。当定时器超时或达到发送窗口设定值,停止拥塞窗口尺寸的增加。这种反复称为慢速启动,所有的TCP协议都支持这种方法


前拥塞控制的研究热点:
引用

拥塞控制不仅是网络稳定、高效运行的关键,同时又是实现各种服务质量的基础和前提。实际的网络是一个不断发展的系统,网络拥塞控制研究也是一个非常困难、有挑战性的研究领域。对网络拥塞控制的研究仍有许多工作要做,进一步的工作包括:
(1) 拥塞控制基于端主机的控制策略和路由器的队列管理策略存在相互影响、相互作用的关系,如何在网络模型描述的基础上,从控制系统的角度将两者结合起来,设计出最优的拥塞控制策略,是网络拥塞控制研究的一个方向。
(2) 主动队列管理技术通过丢包积极响应拥塞,来达到拥塞避免和缓解的目的,是网络拥塞控制最重要的手段。如何实现AQM高级策略,引入新的人工智能算法和遗传算法与模糊逻辑的综合应用是目前研究的一个热点问题。
(3) 以往的工作主要采用局部线性化方法,缺乏对系统全局动力学的理论分析。此外,在多种源端拥塞控制策略和路由器避免策略并存时,如何分析整个网络的稳定性,如何分析各种不确定因素对稳定性的影响等,也是需要认真考虑的问题。
(4) TCP/IP 拥塞控制的设计和实现面临着众多的折中,不可能有一种设计和实现在所有环境中都是“最好的”。现有的拥塞控制思路、方法和技术在多目标的不同环境中面临着挑战,它们还有许多要改进的地方。
(5) 目前已经有越来越多的移动用户通过无线系统接入互联网,由于无线通信固有的特点,使得拥塞控制机制的研究更加困难,极具挑战。
分享到:
评论

相关推荐

    大学计算机网络实验报告(合集).pdf

    总结来说,这两个实验提供了对计算机网络核心原理的直观认识,包括传输时延、传播时延、排队时延和丢包现象。通过实际操作,学生能更好地理解这些概念,并为未来在网络工程、网络管理或相关领域的研究和工作打下坚实...

    计算机与网络技术基础—名词解释.pdf

    8. **拥塞**:在网络中,当流量超出网络处理能力时,导致性能下降的现象。拥塞控制策略如TCP的滑动窗口机制和流量控制算法旨在避免和缓解这个问题。 9. **电路交换**:在通信开始前,通过建立物理连接(比如电话...

    NS2仿真实验11

    在本实验"NS2仿真实验11"中,我们将探讨多媒体和无线网络通信中的TCP协议变体。...实验11是这一学习过程中不可或缺的一环,它鼓励学生动手操作,通过实际模拟来验证理论知识,增强对复杂网络现象的直观认识。

    使1M宽带变5M的软件.rar

    它通过控制上传和下载的速度,合理分配带宽资源,尽量避免网络的拥塞现象。对于那些对网络稳定性和速度有较高要求的应用,如VoIP通话或在线游戏,Cfosspeed还能利用其QoS功能,优先处理这类流量,保证这些应用在多...

    网络的力量1

    为了确保每个人都能有效且无干扰地使用网络,需要精细的协调和控制机制,比如管理数据传输的优先级和定价策略,以避免网络拥塞。 其次,**排序很难**。在信息爆炸的时代,搜索引擎如谷歌需要对海量信息进行排序,...

    校园的网络安全知识讲座.doc

    了解校园网络的基本情况,有助于我们更好地认识和预防潜在的风险。 二、病毒对校园网络的危害 计算机病毒是一种恶意软件,能够自我复制并传播,对系统造成破坏。在校园网络中,由于设备防护措施可能不足,一旦一台...

    TCP/IP(卷一、卷二、卷三)

    理论与实践的结合是这一卷的特色,Stevens不仅探讨了TCP/IP协议在操作系统中的实现细节,如路由选择算法、TCP的拥塞控制和UDP的应用场景,还深入到Unix系统下的网络编程。特别是对套接字API(应用程序编程接口)的...

    4G优化案例:RF结合参数调整精准解决VOLTE质差小区问题优化案例.pdf

    在实际运营中,VOLTE质差问题主要表现为通话质量下降、掉话频繁、接通率低等现象,严重影响用户的通话体验。这些质量问题可能是由网络覆盖不全、射频干扰、参数设置不合理等多种因素共同导致的。 二、分析过程 2.1 ...

    网络优化技术方案-网络信令分析优化.docx

    其中,掉线问题是最为常见的现象,它的产生原因多种多样,包括但不限于无线资源控制(RRC)重建失败、异常接收RRC释放消息、定时器设置不当等。这些因素可能会导致用户在通话或数据传输过程中意外断开连接。 针对...

    哈工大计科《计算机网络spoc》答案

    网络的吞吐量通常受到链路带宽、网络拥堵、拥塞控制机制等因素的影响。在题目3中,计算了不同链路速率下的网络吞吐量,以及传送到主机B所需的时间。 HTTP请求过程: HTTP(超文本传输协议)是应用层协议,用于从...

Global site tag (gtag.js) - Google Analytics