X /オープントランスポートインターフェイス


X/Open_Transport_Interface
X / Openトランスポート・インタフェース(XTI)であるオープングループの中に存在プログラミングネットワークアプリケーションの仕様UNIXシステムVオペレーティング・システム。プロトコルに依存しないOSI トランスポート層サービスを提供します。Open Groupはこの仕様が撤回されたと見なしていますが、実装は、STREAMS文字入出力メカニズムを使用して実装されている最新のUNIX SystemVオペレーティングシステムの標準プログラミングインターフェイスの一部です。

コンテンツ
1 概要
2 プロトコルの独立性
3 ソケットからXTI / TLIに相当
4 XTI / TLI非同期モード
5 XTIはTLIを改良します
6 実装
7 ノート
8 参考文献
9 外部リンク

概要
X / Open Transport Interfaceは、ネットワークアプリケーション用の独立したトランスポートサービスインターフェイスを定義する仕様です。XTIを使用するプログラムは、伝送制御プロトコル(TCP)、Xeroxネットワークシステム(XNS)、システムネットワークアーキテクチャ(SNA)、X.25、非同期転送モード(ATM)などのさまざまなトランスポートプロバイダーで実行できます。OSIモデルのレイヤー4で機能するトランスポートレイヤープロバイダー。
XTIは、バークレーソケットインターフェイスと同様の機能を提供しますが、インターネットプロトコルに大きく偏っているソケットインターフェイスとは対照的に、プロトコルに依存しません。これはUNIXSystem Vトランスポート層インターフェース(TLI)に基づいています。これはオープンシステム相互接続(OSI)モデルに準拠したトランスポートサービス定義です。 XTIは、連携するSTREAMSモジュール、リンクライブラリアプリケーションプログラミングインターフェイス(API)、ヘッダーファイル、およびXTIプロセスの動作と相互作用を詳しく説明するルールと制限で構成されています。

プロトコルの独立性
XTIはプロトコルに依存しません。ただし、アプリケーションは、目的のトランスポートシステムを選択するために、それを認識する必要がアプリケーションは、XTI / TLIライブラリ(libnsl)によっても提供されるネットワーク選択機能を使用して、このトランスポートプロトコルの独立性を実現できます。

ソケットからXTI / TLIに相当
XTI / TLIはBSDソケットインターフェイスに似ていますが、どちらも含まれていないか、他のインターフェイスが含まれており、同じ役割を持ついくつかの関数の動作が異なります。UNIX SVR 3 およびSVR4 オペレーティングシステムリリースのTLIおよびBSDソケットインターフェイスはどちらも、同じ基盤となるSTREAMSトランスポートサービスインターフェイスを使用して実装されています。
次の表は、POSIXXTIとソケットインターフェイス間のおおよその同等性を示しています。
XTI / TLIインターフェース ソケットインターフェース 同じセマンティクス
t_open ソケット はい。ただし、t_openはopenでt_getinfoを実行できます。- ソケットペア –
t_getinfo – –
t_getprotaddr getockname、getpeername はい。ただし、t_getprotaddrは両方の呼び出しを1つで実行できます。
t_bind バインド、聞く はい。ただし、t_bindは1回の操作でバインドおよびリッスンできます。
t_optmgmt Getsockopt、setsockopt はい。ただし、t_optmgmtがデフォルト値を取得して値をネゴシエートできる場合を除きます。Getsockoptとsetsockoptは、現在の値のみを設定および取得できます。
t_unbind 練る はい、AF_UNSPECにバインドすると、ソケットのバインドが解除されます。
t_close 選ぶ はい。接続されたエンドポイントを除いて、t_closeは常に切断を中止しますが、closeは場合によっては正常に解放されます。
t_getstate – –
t_sync – –
t_alloc – –
t_free – –
t_look 選択、getsockopt selectおよびgetsockopt(SO_ERROR)は、t_lookによって提供されるすべての指示を提供することはできません。
テロ 恐怖 はい。ただし、XTIはerrnoに加えてt_errnoを使用し、トランスポートエラーとUNIXシステムエラーの両方を示すことができます。
t_strerror ストラー はい
t_connect 接続 t_connectの前にt_bindが必要です
t_rcvconnect 選択する t_rcvconnectは、接続が発行されたソケットセットO_NONBLOCKのselectと同等です。
t_listen、t_accept、t_snddis 受け入れる acceptは接続を拒否できませんが、t_listenで受信した接続は、その後t_acceptで受け入れるか、t_snddisで拒否できます。
t_snd、t_sndv send、sendto、sendmsg はい。ただし、t_sndとt_sndvは、接続モードのトランスポートにのみ使用できます。
t_rcv、t_rcvv recv、recvfrom、recvmsg はい。ただし、t_rcvとt_rcvvは、接続モードのトランスポートにのみ使用できます。
t_snddis 閉じて、シャットダウン t_snddisを発行した後、プログラムは引き続き要求をリッスンするか、t_connect関数を使用して接続を再確立し、closeはソケットファイル記述子を解放します。通信を継続するには、ソケットを再度発行して新しい接続を確立し、バインド、リッスン、または接続する必要が
t_rcvdis ENOTCONN、ECONNRESET、EPIPE、SIGPIPE はい。ただし、ソケットが切断をエラーまたは信号として受信する場合を除きます。
t_sndrel、t_sndreldata シャットダウン はい。ただし、shutdownは、整然としたリリースでデータを送信できません。t_sndreldataは、整然としたリリースでデータを送信できます。T_sndrelは、送信方向のみをシャットダウンします。
t_rcvrel、t_rcvreldata – –
t_sndudata、t_sndvudata sendmsg はい。ただし、t_sndudataとt_sndvudataは、コネクションレスモードのデータにのみ移植可能に使用できます。
t_rcvudata、t_rcvvudata recvmsg はい。ただし、t_rcvudataとt_rcvvudataは、コネクションレスモードのデータにのみ移植可能に使用できます。
t_rcvuderr – –
読み書き 読み書き XTI / TLIは、読み取り/書き込み関数を呼び出す前にtirdwrモジュールをプッシュする必要があります
ライブラリ関数呼び出しの適切なシーケンスを確認するために、XTI / TLIは、ソケットAPIと同様の方法で状態インジケーターを使用します。ただし、一部のソケットAPI関数は、複数の状態から呼び出すことができます(たとえば、コネクションレス型ソケットの非バインド状態からのsendmsg、コネクション型ソケットの非バインド状態からの接続)。一方、XTI API関数は、特定の対応する状態からのみ発行できます(たとえば、t_bindは非バインド状態からのみ発行でき、t_connectはバインド状態からのみ発行できます)。

