Запросы
После того как аутентификация выполнена, клиент посылает детали запроса. Если выбранный метод аутентификации требует особое формирование пакетов с целью проверки целостности и/или конфедициальности, запросы должны инкапсулироваться в пакет, формат которого определяется выбранным методом.
SOCKS-запрос формируется следующим образом:
VER | CMD | RSV | ATYP | DST.ADDR | DST.PORT |
---|---|---|---|---|---|
1 | 1 | X'00' | 1 | Variable | 2 |
Где:
- VER версия протокола: X'05'
- CMD
- CONNECT X'01'
- BIND X'02'
- UDP ASSOCIATE X'03'
- RSV зарезервировано
- ATYP тип адреса, следующего вида:
- IP v4 адрес: X'01'
- имя домена: X'03'
- IP v6 адрес: X'04'
- DST.ADDR требуемый адрес
- DST.PORT требуемый порт (в сетевом порядке октетов)
SOCKS-сервер обрабатывает запрос на основании исходного и целевого адресов и посылает одно или несколько сообщений в ответ, в соответствии с типом запроса.
Адресация
Тип адреса содержащегося в адресном поле (DST.ADDR, BND.ADDR), определяется содержимым поля ATYP:
- X'01'
адрес является адресом IP v4, длинна адреса 4 октета
- X'03'
поле адреса содержит имя домена. Первый октет адресного поля содержит число октетов в последующем за ним имени, завершающий NUL-октет в конце строки не применяется.
- X'04'
адрес является адресом IP v6, длинна адреса 16 октет