NW 24 - 同期 TCP OTConnect クライアント呼び出しはサーバが応答する前に完了する (96 年 5 月 14 日)
Q: TCP クライアントから接続の受信を受動的に待つ TCP サーバに対して、同期 OTConnect 呼び出しを行いました。ところが、OTListen および OTAccept 呼び出しを使ってサーバが応答する前に、OTConnect 呼び出しがエラーなしに完了してしまいます。このとき、クライアント終端のステータスを検査すると、T_DATAXFER ステータスになっていることを確認しました。いったい、これはどういうことなのですか。
A: X/Open Transport Interface (XTI) の仕様書には、次のように書かれています。「TCP では、接続の指示を拒否する可能性は排除されていません。それぞれの接続指示により、TCP 転送プロバイダは接続を確立することになります。つまり、ISO プロバイダでは若干異なりますが、TCP 転送プロバイダでは、t_listen() と t_accept() は同義です」
その結果、現在の接続数が受動終端の qlen を超えない場合、サーバでは TCP 接続リクエストを受け付けます。XTI の仕様書によれば、「転送に T_LISTEN が検出されるとき、TCP は既に接続を確立しています」。同期、非同期いずれのモードであっても、クライアントは接続が確立されたという通知を受信します。同期終端の場合、TCP は 3 通りの接続ハンドシェイクを完了します。非同期終端では、OTRcvConnect 呼び出しを行ってハンドシェイクを完了させる必要があります。
[ Technical Q&A's : Communications & Collaboration : Networking : NW24 ]
|