Session Description Protocol

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

SDP (англ. Session Description Protocol) — сетевой протокол прикладного уровня, предназначенный для описания сессии передачи потоковых данных, включая телефонию (ТФОП и VoIP), Интернет-радио, приложения мультимедиа.

Сессия SDP может реализовывать несколько потоков данных. В протоколе SDP в настоящее время определены аудио, видео, данные, управление и приложения (поточные), сходные с MIME типами электронной почты в Интернет-адресах.

Сообщение SDP, передаваемое от одного узла другому, может указывать:

  • адреса места назначения, которые могут быть для медиа-потоков мультикастинг-адресами
  • номера UDP портов для отправителя и получателя
  • медиа-форматы (например кодеки), которые могут применяться во время сессии
  • время старта и остановки. Используется в случае широковещательных сессий, например, телевизионных или радиопрограмм. Можно внести время начала, завершения и времена повторов сессии

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

Поля сообщения протокола SDP нередко включаются в сообщения сигнальных протоколов телефонии, таких, например как SIP и MGCP. Таким образом SDP дополняет процесс управления вызовом, выполняя функции описания параметров медиа-сессии.

Пример SDP сообщения[править | править вики-текст]

v=0
o=- 1815849 0 IN IP4 194.67.15.181
s=Cisco SDP 0
c=IN IP4 194.67.15.181
t=0 0
m=audio 20062 RTP/AVP 99 18 101 100
a=rtpmap:99 G.729b/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=rtpmap:100 X-NSE/8000
a=fmtp:100 200-202

Поля, используемые в протоколе[править | править вики-текст]

Необязательные элементы отмечены символом `*'.

Описание сеанса
v= (версия протокола)
o= (идентификаторы создателя/владельца и сессии).
s= (имя сессии)
i=* (информация о сессии)
u=* (URI описания)
e=* (email адрес)
p=* (номер телефона)
c=* (информация для соединения - не требуется, если есть в описании всех медиаданных)
b=* (информация о занимаемой полосе пропускания канала связи)
Одна и более строк с описанием параметров времени (Смотри ниже)
z=* (установка для временной зоны)
k=* (ключ шифрования)
a=* (одна или несколько строк с описанием атрибутов сессии)
От нуля и больше описаний, данных передачи мультимедиа (Смотри ниже)

Описание параметров времени
t= (время активности сеанса)
r=* (число попыток повторов, от нуля и больше)

Описание данных передачи мультимедиа
m= (название медиаданных и адрес их передачи)
i=* (заголовок медиаданных)
c=* (информация для соединения - не обязательно, если описана в параметрах сеанса)
b=* (информация о занимаемой полосе пропускания канала связи)
k=* (ключ шифрования)
a=* (от нуля и более строк с описанием атрибутов медиаданных)

Ссылки[править | править вики-текст]