メインコンテンツまでスキップ

4. Requests (リクエスト)

メソッド依存のサブネゴシエーションが完了すると、クライアントはリクエストの詳細を送信します。ネゴシエートされたメソッドに、完全性チェック (Integrity Checking) および/または機密性 (Confidentiality) を目的としたカプセル化 (Encapsulation) が含まれる場合、これらのリクエストは、メソッド依存のカプセル化でカプセル化されなければなりません (MUST)。

SOCKSリクエスト (SOCKS Request) は次のように形成されます:

     +----+-----+-------+------+----------+----------+
|VER | CMD | RSV | ATYP | DST.ADDR | DST.PORT |
+----+-----+-------+------+----------+----------+
| 1 | 1 | X'00' | 1 | Variable | 2 |
+----+-----+-------+------+----------+----------+

各フィールドの説明:

  • VER プロトコルバージョン (Protocol Version): X'05'
  • CMD コマンド (Command)
    • CONNECT X'01'
    • BIND X'02'
    • UDP ASSOCIATE X'03'
  • RSV 予約 (RESERVED)
  • ATYP 後続アドレスのアドレスタイプ (Address Type)
    • IP V4 address: X'01'
    • DOMAINNAME: X'03'
    • IP V6 address: X'04'
  • DST.ADDR 目的の宛先アドレス (Desired Destination Address)
  • DST.PORT ネットワークオクテット順の目的の宛先ポート (Desired Destination Port in Network Octet Order)

SOCKSサーバーは、通常、送信元アドレスと宛先アドレスに基づいてリクエストを評価し、リクエストタイプに適した1つ以上の応答メッセージ (Reply Message) を返します。