一 HSMS的概念理解
- HSMS定义了使用 TCP/IP 作为物理传输媒质时的通信接口。
- HSMS使用TCP/IP流支持,提供了可靠的双向同步传输,可以用来作为SECS-I通信以及其他更高级的通信环境的替代。
二 HSMS的 Connection State / Procedure
2.1 Communication Steps(通信步骤)
TCP/IP连接是在两个“实体”(Host和EQ)之间动态建立的。
步骤:
-
获取通信链路
-
建立用于交换数据消息的应用程序协议约定
-
交换数据
-
正式结束通信
-
断开通信链路
2.2 Connection State Diagram(连接状态图)
状态图说明:
- NOT CONNECTED:该实体已准备好侦听或启动TCP/IP连接,但尚未建立任何连接,或所有以前建立的TCP/IP连接都已终止;
- CONNECTED:已建立了一个TCP/IP连接。此状态有两个子状态,NOT SELECTED 和 SELECTED;
- NOT SELECTED:未建立HSMS会话或任何先前建立的HSMS会话已结束;
- SELECTED:至少建立了一个HSMS会话,这是HSMS的通常操作状态:数据消息可以在此状态下进行交换。
2.3 Procedure(过程/步骤)
HSMS消息交换过程
- HSMS定义了跨TCP/IP连接的实体之间的所有消息交换过程。
- 一旦连接建立,这两个实体间就建立起HSMS通信。然后,数据消息可以在任何时候以任意一个方向进行交换。
- 当实体希望结束HSMS通信时,将使用 Deselcet 或 Separate procedure 来结束HSMS通信。
发送和接收HSMS消息
所有的HSMS过程都涉及到HSMS消息的交换。这些消息以 TCP/IP 流的形式使用先前建立的TCP/IP连接进行发送和接收。
消息交换过程
消息交换过程分为:Select Procedure,Data Procedure,Deselect Procedure,Linktest Procedure ,Separate Procedure,Reject Procedure。
三 Message的组合方法及 Header 结构
3.1 Message 结构
- Byte Structrue:
在HSMS中一个字节包含8位。字节中的位从第7位(MSB)编号到第0位(LSB)。
- Message Format:
HSMS消息以单个连续字节流传输。
- Message Length:
Message Length是一个四字节的无符号整数值,它指定Message Header加上Message Text的字节长度。消息长度首先传输最高有效位(MSB),最后传输最低有效位(LSB)。
- Message Header:
MessageHeader是一个10字节的字段。头中的字节从第0字节(传输的第一个字节)编号到第9字节(传输的最后一个字节)。
3.2 Header Structure
说明:
Session ID:16位无符号整数,它占据了字节0和字节1(字节0是MSB,1是LSB)。用于标识通信实体的连接。
Header Byte 2:对于不同的HSMS消息,有不同的取值。
Header Byte3:对于不同的HSMS消息,有不同的取值。
PType:8位无符号整型,PType旨在作为一种枚举类型,定义表示层消息类型:MessageHeader和MessageText是如何编码的。
PType = 0,被HSMS定义为表示SECS-II消息编码。
SType:8位无符号整数,是一种枚举类型,标识此消息是HSMS数据消息(值=0)还是HSMS控制消息。
SystemBytes:四字节无符号整数,用于在一组开放的事务中唯一地标识一个事务,即唯一地标识一次消息交互。
3.3 HSMS Message Formats by Type (按类型划分的HSMS消息格式)
HSMS消息中的Header的解释取决于由SType字段的值定义的特定HSMS消息类型。
下表总结了定义的完整消息集,PType = 0(SECS-II消息格式)。
四 Protocol Parameter
说明:
回复超时 T3 | Reply Timeout:定义一个实体等待回复消息的最长时间,如果T3超时则取消这次会话事务但不断开 TCP/IP 连接。 |
---|---|
连接间隔时间 T5 | Connect Separation Time:定义两个连接请求之间的时间间隔。 频繁的向一个未准备好连接的实体发起连接请求,会加重 TCP/IP 的操作负荷。 因此,当一个主动模式实体发起的连接操作终止后(不论是成功结束还是被远端实体拒绝),该实体必须等待 T5 时间再后发起下一次连接请求。 |
控制事务超时 T6 | Control Transactions Control Timeout:定义了一个控制事务所能保持开启的最长时间,超过该时间就认为这次通信失败。 |
未选择状态超时 T7 | Not Selected Timeout :定义当建立了 TCP/IP 连接之后通信处于 Not Selected 状态的最长时间,通信必须在该时间完成 Selected Procedure,否则将会断开 TCP/IP 连接。 |
网络字符超时 T8 | Network Intercharacter Timeout:定义成功接收到单个HSMS 消息的字符之间的最大时间间隔。 因为TCP/IP是面向流的通信,所以所有作为单个HSMS消息的一部分的字节可能在单独的TCP/IP消息中传输,一个 HSMS 通信消息可能被分为若干个 TCP/IP 消息进行传输。 若 T8 超时则认为这次传输失败。 |