跳到主要内容

Select

1.作用

规避无效链接,确保网络稳定

Select2

TCPIP的问题
  • 不知道对方状态,可能已掉线(T6,T7,T8)
  • 字节流协议能确保数据顺序完整性,但不能控制网络延迟和波动(T8)
  • 避免无效连接(DeviceId,T7

2.报文格式

Select

3.超时

3.1 T6 控制事务超时 (Control Transaction Timeout)是与 Select 规程最直接相关的超时参数。

  • 定义与用途:它定义了 HSMS 控制事务(如 Select、Deselect、Linktest)保持开启的最大时间。
  • 在 Select 中的应用:当发起方(Initiator)发送 Select.req 消息后,会立即启动 T6 计时器。
  • 失败判定:如果在 T6 超时前未收到对应的 Select.rsp 响应,发起方将视其为通信失败
  • 参数值:典型的设定值为 5 秒,范围通常在 1-240 秒之间,分辨率为 1 秒。

3.2. T7 连接空闲/未选择超时 (NOT SELECTED Timeout)关注的是 TCP 连接建立后但尚未完成选择的状态。

  • 定义与用途:它定义了在 TCP/IP 连接建立后,通信处于 NOT SELECTED 状态(即未建立 HSMS 会话)的最长时间。
  • 触发场景:当 TCP 连接成功建立后(状态转移至 CONNECTED-NOT SELECTED),T7 计时器开始工作。
  • 失败判定:如果在 T7 超时周期内,连接未能成功通过 Select 规程进入 SELECTED 状态,实体必须断开该 TCP 连接。这通常是为了释放被占用但未使用的网络资源。
  • 参数值:典型的设定值为 10 秒,范围在 1-240 秒之间。

3.3. T5 连接间隔超时 (Connect Separation Timeout)属于 TCP 连接层的参数,但它直接影响 Select 规程的重试逻辑

  • 定义与用途:它规定了在一次主动连接尝试(无论成功与否)之后,发起下一次主动连接尝试之前必须等待的最小时间间隔。
  • 与 Select 的关系:如果 Select 规程因为 T6 超时或收到非零状态码(如连接未就绪)而失败,且本地实体打算重试连接,则必须遵守 T5 超时限制。
  • 参数值:典型的设定值为 10 秒,范围在 1-240 秒之间。