HSMS 会话建立流程:主动连接与被动连接、T5 超时与连接重试、会话 ID 的协商机制
HSMS(High-Speed SECS Message Services)会话的建立是设备与主机之间进行 SECS/GEM 通信的第一步。理解主动连接与被动连接的角色分配、T5 超时对连接重试的影响以及会话 ID(Session ID)的协商机制,是配置可靠通信链路的基础。本章将详细拆解这三个核心环节。
2.1 主动连接与被动连接的角色模型
在 HSMS 会话建立中,通信双方的角色并非对等。根据 SEMI E37 标准,连接双方被定义为 主动实体(Active Entity) 和 被动实体(Passive Entity)。通常,主机(Host) 作为主动方发起 TCP 连接,而 设备(Equipment) 作为被动方监听端口。
关键原则: 主动方负责发起 TCP 连接请求;被动方负责监听并接受连接。角色一旦确定,在会话生命周期内通常不会互换。
下表对比了主动连接与被动连接的核心差异:
| 特性 | 主动连接(Active) | 被动连接(Passive) |
|---|---|---|
| 典型角色 | 主机(Host) | 设备(Equipment) |
| 启动行为 | 主动发起 TCP SYN 连接 | 监听端口,等待连接 |
| IP/端口配置 | 需配置被动方的 IP 和端口 | 配置本地监听端口 |
| 连接状态机 | 从 NOT CONNECTED → CONNECTING → CONNECTED | 从 NOT CONNECTED → LISTENING → CONNECTED |
| 重试机制 | 受 T5 定时器控制,主动重试 | 持续监听,不主动重试 |
以下 SVG 图展示了主动方与被动方在 TCP 层面的连接建立过程:
2.2 T5 超时与连接重试机制
T5 定时器 是 HSMS 协议中用于控制 连接重试间隔 的关键参数。当主动方尝试建立 TCP 连接失败(例如被动方未就绪、网络不可达)时,T5 定时器决定了主动方在两次连接尝试之间的等待时间。
常见配置陷阱: T5 值设置过小(如 < 1 秒)会导致网络风暴,大量重试请求占用带宽;设置过大(如 > 60 秒)则会延长链路恢复时间,导致设备长时间离线。推荐初始配置为 10~30 秒。
连接重试的完整流程如下:
- 连接失败: 主动方发起 TCP 连接请求,未收到 SYN-ACK 或收到 RST。
- 启动 T5: 主动方启动 T5 定时器,进入等待状态。
- T5 超时: 定时器到期,主动方再次发起连接请求。
- 循环: 重复步骤 1~3,直到连接成功或达到最大重试次数(如果配置了上限)。
以下 SVG 图展示了 T5 超时与连接重试的时序:
2.3 会话 ID(Session ID)的协商机制
会话 ID(Session ID) 是 HSMS 会话的唯一标识符,在 Select.indication 和 Select.response 消息中完成协商。会话 ID 的值范围由 设备 ID(Device ID) 决定,通常为 0~32767 之间的整数。
会话 ID 的协商过程分为以下步骤:
- 步骤 1: 主动方发送
Select.indication消息,其中包含提议的会话 ID(通常为设备 ID)。 - 步骤 2: 被动方收到后,验证会话 ID 是否合法(是否在允许范围内、是否已被占用)。
- 步骤 3: 被动方回复
Select.response消息,携带状态码:- 0x0000(成功): 会话 ID 被接受,会话建立。
- 0x0001(拒绝): 会话 ID 无效或冲突,会话建立失败。
最佳实践: 在配置设备时,确保设备 ID 在主机端和设备端保持一致。如果设备 ID 不匹配,Select.response 将返回拒绝状态码,导致会话无法建立。
以下 SVG 图展示了会话 ID 协商的完整消息交换:
2.4 连接建立失败常见原因与排查
在实际部署中,HSMS 会话建立可能因多种原因失败。下表总结了常见问题及其排查方向:
| 故障现象 | 可能原因 | 排查建议 |
|---|---|---|
| TCP 连接超时 | IP 地址/端口配置错误;防火墙拦截 | 使用 ping 和 telnet 测试网络连通性 |
| 连接被拒绝(RST) | 被动方未启动监听;端口被占用 | 检查设备 HSMS 服务状态;使用 netstat 查看端口 |
| Select.response 返回拒绝 | 会话 ID 冲突或超出范围 | 核对设备 ID 配置;检查是否已有相同 ID 的会话 |
| 频繁重试导致网络拥塞 | T5 超时值设置过小 | 增大 T5 值(建议 ≥ 10 秒) |
总结: HSMS 会话建立的成功依赖于正确的角色配置、合理的 T5 超时设置以及一致的会话 ID 协商。主动方负责发起连接,被动方负责监听和验证。T5 定时器控制重试频率,避免网络资源浪费。会话 ID 的协商通过 Select 握手完成,是会话建立的最后一道关卡。