跳转至

Law: Towards Consistent Low Latency in 802.11 Home Networks

Note

笔者认为文章有点水...

这篇文章针对 Wi-Fi 网络中高尾部延迟的问题,提出了一种名为 Law (Latency-bounded Wi-Fi) 的新型 802.11 链路层架构

(1) Background & Motivation

  • 端到端延迟的瓶颈转移

    • 随着云游戏、混合现实(MR)和视频会议等超低延迟应用的发展,以及边缘服务器和 CDN 的部署,端到端的网络往返时间(RTT)已经大幅降低
    • 在此背景下,Wi-Fi “最后一跳”的延迟波动(经常飙升至 100ms 以上)已成为主导整个端到端延迟波动的核心瓶颈(占 90% 以上)
    • alt text
  • 现有 Wi-Fi 链路层设计的致命缺陷:作者指出,现有的 802.11 Wi-Fi 系统在设计上天然不适合超低延迟应用,主要原因有三点

    1. 过度复杂的层级队列结构 (Overcomplicated hierarchical queueing structure)
      1. 系统包含 MAC 子系统、驱动层和网卡(NIC)硬件三层独立的队列和调度器
      2. 这种设计导致队列间难以协同,极难精准控制每个数据包的排队延迟
      3. alt text
      4. alt text
    2. 延迟不敏感的重传管理 (Delay-insensitive retry management)
      1. 当传输失败时,驱动和硬件会盲目进行大量重传(如高通 ath9k 驱动默认重传高达 31 次),耗费数百毫秒,导致后续数据包被严重阻塞(队头阻塞)
    3. 无视队列的速率自适应 (Queue-agnostic rate adaptation)
      1. 现有的速率自适应算法(RAA)仅根据信道质量调整速率,当信道变差时盲目降低速率
      2. 这会导致数据包在发送前在队列中大量积压,从而引发极高的排队延迟

(2) Key Observation

  • 应用层的“容损能力” (Loss-tolerance)
    • 现代超低延迟视频流在应用层(如 WebRTC)具备一定的数据包恢复能力,例如: 前向纠错(FEC)和视频编解码器的错误隐藏机制
  • 丢包优于阻塞
    • 对于超低延迟应用而言: 在链路层果断丢弃那些注定会导致高延迟的数据包,反而比让它们无限期重传并阻塞后续数据流更有利
    • 只要丢包率控制在应用层可恢复的范围内,就能以微小的丢包代价换取尾部延迟的大幅下降 (这个思想跟 AQM 有点像)

(3) Core Design of Law

Law 通过实施“有界延迟”(Bounded Latency)原则,确保数据包在链路层的停留时间不超过设定的上限

  • 重塑队列结构 (Queueing Structure Reshaping)

    • Law 打破了原有的三层结构,将 MAC 层流队列向下合并到驱动层,去除了驱动层的重传队列,并将硬件队列的容量极小化(最多只保留 2 个 PSDU)
    • 通过单一的集中式队列,Law 为驱动队列设置了整体延迟上限 (\(Limit_q\)),为硬件传输设置了单次传输时间上限 (\(Limit_h\)),一旦超时便主动丢弃或停止重传
    • alt text
  • 细粒度的速率与重传联合控制 (Rate and Retransmission Control)

    • 不使用固定的重传阈值,而是针对每一次“传输机会”(Per transmission opportunity)动态调整数据速率和重传限制
    • 设计了三种状态机:
      • 稳定 (Stable)、探测 (Probing) 和清理 (Cleanup)
      • alt text
      • 当检测到数据包排队延迟升高或积压超过网络容量时,进入清理状态,此时系统会严格限制重传,甚至快速丢包以疏通队列
  • 处理丢包模式 (Handling Loss Pattern)

    • 为了防止连续丢包超出应用层 FEC 的恢复极限,Law 监控连续丢包情况:
      • 如果连续丢失 3 个包,Law 会为当前数据包增加额外的软件重传次数,作为双重保险,确保丢包模式对上层应用友好