Speaker
   Создай свою VoIp сеть и разговаривай со всем миром бесплатно.

   Главная,   Примеры адресации,   Создание списка пользователей,   Звонки через интернет,  
   Описание протоколов: SIP    Socks5    Введение в IP-сети
   Коды ответов SIP сервера.    Коды ответов HTTP сервера.
   Статьи: SIP против H.323



Ответы

SOCKS-запрос посылается клиентом как только он установил соединение с SOCKS-сервером и выполнил аутентификацию. Сервер обрабатывает запрос и посылает ответ в следующей форме:

        +----+-----+-------+------+----------+----------+
        |VER | REP |  RSV  | ATYP | BND.ADDR | BND.PORT |
        +----+-----+-------+------+----------+----------+
        | 1  |  1  | X'00' |  1   | Variable |    2     |
        +----+-----+-------+------+----------+----------+

     Где:

          o  VER    версия протокола: X'05'
          o  REP    код ответа:
             o  X'00' успешный
             o  X'01' ошибка SOCKS-сервера
             o  X'02' соединение запрещено набором правил
             o  X'03' сеть недоступна
             o  X'04' хост недоступен
             o  X'05' отказ в соединении
             o  X'06' истечение TTL
             o  X'07' команда не поддерживается
             o  X'08' тип адреса не поддерживается
             o  X'09' до X'FF' не определены
          o  RSV    зарезервирован
          o  ATYP   тип последующего адреса
             o  IP v4 адрес: X'01'
             o  имя домена:  X'03'
             o  IP v6 адрес: X'04'
          o  BND.ADDR       выданный сервером адрес
          o  BND.PORT       выданный сервером порт (в сетевом порядке октетов)

Значения зарезервированных (RSV) полей должны быть установлены в X'00'.

Если выбранный метод аутентификации требует особое формирование пакетов с целью проверки целостности и/или конфедициальности, запросы должны инкапсулироваться в пакет, формат которого определяется выбранным методом.

CONNECT

В ответ на CONNECT, BND.PORT содержит номер порта, который сервер назначает для соединения с указанным хостом, а BND.ADDR содержит связанный IP-адрес. Выданный BND.ADDR зачастую отличается от IP-адреса, который клиент использует для доступа к SOCKS-северу, так как такие сервера часто имеют несколько IP-адресов. Ожидается, что сервер будет использовать DST.ADDR и DST.PORT и адрес клиента при обработке запроса CONNECT.

BIND

Запрос BIND используется в протоколах, которые требуют чтобы клиент принимал соединение со стороны сервера. Хорошим примером этого является FTP, который использует основное соединение клиент-к-серверу для комманд и сообщений, но может использовать соединение сервер-к-клиенту для передачи данных по запросу (например LS, GET, PUT).

Ожидается, что клиентская сторона прикладного протокола будет использовать запрос BIND только для установки вторичного соединения, после первичного соединения, установленного с использованием CONNECT. Ожидается, что сервер будет использовать DST.ADDR и DST.PORT при обработке запроса BIND.

SOCKS-сервер посылает два ответа клиенту в течении операции BIND. Первый послыается после того, как сервер создает и привязывает новый сокет. Поле BND.PORT содержит номер порта, который SOCKS-сервер выделил для входящего соединения. Поле BND.ADDR содержит связанный IP-адрес. Клиент может использовать эту информацию для уведомления (через первичное соединение) приложения-сервера об адресе для взаимодействия. Второе уведомление происходит после ожидаемого входящего соединения или неудачной попытке входящего соединения. При втором ответе поля BND.PORT и BND.ADDR содержат адрес и номер порта присоединившегося хоста.

UDP ASSOCIATE

Запрос UDP ASSOCIATE используется для установления соединения посылающим UDP-сообщения процессом. Поля DST.ADDR и DST.PORT содержат адрес и порт, на который клиент собирается слать UDP-датаграммы после установки соединения. Сервер может использовать эту информацию в целях ограничения доступа. Если клиент не располагает информацией об адресе на момент запроса UDP ASSOCIATE, то клиент должен заполнить нулями номер порта и адреса.

UDP-связь обрывается, когда обрывается TCP-соединение выполнившее запрос UDP ASSOCIATE.

В ответе на запрос UDP ASSOCIATE, поля BND.PORT и BND.ADDR определяют порт и адрес, куда клиент должен слать UDP-датаграмы для пересылки.

Обработка ответов

Когда приходит ответ с сообщением о неудаче (значение REP не равно X'00'), то SOCKS сервер должен оборвать TCP-соединение вскоре после посылки ответа. Это должно произойти не более чем спустя 10 секунд после определения причин вызвавших неудачу.

При получении ответа с сообщением об удаче (значение REP равно X'00'), если запросом был BIND или CONNECT, то клиент может начинать передавать данные. Если выбранная схема аутентификации требует особое формирование пакетов с целью проверки целостности и/или конфедициальности, данные должны инкапсулироваться в пакет, формат которого определяется выбранным методом. Подобно этому, когда данные для клиента получаются SOCKS-сервером, сервер должен инкапсулировать данные согласно тому, как это требует выбранный метод аутентификации.



Видео Инспектор - видеозапись с USB видеокамеры, Auto Recorder v3.0 - многоканальный (до 6 каналов) MP3 магнитофон.
© 2006-2007 www.f35.ru   - All Rights Reserved.