SOCKS 4a
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/04/23 08:59 UTC 版)
SOCKS 4a は、 SOCKS 4 プロトコルのシンプルな拡張機能であり、宛先ホストのドメイン名を解決できないクライアントがドメイン名を指定することを可能にする。 クライアントは宛先アドレスの最初の3バイトを NULL に、そして最後のバイトを0でない値に設定すべきである(これは、x を非零の値として、 IP アドレス 0.0.0.x に対応する。この値は宛先アドレスとして使用してはならない。したがって、この値は、もしクライアントがドメイン名を解決できるならば、決して設定するべきではない。)。 ユーザ ID を終了する NULL バイトの次に、クライアントは宛先ドメイン名を送らなければならない、そして、それを別の NULL バイトで終了させなければならない。これは "connect" と "bind" の両方のリクエストに使われる。 SOCKS クライアントからサーバ: フィールド 1: SOCKS バージョン番号,1バイト,このバージョンでは 0x04 でなくてはならない フィールド 2: コマンドコード,1バイト:0x01 = TCP/IP ストリーム接続を確立する 0x02 = TCP/IP ポートバインディングを確立する フィールド 3: ネットワークバイトオーダのポート番号,2バイト フィールド 4: ネットワークバイトオーダの IP アドレス,4バイト フィールド 5: ユーザ ID 文字列, 可変長, null (0x00) で終了させる フィールド 6: 接続先のホストのドメイン名, 可変長, null (0x00) で終了させる SOCKS サーバからクライアント: フィールド 1: null バイト フィールド 2: 状態,1バイト0x5a = リクエストの許可 0x5b = リクエストの拒絶または失敗 0x5c = リクエストはクライアントが identd を起動していなかったので失敗(もしくは、サーバから到達できなかった) 0x5d = リクエストはクライアントの identd がリクエストにユーザ ID 文字列を確認できなかったので失敗 フィールド 3: ネットワークバイトオーダのポート番号,2バイト フィールド 4: ネットワークバイトオーダの IP アドレス,4バイト 4A プロトコルを使用するサーバはリクエストパケット内の宛先アドレスをチェックしなければならない。宛先アドレスが、 x を非零の値としてアドレス 0.0.0.x を表現するならば、サーバはクライアントがパケット内に送付するドメイン名を読み込まなければならない。サーバはドメイン名を解決すべきであり、そしてそれが可能であるならば、宛先ホストへの接続を確立しなくてはならない。
※この「SOCKS 4a」の解説は、「SOCKS」の解説の一部です。
「SOCKS 4a」を含む「SOCKS」の記事については、「SOCKS」の概要を参照ください。
- SOCKS 4aのページへのリンク