概念
网络上有太多的包时,性能会极具下降,这种现象叫做拥塞
拥塞产生原因
对资源需求的综合>可用资源
解决办法
解决需求和能力的矛盾。“头疼医头,脚痛医脚”解决方案只能转移影响性能的瓶颈。需要全面考虑各个因素。进行网络改造升级等
拥塞度量
• 缺乏缓冲区造成的丢包率上升
• 平均队列长度变长
• 超时重传的包的数目增大
• 平均包延迟增大
• 包延迟变化增大
拥塞监视点
• 源节点
• 中间路由器
拥塞控制(仅在网络层出现)
需要确保通信子网能够承载用户提交的通信量,是一个全局性问题,涉及主机、路由器等很多因素
流量控制(链路层,网络层,运输层,应用层都可能出现)
与点到点的通信量有关,主要解决快速发送方与慢速接收方的问题,是局部问题,一般都是基于反馈进行控制的
流量控制的层次:
流量控制的层次.png物理层没有流量控制,因为物理端的收发是没有能力差别的
拥塞控制的实现位置
• 链路算法(当下节点发生拥塞就要求与它相邻的上一个节点降低发送速率)
• 源算法(最终的数据源端降低发送速率)
拥塞控制方法
根据控制论,拥塞控制方法分为两类:
1.开环控制
通过好的设计来解决问题,避免拥塞发生;拥塞控制时不考虑网络当前状态(即使网络空闲的时候也会实施拥塞控制)
开环控制的两种算法:漏桶算法;令牌算法
• 漏桶算法
基本思想:造成拥塞的主要原因是网络流量通常是突发性的。强迫包以一种可预测的速率发送。在ATM网中广泛使用
漏桶算法:将用户发出的不平滑的数据报流转成网络中平滑的数据包流。可用于固定包长的协议,如ATM、也可用于可变包长的协议,如IP,使用字节计数。无论负载突发性如何,漏桶算法强迫输出按平均速率进行,不灵活
漏桶算法.png• 令牌桶算法
漏桶算法不够灵活,因此加入令牌机制。令牌机制允许有一定突发数据,但量不能太大
基本思想:漏桶存放令牌,每△T秒产生一个令牌,令牌累积到超过漏桶上界时就不再增加。包传输之前必须获得一个令牌,传输之后删除该令牌
漏桶算法与令牌桶算法的区别
• 流量整形策略不同:漏桶算法不允许空闲主机累积发送权,以便以后发送大的突发数据;令牌桶算法允许,最大为桶的大小。
• 漏桶中存放的是数据包,桶满了丢弃数据包,上层应用就需要重传被丢弃的数据包;令牌桶中存放的是令牌,桶满了丢弃令牌,不丢弃数据包
2.闭环控制
基于反馈机制。工作过程:监控系统发现何时何地发生拥塞,把发生拥塞的消息传给能采取动作的站点,调整系统操作(减少发送速率),解决问题
•闭环控制的算法:抑制分组
每个新包到来,路由器检查输出线路是否处于警戒状态。若是,则向源主机发送抑制包,包中指出发生拥塞的目的地址,同时将原包打上标记(为了以后不再产生抑制包),正常转发。源主机收到抑制包后,减少发向特定目的地的流量,并在固定时间间隔内忽略指示同一目的地的抑制包,然后开始监听,若此线路仍然拥塞,则主机在固定时间内继续减轻负载、忽略抑制包;若在监听周期内没有收到抑制包,则增加负载。流量增减策略:倍性减少、常量增加
网友评论