状态表描述 XTI/TLI 状态转换。每个框都包含下一个状态,假设已给定当前状态(列)和当前事件(行)。空框表示无效状态/事件组合。每个框还可具有一个操作列表。必须按照框中指定的顺序完成操作。
研究状态表时,应了解以下内容:
t_close(3NSL) 针对面向连接的传输提供器终止已建立的连接。连接将按顺序终止或异常终止,具体取决于传输提供器支持的服务类型。请参见 t_getinfo(3NSL) 手册页。
如果传输用户发出无序接口调用,该接口将失败并将 t_errno 设置为 TOUTSTATE。状态不会更改。
t_connect(3NSL) 之后的错误代码 TLOOK 或 TNODATA 可以导致状态更改。状态表假设正确使用 XTI/TLI。
任何其他传输错误都不会更改状态,除非接口的手册页另行指出。
可从状态表中排除支持接口 t_getinfo(3NSL)、t_getstate(3NSL)、t_alloc(3NSL)、t_free(3NSL)、t_sync(3NSL)、t_look(3NSL) 以及 t_error(3NSL),因为它们并不影响状态。
下面各表中列出的某些状态转换提供传输用户必须执行的操作。每项操作都由按以下方法得出的数字表示:
将未完成连接请求的计数设置为零
递增未完成连接请求的计数
递减未完成连接请求的计数
将连接传递到其他传输端点,如 t_accept(3NSL) 手册页中所示
下表给出了端点建立状态。
表 8–4 连接建立状态
事件/状态 |
T_UNINIT |
T_UNBND |
T_IDLE |
---|---|---|---|
opened |
T_UNBND |
|
|
bind |
|
T_IDLE[1] |
|
|
|
T_IDLE |
|
unbind |
|
|
T_UNBND |
closed |
|
T_UNINIT |
|
下表给出了连接模式下的数据传送。
表 8–5 连接模式状态-第 1 部分
事件/状态 |
T_IDLE |
T_OUTCON |
T_INCON |
T_DATAXFER |
---|---|---|---|---|
connect1 |
T_DATAXFER |
|
|
|
connect2 |
T_OUTCON |
|
|
|
rcvconnect |
|
T_DATAXFER |
|
|
listen |
T_INCON [2] |
|
T_INCON [2] |
|
accept1 |
|
|
T_DATAXFER [3] |
|
accept2 |
|
|
T_IDLE [3] [4] |
|
accept3 |
|
|
T_INCON [3] [4] |
|
snd |
|
|
|
T_DATAXFER |
rcv |
|
|
|
T_DATAXFER |
snddis1 |
|
T_IDLE |
T_IDLE [3] |
T_IDLE |
snddis2 |
|
|
T_INCON [3] |
|
rcvdis1 |
|
T_IDLE |
|
T_IDLE |
rcvdis2 |
|
|
T_IDLE [3] |
|
rcvdis3 |
|
|
T_INCON [3] |
|
sndrel |
|
|
|
T_OUTREL |
rcvrel |
|
|
|
T_INREL |
pass_conn |
T_DATAXFER |
|
|
|
T_IDLE |
T_OUTCON |
T_INCON |
T_DATAXFER |
|
closed |
T_UNINIT |
T_UNINIT |
T_UNINIT |
T_UNINIT |
下表给出了连接模式下的连接建立/连接释放/数据传送。
表 8–6 连接模式状态-第 2 部分
事件/状态 |
T_OUTREL |
T_INREL |
T_UNBND |
---|---|---|---|
connect1 |
|
|
|
connect2 |
|
|
|
rcvconnect |
|
|
|
listen |
|
|
|
accept1 |
|
|
|
accept2 |
|
|
|
accept3 |
|
|
|
snd |
|
T_INREL |
|
rcv |
T_OUTREL |
|
|
snddis1 |
T_IDLE |
T_IDLE |
|
snddis2 |
|
|
|
rcvdis1 |
T_IDLE |
T_IDLE |
|
rcvdis2 |
|
|
|
rcvdis3 |
|
|
|
sndrel |
|
T_IDLE |
|
rcvrel |
T_IDLE |
|
|
pass_conn |
|
| |
optmgmt |
T_OUTREL |
T_INREL |
T_UNBND |
closed |
T_UNINIT |
T_UNINIT |
|
下表给出了无连接模式状态。
表 8–7 无连接模式状态
事件/状态 |
T_IDLE |
---|---|
snudata |
T_IDLE |
rcvdata |
T_IDLE |
rcvuderr |
T_IDLE |