Код ответа

Код ответа, Код причины завершения или Код возврата (в англоязычной литературе также Cause code, Reason code, Status code, Disconnect code и т. д.) — в телекоммуникациях и программном обеспечении  — цифровой код, сформированный узлом в результате выполнения запроса, который характеризует то или иное событие протокола или технологии, произошедшее на отвечающей стороне: успешное или неуспешное выполнение и т. д. Нередко коды ответа сопровождаются лаконичным комментарием на английском языке, а в ответном сообщении вместе с цифровым кодом и его расшифровкой может передаваться другая необходимая информация (например, запрошенные данные).

Получив код ответа, автор запроса может сделать выводы о характере события и продолжить работу или завершить её, согласно ситуации. Коды ответа очень часто используется в архитектуре клиент-сервер, однако применение не ограничивается только ей и могут использоваться для взаимодействия равнозначных узлов/приложений в рамках соответствующего протокола.

В зависимости от сферы применения коды завершения могут быть общепринятыми и узкоспециальными. Однако в подавляющем большинстве случаев разработчики стандартизируют коды ответов своих проектов и предоставляют полноценные описания причины каждого события, в результате которого может быть получен тот или иной ответ с цифровым кодом. В протоколах, сходных по назначению, могут применяться одинаковые коды, хотя в большинстве случаев, цифровые коды возврата уникальны для каждой технологии или протокола.

Знание кодов ответа и ошибок позволяет пользователям, разработчикам и обслуживающему персоналу системы эффективно заниматься анализом проблем (при условии, что возможно сохранение лога работы протокола). Также для отладки может пригодиться анализатор трафика (например, Wireshark).

Коды ответов станций в телефонной связи

[править | править код]

В телефонной сигнализации, обеспечивающей коммутацию вызова и все процедуры, связанные с его установлением, изменением состояния и завершением, применяются общепринятые стандартные коды ответов на запросы. В профессиональной речи используется также выражение «код отбоя».

Традиционная телефония ТФОП

[править | править код]

Код завершения вызова и/или окончательного ответа станции на запрос сохраняется в подробную запись о вызове (CDR). Коды ответов узлов, станций и абонентского оборудования в традиционной телефонии описываются в стандарте Q.850 для ISUP сети ОКС-7 и в Q.931 для ISDN.

Обычно на коммутаторе можно настроить, какой звук (голосовое уведомление, СИТ-тон) будет проигрываться абоненту для каждого кода завершения, когда абонент недоступен, абонент занят, сеть перегружена и т. п.

Примеры кодов ответов:

Код Значение Пояснение
16 Normal call clearing Нормальное завершение вызова
17 User busy Абонент занят
22 Number changed Номер изменён
28 Invalid Number Format (address incomplete). Вызываемый номер не соответствует принятому формату или не полон.
101 The Message is Not Compatible with the Call State. Полученное сообщение несовместимо с состоянием вызова.

Сотовая связь

[править | править код]

На мобильных коммутаторах кроме технического цифрового кода ответа по завершении попытки вызова, применяются голосовые уведомления, информирующие абонента о том, что вызов не может быть совершён по любой из ряда причин, начиная от локальной перегрузки, заканчивая недоступностью или отключением устройства абонента, ошибками набора номера или неполадками сотовой сети.

Некоторые называют это явление автоответчиком. Это не совсем корректно, так как автоответчик — это возможность или услуга реализуемая на уровне пользовательского номера (вызываемого номера), а не функция коммутатора для уведомления о недоступности номера.

Код завершения вызова и/или окончательного ответа станции на запрос так же, как и в традиционной телефонии, сохраняется в подробную запись о вызове (CDR). Так как коды разных протоколов могут различаться, в мультипротокольных продуктах NGN операторам связи нередко приходится решать задачу адекватного сопоставления кодов ответа станции одного протокола кодам соответствия другого (сообщения из SIP в H.323 или ISDN и наоборот), это называется трансляцией кодов (или mapping).

Оборудование и программное обеспечение H.323 завершает вызовы с кодами ответов, соответствующие стандарту Q.931, так как данный стек протоколов разрабатывался для максимального соответствия ISDN и многие моменты организации взаимодействия сторон унаследованы из цифровой телефонии. (Примеры смотри выше)

SIP — Протокол установления сеанса, следуя принципу упрощения запросов и ответов в рамках телефонного вызова, унаследовал структуру ответов и их виды от протокола HTTP.

Примеры кодов ответов:

Код Значение Пояснение
180 Ringing Уведомление о начале вызова на стороне вызываемого оборудования, соответствует длинному звуковому сигналу (КПВ) в телефонии
200 OK Стандартный ответ, подтверждающий согласие на действие по запросу
404 Not found Вызываемый абонент не найден
487 Request terminated Инициатор вызова завершил попытку установить связь до соединения с вызываемым абонентом
603 Decline Означает, что вызываемая сторона отклонила входящий вызов

Коды ответов в сетевых приложениях

[править | править код]

В приложениях код ответа является частью взаимодействия администратора и системы.

Передача файлов (FTP)

[править | править код]

FTP является одним из старейших прикладных клиент-серверных протоколов, предназначенным для передачи файлов в компьютерных сетях, в котором команды и коды ответа сервера являются стандартизированными и популярными.

Примеры кодов ответов:

Код Значение Пояснение
220 FTP server ready Сервер готов обрабатывать запросы
230 Login successful Пользователь успешно подключился
150 Ok to send data Согласие принимать данные от пользователя
226 File receive OK Файл передан успешно

Взаимодействие с веб-сервером (HTTP)

[править | править код]

Код состояния HTTP является частью первой строки ответа веб-сервера на действия пользователя. Клиент узнаёт по коду ответа о результатах его запроса и определяет, какие действия ему предпринимать дальше. Набор кодов состояния является стандартом, и они описаны в соответствующих документах (один из последних RFC 2616).

Примеры кодов ответов:

Код Значение Пояснение
202 Accepted Запрос был принят на обработку, но обработка не завершена.
400 Bad Request Сервер обнаружил в запросе клиента синтаксическую ошибку.
401 Unauthorized Запрос требует идентификации пользователя.
403 Forbidden Сервер понял запрос, но он отказывается его выполнять из-за ограничений в доступе со стороны клиента к указанному ресурсу.
404 Not Found Сервер понял запрос, но не нашёл соответствующего ресурса по указанному адресу.

Отправка сообщений электронной почты (SMTP)

[править | править код]

Почта по протоколу SMTP посылается от клиента к серверу. Клиент запрашивает соединение с сервером и выполняет различные команды. Почтовый сервер (MTA) реагирует на запросы и выдаёт соответствующие ответы.

Примеры кодов ответов:

Код Значение Пояснение
220 Service Ready Почтовый сервер готов к обслуживанию (может отправляться вместе с доменным именем сервера и версией ПО)
250 OK Команда принята и обработана
550 No such user here Ошибка: указанный почтовый ящик (пользователь) отсутствует