Что такое протокол SDP – Session Description Protocol?

SDP – это аббревиатура от Session Description Protocol – протокол описания сеанса связи. Session Description Protocol определяет параметры обмена мультимедийными данными (как правило, потоковыми) между двумя конечными точками и опубликован IETF в документе RFC 4566. Session Description Protocol обычно инкапсулируется в другой протокол – наиболее широко он используется с протоколом SIP в приложениях IP-телефонии. Простыми словами, Session Description Protocol – это список / декларирование возможностей конечной точки, где перечислены ее параметры и технологии приема данных. Типичный список возможностей выглядит так:

  • какой IP-адрес должен принять входящий медиапоток

  • какой номер порта должен принять медиапоток

  • тип медиа, который ожидает конечная точка (обычно аудио)

  • протокол, по которому конечная точка ожидает обмен информацией (обычно RTP)

  • метод кодирования / сжатия, с которым может работать конечная точка (тип кодека)

Этим списком декларирование не ограничивается и может включать и другие параметры. В установлении сессии участвуют две конечные точки, которые обмениваются списком спецификаций и возможностей, в соответствии со стандартом SDP. Session Description Protocol сам по себе не передает никаких мультимедиа-данных, а просто служит для согласованием общего, приемлемого для обеих сторон, набора параметров обмена. А сами медиапотоки передаются по другим протоколам. Рассмотрим простой пример:

v=0
o=MyStreamer 2398026505 2307593197 IN IP4 10.20.30.40
s=MyStreamer Audio Session
c=IN IP4 10.11.12.13
t=0 0
m=audio 15010 RTP/AVP 0 101
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=sendrecv

Здесь можно видеть, что конечная точка перечисляет, с какими именно параметрами она готова принимать медиа-данные от другой точки, с которой она начинает взаимодействие:

  • на IP-адрес 10.11.12.13 (параметр “c=”)

  • на порт 15010 (указан в параметре “m=”)

  • тип аудиопотока (объявленный в параметре “m=”)

  • по протоколу RTP, с двумя возможными кодеками, которые имеют номера 0 и 101 соответственно:

    • кодек 0 определяется как PCMU с частотой 8000 Гц
    • кодек 101 определяется как “telephone-event” с частотой 8000 Гц (telephone-event фактически является тоном DTMF)
    • в двунаправленном режиме (“a=sendrecv”)

Дополнительная информация