跳到主要内容

13. 轮询过程 (Poll Process)

每个关联 (association) 都支持一个轮询过程 (poll process), 它按固定间隔运行, 用于构造并发送分组. 该过程持续运行, 以管理时钟过滤器 (clock filter) 和可达寄存器 (reach register).

13.1. Poll Process 变量

关键变量: hpoll (host poll exponent), last (last poll time), next (next poll time), reach (reach register), unreach (unreach counter).

参数: UNREACH=24, BCOUNT=8, BURST flag, IBURST flag.

13.2. 操作 (Operations)

主流程 (Main flow): 通过时钟调整过程 (clock-adjust process) 每秒调用一次. 它检查是否已到达下一次轮询时间 (poll time). 对称模式 (symmetric, modes 1-2), 客户端 (client, mode 3) 和广播服务器 (broadcast server, mode 5) 会发送分组. 广播客户端 (broadcast client, mode 6) 只更新变量.

突发模式 (Burst mode): IBURST 用于初始同步, BURST 用于重新连接. 它会快速发送 BCOUNT (8) 个分组.

可达寄存器 (Reach register): 8 位移位寄存器, 跟踪最近 8 次轮询. 每次轮询时左移, 如果收到有效响应, 则将 LSB 设置为 1.

轮询间隔 (Poll interval) 调整: 根据网络状况和时钟稳定性动态调整. 范围从 minpoll 到 maxpoll.

不可达处理 (Unreachable handling): 递增不可达计数器 (unreach counter). 达到 UNREACH 限制 (24) 后, 可能触发突发模式.