4. Requests (Requêtes)
Une fois la sous-négociation dépendante de la méthode terminée, le client envoie les détails de la requête (Request). Si la méthode négociée inclut une encapsulation (Encapsulation) à des fins de vérification d'intégrité (Integrity Checking) et/ou de confidentialité (Confidentiality), ces requêtes doivent être encapsulées dans l'encapsulation dépendante de la méthode.
La requête SOCKS (SOCKS Request) est formée comme suit :
+----+-----+-------+------+----------+----------+
|VER | CMD | RSV | ATYP | DST.ADDR | DST.PORT |
+----+-----+-------+------+----------+----------+
| 1 | 1 | X'00' | 1 | Variable | 2 |
+----+-----+-------+------+----------+----------+
Où :
- VER version du protocole (Protocol Version) : X'05'
- CMD commande (Command)
- CONNECT X'01'
- BIND X'02'
- UDP ASSOCIATE X'03'
- RSV RÉSERVÉ (RESERVED)
- ATYP type d'adresse de l'adresse suivante (Address Type)
- IP V4 address : X'01'
- DOMAINNAME : X'03'
- IP V6 address : X'04'
- DST.ADDR adresse de destination souhaitée (Desired Destination Address)
- DST.PORT port de destination souhaité dans l'ordre des octets réseau (Desired Destination Port in Network Octet Order)
Le serveur SOCKS évaluera généralement la requête en fonction des adresses source et destination, et renverra un ou plusieurs messages de réponse (Reply Message), selon le type de requête.