跳到主要内容

四层(传输层)与七层(应用层) —— Dstat 对比

四层与七层描述 DDoS 测试的两个不同平面,衡量单位不同,防护方式也不同。

四层(传输层)

  • 以带宽(Gbps)与每秒数据包(pps)衡量。
  • 冲击链路与设备的原始 TCP/UDP 承载能力。
  • 通常靠上游清洗与冗余带宽缓解。

七层(应用层)

  • 以每秒请求数(RPS)衡量。
  • 冲击应用层/CPU 处理 HTTP 的成本。
  • 靠 WAF、JS 挑战、验证码与限速缓解。

两层在 Dstat 图表上的表现

Layer4 Dstat 绘制的是带宽与包速率。无论数据包是否携带有效的应用层载荷,只要 TCP/UDP 数据包到达边缘,曲线就会随之上升。链路饱和表现为曲线在链路上限处形成平台:额外流量不再抬高曲线,因为链路已无法承载更多。

Layer7 Dstat 绘制的是每秒 HTTP 请求数,在受保护目标上进一步区分为通过、绕过与拦截。相同的攻击量在不同防护前会呈现出差异明显的曲线:无防护端点只显示一条高位曲线,而启用挑战的端点则显示高位的入站曲线与贴近零的绕过曲线。

应先测试哪一层

当问题是网络路径能否承载预期流量时,先测四层:托管容量、上游清洗与边缘过滤都可通过带宽与 pps 数值验证。在已饱和的链路上进行七层测试,测出的是链路而非应用。

当网络路径已确认可承载、问题转为应用及其防护在请求洪泛下的行为时,再测七层。WAF 规则、JS 挑战、验证码与限速都在此层评估,通过 / 绕过 / 拦截的细分也在此层提供最多信息。

结论

用 Layer4 Dstat 衡量链路饱和度,用 Layer7 Dstat 衡量应用防护在请求洪泛下的表现。

常见问题

一个 Dstat 能同时显示四层与七层吗?

不能。两层的单位不同——带宽与 pps 对应每秒请求数——因此分别绘制为独立的 Dstat。本站的实时页面均为 Layer7 Dstat;Layer4 指南说明了 Layer4 Dstat 的读法。

七层防护对四层洪泛有帮助吗?

没有。JS 挑战、验证码与限速作用于 HTTP 请求。TCP/UDP 洪泛在任何 HTTP 处理之前就已在网络边缘被吸收或丢弃,因此必须依靠上游容量与清洗来缓解。

为什么 Layer4 Dstat 报 Gbps,Layer7 Dstat 报 RPS?

因为单位对应各层被耗尽的资源。四层洪泛耗尽链路与设备容量,以比特与数据包衡量;七层洪泛耗尽每个请求所占用的应用与 CPU 时间,以请求数衡量。

相关