1. 卫星组网数据转发与拥塞控制导论
卫星组网数据转发与拥塞控制,研究的是在一个由多颗卫星、地面信关站和用户终端共同构成的动态网络中,数据包如何从源端可靠、高效地送达目的端,并在链路资源紧张时避免网络整体性能崩塌。它与地面互联网的核心差异在于:拓扑持续变化、链路时延大且不对称、星上计算与存储资源受限、链路误码率随天气与仰角波动。理解这些约束,是后续学习路由算法、转发策略和拥塞控制机制的前提。
课程目标与能力定位
本课程希望学习者最终具备三类能力。第一是建模能力:能把一个具体的卫星星座抽象成节点、链路、容量、时延和连通窗口构成的网络模型。第二是机制设计能力:能针对星间链路、星地链路的不同特性,选择合适的转发与拥塞控制策略,并说明其适用边界。第三是分析与验证能力:能通过队列长度、吞吐量、丢包率、端到端时延等指标判断网络是否处于稳定工作点,并定位瓶颈所在。
卫星网络拓扑类型
从组网结构看,常见拓扑可归纳为四类,它们在连通性和转发复杂度上差异明显。
- 星地单跳星形拓扑:用户终端只与一颗卫星通信,卫星再落地到信关站。结构简单,转发只需一跳,但覆盖依赖地面站分布,偏远地区难以服务。
- 星间链路网状拓扑:卫星之间通过星间链路(ISL)互连,形成类似网格的骨干。数据可在天上多跳转发,减少对地面站的依赖,但拓扑随轨道运动不断变化,路由需要频繁更新。
- 混合分层拓扑:由高轨卫星承担骨干汇聚、低轨卫星承担接入,形成分层结构。高轨节点相对静止,适合做长期路由锚点;低轨节点数量多、移动快,适合提供高容量接入。
- 按需组网拓扑:卫星之间根据任务临时建立链路,例如应急通信或特定区域增强覆盖。灵活性高,但链路建立与维护开销大。
选择拓扑时,需要同时考虑覆盖范围、时延预算、星上功耗和链路切换频率。例如低轨星座单跳时延约几毫秒,但卫星过顶时间只有几分钟,切换频繁;高轨单跳时延约 120 毫秒,但覆盖稳定、切换少。
数据转发与拥塞控制的基本问题
数据转发要解决的核心问题是“下一跳选谁”。在卫星网络中,这个问题比地面网络更棘手,因为邻居集合随时间变化。以一颗低轨卫星为例,它可能同时与前后左右四颗同轨道或异轨道卫星保持星间链路,但其中某条链路会在十几分钟后因相对运动而断开。转发决策必须同时考虑链路剩余存活时间、队列占用和传播时延。
拥塞控制要解决的核心问题是“发多快”。卫星链路的带宽时延积很大:一条 10 Mbps、单跳 120 ms 的高轨链路,带宽时延积约为 150 KB。这意味着发送方需要维持大量在途数据才能填满链路,但一旦链路因降雨衰减导致容量下降,队列会迅速堆积。若仍按原速率发送,端到端时延会从 120 ms 膨胀到数秒,甚至触发大量丢包。
两类问题相互耦合:转发路径的频繁切换会造成路由震荡,使拥塞控制难以获得稳定的往返时延估计;而拥塞窗口的剧烈变化又会影响转发队列的稳定性。因此,实际系统通常需要把路由度量与拥塞信号联合考虑,例如将链路队列长度作为路由代价的一部分。
示例:一条低轨转发链路的时延构成
假设源终端经一颗低轨卫星、两跳星间链路、再经一颗低轨卫星落地到信关站。取单跳星间传播时延约 5 ms,星上处理与排队时延约 2 ms,星地传播时延约 3 ms。则端到端单向时延约为:3 + 2 + 5 + 2 + 5 + 2 + 3 = 22 ms。若某跳星间链路队列积压 50 个 1500 字节分组,按 10 Mbps 出队速率,额外排队时延约 50 × 1500 × 8 / 10^7 ≈ 60 ms,端到端时延将升至约 82 ms。这个对比说明,队列管理对卫星转发性能的影响可能远大于传播时延本身。
典型应用场景与挑战
卫星组网数据转发的典型场景包括:偏远地区宽带接入、海洋与航空通信、应急救灾通信、物联网数据回传以及星座内部的数据中继。不同场景对转发和拥塞控制的要求不同。应急场景强调快速建链和抗毁性,允许一定时延但要求高送达率;宽带接入场景强调吞吐量和公平性;物联网回传则往往是小包、低频次、大量终端,拥塞控制需要避免小包频繁触发慢启动。
主要挑战可以归纳为四点。第一,拓扑动态性:链路通断频繁,路由表需要快速收敛,否则会出现黑洞或环路。第二,长时延与大带宽时延积:传统 TCP 的慢启动和拥塞避免在卫星链路上收敛慢,窗口增长滞后于可用带宽变化。第三,链路质量波动:雨衰、云层和天线指向误差会造成误码率上升,丢包不一定代表拥塞,若按丢包判拥塞会导致吞吐量被错误压低。第四,星上资源受限:处理器、内存和功耗有限,复杂的逐包调度和全局状态维护难以在星上长期运行。
学习建议:后续章节中遇到任何转发或拥塞控制算法时,都可以回到本节这四个挑战来检验:它是否处理了拓扑变化?是否适应大带宽时延积?是否能区分拥塞丢包与链路误码?计算和存储开销是否适合星上部署?
从工程实践角度看,一个可运行的卫星转发与拥塞控制系统通常需要三类输入:星座轨道参数与链路可见性预测、链路容量与误码状态、以及各节点队列占用情况。输出则是下一跳选择、发送速率调整和队列调度决策。判断系统是否工作正常,可以观察端到端时延是否稳定在传播时延加合理排队时延的范围内、吞吐量是否接近链路容量、以及丢包是否集中在链路切换窗口而非持续发生。这些观察点将贯穿本课程后续的算法分析与实验环节。