コネクションモードは回路型のモードです。データは確立された接続を使用して順次送信されます。またこのモードはデータ転送フェーズ中のアドレス解決および転送を行わない識別処理を提供します。データストリーム型の通信を必要とするアプリケーションにこのサービスを使用してください。コネクションモードトランスポートサービスには 4 つのフェーズが存在します。
ローカル管理
接続確立
データ転送
接続解放
ローカル管理フェーズはトランスポートユーザーとトランスポートプロバイダ間のローカル操作の定義を行います (図 3-2 参照)。たとえば、ユーザーはトランスポートプロバイダと通信チャネルの確立を行う必要があります。トランスポートユーザーとトランスポートプロバイダ間の各チャネルは通信の固有エンドポイントであり、トランスポートエンドポイントと呼ばれます。t_open(3NSL) はコネクションモードサービスの供給およびトランスポートエンドポイントの確立を行うため、ユーザーによる特定のトランスポートプロバイダの選択が可能です。
各ユーザーは個別にトランスポートプロバイダに認識される必要があります。トランスポートアドレスが各トランスポートエンドポイントと関連付けられます。単一のユーザー処理によって複数のトランスポートエンドポイントの管理が可能です。コネクションモードサービスでは、アドレスを指定することにより、あるユーザーから別のユーザーへの接続の要求が行われます。トランスポートアドレスの構造はトランスポートプロバイダにより定義されます。アドレスは構造化されていない文字列 (たとえば、file_server) でも、ネットワーク上のデータの経路指定に必要な情報を含む符号化されたビットパターンのような形式でも指定可能です。各トランスポートプロバイダはユーザー識別のためのメカニズムを独自に定義します。アドレスは t_bind(3NSL) によりトランスポートのエンドポイントに割り当てることが可能です。
また、t_open(3NSL) および t_bind(3NSL) に加え、いくつかのルーチンがローカル操作をサポートしています。表 3-2 は XTI/TLI のローカル管理ルーチンの一覧表です。
表 3-2 XLI/TLI のエンドポイント上の操作ルーチン
コマンド |
説明 |
---|---|
XTI/TLI のデータ構造体を割り当てる |
|
t_bind |
トランスポートアドレスをトランスポートエンドポイントへバインドする |
トランスポートエンドポイントを終了させる |
|
XTI/LTI エラーメッセージを出力する |
|
t_alloc(3NSL) により割り当てられた構造体を解放する |
|
特定のトランスポートプロバイダに関連付けられたパラメタセットを戻す |
|
エンドポイントに関連付けられたローカルおよび/またはリモートのアドレスを戻す (XTI のみ) |
|
トランスポートエンドポイントの状態を戻す |
|
トランスポートエンドポイントの現在のイベントを戻す |
|
選択されたトランスポートプロバイダへ接続されたトランスポートエンドポイントを確立する |
|
トランスポートプロバイダを使用したプロトコル個有のオプションでネゴシエーションする |
|
トランスポートエンドポイントとトランスポートプロバイダとの同期をとる |
|
トランスポートアドレスをトランスポートエンドポイントからアンバインドする |
コネクションフェーズは 2 ユーザー間で接続の確立または仮想回路の作成を可能にします。図 3-3 を参照してください。
たとえば、サーバーがクライアントグループへサービスを通知すると接続フェーズが発生し、要求待ちを行うために t_listen(3NSL) によってブロックします。クライアントは t_connect(3NSL) の呼び出しにより通知されたアドレスでサーバーへの接続を行います。接続要求により t_listen(3NSL) はサーバーへ戻され、接続を完了するため t_accept(3NSL) の呼び出しを行います。
表 3-3 はトランスポート接続を確立するためのルーチンの一覧です。各ルーチンの仕様については、マニュアルページを参照してください。
表 3-3 トランスポート接続を確立するためのルーチン
コマンド |
説明 |
---|---|
t_accept |
トランスポート接続の要求を受け入れる |
指定された宛先のトランスポートユーザーとの接続を確立する |
|
他のトランスポートユーザーからの接続要求を待機する |
|
t_connect(3NSL) が非同期モードで呼び出されている場合、接続の確立を完了する (「拡張機能」を参照) |
データ転送フェーズはユーザーによる接続内の双方向のデータ転送を可能にします。接続を介し t_snd(3NSL) がデータを送信し、t_rcv(3NSL) がデータを受信します。あるユーザーから他のユーザーへ送信されたデータはすべて送信された時の順序で受信されることを前提としています。表 3-4 はコネクションモードデータ転送ルーチンの一覧です。
表 3-4 コネクションモードデータ転送ルーチン
コマンド |
説明 |
---|---|
トランスポート接続を介し到着したデータの受信 |
|
トランスポート接続を介してデータを送信 |
XTI/TLI の接続解放には 2 通りあります。放棄型解放はトランスポートプロバイダへただちに接続を解放するよう指示を与えます。他のユーザーに送られる予定で、まだ送信されていないデータはトランスポートプロバイダによる破棄が可能です。t_snddis(3NSL) は放棄型解放の初期化を行います。t_rcvdis(3NSL) が放棄型解放を受信します。トランスポートプロバイダは通常、いくつかの形式の放棄型解放操作をサポートしています。
トランスポートプロバイダの中にはデータの破棄を行わずに接続の終了を行う正常型解放をサポートしているものがあります。t_sndrel(3NSL) および t_rcvrel(3NSL) はこの機能を持っています。表 3-5 は接続解放ルーチンの一覧です。各ルーチンの仕様についてはマニュアルページを参照してください。
表 3-5 接続解放ルーチン
コマンド |
説明 |
---|---|
接続の切断および残っているユーザーデータに対する原因コードを返す |
|
正常型解放の接続要求の受信確認 |
|
接続の中止または接続要求の拒否 |
|
接続の正常型解放を要求 |