3、HSMS协议栈结构:HSMS物理层、传输层、消息层、会话层分层模型及各层职责

HSMS(High-Speed SECS Message Services)协议栈采用四层分层架构,从下至上依次为物理层、传输层、消息层和会话层。每一层封装特定的功能,并通过标准接口向上层提供服务。理解该分层模型是掌握HSMS通信链路保活与异常恢复机制的基础。

核心要点: HSMS的分层设计遵循ISO/OSI参考模型思想,将物理连接、数据可靠传输、消息边界识别和会话管理解耦,使得每一层的故障与恢复策略可以独立优化。
HSMS 协议栈四层架构 会话层 (Session Layer) 会话建立/关闭 · 链路保活 · 状态机管理 · 异常断开恢复 S7F1/S7F19 · 心跳(Linktest) · 超时重连 消息层 (Message Layer) 消息封装/解析 · 消息头(Message Header)处理 · 事务ID管理 Device ID · Session ID · Stream/Function · 消息长度 传输层 (Transport Layer) TCP/IP 数据收发 · 字节流分段/重组 · 连接管理 Socket · 端口号 · 连接建立/关闭 · 数据校验 物理层 (Physical Layer) 物理介质 · 网络接口 · 电气特性 · 信号传输 以太网 · 网线/光纤 · 网卡 · 交换机 L4 L3 L2 L1 数据 流向 说明:HSMS 协议栈建立在 TCP/IP 之上,传输层和物理层实际由 TCP/IP 协议族承载。 HSMS 标准主要定义消息层和会话层的规范。

3.1 物理层(Physical Layer)

物理层是HSMS协议栈的最底层,负责在物理介质上传输原始比特流。在HSMS中,物理层通常基于以太网(Ethernet)标准实现,使用TCP/IP协议族作为底层传输基础。

物理层要素 说明 典型参数
传输介质 双绞线(Cat5e/Cat6)、光纤 100BASE-TX / 1000BASE-T
网络接口 RJ45 以太网接口、SFP 光模块 10/100/1000 Mbps 自适应
连接设备 交换机、路由器、网卡 全双工模式
电气特性 信号电平、阻抗匹配、EMC 防护 IEEE 802.3 标准
工程提示: 物理层故障(如网线松动、交换机端口Down)是HSMS链路断开的常见原因之一。在保活机制设计中,物理层状态监控通常通过TCP连接状态间接反映,而非直接检测物理介质。

3.2 传输层(Transport Layer)

传输层基于TCP/IP协议,提供面向连接的、可靠的字节流传输服务。HSMS标准规定使用TCP作为唯一的传输层协议,端口号通常为5000(默认)或由用户自定义。

  • 连接管理: 负责TCP连接的建立(三次握手)和关闭(四次挥手)。
  • 数据收发: 将上层消息封装为TCP数据段,通过Socket接口发送和接收。
  • 分段与重组: 处理TCP字节流的分段和重组,确保数据按序到达。
  • 错误检测与重传: 利用TCP的校验和、序列号、确认应答(ACK)和超时重传机制保证数据可靠性。
  • 流量控制: 通过TCP滑动窗口机制防止发送方过快导致接收方缓冲区溢出。
关键点: HSMS的传输层完全依赖TCP的可靠性机制。当TCP连接断开(如RST或超时)时,HSMS会话层会检测到连接异常并触发恢复流程。因此,TCP Keep-Alive 机制是HSMS链路保活的第一道防线。

3.3 消息层(Message Layer)

消息层负责在TCP字节流中定义消息边界,并对消息进行封装和解析。HSMS消息由消息头(Message Header)和消息体(Message Body)组成。

3.3.1 消息头结构

字段 长度(字节) 说明
Length 4 消息体长度(不包含消息头自身)
Device ID 2 设备标识符,用于区分多设备场景
Session ID 2 会话标识符,用于多会话复用同一TCP连接
Stream/Function 2 消息类型编码(如 S1F1、S7F19)
P/B Type 1 消息类型标志(Primary/Reply/Block)
System Bytes 4 系统事务ID,用于请求-应答匹配

3.3.2 消息层职责

  • 消息封装: 将上层会话数据加上消息头,形成完整的HSMS消息。
  • 消息解析: 从TCP字节流中识别消息边界,提取消息头字段和消息体。
  • 事务ID管理: 维护System Bytes的唯一性和递增性,确保请求与应答正确匹配。
  • 消息类型识别: 区分Primary消息(主动请求)和Reply消息(应答),以及Block消息(分块传输)。
HSMS 消息封装过程 会话层数据 消息头 消息体(数据) TCP段 消息头详细结构(10字节) Length 4B Device 2B Session 2B S/F 2B P/B 1B System 4B 说明:消息层在会话层数据前添加10字节的消息头,形成完整的HSMS消息。 消息头中的Length字段指示消息体长度,用于TCP字节流中消息边界的识别。

3.4 会话层(Session Layer)

会话层是HSMS协议栈的最高层,负责管理设备之间的逻辑会话,包括会话的建立、维护、保活和关闭。会话层直接面向SECS/GEM应用,提供通信链路的状态管理和异常恢复能力。

3.4.1 会话层核心职责

职责 描述 相关消息
会话建立 通过S7F1/S7F19消息建立逻辑会话,协商通信参数 S7F1 (Selected)、S7F19 (Linktest)
链路保活 定期发送Linktest消息(S7F19)检测链路连通性 S7F19 (Linktest Request/Reply)
状态机管理 维护HSMS状态机(Not Selected/Selected/Connected等状态) 状态转换事件
异常断开恢复 检测TCP连接断开,触发重连和会话重建流程 超时事件、重连请求
会话关闭 正常关闭会话,释放资源 S7F1 (Deselect)

3.4.2 HSMS状态机

会话层维护一个有限状态机,控制通信链路的生命周期。主要状态包括:

  • Not Connected: TCP连接未建立,无任何通信。
  • Connected: TCP连接已建立,但未选择会话。
  • Selected: 会话已建立,可以正常收发SECS消息。
  • Retry: 链路异常断开,正在尝试重连。
注意: 会话层的保活机制(Linktest)与传输层的TCP Keep-Alive不同。TCP Keep-Alive检测TCP连接是否存活,而HSMS Linktest检测应用层会话是否正常。两者配合使用,形成双层保活防护。
HSMS 会话层状态机 Not Connected TCP未连接 Connected TCP已连接 Selected 会话已建立 Retry 重连中 TCP连接建立 S7F1 Select Deselect / 超时 TCP断开 链路异常 重连成功 重连失败 说明:状态机是会话层管理的核心,每个状态对应特定的通信能力和行为。 链路保活机制在 Selected 状态下运行,异常断开恢复涉及 Retry → Connected 的转换。 超时参数(如 T3、T5、T6、T8)控制状态转换的时机。

3.5 各层职责总结

层级 核心职责 与保活/恢复的关系
物理层 物理介质传输、电气特性 物理故障导致链路断开,需硬件排查
传输层 TCP连接管理、可靠传输 TCP Keep-Alive 检测连接存活,超时触发重连
消息层 消息封装/解析、事务ID管理 消息边界识别确保保活消息正确解析
会话层 会话建立/保活/关闭、状态机管理 Linktest 保活、异常检测、重连恢复