SOCKS
SOCKSは当初、MIPS Computer Systemsのシステム管理者であるDavid Koblasによって開発された。Koblasは、MIPS Computer Systemsが1992年にSilicon Graphicsによって吸収合併された後に、その年のUsenix Security SymposiumでSOCKSの研究論文を公開した。これによりSOCKSはパブリックに利用できるようになった。SOCKSは、NECのYing-Da Leeによってバージョン4に拡張された。
SOCKS関連のアーキテクチャやクライアントはPermeo Technologiesが所有している。なお、Permeo Technologiesは、NECからスピンオフしたBlue Coat Systemsによって吸収合併された。
SOCKS5プロトコルは、もともとはファイアウォールの一部として、他のセキュリティ製品とともに管理を容易にするために作られたセキュリティプロトコルだった。1996年にIETFによって承認された。SOCKS5は、アジア外の技術を販売している企業Aventail Corporationの協力のもとに開発された。
フィールド 2: 選択された認証方法, 1バイト, もしくはアクセスできないメソッドが提供した 0xFF
次の認証は認証方法によって異なり、 RFC 1929 で記述されている。
クライアントの認証要求:
フィールド 1: バージョン番号, 1バイト( 0x01 でなくてはならない)
フィールド 2: ユーザ名長,1バイト
フィールド 3: ユーザ名
フィールド 4: パスワード長,1バイト
フィールド 5: パスワード
認証のためのサーバの応答:
フィールド 1: バージョン, 1バイト
フィールド 2: 状態コード,1バイト 0x00 = 成功 他の全ての値 = 失敗, 接続は終了されなければならない
クライアントの接続要求:
フィールド 1: SOCKS バージョン番号, 1バイト(このバージョンでは 0x05 でなくてはならない)
フィールド 2: コマンドコード,1バイト: 0x01 = TCP/IP ストリーム接続を確立する 0x02 = TCP/IP ポートバインディングを確立する 0x03 = UDP ポートを結合させる
フィールド 3: 予約されている, 0x00 でなければならない
フィールド 4: アドレスタイプ, 1バイト: 0x01 = IPv4アドレス 0x03 = ドメイン名 0x04 = IPv6アドレス
フィールド 5: 宛先アドレス IPv4 用の4バイト 1バイトのドメイン名長に続けて、ドメイン名 IPv6 用の16バイト