4. 请求 (Requests)
一旦方法相关的子协商完成,客户端发送请求详情.如果协商的方法包含用于完整性检查和/或机密性的封装,这些请求必须 (MUST)使用方法相关的封装进行封装.
SOCKS请求的格式如下:
+----+-----+-------+------+----------+----------+
|VER | CMD | RSV | ATYP | DST.ADDR | DST.PORT |
+----+-----+-------+------+----------+----------+
| 1 | 1 | X'00' | 1 | Variable | 2 |
+----+-----+-------+------+----------+----------+
其中:
- VER 协议版本: X'05'
- CMD 命令 (Command)
- CONNECT (连接) X'01'
- BIND (绑定) X'02'
- UDP ASSOCIATE (UDP关联) X'03'
- RSV 保留字段 (RESERVED)
- ATYP 后续地址的地址类型
- IPv4地址: X'01'
- 域名 (DOMAINNAME): X'03'
- IPv6地址: X'04'
- DST.ADDR 期望的目标地址
- DST.PORT 期望的目标端口,以网络字节序 (network octet order)表示
SOCKS服务器通常会基于源地址和目标地址评估请求,并根据请求类型返回一个或多个应答消息.