跳转至

Wi-Fi Goes to Town: Rapid Picocell Switching for Wireless Transit Networks

1. 背景

论文设想的场景是:车、地铁上的通勤者想要高速上网,比如看视频、开视频会议。

提升无线网络容量最有效的办法,历史上一直是把小区做小。原因是: 同一段频谱在相邻小区里可以重复使用:小区越小,同样一条路上能放的 AP 越多,总容量就越大。 过去几十年无线容量的增长,大部分就来自这一点。

到 2016–2017 年,Wi-Fi 芯片已经便宜到 5 美元左右,沿路每隔几米放一个 AP 在成本上变得可行。作者把这种覆盖范围只有几米的小 AP 叫做 picocell(微微小区)

alt text

2. 问题: 车速 + 米级小区, Wi-Fi 切换跟不上

把小区做小有一个直接代价:车穿过一个小区的时间极短。按 25 mph(约 40 km/h)、小区约 5 m 算,车在每个 AP 下只待约 0.5 秒。

更麻烦的是,"哪个 AP 信号最好"不是平滑变化的,而是每隔几毫秒就会变。这来自两个叠加的原因:

alt text

  • 慢变化:车离某个 AP 越来越远,信号随之逐渐变弱
  • 快变化(多径衰落):无线信号会经过地面、墙壁、车身的反射,从多条路径到达接收端
    • 这些信号叠加时有时互相加强,有时互相抵消,导致位置只差几厘米,信号强度就会剧烈跳变
    • 车一动起来,这种跳变就以毫秒为单位发生

现有的 Wi-Fi 漫游标准(802.11r/k)是由手机自己决定何时切换的,而且要观察好几秒的信号强度历史才做决定。这在步行和大小区的场景下够用,但在这里完全跟不上。作者实测发现:

  • 20 mph 时切换直接失败,网络中断
  • 5 mph 时能切换过去,但切得太晚,长时间挂在信号很差的 AP 上

为什么这个问题重要:如果切换跟不上,小区做小带来的容量增益就拿不到,只能退回大小区。这等于放弃了最有效的扩容手段。

3. 动机: 为什么现在能解决

作者看到两个趋势,使这个问题第一次有了解决的条件:

  1. AP 能快速判断信道好坏
    • 已有研究表明,普通商用 AP 可以从收到的每个包中测出 精细的信道信息(CSI,即信号在各个频率分量上的强弱情况)
    • 从而快速判断 "哪个 AP 现在最适合给这辆车发包"
    • alt text
  2. AP 便宜到可以密集部署

再加上一个关键条件: AP 之间以及 AP 与控制器之间是有线连接,延迟不到 1 ms,比无线信道变化得还快

这意味着: 网络侧有能力在毫秒级做集中决策

4. 方法论: 从"切换"换成"选路"

这篇文章最核心的思路转变是:不把问题当成"切换",而是当成"每个包选一条最好的路"

传统切换的含义是断开旧连接、建立新连接,代价大,所以不能频繁做。WGTT 的做法是:

  • 让车同时连着所有 AP。所有 AP 使用同一个网络身份,在手机看来只有一个 AP
    • 手机端完全不用改,也感知不到任何切换
    • 这个跟 WiFi-MPTCP 很像
  • 由网络侧集中决定
    • 不再由手机慢慢判断,而是由一个控制器根据实时信道质量,随时决定由哪个 AP 发下一批包
  • 利用多个 AP 同时能听到车这一点
    • 多个 AP 都在车附近,这种"路径多样性"在传统方案里是需要处理的麻烦,在这里反而成了资源

5. 设计

整体架构:路边一排 AP,通过有线网络连到一个就近的控制器,控制器再连到互联网

alt text

核心设计有三块:

(1) 选 AP:谁信号好让谁发

每个 AP 从车发出的包中测量信道质量,并报告给控制器。这里用的指标叫 ESNR,它比普通的"信号强度"更能准确预测包能不能成功送达。

控制器比较各 AP 最近 10 ms 内 ESNR 的中位数,选出最好的那个。

(2) 下行快速切换:数据提前铺好,切换只传一个序号(最核心)

控制器把每个发往车的包同时复制给附近所有 AP,但只让选中的那个 AP 真正发送,其他 AP 把包排队待命。

要换 AP 时,旧 AP 只需告诉新 AP 一句话:"我发到第 k 个包了。"新 AP 手里本来就有这些包,直接从第 k 个接着发即可,不需要临时搬运数据。

这顺带解决了一个隐藏问题:旧 AP 队列里往往积压了上千个包,如果不处理,它会在已经变差的链路上继续硬发。

Danger

笔者认为 "同时复制给附近所有 AP" 这一点比较扯

(3) 上行:多个 AP 一起接收

车发出的包,任何一个听到的 AP 都会转给控制器,控制器再去掉重复的包。这样即使某一条链路丢包,其他 AP 也可能收到,上行丢包率因此大幅降低

Wi-Fi 里还有一种确认帧叫 Block ACK,作用是一次性确认一批包是否收到。正在发数据的 AP 如果没收到这个确认,就会把整批包重传。

WGTT 让其他 AP 把偷听到的 Block ACK 转发给正在发数据的 AP,从而避免这类不必要的重传


总体来说, 笔者认为本文 系统架构图/半实物仿真图 绘制的很好看; 至于设计理念之类的, 笔者持保守态度

alt text

alt text

alt text

alt text

设计理念, 总体来说, 属于 WiFi-w/o-Fasthandover 中提到的 "企业网中的切换优化(无线控制器)" 类别