如何看懂 Layer4 Dstat
Layer4 Dstat 用两个数字同时描述一次洪泛:带宽与包速率。两者对照阅读,可以看出到达的是哪类流量,以及瓶颈在目标本身还是其前端网络。本文逐一说明两条曲线、平均包长的算法,以及如何解读峰值与骤降。
两条曲线,两种上限
带宽以 Gbps 计,表示每秒到达的数据量;包速率以 pps 计,表示每秒到达的数据包个数。两者限制的对象不同:带宽占满的是链路,包速率压的是路由器、防火墙与网卡,这些设备每秒能处理的包数都有限。目标可能在一条曲线看似平静、另一条却已告急时出问题。
估算平均包长
用带宽除以包速率即得平均包长。在 10 Gbps、1,000,000 pps 时,平均每个包 1,250 字节(10,000,000,000 比特 ÷ 8 ÷ 1,000,000 个包);在同样 10 Gbps、10,000,000 pps 时则为 125 字节。
大包指向带宽型洪泛,如 UDP 或反射放大;小包指向包数型洪泛,如 SYN Flood。包长只是线索而非定论,因为攻击者可以混用不同大小的包。
峰值、平台与骤降
图上方的核心数字是窗口峰值,即滚动窗口内带宽与包速率各自达到的峰值。峰值表示目标受到的冲击有多大,平台表示目标持续承载了多久。
曲线骤降可能是攻击停止、上游清洗开始过滤,也可能是链路饱和导致流量不再到达。判断前,先确认目标是否仍有响应。
四层看不到的部分
Layer4 Dstat 看到的是体量,而非内容。它无法区分正常包与恶意包,也不显示应用是否仍在响应请求。如需这部分信息,可与 Layer7 Dstat 对照:后者统计 HTTP 请求,并区分通过、绕过与拦截。
看懂 Layer4 Dstat —— 常见问题
为什么 Layer4 Dstat 同时显示 Gbps 与 pps?
两者衡量不同的上限。带宽反映链路被占用的程度,包速率反映路由器与防火墙的负担。小包洪泛可能耗尽后者,而几乎不推动前者。
如何估算平均包长?
先把带宽换算成每秒比特数,除以 8 得到每秒字节数,再除以包速率。例如 10 Gbps、1,000,000 pps,平均每个包为 1,250 字节。
曲线下降是否代表攻击结束?
不一定。也可能是上游清洗开始过滤,或链路饱和后不再接收流量。确认目标是否仍有响应,即可区分这几种情况。