2013-04-01 2 views
0

Каковы механизмы/подходы к проверке полезной нагрузки UDP в случае SIP? Сообщение SIP не содержит размер заголовка или тела, поэтому как проверить, что полезная нагрузка действительна? Напротив, RTP указывает размер, поэтому, учитывая значение длины из UDP-заголовка, можно проверить RTP на достоверность и целостность. Можно ли сделать что-то подобное для SIP?проверить SIP (протокол инициации сеанса)

Mark.

ответ

0

Ваш вопрос состоит из двух частей:

  1. Как проверить заголовки SIP? Единственный способ проверить заголовки SIP - это проанализировать их согласно правилам section 7.3.1 of RFC 3261. Существуют SIP-парсеры, доступные для разных языков.

  2. Как проверить тело сообщений SIP? В SIP встроен механизм: заголовок Content-Length определяет размер тела. В общем случае тело может содержать произвольный MIME-тип, и никаких дополнительных правил проверки не применяются.

Edit: комментарий Per Frank Shearar в ниже, Content-Length не требуется для SIP-сообщений, передаваемых через UDP. Но если ваш UA поддерживает его, вы можете воспользоваться им.

+0

благодарит за комментарий. Однако сначала я должен понять, как проверить, что SIP, являющийся полезной нагрузкой UDP, действителен без разбора всего сообщения SIP - он может оказаться недействительным после разбора 90% сообщения. Поэтому мне интересно, есть ли быстрый «тест», чтобы принять решение о дальнейшем глубоком анализе. – Mark

+0

Ну, UDP поддерживает проверку целостности через контрольную сумму, поэтому, если отправитель заполняет поле контрольной суммы, это может быть один быстрый тест. – yotommy

+1

SIP-сообщения в дейтаграммах UDP не требуют 'Content-Length'; если отсутствует, предполагается, что остальная датаграмма является телом. –

Смежные вопросы