PON 把一根光纤分给几十甚至上百个用户,靠的是"点到多点"结构:OLT 在局端,分光器往下分出多根支线接到各个 ONU。下行方向,OLT 发出来的数据所有 ONU 都能收到,谁该收哪一份由地址区分,天然不冲突。麻烦出在上行——所有 ONU 都往同一根主干光纤上发,如果不加协调,几路光信号撞在一起,OLT 就什么都解不出来。
解决这个冲突的办法,是三件事配合:先测距算出每个 ONU 离 OLT 有多远,再靠均衡时延让它们的信号"对齐到同一起跑线",最后用 TDMA 时隙规定谁在哪一刻发言。

光在光纤里跑的速度大约是 5 微秒每公里。假设一个 ONU 离 OLT 5 公里,另一个离 15 公里,那么近的那个发出的光比远的早到 50 微秒。如果大家都"想发就发",近处 ONU 的信号就会盖住远处 ONU 的信号。
以太网那种"先听后发、冲突了退避"的 CSMA/CD 机制,在 PON 上行里行不通——ONU 之间隔着分光器,根本听不到彼此在发什么。所以 PON 不能让 ONU 自由竞争,必须由一个中心(OLT)来统一排班。
测距(Ranging)在 ONU 注册阶段完成,之后也会定期重测。流程大致是:
1. OLT 给某个 ONU 发测距请求;
2. ONU 收到后原样回一个响应;
3. OLT 量出这一来一回花的时间(即往返时延 RTT),再除以 2,就得到这个 ONU 的单向传输时延。
光知道距离还不够,关键是把它换算成均衡时延 EQD(Equalization Delay)。EQD 的含义是:OLT 让距离近的 ONU 多等一会儿再发,距离远的少等一会儿,使得所有 ONU 的数据到达 OLT 接收窗口时,都落在各自被分配好的位置上。换句话说,物理上远近不一,逻辑上被"拉"到等距。
GPON 的测距范围覆盖约 20 公里的逻辑距离,EQD 的分辨率精确到几个比特时间,足以把几十个 ONU 的时隙错开到不重叠。
测距解决"对齐"问题,真正排班靠 TDMA(时分多址)。OLT 把上行带宽切成以帧为单位的时隙(GPON 每帧 125 微秒),通过带宽授权(BWmap)告诉每个 ONU:"你这次可以在第 X 到第 Y 微秒之间发数据"。ONU 收到授权后,只在自己的时隙里发,其余时间安静收听。
这样一来,上行光纤在任意时刻只有授权的那一个 ONU 在说话,自然不会冲突。时隙的宽窄由 DBA(动态带宽分配,见我们另一篇专门讲 DBA 的文章)实时调整,忙的 ONU 多给、闲的少给。
| 维度 | 下行方向 | 上行方向 |
|---|---|---|
| 拓扑 | OLT 广播给所有 ONU | 多 ONU 共享同一根光纤回传 |
| 多路方式 | 广播 + 地址过滤 | TDMA 时隙(OLT 统一授权) |
| 冲突风险 | 无(本就一对多) | 有,靠测距 + EQD + 时隙消除 |
| 谁来控制 | OLT 发,ONU 选收 | OLT 排班,ONU 按授权发 |
| 协调依据 | 帧头地址 / 逻辑链路标识 | 测距得到的 EQD + BWmap |
测距不是一锤子买卖。光纤被重新熔接、分光器改接、线路温度引起折射率变化,都会让实际时延漂移。OLT 会在运行中周期性重测,平滑调整 EQD,整个过程中业务不中断。这也是为什么 PON 网络割接后,偶尔要等 ONU 重新测距才能恢复满速。

ONU 注册不上,或者注册后上行大量丢包。常见原因是光功率太低、光纤距离超出测距范围,或线路存在异常反射。先查收光是否在灵敏度范围内。
不是。RTT 是测出来的实际往返时间,EQD 是 OLT 算出来、下发给 ONU 的"应当延迟量",目的是把远近不同的 ONU 拉到逻辑等距。
正因为做了测距和均衡时延,物理距离被补偿掉了,OLT 接收端看到的都是对齐好的时隙,所以距离差不影响共存。
OLT 会周期性重新测距并微调 EQD,业务不会中断,只是极短时间里时隙边界会有微小重排。
PON 上行不冲突,靠的不是 ONU 之间互相谦让,而是 OLT 在背后做了精细的"排班":测距量出距离、均衡时延把大家拉到同一起跑线、TDMA 时隙规定发言顺序。理解这三步,就看懂了 PON 为什么能把一根光纤安全地分给上百个用户。想看 PON 设备怎么落地这套机制,可以参考锐应科技的 PON 与 ONU 方案;需要对接 OLT 开局与远程管理的细节,锐应科技官网有对应的产品资料;关于上行带宽怎么动态分配,我们在GPON 设备的 DBA 机制一文里单独拆解。