3. ONU注册状态机详解
状态机这东西,说白了就是ONU的「人生轨迹」。从插上光纤到正常上网,ONU要经历四个关键阶段。我刚开始调ONU的时候,总觉得状态机就是个理论模型,直到有一次在现网排障,发现一台ONU卡在测距状态整整三天——从那以后,我再也不敢小看这几个状态了。
3.1 初始状态(Initial State)
ONU刚上电,或者光口刚插上光纤,就进入这个状态。这时候ONU在干嘛?说白了就是「待机等信号」。
核心特征:
- ONU还没收到OLT的任何下行消息
- 激光器处于关闭状态(不发光)
- 等待接收OLT的同步帧(Sync Frame)
嗯,这里要注意:初始状态下ONU是不发光的。为什么?因为OLT还没告诉它「你可以说话了」。我见过有人调试时发现ONU没光功率,以为是光模块坏了,其实只是状态没跑起来。
3.2 等待发现状态(Wait Discovery State)
ONU收到OLT的同步帧后,就进入这个状态。这时候ONU开始「竖起耳朵听」——听OLT什么时候发发现窗口(Discovery Window)。
我个人习惯把这个状态叫做「排队等待入场」。OLT会定期打开发现窗口,就像电影院每隔半小时放一批人进场。ONU需要在这个窗口内发送注册请求。
避坑指南:
我曾经遇到过一个问题:ONU一直卡在等待发现状态,死活进不去。后来发现是OLT的发现窗口周期设置得太长(默认5秒改成了30秒)。ONU等得花儿都谢了。建议发现窗口周期不要超过10秒。
3.3 测距状态(Ranging State)
这是整个注册流程中最关键的一步。OLT需要测量ONU的距离,然后补偿传输时延。你想想看,光纤里光速是固定的,ONU离OLT 20公里和离OLT 200米,信号传输时间能一样吗?
测距过程大致是这样的:
- OLT发送测距请求(Ranging Request)
- ONU收到后立即回复测距响应(Ranging Response)
- OLT计算往返时延(RTT)
- OLT给ONU分配均衡时延(EqD)
技术要点:
- 测距精度要求:±16ns以内
- EqD的作用:让所有ONU看起来都像在同一个距离上
- 测距失败后,ONU会回到初始状态重新尝试
我记得有一次在实验室调测,发现一台ONU测距总是失败。查了半天,结果是光纤头子脏了,回损太大。擦干净就好了。所以啊,物理层的问题往往是最容易被忽略的。
3.4 授权状态(Authorization State)
测距成功后,ONU进入授权状态。这时候OLT要确认两件事:
- 你是谁?(ONU的序列号、MAC地址)
- 你能干什么?(服务等级、带宽配置)
OLT会下发授权信息,包括ONU ID、逻辑链路ID(LLID)等。说白了,就是给ONU发「身份证」和「工作证」。
注意事项:
授权阶段最容易出问题的是密码认证。有些运营商要求ONU注册时发送密码,密码不对就直接踢出去。我曾经遇到一个案例,批量更换ONU时忘了更新密码,结果200台ONU全部注册失败——嗯,那天加班到凌晨三点。
3.5 运行状态(Operation State)
终于,ONU进入了运行状态。这时候ONU可以正常收发数据了。但别以为就万事大吉了——运行状态下ONU还要持续做两件事:
- 保活检测:定期发送心跳包,告诉OLT「我还活着」
- 动态带宽分配:根据业务需求申请带宽
如果ONU连续多次没有响应心跳,OLT会把它踢回初始状态。说白了,就是「掉线了重新连」。
3.6 状态机流转图
下面这张图是我用SVG画的,把整个状态流转画清楚了。你一看就明白:
3.7 状态机关键参数
下面这个表格是我整理的关键参数,调试的时候经常要用到:
| 状态 | 超时时间 | 重试次数 | 典型故障 |
|---|---|---|---|
| 初始状态 | 无超时 | 无限重试 | 光模块故障、光纤断 |
| 等待发现 | 发现窗口周期(默认5s) | 3次 | 发现窗口未开启、ONU序列号冲突 |
| 测距状态 | 1s | 3次 | 光纤损耗过大、光模块灵敏度不足 |
| 授权状态 | 2s | 3次 | 密码错误、服务配置不匹配 |
| 运行状态 | 心跳超时(默认10s) | 3次 | 光功率波动、ONU死机 |
实战经验:
我个人习惯在调试时先看ONU的状态机跑到哪一步了。如果卡在等待发现,先查光功率;如果卡在测距,查光纤质量;如果卡在授权,查配置数据。这样排查问题,效率能提高一倍。
好了,ONU注册状态机就讲到这里。记住这五个状态和它们之间的流转关系,你就能理解ONU从插上光纤到正常工作的全过程了。下次遇到ONU注册不上,先看看它卡在哪个状态——问题就解决了一半。
公众号:蓝海资料掘金营,微信deep3321