RP算法

首先声明Rc(当前发送速率)和RT(收到CNP包前的最高速率)两个变量。

RP算法分为降速阶段和增速阶段:

降速阶段

增速阶段-事件触发

在增速阶段,我们根据字节计数器和计时器来增加发送速率:

BC: 发送字节数累计到一定大小时,BC++,Byte Counter置0。

T:当一段时间没有收到CNP包时,T++,Timer置0。

注:在收到CNP包时,重置Timer、ByteCounter、T、BC。

182X网卡上目前只实现了基于时间周期的升速策略和基于次数的增速阶段切换。

参数

描述

ByteCounter

字节计数器,记录发送字节数。

BC

字节计数器达到阈值的次数。

Timer

计时器。

T

计时器达到阈值的次数。

增速阶段

通过对T、BC和F进行比较进入不同的阶段,使用不同的增速算法:

增速阶段-使用实例

182X网卡实现:
  • T < F,进入Fast Recovery阶段:

    当前速率:

  • T > F 且 T < AI_F,进入Additive Increase阶段:

    目标速率:

    当前速率:

  • T > AI_F,进入Hyper Increase阶段:

    目标速率:

    当前速率:

    表1 公式说明

    参数

    说明

    BC

    字节计数器达到阈值的次数。

    T

    计时器达到阈值的次数。

    F

    Additive Increase增速阶段阈值,固定值,取值为5。

    AI_F

    Hyper increase增速阶段阈值,固定值,取值为10。

    RAI

    Additive Increase阶段的增速值,默认为2 Mbps。

    RHAI

    Hyper increase阶段的增速值,默认为8 Mbps。

    DCQCN算法RP端常用参数说明如表2所示。