3.2 アソシエーションの解放

上位プログラムは,相手のユーザ通信エンティティとの間でのデータ転送の完了に伴い,アソシエーションを解放(非活性化)します。上位プログラムがACSEのユーザデータを送受信することによって,アソシエーションを解放します。

アソシエーションを解放するには,正常解放と強制解放の二つの方法があります。

<この節の構成>
(1) 正常解放
(2) 強制解放

(1) 正常解放

正常解放では,両方のユーザ通信エンティティが合意した場合にアソシエーションを解放します。通常は,この方式でアソシエーションの解放を行います。

上位プログラムは,自分からアソシエーションを解放する場合,相手のユーザ通信エンティティに対して解放要求(DISABLE)を行います。その後,相手のユーザ通信エンティティから受諾応答を受け取り,アソシエーションの解放が完了します。

相手のユーザ通信エンティティから解放する場合は,アソシエーションの解放要求を受けた(RECEIVEで受信)時点で,受諾応答(DISABLE)を返します。そこでアソシエーションの解放が完了します。

(2) 強制解放

強制解放では,どちらかのユーザ通信エンティティがアソシエーションを強制的に解放(アボート)します。上位プログラムが自分からアソシエーションを強制的に解放する場合は,相手のユーザ通信エンティティに対して強制解放要求(DISABLE)を行います。この方式の場合は,相手のユーザ通信エンティティから受諾応答を待つ必要はありません。相手のユーザ通信エンティティからの強制解放の場合は,強制解放要求を受けた(RECEIVEで受信)時点でアソシエーションは解放されています。

この場合は,非活性化(DISABLE)要求でアソシエーションが解放状態であることをOSI通信機能に知らせます。

なお,アソシエーション強制解放は,上位プログラムのほかに,OSI通信機能がする場合もあります。これを「提供者アボート」といい,上位プログラムのアボート「利用者アボート」と区別しています。

OSI通信機能がする場合も,アソシエーション強制解放を受けた(RECEIVEで受信)時点でアソシエーションは解放されています。非活性化(DISABLE)要求でアソシエーションが解放状態であることをOSI通信機能に知らせます。

アソシエーションの解放手順(同期型の場合)を図3-3に,アソシエーションの解放手順(非同期型の場合)を図3-4に示します。

図3-3 アソシエーションの解放手順同期型の場合)

[図データ]

図3-4 アソシエーションの解放手順非同期型の場合)

[図データ]