如何使用随机早期检测进行概率标记?

网络工程 服务质量 拥塞
2021-07-23 01:24:29

我目前正在为我的计算机网络考试而学习。

我无法理解以下内容。

当当前平均队列长度介于 min_threshold 和 max_threshold 之间时,随机早期检测算法以概率(用于丢弃或显式拥塞通知)标记它接收到的每个数据包。

我知道当 AQL 大于 max_threshold(即 p 为 1)时,每个数据包都会被标记,但我无法理解在前一种情况下如何使用计算出的概率来决定是否标记数据包。

比如一个包的p_b计算为0.7,是不是就意味着这个包根本就不会被标记?

作为参考,这里是伪代码中的 RED 算法,首先在http://www.cs.princeton.edu/courses/archive/fall06/cos561/papers/red.pdf提出

Initialization:
avg ← 0
count ← −1

for each packet arrival calculate the new average queue size avg: 
    if the queue is nonempty
        avg ← (1 − w_q)*avg + w_q*q     
    else
        m← f(time−q time) 
        avg←(1−w )^m*avgq 

    if min_th ≤ avg < max_th
        increment count

        calculate probability pa:
            pb ← maxp(avg − minth)/(maxth − minth) pa ←pb/(1−count·pb)
        with probability pa:
            mark the arriving packet count ← 0

    else if maxth ≤ avg
        mark the arriving packet count ← 0
    else count ← −1

when queue becomes empty
q_time ← time
1个回答

将 RED 视为坐标系中的任意曲线。

Y 是丢弃的概率 X 是您有多拥挤(例如出口缓冲区有多满)

运营商可以在那里加5分

  1. X=40%,Y=0%
  2. X=50%,Y=5%
  3. X=60%,Y=20%
  4. X=70%,Y=40%
  5. X=90%,Y=100%

然后您将绘制线到点以形成曲线,以获得每个 X(需求/拥塞)的精确 Y(下降概率)。

如何按百分比生成随机数的确切实现不是很有趣,可能是您从 1-100 中随机数,如果 Y==5,则对于随机数 1-5,您丢弃,对于 6-100,您不要掉。

WRED 完全相同,只是不同 QoS 等级的曲线不同。

这可能不像您希望的那样学术性的答案,而且我也不能推荐非常学术性的 QoS 书籍。QoS 是非常非常具体的实现。TM(流量管理器)是现代路由器中最复杂的单个部件。