[关闭]
@EggGump 2019-03-12T20:38:21.000000Z 字数 1864 阅读 887

Automatic test packet generation

security

Zeng H , Kazemian P , Varghese G , et al. Automatic test packet generation[C]// International Conference on Emerging Networking Experiments & Technologies. IEEE, 2012.

背景分析

当前特别需要自动化的网络测试工具

概念

测试包生成算法过程

step1:生成一个all-pairs reachability table
ACFSq1.png
举个例子:
AiF5SU.md.png
图6所示,如果在处注入all-x test packets,包会通过A传递,它会将10.0/16发送到B,将10.1/16发送到C,B再将10.0/16,tcp=80发送到,C发送10.1/16到,在表4第一行可见。
AikdB9.md.png
step2:抽样,抽取测试包,使每一个rule都会被至少一个包测试到。
step3:压缩,找到一个最小的测试包集,它们的rule history可以覆盖所有的rule(经典的最小集覆盖问题,可由贪心算法求得。)

错误定位算法

基本定义

定义:R(r,pk) = 1,(包pk在规则r下成功验证) 否则 R(r,pk)=0
包在规则下验证失败有两种情况:行为错误,包头匹配错误,这里只考虑行为错误(包被错误地处理)。我们只能在边缘观察到包,所以重新定义:

算法过程

测试用例

功能测试

性能测试

阻塞:对每一对终端进行延迟测量,若延迟大于某个阈值,则定位延迟链路。
可用带宽:对每一个链路,队列,或服务类构造测试包进行测试(iperf/netperf或其他测试方法),可用带宽不应低于某一阈值。
严格的优先级:利用测试包阻塞低优先级类,再测试高优先级类,其带宽不应变化。

实现

测试包生成

使用python编写测试包生成器生成All-pairs reachability包,并用Min-Set-Cover算法获得包含所有测试规则的最小测试包。

网络监控器

假设前提是网络上有测试代理,网络监控器构造测试包,并指导代理发送测试包,代理通过IP proto域或TCP/UDP端口号区分测试包。如果测试失败,则从保留包集中选择其他测试包来定位错误。

可选实现

evaluation

在i7,3.2GHz,6G memory,8线程运行ATPG工具,在stanford 和Internet2两个网络中进行测试。
规则重复率的累积分布函数:
AitDLd.md.png

在模拟网络中测试

使用mininet模拟网络,并使用仿真主机发送和接收由ATPG生成的测试包。
AiNFfK.md.png
* 交付错误:手动替换交付规则观察结果
* 阻塞:限制链路30M/s,创建两个20M/s的UDP flow观察吞吐量,如图9左下,延迟如图9右下。
* 可用带宽:使用之前的链路,把UDP流降低至20M/s,并使用Pathload监控链路带宽,可以找到该链路瓶颈:bbra-yoza。
* 优先级:重复阻塞实验,当低优先级阻塞时,高优先级测试不受影响,高优先级阻塞时,均阻塞。
AiaeII.md.png

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注