確認處理
確認處理的事件順序如下:
建立同步處理層級。
傳送確認要求。
接收資料和確認要求。
回應確認要求。
解除配置交談。
使用確認處理,TP 會傳送具有資料的確認要求;合作夥伴 TP 會確認收到資料,或指出發生錯誤。 每次兩個 TP 交換確認要求和回應時,都會進行同步處理。
注意
雖然本節中的範例未顯示此問題,但不論 TP 是叫用 TP 還是可叫用 TP,任何 TP 都可以傳送或接收資料。
下列範例說明確認處理。
叫用 TP 所發出 | 由可叫用 TP 發行 |
---|---|
TP_STARTED | |
MC_ALLOCATE | |
(synclevel=AP_CONFIRM_SYNC_LEVEL) | |
MC_SEND_DATA | |
(type=AP_SEND_DATA_CONFIRM) | |
RECEIVE_ALLOCATE | |
MC_RECEIVE_AND_WAIT | |
MC_SEND_DATA | |
(type=AP_SEND_DATA_DEALLOC_SYNC_LEVEL) | |
MC_RECEIVE_AND_WAIT | |
(primary_rc=AP_OK) | |
(rtn_status=AP_YES) | |
(what_rcvd= AP_DATA_COMPLETE_CONFIRM_ DEALLOCATE) | |
MC_CONFIRMED | |
TP_ENDED | TP_ENDED |
建立同步處理層級
MC_ALLOCATE的synclevel參數會決定交談的同步處理層級。 有三個可能的同步處理層級:
AP_NONE,不會進行確認處理。
AP_CONFIRM_SYNC_LEVEL,TP 可以要求確認接收資料,並回應資料確認的要求。
AP_SYNCPT,TP 會在同步點層級 2 支援下運作,以確認收到資料。
傳送確認要求
類型為 AP_SEND_DATA_CONFIRM 的MC_SEND_DATA有兩個效果:
它會排清本機 LU 的傳送緩衝區,並將緩衝區中包含的任何資料傳送至夥伴 TP。
它會傳送確認要求,讓夥伴 TP 透過接收動詞命令 的 what_rcvd 參數接收。
發行 MC_SEND_DATA之後,本機 TP 會等候合作夥伴 TP 的確認。
接收資料和確認要求
MC_RECEIVE_AND_WAIT的what_rcvd參數指出:
收到的資料狀態:完整或不完整。
未來預期會處理本機 TP。
在此範例中, what_rcvd AP_DATA_COMPLETE_CONFIRM,表示狀態已完成,並要求確認。
回應確認要求
合作夥伴 TP 問題 MC_CONFIRMED 確認收到資料。 這會釋放本機 TP 以繼續處理。
解除配置交談
當下列所有條件成立時,MC_SEND_DATA會傳送確認要求與資料:
對話的同步處理層級 (是由MC_ALLOCATE) 的 synclevel參數所建立AP_CONFIRM_SYNC_LEVEL。
MC_SEND_DATA的 type 參數會設定為 AP_SEND_DATA_DEALLOC_SYNC_LEVEL。
最終MC_RECEIVE_AND_WAIT的what_rcvd參數是AP_DATA_COMPLETE_CONFIRM_DEALLOCATE,表示 APPC 將解除配置交談之前,必須先確認收到資料。 本機 TP 會等候此確認,直到合作夥伴 TP 問題 MC_CONFIRMED為止。