目前Internet中大部分使用的是TCP/IP协议,因此TCP/IP控制受到了广泛关注。这种协议下的拥塞控制是以数据包的丢失作为拥塞指示的,在路由器等中间节点的缓冲区满后,就会对新到达的数据包进行丢弃,于是源端根据超时等隐含的网络信息判断拥塞的产生,调整其发送窗口的大小,使得注入网络的数据流量得以降低。65336
TCP拥塞控制机制对于当今的网络是必须的,然而其在效率、自相似性、公平性等方面仍然有些问题需要解决,于是研究人员开始转向研究网络的中间节点设备(如路由器),期望通过增强它们的功能来实现源端无法实现的功能。就拥塞控制而言,网络的中间节点设备可以提前准确了解网络的拥塞状态,能够根据拥塞状况更及时的实施资源管理策略,使网络避免拥塞,或尽快从严重的拥塞状态中恢复过来。
AQM是IETF为了解决网络拥塞问题而提出的一种队列管理机制,能够控制路由器何时丢包,从而有效地管理队列长度,以支持端到端拥塞控制。AQM采用一定的方法检测网络拥塞的发生以及拥塞的程度,在缓冲队列溢出之前,能够对数据包进行必要的丢弃,达到避免拥塞的目的。目前AQM检测拥塞有两种论文网方式,一种是基于队列长度的,另一种是基于流的到达速率。基于队列长度的拥塞检测是通过观察路由器队列长度实现的,而基于流的到达速率的方法是通过估算数据包的到达速率来实现的。
然而随着Internet应用需求的日益丰富和技术的不断发展,特别是实时多媒体业务的广泛应用,使得Internet上的数据流为多种异质流混合而成。在网络发生拥塞时,响应流在源端检测到拥塞时能够降低其发送速率,而非响应流由于没有拥塞响应机制,仍然按照原发送速率发送数据,使得网络带宽大多被非响应流占据,造成资源分配的不公平性。
根据中间节点的主动队列管理研究的针对性不同,将其分为常规AQM算法与公平性AQM算法。常规AQM算法主要是解决网络的稳定性与鲁棒性问题,减少网络延时,降低丢包率;公平性AQM算法主要是针对异质流资源分配的不公平性,解决各种流资源分配问题。
1 RED算法
在目前的网络中,RED算法是IETF所指定的唯一的AQM算法,该算法监控路由器缓冲区中的队列长度,一旦发现拥塞迫近,就采用报文丢失的方式通知源端调整发送窗口的大小,从而降低源端的发送速率,达到降低网络拥塞程度,避免对更多的数据包进行丢弃的目的。对面向连接的TCP数据流来说,RED避免了对属于同一连接的数据包的连续丢弃,避免了网络中出现全局同步现象,提高了连接的吞吐量。然而RED算法存在两个明显的缺陷,第一是对参数设置敏感,参数的改变对性能的影响很大,当连接数目增加时,缓冲区中的平均队列长度会逐渐增加;第二就是RED算法不支持区分服务,无法保证公平性。
由于RED算法存在这两个明显的缺陷导致了队列的振荡和不必要的丢包,使得网络延迟变大,吞吐量下降,链路利用率降低。Thomas等人指出RED的稳定性主要是由最大报文丢弃概率决定,队列振荡主要是由最小闭值与最大闭值之间的差值决定,建立了RED的参数与网络带宽、延时、TCP流数目之间的关系表达式,用于设置RED参数。
针对RED存在的缺陷,近年来提出了各种新的AQM算法,例如自配置RED,ARED,NRED,LREn,E-RED,REM,BLUE,NARED,SRED,AVQ等这些算法能够在某些方面改进网络的性能,但在不同的环境下也存在着局限性。
Feng等人提出了一种参数自适应配置的RED算法(Self-Configuring RED),针对RED算法静态参数配置的局限性,通过在线自动配置参数机制来决定合适的参数。这种算法能够有效的降低丢包率,并能在网络负载较重的情况下,维持较高的链路利用率,并且实现简单,开销低,特别适用于主干路由器,但是参数的自动配置给最大丢包概率带来的波动比较大,导致队列波动也比较大。 拥塞策略的研究现状与发展:http://www.youerw.com/yanjiu/lunwen_72920.html