内容摘要:由于Internet采用的是统计复用(statistical multiplexing)技术,因此必须提供拥塞控制机制。TCP端到端的拥塞控制机制是确保Internet鲁棒性(robustness)的重要因素。在发生拥塞时,TCP源端会降低发送数据的速度,从而使得大量的TCP连接能够共享一条拥塞的链路。TCP拥塞控制机制已被证明在防止拥塞崩溃(congestion collapse)方面取得了巨大的成功。
很明显,这些不受TCP拥塞控制的应用会进一步增加Internet范围内拥塞崩溃的可能,并且TCP拥塞控制还存在着自相似、效率、公平性等方面的问题。因此尽管TCP拥塞控制机制是必须的而且非常强大,但仍然需要采用基于路由器的拥塞控制机制对端节点的拥塞控制机制进行补充。
拥塞避免机制的首要任务是检测早期的拥塞。这是因为,路由器能够有效地监控队列的长度,因此其也能有效地检测早期的拥塞(incipient congestion)。拥塞避免机制的另一个任务是选择哪个流发出拥塞通知。因为路由器能够全面地审视各个流对产生拥塞的影响,因此其也能够有效地决定将拥塞信息通知哪个源端,使其降低数据发送速度。
2 从传统的被动式队列管理到主动式队列管理
由于路由器是基于包交换的设备,每个端口采用带宽统计复用,所以路由器必须在端口上维护一个或多个队列,否则路由器无法处理多个数据包同时向同一端口转发以及端口QOS等问题。对队列进行管理直接影响路由器性能、拥塞管理能力以及QOS能力。路由器有两类和控制队列的算法:队列管理算法和队列调度算法。前者主要是在必要时通过丢包来管理队列长度。后者决定下一个要发送哪个包,主要用来管理各流之间带宽的分配。
由于Internet数据本质上是突发的,因此允许传输突发的数据包非常必要,而路由器中队列的重要作用就是吸收(absorb)突发的数据包。较大的队列能够吸收更多的突发数据,提高吞吐量,但TCP机制往往会保持较高的队列占用,从而增加了数据包的排队延迟。因此需路由器对队列进行管理,维持较小的队列长度。因为维持较小的队列长度除了降低排队延迟,提高吞吐量外,还能保持较大的队列空间来吸收突发数据包。拥塞控制机制就是要维持网络处于低延迟高吞吐量的状态。
责编:豆豆技术应用