2. OLT与ONU的发现机制

大家好,我是老张。今天咱们聊聊ONU注册的第一步——发现机制。说白了,就是OLT怎么知道有新的ONU接上来了。

你想想看,一根光纤上可能挂着几十个ONU。OLT怎么找到新来的那个?总不能一个个去问吧。嗯,这里就要引入一个核心概念——发现窗口

发现窗口的概念

发现窗口,我习惯叫它“开门迎客”的时间段。OLT平时忙着给已注册的ONU分配带宽、收发数据。但每隔一段时间,它会专门腾出一个时间片,对全网喊一嗓子:

“有没有新来的ONU?有的话,趁现在报个到!”

这个时间片,就是发现窗口。它本质上是一个时间区间,在这个区间内,OLT允许未注册的ONU发送注册请求。

核心要点:

  • 发现窗口是OLT主动开启的
  • 只有未注册的ONU才能在这个窗口内响应
  • 已注册的ONU在这个窗口内保持沉默

我记得刚入行时,有个同事把发现窗口理解成“ONU自己找时间上报”。结果调试了三天,ONU死活注册不上。后来才发现,ONU只能被动等待OLT开门,自己不能主动敲门。

发现窗口的开启与关闭

OLT怎么控制这个窗口?说白了就是通过发送一种特殊的帧——发现GATE帧

流程是这样的:

  1. OLT发送发现GATE帧:这个帧里包含了发现窗口的起始时间和长度
  2. ONU收到后判断:如果自己是未注册状态,就准备在窗口内发送注册请求
  3. ONU发送注册请求:在窗口内随机选择一个时间点,发送REGISTER_REQ帧
  4. OLT关闭窗口:窗口时间到,OLT停止接收新的注册请求

避坑指南:

我曾经遇到过一个案例:某个OLT的发现窗口开得太短,只有1毫秒。结果距离远的ONU因为光路延迟,还没等信号传到OLT,窗口就关了。后来我把窗口调到3毫秒,问题就解决了。

这里有个细节要注意:发现窗口不是一直开着的。OLT会周期性地开启,比如每100毫秒开一次。为什么?因为如果一直开着,新ONU随时都能发请求,那已注册的ONU就没法正常通信了。

发现窗口的时序参数

说到时序,就不得不提几个关键参数。我整理了一张表,大家看看:

参数名称 含义 典型值 我的建议
发现窗口长度 窗口持续的时间 2-5 ms 根据最远ONU距离调整
发现窗口周期 两次窗口的间隔 50-200 ms 别太短,影响正常业务
响应延迟 ONU收到GATE到发送请求的延迟 35-50 μs 留够余量,别卡太死
最大往返时间 最远ONU的光路延迟 取决于距离 20km约200μs

为什么会关注这些参数?你想想看,如果窗口长度小于最远ONU的往返时间,那ONU的请求还没到OLT,窗口就关了。这就是我前面说的那个坑。

我个人习惯这样计算:

发现窗口长度 ≥ 2 × 最大往返时间 + ONU处理延迟 + 安全余量

举例:
- 最大距离:20km → 往返时间约200μs
- ONU处理延迟:约50μs
- 安全余量:100μs
- 窗口长度 ≥ 200 + 50 + 100 = 350μs

实际我一般设2ms,留足余量

注意:

窗口长度不是越大越好。窗口越大,正常业务被中断的时间就越长。我见过有人把窗口设到10ms,结果用户投诉上网卡顿。后来一查,发现窗口占用了太多带宽。

核心逻辑流程图

下面我用一张SVG图,把整个发现机制串起来。这张图我画了好几次,力求简洁明了:

ONU发现机制核心流程 OLT:发送发现GATE帧 包含窗口起始时间+长度 发现窗口开启(2-5ms) 已注册ONU:保持沉默 未注册ONU:发送请求 OLT接收REGISTER_REQ 发现窗口关闭 关键时序参数 • 窗口长度:2-5ms • 窗口周期:50-200ms • ONU响应延迟:35-50μs • 最大往返时间:取决于距离 窗口长度 ≥ 2×RTT + 处理延迟 避坑提醒 窗口太短 → 远距离ONU注册失败 窗口太长 → 影响正常业务带宽

这张图把整个流程串起来了。从OLT发GATE帧开始,到窗口开启、ONU响应、最后关闭窗口。嗯,其实还有后续的注册确认步骤,那个我们下一章再聊。

实际项目中的经验

最后分享一个我踩过的坑。有一次在现网调试,发现某个型号的ONU总是注册不上。查了半天,发现是OLT的发现窗口周期设成了500毫秒。这个ONU比较老,内部有个定时器,如果超过300毫秒没收到GATE帧,就认为自己不在线了。

结果就是:OLT每500毫秒开一次门,ONU每300毫秒超时一次。两个时钟永远对不上。后来我把周期改成100毫秒,问题立刻解决。

所以我的建议是:发现窗口周期不要超过100毫秒。除非你确认所有ONU都支持更长的间隔。

本章小结:

  • 发现窗口是OLT为未注册ONU专门开辟的时间片
  • 窗口由OLT通过发现GATE帧控制开启和关闭
  • 窗口长度要大于2倍最大往返时间,一般设2-5ms
  • 窗口周期建议不超过100ms,避免ONU超时

公众号:蓝海资料掘金营,微信deep3321