SOCKS 4
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/04/23 08:59 UTC 版)
標準の SOCKS 4 接続では、以下のような通信が行われる。 SOCKS クライアントからサーバ: フィールド 1: SOCKS バージョン番号,1バイト,このバージョンでは 0x04 でなくてはならない フィールド 2: コマンドコード,1バイト:0x01 = TCP/IP ストリーム接続を確立する 0x02 = TCP/IP ポートバインディングを確立する フィールド 3: ネットワークバイトオーダのポート番号,2バイト フィールド 4: ネットワークバイトオーダの IP アドレス,4バイト フィールド 5: ユーザID文字列, 可変長, null (0x00) で終了させる SOCKS サーバからクライアント: フィールド 1: null バイト フィールド 2: 状態,1バイト0x5a = リクエストの許可 0x5b = リクエストの拒絶または失敗 0x5c = リクエストはクライアントが identd を起動していなかったので失敗(もしくは、サーバから到達できなかった) 0x5d = リクエストはクライアントの identd がリクエストにユーザID文字列を確認できなかったので失敗 フィールド 3: 任意の2バイト,無視されなければならない フィールド 4: 任意の4バイト,無視されなければならない 例: これは、66.102.7.99:80にユーザ「Fred」を接続する SOCKS 4 のリクエストである。そして、サーバは、"OK"の返事をする。 クライアント: 0x04 | 0x01 | 0x00 0x50 | 0x42 0x66 0x07 0x63 | 0x46 0x72 0x65 0x64 0x00最後のフィールドは ASCII コードの「Fred」であり、次に1バイトの null が続く サーバ: 0x00 | 0x5a | 0xXX 0xXX | 0xXX 0xXX 0xXX 0xXX0xXX は全てのバイト値になることができる。 Socks 4 プロトコルはそれらのバイト値が無視されなければならないことを規定している。 この時点以降、 SOCKS クライアントから SOCKS サーバまで送る全てのデータは66.102.7.99に向けて中継される。そして、 SOCKS サーバから SOCKS クライアントに送る場合も同様である。 コマンドフィールドは、 "connect" で 0x01 、あるいは、 "bind" で 0x02 になることができる。 "bind" は動作中の FTP のようなプロトコルのために入ってくる接続を許可する。
※この「SOCKS 4」の解説は、「SOCKS」の解説の一部です。
「SOCKS 4」を含む「SOCKS」の記事については、「SOCKS」の概要を参照ください。
- SOCKS 4のページへのリンク