RED测试方法总结
- 格式:doc
- 大小:95.00 KB
- 文档页数:4
RED测试方法总结 内部公开
2006-10-28 华为三康机密,未经许可不得扩散 第1页, 共4页
RED测试方法总结
吴频 01070
RED(Random Early Detect)是一种拥塞检测机制,我们可以定义某类流在队列超过一定长度后预先按照比例随机丢弃。RED的基本原理,大家可以查阅相关文档,此处只对测试方法进行一个总结。测试组网图如下:
LanswitchSmartbitsPort1Port2Port3
图1 RED测试组网图
由于RED的丢弃机制,我们无法完全定量测试出RED的效果,因此测试过程中,首先测试出不配置RED时的丢弃结果,然后测试配置RED后的丢弃结果,进行比较。RED的丢弃发生在队列完全拥塞之前,因此RED丢弃的报文要比一般情况多。
需要重点强调的是,整个测试过程中(包括不配置RED和配置RED的测试)都需要打开RDRAM。
1 不配置RED时的丢弃情况
如图1,假设Port1、Port2、Port3连接的都是百兆口,我们从Port1线速打入1,000,000个64Byte的报文从Port3输出,在打入这1,000,000个包的同时,从Port2线速打入10,000个64Byte的报文,也从Port3输出。
由于RDRAM的长度足够存储这10,000个包,所以看到的结果是Port3接收到1,010,000个包,没有任何报文的丢弃。据此,我们可以不断增长Port2打入的报文数,测试出丢包的临 RED测试方法总结 内部公开
2006-10-28 华为三康机密,未经许可不得扩散 第2页, 共4页
界值,从而测出RDRAM的长度,测试结果如下:
表1 不配置RED的丢包情况
Port2 10,000 100,000 200,000 400,000 500,000 600,000 700,000
Port3 1,010,000 1,100,000 1,200,000 1,400,000 1,500,000 1,503,662 1,503,393
很明显,被测设备的RDRAM长度只能存储503,000(MAX[Port3] - Port1)左右个报文,可以计算出RDRAM的长度:
503,000 × 64 × 8 ≈ 256M
2 配置RED时的丢弃情况
2.1 队列长度对RED丢弃的影响
测试条件和不配置RED时的情况一样(Port1打入1,000,000个,Port2打入10,000个),不同的是,我们必须配置Port1和Port2两个端口的流进行RED,为了有很好的比较性,需要Port1和Port2打入的流满足同一条rule,同时进行RED。测试时为了能够明显地看到RED丢弃情况,我们一般设置从队列长度=0开始RED丢包,当固定一个丢包率时,随着结束RED丢包的队列长度不断增加,丢弃的报文越少,也就是通过的报文越多。下面是开始长度=0,丢包概率为100%时的测试结果:
表2 起始丢弃队列长度为0,丢包概率100%的丢包情况
结束长度 16K 32K 64K 128K 512K 1024K 2048K
Port3 1,000,257 1,000,513 1,001,025 1,002,049 1,008,192 1,008,192 1,008,192
从测试结果中可以反映出设置的丢弃队列的长度(结束丢弃队列长度小于512K),因为当Port2打入的报文速度比较快时,拥塞的报文迅速占满了RED的队列,超过队列的报文都被全部丢弃,只有存储在RED队列长度内的报文才会被最终转发出来。但是我们看到,队列长度增加到一定值以后(结束丢弃队列长度大于512K),通过的报文不再增加,这是因为我们的配置是当队列长度大于0时就开始RED丢弃,也就是说一开始就会有报文被丢掉,无论怎么增加结束RED丢弃的队列长度,都无法让所有的报文通过,而是维持在一个固定值,这 RED测试方法总结 内部公开
2006-10-28 华为三康机密,未经许可不得扩散 第3页, 共4页
个值就是当前RED配置情况下的最大可以通过的报文数。
接下来需要测试的是开始丢弃队列长度不为0的情况,为了和开始丢弃长度为0的情况进行比较,我们只测试相应丢弃长度时的值,测试结果如下:
表3 起始丢包队列长度不为0,丢包概率100%的情况
开始长度 16K 32K 64K 128K 512K 1024K 2048K
结束长度 32K 64K 128K 512K 1024K 2048K 4096K
Port3 1,000,385 1,000,641 1,001,153 1,002,177 1,008,321 1,010,000 1,010,000
很明显,当我们设置的起始丢包长度超过10,000个报文缓存的空间时(625K),就不会出现任何的丢包。
2.2 丢弃概率对RED丢弃的影响
以上我们测试的都是设置丢包概率为100%情况,下面关注的是RED丢弃和丢弃概率的关系。首先从表3种选择一个比较明显的队列段进行测试,经过反复的尝试,选择了起始长度128K、结束长度512K进行测试,结果如下:
表4 起始长度128K,结束长度512K时不同丢包概率下的丢包情况
丢包概率 0 1% 2% 3% 4% 5% 100%
Port3 1,008,312 1,005,706 1,003,327 1,002,537 1,002,177 1,002,177
1,002,177
测试结果表明:当丢包概率超过4%以后,丢弃报文的数量就保持不变,说明该配置情况下报文丢弃数量对丢包概率特别敏感,以至于命令行的精度没有充分使用到。为了充分测试到命令行(0 – 100%)范围内的变化,就需要降低报文丢弃数量对丢包概率的敏感性,这个可以通过扩大起始丢包队列长度与结束丢包队列长度的差距来做到,下面测试出起始长度128K,结束长度262128K(命令行可配置的最大值)的丢包情况:
表5 起始长度128K,结束长度262128K时不同丢包概率下的丢包情况
丢包概率 0 10% 20% 40% 60% 80% 100%
Port3 1,010,000 1,009,771 1,009,662 1,009,280 1,008,856 1,008,611 1,008,182 RED测试方法总结 内部公开
2006-10-28 华为三康机密,未经许可不得扩散 第4页, 共4页
效果很明显,当我们扩大起始丢弃队列长度和结束丢弃队列长度的差距后,能看见丢包数目随着丢弃概率的增大而增大。