4. 虚拟链路与带宽分配概念
在机载网络(如 AFDX 或 TTEthernet)中,物理链路是所有终端共享的传输介质,而真正决定“谁在什么时候能发多少数据”的,是一组逻辑上的约束机制。虚拟链路(Virtual Link,VL)就是这套约束机制的核心抽象:它把一条物理链路切分成多条逻辑上的单向数据通道,每条通道拥有独立的带宽上限、帧长限制和缓冲资源。理解 VL 及其配套参数,是后续做流量规划和带宽验证的前提。
虚拟链路:逻辑上的单向管道
虚拟链路是一条从源端系统(End System)到目的端系统(或一组目的端)的单向逻辑连接。它并不对应某根具体的线缆,而是由发送端、接收端、路径和一组流量参数共同定义。在 AFDX 中,每条 VL 由唯一的 VL ID 标识,交换机根据 VL ID 查表转发,而不是根据目的 MAC 地址泛洪。这意味着:
- VL 是单向的,双向通信需要两条方向相反的 VL;
- VL 的路径在配置阶段静态确定,运行时不动态改路;
- 同一条物理链路上可以复用成百上千条 VL,它们互不干扰地共享带宽。
可以把物理链路想象成一条多车道高速公路,VL 就是划分出来的车道。每条车道限速、限车型,但所有车道共用同一段路面。规划的任务,就是给每条车道分配合理的限速,使总流量不超过路面容量。
带宽分配间隔 BAG:发送节拍
带宽分配间隔(Bandwidth Allocation Gap,BAG)是 VL 最关键的参数之一,单位是毫秒。它定义了该 VL 上相邻两帧起始时刻之间的最小时间间隔。换句话说,BAG 是这条 VL 的“发送节拍”:发送端不能比 BAG 更频繁地往这条 VL 上注入帧。
BAG 的取值是 2 的幂次毫秒,标准允许 1、2、4、8、16、32、64、128 ms。BAG 越小,允许的发送频率越高,能承载的带宽越大。例如 BAG=1 ms 的 VL,理论上每秒最多发 1000 帧;BAG=128 ms 的 VL,每秒最多约 7.8 帧。BAG 直接决定了 VL 的“节奏上限”,是带宽计算的分母。
最大帧长 Lmax:单帧容量上限
最大帧长(Lmax)是该 VL 上允许传输的最大以太网帧长度,单位字节。它约束了单帧能装多少数据。BAG 决定“多久发一次”,Lmax 决定“每次最多发多大”,两者相乘就得到这条 VL 的带宽上限:
VL 带宽上限 ≈ Lmax × 8 / BAG (bit/s)
示例:Lmax = 512 B,BAG = 4 ms
带宽上限 ≈ 512 × 8 / 0.004 = 1,024,000 bit/s ≈ 1.024 Mbit/s
注意这里算的是“上限”,实际平均流量取决于应用真正发了多少数据。规划时通常按上限预留,以保证最坏情况下也不超载。
令牌桶与信用量:把参数变成可执行的整形
BAG 和 Lmax 是“规则”,而真正在发送端执行这些规则的是令牌桶(Token Bucket)整形器。它的工作方式很直观:
- 桶里持续以固定速率积累“令牌”,这个速率由 BAG 和 Lmax 决定;
- 每发送一帧,就消耗与帧长成正比的令牌;
- 桶里令牌不够时,帧必须等待,直到令牌攒够才能发出。
桶的容量称为信用量(Credit)或桶深度。信用量决定了允许的“突发”程度:信用量大,可以短时间连发几帧;信用量小,发送就更平滑。在 AFDX 的规范模型中,信用量通常与 Lmax 挂钩,保证在任意 BAG 窗口内注入的流量不超过约定上限。信用量是 BAG 与 Lmax 之间的“缓冲垫”,它把离散的帧发送行为平滑成符合带宽约束的流量。
参数如何共同决定流量形态
下面这张图把一条 VL 从参数定义到实际发送节拍的关系串起来,帮助看清 BAG、Lmax、令牌桶和信用量之间的作用链。
参数之间的约束关系
这些参数不是孤立的,它们之间存在明确的约束。第一,BAG 与 Lmax 共同决定 VL 的带宽上限,规划时所有 VL 的带宽上限之和不能超过物理链路容量,通常还要留出 20%~30% 余量。第二,信用量不能无限大,否则会破坏 BAG 的节拍约束,标准中信用量一般与 Lmax 成比例。第三,Lmax 必须覆盖应用的最大帧,否则大帧会被丢弃或分片,而分片又会引入额外开销和时延抖动。
实际规划中,常见的做法是先按应用需求确定每条 VL 的 Lmax 和 BAG,再计算带宽占用,最后用网络演算或仿真验证最坏情况下的端到端时延是否满足要求。如果某条 VL 的 BAG 设得过小,它会挤占其他 VL 的带宽;如果设得过大,又可能导致该 VL 的时延超标。因此 BAG 的选取往往需要在带宽效率和时延之间折中。
一个可参考的参数配置示例
假设某航电系统有三类数据:飞控指令、导航数据和座舱显示数据,分别规划三条 VL。下表给出一种合理的参数配置思路(示例参数,非实测):
| VL 用途 | Lmax (B) | BAG (ms) | 带宽上限 (kbit/s) | 信用量 (B) |
|---|---|---|---|---|
| 飞控指令 | 128 | 2 | 512 | 256 |
| 导航数据 | 512 | 8 | 512 | 1024 |
| 座舱显示 | 1024 | 16 | 512 | 2048 |
三条 VL 的带宽上限都是 512 kbit/s,但参数组合不同:飞控指令帧短、节拍快,适合小帧高频;座舱显示帧长、节拍慢,适合大帧低频。信用量随 Lmax 增大而增大,保证突发能力与帧长匹配。这种“同带宽、不同形态”的配置,正是 VL 参数设计的灵活之处。
掌握 BAG、Lmax、令牌桶和信用量的物理含义后,就能理解为什么机载网络能够同时承载周期性的飞控数据和突发性的显示数据,而不互相干扰。下一阶段做带宽验证时,这些参数就是计算的输入和判断的依据。