Транспортные протоколы, используемые для SIP
Выдержка из SIP RFC 3261:
Все участники, работающие с SIP протоколом, ДОЛЖНЫ поддерживать транспортные IP протоколы UDP и TCP. Все участники, работающие с SIP протоколом, МОГУТ поддерживать и другие протоколы.
Обязательная поддержка протокола TCP для пользовательских клиентов (UA) - это основное изменение, следующее из RFC 2543. Оно возникло из-за необходимости обеспечения передачи и обработки длинных сообщений, которые ДОЛЖНЫ (вынуждены) использовать протокол TCP по причинам, изложенным ниже. Даже в тех случаях, если все элементы SIP обмена никогда не будут отправлять длинных сообщений, от них требуется возможность принять их и корректно обработать.
Если размер запроса в пределах 200 байт от значения MTU на пути его транспортировки или, если его размер больше 1300 байт, при неизвестном значении MTU на пути его следования, тогда этот запрос ДОЛЖЕН быть передан с использованием (RFC 2914) - транспортного протокола с поддержкой фрагментации данных, например таким, как TCP. Если эта ситуация вызывает изменения в части транспортного протокола, который указан в первом заголовке сообщения - Via, то значение в этом первом заголовке Via ДОЛЖНО быть изменено. Это предотвращает фрагментацию сообщений, которая может повлечь за собой потерю части сообщения, передаваемых по протоколу UDP, и позволяет контролировать перегрузку по длине для длинных сообщений. Однако, реализация ДОЛЖНА поддерживать возможность принимать и обрабатывать только те сообщения, максимальный размер которых ограничивается максимальным размером, установленным для datagram пакетов (datagram packet size). Для протокола UDP - это значение равно 65,535 байтам, включая заголовки IP и UDP протокола.
- Существует экспериментальный IETF Документ, описывающий транспорт SIP через протокол STCP.
Вернуться к описанию SIP