XTI / TLI非同期モード
リアルタイムXTIエンドユーザーアプリケーションは、XTIインターフェイスを非同期で使用します(そうでない場合、データを待機しているコールがブロックされる時間についての保証はありません)。関数のセットは同期呼び出しと同じですが、トランスポートエンドポイントを初期化するときにO_NONBLOCKパラメーターが提供されます。XTI非同期モードでは、ファイルハンドルのさまざまなイベント(接続表示要求、新しいデータ、タイムアウト)についてエンドユーザーアプリケーションに通知できます。

XTIはTLIを改良します
XTIはTLIを改良し、追加のエラーメッセージ、フロー制御を管理するための追加のイベントを提供し、関数パラメーターを簡素化します(XTIは常にトランスポートエンドポイントを読み取り/書き込みとして開きます)。また、XTIはqlenの値をチェックして、アプリケーションがt_listenを発行したときに無期限にブロックされないようにします。追加のユーティリティ関数が追加されました:t_strerror()およびt_getprotaddr()。

実装
XTIライブラリはUNIXSystem Vにありますが、Linux用のOpenSS7などの他のシステム用のポートも

ノート
^ ( XNS&5.2)
^ ( XNS&5)
^ (Goodheart 1994、p。523)
^ ( Stevens 1994、pp。17–18)
^ ( Goodheart 1994、 pp。519)
^ ネットワーク技術の紹介
^ (スティーブンス1990)
^ ( Waite 1987、pp。295–304)
^ ( Goodheart 1994、 p。519)

参考文献
プログラミングインターフェイスガイド-SunMicrosystems、Inc. 2008年9月
グッドハート、バーニー; ジェームズコックス(1994)。魔法の庭の説明:UNIX SystemVリリース4の内部。ニュージャージー州イングルウッドクリフ:プレンティスホール。ISBN 0-13-098138-9。
オープングループ(1994年9月)。ネットワークサービス(XNS)の問題4。X / OpenCAE仕様。XNS(第4版)。英国バークシャー:オープングループ。ISBN 1-85912-049-0。
オープングループ(1997年2月)。ネットワークサービス(XNS)の問題5。CAE仕様。XNS(第5版)。英国バークシャー:オープングループ。ISBN 1-85912-165-9。
オープングループ(1999)。ネットワークサービス(XNS)問題5.2、ドラフト2。CAE仕様。XNS(問題5.2、ドラフト2版)。英国バークシャー:オープングループ。ISBN 1-85912-241-8。
Rago、SA(1993)。UNIX SystemVネットワークプログラミング。マサチューセッツ州レディング:アディソン-ウェスリー。ISBN 0-201-56318-5。
スティーブンス、W。リチャード(1990)。UNIXネットワークプログラミング。ニュージャージー州イングルウッドクリフ:プレンティスホール。ISBN 0-13-949876-1。
スティーブンス、W。リチャード(1994)。TCP / IPの図解:プロトコル。マサチューセッツ州レディング:アディソン-ウェスリー。ISBN 0-201-63346-9。
ウェイト、ミッチェル(1987)。UNIX開発者およびパワーユーザー向けのUNIXペーパー。インディアナポリス:ハワードW.サムズアンドカンパニー。ISBN 0-672-22578-6。

外部リンク
Networking Services(XNS)Issue 5.2、The Open Group、2000年1月
発行者XTI技術標準の発行者
ネットワーク技術の紹介
XTIインターフェースを使用したTCP通信の接続指向の例。