风暴
风暴 界面是一个负载源:它按您要求的速率、在您要求的时间内,向一个目标发送 UDP 数据报,或打开 TCP 连接,并计量实际发出的内容。用它来查看您自己的服务器、设备或链路在洪泛下能否撑住——它是否持续应答、丢弃数据包,还是崩溃。
负责任地使用
风暴会向真实主机发送真实流量。只把它指向您拥有或获准测试的主机和网络。高速率可能占满链路上所有人的带宽,并触发入侵检测。引擎不限制风暴的速率:0 表示本机所能达到的最快速度。
启动风暴
- 设置 目标(主机:端口):要发送到的
IP:port或host:port,例如127.0.0.1:9000或test-rig.local:9000。主机名在您启动时解析,有 IPv4 地址时取用其 IPv4 地址。 - 选择 协议:UDP 洪泛 或 TCP 连接洪泛。
- 设置 载荷(字节)、速率(pps) 和 时长(s)。
- 按 启动风暴。
风暴作为一个任务运行:它会显示在控制台的任务条中,并在时长结束时、您按 停止风暴 时,或用 全部停止 时停止。运行期间字段是固定的。
| 字段 | 内容 | 默认值 |
|---|---|---|
| 目标(主机:端口) | 目标的 IP:port 或 host:port。 | 127.0.0.1:9000 |
| 协议 | UDP 洪泛:各自独立的数据报。TCP 连接洪泛:每个“数据包”新建一个 TCP 连接。 | UDP 洪泛 |
| 载荷(字节) | 每个数据报或连接中的字节数,1–65 507。更大或更小的值会被调整到该范围内。 | 512 |
| 速率(pps) | 目标数据包(或连接)数每秒。0:尽可能快。 | 1000 |
| 时长(s) | 运行的秒数。0:直到您停止它。 | 10 |
UDP 洪泛
Signal Lab 从自己的一个端口向目标发送载荷大小的数据报,每个字节都是 0x55。系统拒绝的发送计为错误——例如在目标应答该端口上没有程序监听之后。
TCP 连接洪泛
对于每个“数据包”,Signal Lab 向目标打开一个 TCP 连接,写入载荷,然后关闭它。连接是一个接一个建立的,而不是同时建立,因此 TCP 风暴能达到的速率受目标接受连接的速度限制。被拒绝,或在 500 ms 内未被接受的连接计为错误;接收了载荷的连接计为一个数据包。
速率如何保持
速率是一份时间表。第一个数据包立即发出,第 n 个数据包应在开始后 n ÷ 速率(pps) 秒发出。风暴每次醒来时发送到期的内容,然后休眠到下一个数据包到期。因此每秒 50 就是每秒 50,250 就是 250——一次一秒的运行会发送大约这么多——无论系统定时器的粒度如何。时长(s) 会准时结束风暴,即使下一个数据包要到更晚才到期。
风暴绝不会为了弥补损失的时间而超过其速率发送。如果本机,或接受缓慢的 TCP 目标落后超过 256 个数据包,较旧的那些会从时间表中丢弃,而不是在突发中延迟发送。PPS 显示实际达到的速率。
当 速率(pps) 为 0 时没有时间表:风暴发送 256 个数据包,让其他工作运行,再发送接下来的 256 个,以本机所能达到的最快速度。
读取吞吐量
实时吞吐量 每秒更新四次:
| 指标 | 内容 |
|---|---|
| 数据包 | 自开始以来发送的数据报数,或接收了载荷的连接数。 |
| PPS | 过去四分之一秒内每秒的数据包数。 |
| 速率 | 过去四分之一秒内载荷的兆比特每秒。标头(IP、UDP、TCP)不计入。 |
| 数据量 | 自开始以来发送的载荷字节数。 |
| 错误 | 失败的发送或连接。 |
它们下方的图表绘制过去一分钟的 PPS。
风暴结束时,计数器显示最终总计,PPS 和 速率 归零。
这些数字告诉您什么:
- UDP 下 PPS 远低于 速率(pps):本机无法发送得更快。请降低速率或载荷大小。
- UDP 下 错误 上升:目标的端口已关闭,或网络拒绝该流量。
- TCP 下 错误 上升:目标拒绝连接,或接受连接的时间超过 500 ms——它可能已达到其上限。
风暴说明发出了多少,而不是到达了多少。要查看目标接收了什么,请观察它:它自己的日志、一个 OSC 监视器,或用模拟器代替它。
在检查器中
捕获开启时,UDP 风暴每秒把一个数据报放入检查器,标为 sampled 1/s——它们全都相同。判定还会说明自上一个以来有多少被省略,形式为 sampled 1/s · +999 not shown。TCP 风暴不放入任何内容。