波长分配问题:RWA 的定义与约束
RWA,全称是 Routing and Wavelength Assignment。说白了,就是给光信号找一条路,再给它分一个颜色(波长)。
我刚开始接触这个领域时,觉得这不就是个路径规划加资源分配嘛,能有多复杂?后来在现网里栽过跟头才明白——RWA 是光网络的大脑,搞不好,整个网络就乱套了。
RWA 问题的核心定义
RWA 要解决两件事:
- 路由(Routing):从源节点到宿节点,找一条物理路径。
- 波长分配(Wavelength Assignment):在这条路径的每一段光纤上,分配同一个波长。
这两个步骤是绑在一起的。你不能先定死路由再随便挑波长,那样很容易撞车。我习惯的做法是——把路由和波长放在一个框架里同时考虑,虽然计算量大了点,但结果靠谱得多。
一句话总结:RWA = 找路 + 选颜色,两个动作必须协同。
两大硬约束:波长连续性与冲突避免
做 RWA 绕不开两个约束条件。嗯,这里要重点讲,因为我在项目中见过太多人在这上面翻车。
1. 波长连续性约束
什么意思?一条光通路从起点到终点,经过的所有光纤段上,必须使用同一个波长。
举个例子:从北京到上海,中间经过济南、南京两个中继站。你在北京到济南这段用了 λ1,那么济南到南京、南京到上海也必须用 λ1。不能中途换波长。
为什么会有这个约束?因为早期光网络没有波长转换器。信号进来是什么波长,出去还是什么波长。虽然现在有 OEO 转换了,但成本高、时延大,实际部署中能不用就不用。
我的经验:在规划阶段,尽量假设没有波长转换器。这样设计出来的方案更鲁棒。如果后期确实需要,再在关键节点加 OEO 也不迟。
2. 冲突避免约束
这个好理解——同一根光纤上,同一时刻,同一个波长不能被两条光通路占用。
你想想看,如果两条业务都在 λ1 上跑,到了同一个光放大器那里,信号就打架了。轻则误码率飙升,重则直接断业务。
冲突避免有两种场景:
- 链路冲突:两条光通路共享同一段光纤,不能使用相同波长。
- 节点冲突:两条光通路在同一个节点交叉,如果波长相同,也会产生干扰。
避坑指南:我曾经在某个骨干网项目中,只检查了链路冲突,忽略了节点冲突。结果业务割接后,某个 OXC 节点内部出现波长串扰,查了两天才定位到问题。从那以后,我要求团队必须做全路径的波长冲突检查。
图论建模:把 RWA 变成数学问题
光网络工程师的日常工作,其实就是在跟图打交道。把物理网络抽象成图,RWA 就变成了图论问题。
基本建模方法
我通常这样建模:
- 节点:代表 OXC、ROADM 或业务接入点。
- 边:代表光纤链路,每条边附带一个可用波长集合。
- 权重:可以是距离、时延、跳数或代价。
这样一来,找路由就是找最短路径,波长分配就是给路径上的每条边分配一个公共颜色。
波长分层图模型
这是我最喜欢用的模型。思路很简单:把每个波长当成一层,每一层都是一个完整的网络拓扑。
假设网络有 80 个波长,那就复制 80 份拓扑图。每层只允许使用对应的波长。找路的时候,在每一层里独立跑最短路径算法。如果某一层能找到路径,那就同时解决了路由和波长分配。
优点:路由和波长分配一步到位,天然满足波长连续性约束。
缺点:内存开销大,80 个波长就要维护 80 张图。
辅助图模型
如果觉得分层图太费资源,可以用辅助图。把所有可能的路径预计算出来,每条路径作为一个节点。如果两条路径共享光纤链路,就在它们之间连一条边。然后在这个辅助图上做波长分配。
这种方法适合网络拓扑相对固定的场景。我在某个城域网项目中用过,效果不错,计算速度比分层图快了一个数量级。
RWA 问题的分类
根据业务到达方式,RWA 可以分为两类。我分别说说它们的区别和适用场景。
| 类型 | 特点 | 适用场景 | 我常用的算法 |
|---|---|---|---|
| 静态 RWA | 所有业务提前已知,一次性规划 | 网络扩容、年度规划 | ILP(整数线性规划)、启发式算法 |
| 动态 RWA | 业务随机到达,实时分配 | 日常业务开通、故障恢复 | 首次命中 + 最短路径 |
静态 RWA 追求全局最优,但计算时间长。动态 RWA 要求快速响应,往往只能做到局部最优。我在实际项目中,通常把静态 RWA 的结果作为基线,动态 RWA 在基线基础上做微调。
一个小技巧:做动态 RWA 时,别每次都重新算全局。维护一个可用波长表,业务来时只查表,速度能快 10 倍以上。
RWA 的求解思路
RWA 是 NP-hard 问题,别指望能找到完美解。我一般分三步走:
- 路由预计算:用 K 最短路径算法,给每个节点对生成 3-5 条候选路径。
- 波长排序:把可用波长按优先级排序,比如按使用频率从低到高。
- 冲突检测:在候选路径上依次尝试分配波长,遇到冲突就换下一个。
这个方法不保证最优,但能在秒级给出可用解。对于大多数现网场景,够用了。
注意:K 值不是越大越好。K=3 通常就能覆盖 90% 以上的场景。K 太大反而会引入大量低质量路径,拖慢计算速度。
小结
RWA 是光网络规划的核心问题。波长连续性和冲突避免是两条硬杠杠,谁也绕不开。图论建模给了我们一套数学工具,把物理问题变成可计算的模型。
我个人觉得,理解 RWA 的关键不在于记住多少算法,而在于建立一种直觉——看到一张网络拓扑,就能大致判断出哪些路径容易分配波长,哪些波长容易产生冲突。这种直觉,是在一次次排障和优化中慢慢养成的。