网络拥塞控制的国内外研究现状(2)
时间:2017-04-22 16:52 来源:毕业论文 作者:毕业论文 点击:次
过去数年中,研究学者们提出了大量基于源端的拥塞控制算法[10][11][12],这些基于源端的算法对上述TCP拥塞控制策略做了不同程度的改进,为缓解网络拥塞做出了重要的贡献。随着网络的规模日益增大和结构日趋复杂,TCP拥塞机制的不足也显现了出来,如队列长度大幅度振荡、死锁现象和长时间的满队列。源端的拥塞控制机制难于满足服务质量的要求,因而网络中间节点的拥塞控制获得了广泛的关注和研究,这就是基于链路的拥塞控制算法。 采用路由器进行¬IP拥塞控制策略,通常也称之为队列管理机制。其主要思想就是通过排队算法决定哪些包可以传输,以此分配带宽,通过丢弃/标记策略决定接受到的哪些包被丢弃/标记,哪些包被转发,以此来分配缓存。队列管理机制可分为被动式队列管理和主动式队列管理。 被动队列管理技术(PQM Passive Queue Management) 队列管理技术一般可分为拥塞恢复和拥塞避免两类机制。传统的队列管理技术是在队列满时丢弃随后到达的分组,这种算法称为“队尾丢弃(Drop-tail)”。虽然此算法在当前Internet上得到广泛的使用,但是它也存在几个重大的缺陷: 1) 死锁(lock-out)问题:在某些情况下,由于同步或其他定时作用的结果,“队尾丢弃”算法会让某个流或少数几个流垄断队列空间,阻止其他流的数据包进入队列,这样就造成了不公平。 2) 满队列(Full- queues)问题:由于“队尾丢弃”算法只有在队列满时才发出拥塞信号,因此会使队列在相当长时间内处于充满(或几乎充满)的状态。这样就会增加端到端的延迟,同时满队列也容易导致突发数据的丢失。 3) 全局同步(global synchronization)问题:Internet上数据是突发的,到达路由器的包也是突发的。如果队列是满的或者几乎是满的,就会造成在短时间内连续大量的分组丢弃。受此影响,大量的TCP数据源将几乎同时降低自己的发送速率,在短期内造成网络负载过轻,降低网络资源利用率;然后几乎所有的TCP数据源又将同时逐步增加自己的发送速率,导致下一轮的网络拥塞出现,周而复始地影响网络的运行效率。这就是所谓的“全局同步”问题。 另一种是在队列满时,触发的管理技术Drop-from-front,即从队列前端丢弃分组,它能防止流隔离地产生并改善公平性。若在新分组到达一个满队列时,随机丢弃队列中的一个分组,则称为Random-drop,它能改善对后启动连接的公平性,并改善长RTT连接流的吞吐量。 上面几种算法都是在拥塞出现后才做出反应的,因此都属于拥塞恢复策略,也称为“被动队列管理(PQM Passive Queue Management)”。 主动队列管理技术(AQM Active Queue Management) 由于传统的“队尾丢弃”队列管理机制不能有效解决网络的拥塞,互联网工程任务组(Internet Engineering Task Force,IETF)[13]提出使用主动队列管理(Active Queue Management,AQM)算法。AQM的基本思想是在路由器满队列之前,根据一定的算法预先对分组进行主动丢弃,以提高链路利用率,减少排队延时和抑制速率振荡。AQM的主要技术目标是在减小排队时延的同时保障较高的吞吐量。AQM解决的问题主要包括以下四个方面: 1) 早期探测路由器可能发生的拥塞,并通过随机丢弃或标记分组来通知源端采取措施,避免可能发生的拥塞。 2) 公平地处理包括突发性、持久性和间歇性的各种TCP业务流。 3) 避免多个TCP连接由于队列溢出而造成同步进入“慢启动”状态。 4) 文持较小的队列长度,在高吞吐量和低延迟之间做出合理的平衡 (责任编辑:qin) |