ネットワークインタフェース

コネクションモードルーチン

各ユーザーは個別にトランスポートプロバイダに認識される必要があります。トランスポートアドレスが各トランスポートエンドポイントと関連付けられます。単一のユーザー処理によって複数のトランスポートエンドポイントの管理が可能です。コネクションモードサービスでは、アドレスを指定することにより、あるユーザーから別のユーザーへの接続の要求が行われます。トランスポートアドレスの構造はトランスポートプロバイダにより定義されます。アドレスは構造化されていない文字列 (たとえば、file_server) でも、ネットワーク上のデータの経路指定に必要な情報を含む符号化されたビットパターンのような形式でも指定可能です。各トランスポートプロバイダはユーザー識別のためのメカニズムを独自に定義します。アドレスは t_bind(3NSL) によりトランスポートのエンドポイントに割り当てることが可能です。

また、t_open(3NSL) および t_bind(3NSL) に加え、いくつかのルーチンがローカル操作をサポートしています。表 3-2 は XTI/TLI のローカル管理ルーチンの一覧表です。

表 3-2 XLI/TLI のエンドポイント上の操作ルーチン

コマンド 

説明 

t_alloc

XTI/TLI のデータ構造体を割り当てる 

t_bind

トランスポートアドレスをトランスポートエンドポイントへバインドする 

t_close

トランスポートエンドポイントを終了させる 

t_error

XTI/LTI エラーメッセージを出力する 

t_free

t_alloc(3NSL) により割り当てられた構造体を解放する

t_getinfo

特定のトランスポートプロバイダに関連付けられたパラメタセットを戻す 

t_getprotaddr

エンドポイントに関連付けられたローカルおよび/またはリモートのアドレスを戻す (XTI のみ) 

t_getstate

トランスポートエンドポイントの状態を戻す 

t_look

トランスポートエンドポイントの現在のイベントを戻す 

t_open

選択されたトランスポートプロバイダへ接続されたトランスポートエンドポイントを確立する 

t_optmgmt

トランスポートプロバイダを使用したプロトコル個有のオプションでネゴシエーションする 

t_sync

トランスポートエンドポイントとトランスポートプロバイダとの同期をとる 

t_unbind

トランスポートアドレスをトランスポートエンドポイントからアンバインドする 

コネクションフェーズは 2 ユーザー間で接続の確立または仮想回路の作成を可能にします。図 3-3 を参照してください。

図 3-3 トランスポート接続

Graphic

たとえば、サーバーがクライアントグループへサービスを通知すると接続フェーズが発生し、要求待ちを行うために t_listen(3NSL) によってブロックします。クライアントは t_connect(3NSL) の呼び出しにより通知されたアドレスでサーバーへの接続を行います。接続要求により t_listen(3NSL) はサーバーへ戻され、接続を完了するため t_accept(3NSL) の呼び出しを行います。

表 3-3 はトランスポート接続を確立するためのルーチンの一覧です。各ルーチンの仕様については、マニュアルページを参照してください。

表 3-3 トランスポート接続を確立するためのルーチン

コマンド 

説明 

t_accept

トランスポート接続の要求を受け入れる 

t_connect

指定された宛先のトランスポートユーザーとの接続を確立する 

t_listen

他のトランスポートユーザーからの接続要求を待機する 

t_rcvconnect

t_connect(3NSL) が非同期モードで呼び出されている場合、接続の確立を完了する (「拡張機能」を参照)

データ転送フェーズはユーザーによる接続内の双方向のデータ転送を可能にします。接続を介し t_snd(3NSL) がデータを送信し、t_rcv(3NSL) がデータを受信します。あるユーザーから他のユーザーへ送信されたデータはすべて送信された時の順序で受信されることを前提としています。表 3-4 はコネクションモードデータ転送ルーチンの一覧です。

表 3-4 コネクションモードデータ転送ルーチン

コマンド 

説明 

t_rcv(3NSL)

トランスポート接続を介し到着したデータの受信 

t_snd(3NSL)

トランスポート接続を介してデータを送信 

XTI/TLI の接続解放には 2 通りあります。放棄型解放はトランスポートプロバイダへただちに接続を解放するよう指示を与えます。他のユーザーに送られる予定で、まだ送信されていないデータはトランスポートプロバイダによる破棄が可能です。t_snddis(3NSL) は放棄型解放の初期化を行います。t_rcvdis(3NSL) が放棄型解放を受信します。トランスポートプロバイダは通常、いくつかの形式の放棄型解放操作をサポートしています。

トランスポートプロバイダの中にはデータの破棄を行わずに接続の終了を行う正常型解放をサポートしているものがあります。t_sndrel(3NSL) および t_rcvrel(3NSL) はこの機能を持っています。表 3-5 は接続解放ルーチンの一覧です。各ルーチンの仕様についてはマニュアルページを参照してください。

表 3-5 接続解放ルーチン

コマンド 

説明 

t_rcvdis(3NSL)

接続の切断および残っているユーザーデータに対する原因コードを返す 

t_rcvrel(3NSL)

正常型解放の接続要求の受信確認 

t_snddis(3NSL)

接続の中止または接続要求の拒否 

t_sndrel(3NSL)

接続の正常型解放を要求