TCP UCSPI protocol definition(TCP UCSPI プロトコル定義) Copyright 1996 D. J. Bernstein, djb@pobox.com この文書は UCSPI-1996 ツール用の TCP プロトコルを定義する。TCP クライ アントはインターネット・ドメイン・ソケットを使って TCP/IP プロトコルで、 同じあるい別のマシン上の TCP サーバと通信する。TCP UCSPI アプリケーショ ンに渡される記述子は一つの connect() または accept() から dup()ed され たソケットの複製である。 [address] は二つの変数 [hostname] [port] から成り立っている。 [hostname]を表すには三つの書き方がある。ローカルホストを示す数 0 、 192.48.96.5 のようなドット付き十進表記 IP アドレス、mail.uu.net のよう なシステムのリゾルバが理解する名前。TCP UCSPI サーバはリゾルバから得ら れる IP アドレスのうち最初のものだけを使用する。TCP UCSPI クライアント は順番に各アドレスを試す。 [port]を表すには三つの書き方がある。25 のような正の数の TCP ポート番号、 任意のポート番号を許可する数 0、smtp のようなシステムの getservbyname() により理解される名前。 クライアントとサーバは次のような環境変数を設定する。 PROTO: 文字列 TCP TCPLOCALIP: ローカルホストのドット付き十進表記 IP アドレス TCPLOCALPORT: ローカル TCP ポート番号(十進表記) TCPREMOTEIP: リモートホストのドット付き十進表記 IP アドレス TCPREMOTEPORT: リモート TCP ポート番号(十進表記) TCPLOCALHOST, 可能であれば: TCPLOCALIP のリゾルバの名前 TCPREMOTEHOST, 可能であれば: TCPREMOTEIP のリゾルバの名前 TCPREMOTEINFO, 可能であれば: 931/1413/IDENT/TAP の問い合わせの結果 TCPLOCALHOST と TCPREMOTEHOST の大文字は小文字に変換される。 TCPREMOTEINFO は 931/1413/IDENT/TAP 経由でリモートホストにより与えられ る接続依存の文字列である。 TCP UCSPI ツールは -R オプションを使うと 931/1413/IDENT/TAP の問い合わ せをやめて、-r オプションを使うと問い合わせを行う。TCP UCSPI クライア ントは -p [locport] オプションを使うと接続のローカル側の特定のTCP ポー トを要求する。TCP UCSPI サーバは -1 オプションを使うと記述子 1 を閉じ る前と接続を受ける準備をした後に記述子 1 へ(十進表記で改行を付けて) ローカルポート番号を出力する。