| 文字广告: ppp |
| 当前位置 > 网络安全 > 网络技术 > 互连设备 Internet主动式队列管理机制综述(5)
时间:2005-6-16 9:08:54 作者: 来源:赛迪网点击数:
SRED的主要目的是保持FIFO队列的占用稳定而与活跃流(active flows)数量无关;另外一个目的是鉴别行为恶意的流(misbehaving flows)。 SRED的基本思想就是进行比较。当有一个包到达buffer时,就和buffer中随机选出的一个包进行比较,若这两个包属于同一个流,则称为"击中"(hit)。这种方法虽简单,但要和已经离开buffer的包进行比较是不可能的,为了使系统有更长的记忆,SRED设计了一种数据结构,称为"僵尸"列表(Zombie List)。这个列表可以被认为是一种流Cache,其中记录了最近流经该buffer的M个流及其一些额外信息:"count"和"时间戳"。 起初列表为空,当有一个包到达时,只要列表非空,则该包的流标识(源、目的地址等)加入列表,其僵尸的count设为0,时间戳为该包的到达时间。 一旦僵尸列表满了,则作如下工作:当一个包到达后,它和僵尸列表中随机选出的僵尸进行比较: 击中: 则此僵尸的count加1,时间戳改为现在包的到达时间。 没击中: 以概率P,用刚到包的流标识覆盖选出来的僵尸,count重置为0,时间戳改为刚到包的到达时间。概率P和原来僵尸的时间戳有关,时间戳越老,P就越大。 SRED用一个函数Hit(t)来记录第t个包是否击中,如果击中,则Hit(t)取值为1,否则为0。从恶意流相比较良好流更易引发"击中"这个意义上说,如果一个包引发"击中",则可认为该包属于恶意流。如果一个包"击中"并且该僵尸的count值很大,就更明显了。 5.1 Simple SRED 首先计算第t个包到达队列时击中的概率:P(t)=(1-α)×p(t-1)+α×Hit(t)(0<α<<1) 其中α是一个常数。P(t)-1可以被认为是在第t个包到达之前很短时间内对活跃流数量的估计。如果要减少比较的开销,可以每隔L个包或者一个预定的时间段再更新P(t),而不是每来一个包就更新,其计算公式如下:P(new)=(1-Lα)×p(old)+α×Hit (0 丢弃包的概率依赖于队列的占用情况和活跃流的估计值。 |
|
|
|
|
|||||||||