вторник, 26 ноября 2024 г.

Заголовки Via, Record-Route и Route

Заголовки Via содержат записи обо всех устройствах (прокси, АТС и т.п.), которые прошел начальный запрос на своём пути к получателю.  Ответы на запрос получатель должен отправлять на адрес из последнего заголовка Via. На обратном пути к отправителю каждое устройство удаляет заголовок Via со своим адресом, таким образом к отправителю приходит ответ с одним исходным Via. Для statefull маршрутизации используются заголовки Record-Route и Route. Каждый прокси добавляет к начальному запросу заголовок Record-Route со своим адресом. Важна последовательность заголовков, т.к. их порядок определяет путь запроса через сеть.

Для непосредственных ответов (таких как "200 OK") на начальный запрос в рамках одной транзакции используются адреса из заголовков Via в обратном порядке. А вот для маршрутизации последующих сообщений диалога (ACK, BYE, Re-INVITE) берутся адреса из Record-Route. Для этого UAC формирует заголовок Route используя адреса из заголовка Record-Route, полученного с финальным ответом на начальный запрос. Для формирования заголовка Route адреса берутся в обратном порядке, что позволяет проходить прокси в нужной очерёдности. Прокси, получивший сообщение с заголовком Route, пересылает это сообщение на адрес из Route.

Таким образом, использование заголовков Record-Route позволяет сохранить путь запросов через сеть в рамках всего диалога. Что может быть важно для корректной маршрутизации и биллинга.

Про диалоги и транзакции читаем тут.


Комментариев нет:

Отправить комментарий