1. 课程导入
量子网络不是把经典互联网简单“换成量子设备”,而是利用量子态作为信息载体,通过纠缠分发、量子测量与经典协调,实现密钥分发、分布式量子计算、量子传感联网等新能力。它的性能瓶颈往往不在单台设备,而在“量子链路 + 经典控制 + 协议调度”的耦合:光纤损耗随距离指数增长,探测器暗计数与有限效率会污染结果,纠缠保真度会随存储时间和链路跳数下降,经典协调消息的往返时延又会限制协议吞吐。因此,在真实硬件上大规模试错成本极高,仿真与性能评估成为量子网络研究、工程设计与教学验证的基础手段。
学习目标:从“会跑仿真”到“会做评估”
本课程的目标不是记住某个仿真器的按钮位置,而是建立一套可迁移的工作方法。学完后,你应当能够:
- 建模:把一条量子链路抽象为信道、光源、探测器、量子存储、纠缠交换节点与经典控制通道,并明确哪些参数进入模型、哪些被理想化。
- 实现:用合适的工具链搭建拓扑、配置协议(如 BB84、E91、纠缠交换、纠缠路由)、注入噪声与损耗,并驱动离散事件或时间片仿真。
- 度量:定义并采集密钥率、量子比特误码率(QBER)、纠缠保真度、端到端时延、吞吐量、资源占用等指标,理解它们的统计波动与置信区间。
- 评估:通过参数扫描、对照实验与敏感性分析,判断系统瓶颈来自物理层、协议层还是控制层,并给出可验证的优化方向。
需要特别强调:仿真结果不是“实测结果”。课程中的示例参数、曲线和数值均属于教学假设或合理设定,用于说明方法;真实结论必须由可复现的模型、明确的随机种子、足够的样本量和误差分析支撑。
核心概念:量子网络性能的四个层次
理解量子网络仿真,先要抓住四个层次的对象。第一层是量子物理层:光子损耗、退相干、探测器效率、暗计数、存储寿命与门保真度。第二层是链路与纠缠层:纠缠产生速率、纠缠交换成功率、净化(purification)开销、保真度随跳数的衰减。第三层是协议层:BB84/E91 的基比对与筛选、纠缠路由的路径选择、量子中继的调度策略。第四层是经典控制层:经典消息时延、时钟同步、重传与确认、资源排队。很多初学者只关注第一层,却忽略了控制层时延可能直接决定端到端密钥率上限。
整体框架:仿真系统由什么组成
一个完整的量子网络仿真系统通常包含五个部分:拓扑与资源模型(节点、链路、存储、探测器)、物理信道模型(损耗、噪声、退相干)、协议栈(物理层编码、链路层纠缠管理、网络层路由、应用层密钥生成)、离散事件调度器(推进时间、触发事件、处理队列)、指标采集与可视化(统计、绘图、导出)。下图给出这五部分之间的数据流与依赖关系,可作为后续章节的“地图”。
工具链概览:不同工具解决不同问题
量子网络仿真工具大致分为三类。第一类是量子通信协议仿真器,如基于 Python 的 QKD 仿真框架,适合快速验证 BB84、E91 在不同损耗与噪声下的密钥率与 QBER。第二类是离散事件网络仿真器,如 NS-3、OMNeT++ 的量子扩展,适合研究路由、排队、经典控制时延对端到端性能的影响。第三类是量子电路与硬件后端仿真器,如 Qiskit Aer、QuTiP,适合验证纠缠交换、净化电路和测量算符的正确性。实际项目中,三者常组合使用:用电路仿真器验证协议逻辑,用通信仿真器扫描物理参数,用网络仿真器评估大规模拓扑下的调度性能。
选择工具时,先问三个问题:我要验证的是物理层参数关系、协议逻辑正确性,还是网络级调度与资源竞争?如果只关心密钥率随距离的变化,一个轻量级 Python 脚本加解析模型就足够;如果要比较两种路由策略在 50 个节点、带存储排队和经典时延下的吞吐量,就必须使用离散事件仿真器。工具越重,建模成本越高,但能回答的问题也越接近真实系统。
一个最小可运行示例:BB84 在损耗信道下的密钥率估算
下面给出一个教学用的最小示例,用解析模型估算 BB84 在光纤损耗下的安全密钥率。参数均为示例假设,不是实测值。设光纤衰减系数 α = 0.2 dB/km,距离 L = 50 km,则信道透过率 η_ch = 10^(-αL/10) = 10^(-1) = 0.1。设探测器效率 η_d = 0.8,暗计数率 p_dark = 1e-5,单光子源平均光子数 μ = 0.1,基比对筛选因子 q = 0.5。则探测率约为:
η_total = η_ch * η_d = 0.1 * 0.8 = 0.08
Q = 1 - exp(-μ * η_total) + p_dark ≈ 0.00797 + 0.00001 ≈ 0.00798
QBER ≈ (p_dark + 0.5 * (1 - exp(-μ * η_total)) * e_opt) / Q
其中 e_opt 为光学误码率,示例取 0.02。代入可得 QBER 约为 0.5% 量级,远低于 BB84 安全阈值约 11%。若进一步考虑诱骗态和有限密钥长度,实际密钥率会低于理想值。这个例子说明:仿真评估的第一步不是写代码,而是明确模型假设与公式边界;否则后续再复杂的仿真也只是在放大一个错误的起点。