七种主流IP拥塞控制算法及评价(二)

日期: 2007-12-26 来源:TechTarget中国

  根据DDoS攻击的原理和机制,对各种机制的防护能力做评价时应参照以下标准: 条件一,是否能按一定规则进行特征设定; 条件二,是否能根据一定规则对流经的数据加以区分; 条件三,针对不同类型的数据包,是否能提供不同优先级的服务。如果一个拥塞控制机制满足了以上三个条件,就基本上具备了防护DDoS攻击的能力。

  下面将简略地分析当前一些主流IP拥塞控制算法,并对其防护DDoS攻击的可行性进行评价:

  ● 先进先出FIFO(First In First Out)

  传统的先进先出策略是目前Internet上使用最广泛的一种服务模型。它的最大优点是便于实施,但由于FIFO本质上是一种“去尾”(Drop-tail)的算法,所以当突发性数据到达时容易出现包丢失现象,其公平性较差,对上层的TCP快速恢复的效率也较低。

  对照评价标准可知,该算法没有满足任何一个条件,过于简单且缺乏智能性,完全不能用于DDoS攻击防护。

  ● 随机早期检测算法RED(Random Early Detection)

  RED算法是按一定概率丢弃进入路由器的数据包。RED的早期设计思路是避免丢弃属于同一连接的连续数据包,从而提高连接的吞吐量。通过分摊包丢失率,RED可以在各连接之间获得较好的公平性,对突发业务的适应性较强。RED也存在一些不足,例如可能会引起网络的不稳定,而且选择合适的配置参数也不是一件容易的事。近年来,研究者提出了许多RED的改进算法,这些算法都在一定程度上,从不同方面改善了RED的性能。

  对照评价标准可知,该方法对DDoS攻击的防护作用不大,由于其思路是分摊包丢失率,对正常业务和攻击数据“过分公平”,不能做到有所区分,从而使得大量正常业务在攻击发生时无法得到服务。

  ● 显示拥塞指示算法ECN(Explicit Congestion Notification)

  前面两种拥塞控制算法都是通过包丢失来告诉端系统,网络已经发生拥塞。而显示拥塞指示算法通过明确的拥塞提示(RFC2481)来实现拥塞控制,对一次性大批量数据传输的效果比较理想,但对时延有一定要求。

  该算法在源端数据包中嵌入ECN,由路由器根据网络情况设置CE(Congestion Experienced)比特位。源端接收到从网络中反馈回来的这种CE置位数据包后,将随后发出的数据包标记为可丢弃的数据包。ECN的优势在于不需要超时重传,也不依赖于粗粒度的TCP定时,所以在对时延有一定要求的应用场合性能较好。在此基础上还提出了另一种改进算法,它通过调整拥塞窗口CWND的大小,纠正有长时间RTT的TCP连接的偏差,来改进共享瓶颈处带宽的公平性。

  对照评价标准可知,该方法对防护DDoS攻击效果不大,原因在于无攻击特征识别和区分功能,在攻击发生时智能性较差。

  ● 公平排队算法FQ(Fair Queuing)

  在FQ算法中路由器对每个输出线路都建有一个排队队列。当一条线路空闲时,路由器就来回扫描所有队列,依次将每队的第一个包发出。FQ的带宽分配独立于数据包大小,各种服务在队列中几乎同时开始。因此在没有牺牲统计复用的情况下提供了另外的公平性,与端到端的拥塞控制机制可以较好地协同。它的缺点在于实现起来很复杂,需要每个数据流的排队处理、每个流的状态统计、数据包的分类以及包调度的额外开销等。

  对照评价标准可知,该方法对防护DDoS攻击效果不大,原因同ECN法。

  

  ● 加权公平排队算法WFQ(Weighted Fair Queuing)

  加权公平排队算法是FQ的改进算法。根据不同数据流的不同带宽要求,对每个排队队列采用加权方法分配缓存资源,从而增加FQ对不同应用的适应性,该算法还有其他一些改进算法。

  对照评价标准可知,该方法通过改进后可用于防护DDoS攻击,思路是首先对攻击进行检测和分类,然后将入口数据按攻击数据、正常数据、可疑数据三种类型分别排队处理,对攻击数据直接丢弃,而通过对可疑和正常数据赋予一定权值,来提供不同质量的服务。在路由器性能良好、处理能力强的情况下,甚至可以采取更复杂、智能的处理策略,例如多优先级队列。

  ● 加权随机先期检测WRED(Weighted Random Early Detection)

  是将随机先期检测与优先级排队结合起来,这种结合为高优先级分组提供了优先通信服务能力。当某个接口开始出现拥塞时,它有选择丢弃优先级较低的分组,而不是简单地随机丢弃分组。

  对照评价标准可知,该方法通过改进后可用于防护DDoS攻击,思路与WFQ类似,它们都符合评价标准的条件三,改进应从增加条件一和条件二着手。

  ● 定制排队

  定制排队是为允许具有不同最低带宽和延迟要求的应用程序共享网络而设计的。定制排队为不同协议分配不同的队列空间,并以循环方式处理队列,当特定协议的数据流被分配了较大的队列空间,也就获得了较优先的服务,定制排队比优先级队列更为公平。定制排队可以保证每一个特定的通信类型得到固定的可用带宽,同时在链路紧张的情况下,避免了数据流企图超出预分配量限制的可能。

  对照评价标准可知,该方法通过改进后可用于防护DDoS攻击,都是在资源分配和使用时为不同业务提供优先级加权,改进思路与WFQ和WRED类似。

  除了以上7种方法以外,还有其他一些方法。如将FQ与RED算法结合起来的Flow RED算法,它将缓存分成若干排队队列,再在每个数据流使用RED算法,仿真实验证明它的公平性较好; 又如核心无状态公平排队算法CSFQ(Core-Stateless Fair Queuing)在网络边界路由器执行数据流管理,而在核心并不做处理等等。

  可以看出,这些算法的防护能力存在着较大差异,其中的任何一种都需要在改进后,才能有效地应用于控制DDoS攻击所造成的网络拥塞。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