Session Description Protocol

Поделись знанием:
(перенаправлено с «SDP»)
Перейти к: навигация, поиск

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

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

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

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

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

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





Поля, используемые в протоколе

Рассмотрим, какие поля могут использоваться в сообщениях SDP. Необязательные элементы отмечены в списке символом `*'.

Примечание: Подробное описание всех возможных полей и требований к значениям, приводится в RFC 4566.

Описание сеанса

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

Описание параметров времени

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

Описание данных передачи мультимедиа

m= (тип медиаданных и транспортный адрес устройства)

Строка m= содержит точное название медиаданных (возможные значения audio, video или message), точный транспортный адрес (порт) и перечисление поддерживаемых типов данных по номерам (payload type).

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

Атрибуты медиа сессии

Строка a= может содержать следующие параметры:

  • a=rtpmap:PT КОДЕК - уточнение типа кодека, если это необходимо, где PT - цифровое значение payload type, а кодек - название кодека и частота дискретизации.
  • a=fmtp - дополнительные атрибуты кодека, например, использование VAD или рекомендуемый битрейт.
  • a=ptime:FPP - размер RTP-пакета - или продолжительность (в миллисекундах) передаваемого отрезка медиа-данных в одном пакете RTP. В данном случае значение FPP - это произведение длины одного фрейма оцифрованного звука на количества фреймов в одном RTP-пакете. Таким образом, если для кодека используется 10 мс в каждом фрейме, а фреймов в одном пакете 3, то ptime примет значение 30. Поле не является обязательным, но может использоваться для изменения влияния "накладных расходов" на пропускную способность сети при кодирования/декодирования и передаче аудио или видео потока. Чем выше число фреймов в пакете, тем больше размер пакета (снижается число дополнительных заголовков для каждого пакета, а значит и нагрузка на сеть). С другой стороны, при передаче пакетов большого размера по UDP (а он используется в качестве основы RTP в большинстве случаев), характерная для UDP потеря части пакетов, может привести к потери значительной части полезных данных. Для большинства стандартных кодеков определён рекомендуемый размер RTP-пакета и чаще всего имеет значение 20 мс (см. Профили данных RTP).
  • a=РЕЖИМ - режим приёма и передачи, может принимать значения: sendonly - только отправка данных, recvonly - только приём, sendrecv - режим одновременных приёма и передачи (полнодуплексный режим), inactive - медиа-сессия неактивна

Пример 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

В приведенном выше примере сообщения SDP содержится следующая информация. Пользователь, не имеющий буквенного идентификатора, запрашивает SDP сессию с идентификатором 1815849 и 0 версией. Параметр IN указывает на сетевой протокол создателя сессии, в данном примере “IN” — интернет, IP4 — тип IP-адреса создателя сессии, в данном примере IPv4. Адрес инициатора сессии 194.167.15.181. Имя устройства, инициирующего сессию - Cisco. Медиа-трафик будет ожидаться на устройстве с IP-адресом 194.167.15.181, на порту 20062.

Время начала и окончания сессии жестко не ограничены (t=0 0).

Данное устройство поддерживает набор параметров RTP потока мультимедиа-данных и методы его кодирования (профилей RTP), описанных при помощи типов (payload type) 99, 18, 100 и 101. Это указано в строке m=audio. Ниже, в строчках a=rtpmap, приводится уточнение параметров типов данных — атрибутов кодеков, так как некоторые типы являются динамическими и не могут быть определены однозначно, просто по строке m=audio.

Так, под типом данных 99 данное устройство подразумевает голосовой кодек G.729b и частотой дискретизации 8000Гц (G.729 Annex B, с поддержкой подавления шума). Динамически тип данных 101 в данном случае — это возможность приёма тональных сигналов DTMF (telephone event) по стандарту, описанному в RFC 2833. Согласно строке a=ftmp для типа 101, устройство может работать с событиями DTMF от 0 до 15. Все SIP-устройства должны поддерживать DTMF-события от 0 до 15, которые являются цифрами 0-9 (номера), 10 — это символ "звёздочка" (*), 11 — "решётка" (#) и 12-15 являются символами A-D.

X-NSE с типом 100 — это специфичный кодек NSE, используемый Cisco как внутренняя версия стандартных именованных событий телефонии IETF (NTEs), которые представляют собой специально помеченные пакеты данных, используемые для цифровой передачи тональных сигналов и событий телефонии.

Для payload type 18 уточнений нет, и это может означать, что устройство поддерживает голосовой кодек G.729, вместе с более простой вариацией того же кодека, описанного в приложении Annex A (или кодек G.729a), так как тип данных 18 однозначно закреплён за этими кодеками.

Приведённый порядок перечисления кодеков также указывает на приоритеты выбора того или иного кодека с точки зрения данного устройства.

См. также

Напишите отзыв о статье "Session Description Protocol"

Ссылки

  • RFC 3264: An Offer/Answer Model with the Session Description Protocol (SDP)
  • RFC 4566: SDP: Session Description Protocol

Отрывок, характеризующий Session Description Protocol

– Право, папенька, я думаю, князь Багратион, когда готовился к Шенграбенскому сражению, меньше хлопотал, чем вы теперь, – сказал сын, улыбаясь.
Старый граф притворился рассерженным. – Да, ты толкуй, ты попробуй!
И граф обратился к повару, который с умным и почтенным лицом, наблюдательно и ласково поглядывал на отца и сына.
– Какова молодежь то, а, Феоктист? – сказал он, – смеется над нашим братом стариками.
– Что ж, ваше сиятельство, им бы только покушать хорошо, а как всё собрать да сервировать , это не их дело.
– Так, так, – закричал граф, и весело схватив сына за обе руки, закричал: – Так вот же что, попался ты мне! Возьми ты сейчас сани парные и ступай ты к Безухову, и скажи, что граф, мол, Илья Андреич прислали просить у вас земляники и ананасов свежих. Больше ни у кого не достанешь. Самого то нет, так ты зайди, княжнам скажи, и оттуда, вот что, поезжай ты на Разгуляй – Ипатка кучер знает – найди ты там Ильюшку цыгана, вот что у графа Орлова тогда плясал, помнишь, в белом казакине, и притащи ты его сюда, ко мне.
– И с цыганками его сюда привести? – спросил Николай смеясь. – Ну, ну!…
В это время неслышными шагами, с деловым, озабоченным и вместе христиански кротким видом, никогда не покидавшим ее, вошла в комнату Анна Михайловна. Несмотря на то, что каждый день Анна Михайловна заставала графа в халате, всякий раз он конфузился при ней и просил извинения за свой костюм.
– Ничего, граф, голубчик, – сказала она, кротко закрывая глаза. – А к Безухому я съезжу, – сказала она. – Пьер приехал, и теперь мы всё достанем, граф, из его оранжерей. Мне и нужно было видеть его. Он мне прислал письмо от Бориса. Слава Богу, Боря теперь при штабе.
Граф обрадовался, что Анна Михайловна брала одну часть его поручений, и велел ей заложить маленькую карету.
– Вы Безухову скажите, чтоб он приезжал. Я его запишу. Что он с женой? – спросил он.
Анна Михайловна завела глаза, и на лице ее выразилась глубокая скорбь…
– Ах, мой друг, он очень несчастлив, – сказала она. – Ежели правда, что мы слышали, это ужасно. И думали ли мы, когда так радовались его счастию! И такая высокая, небесная душа, этот молодой Безухов! Да, я от души жалею его и постараюсь дать ему утешение, которое от меня будет зависеть.
– Да что ж такое? – спросили оба Ростова, старший и младший.
Анна Михайловна глубоко вздохнула: – Долохов, Марьи Ивановны сын, – сказала она таинственным шопотом, – говорят, совсем компрометировал ее. Он его вывел, пригласил к себе в дом в Петербурге, и вот… Она сюда приехала, и этот сорви голова за ней, – сказала Анна Михайловна, желая выразить свое сочувствие Пьеру, но в невольных интонациях и полуулыбкою выказывая сочувствие сорви голове, как она назвала Долохова. – Говорят, сам Пьер совсем убит своим горем.
– Ну, всё таки скажите ему, чтоб он приезжал в клуб, – всё рассеется. Пир горой будет.
На другой день, 3 го марта, во 2 м часу по полудни, 250 человек членов Английского клуба и 50 человек гостей ожидали к обеду дорогого гостя и героя Австрийского похода, князя Багратиона. В первое время по получении известия об Аустерлицком сражении Москва пришла в недоумение. В то время русские так привыкли к победам, что, получив известие о поражении, одни просто не верили, другие искали объяснений такому странному событию в каких нибудь необыкновенных причинах. В Английском клубе, где собиралось всё, что было знатного, имеющего верные сведения и вес, в декабре месяце, когда стали приходить известия, ничего не говорили про войну и про последнее сражение, как будто все сговорились молчать о нем. Люди, дававшие направление разговорам, как то: граф Ростопчин, князь Юрий Владимирович Долгорукий, Валуев, гр. Марков, кн. Вяземский, не показывались в клубе, а собирались по домам, в своих интимных кружках, и москвичи, говорившие с чужих голосов (к которым принадлежал и Илья Андреич Ростов), оставались на короткое время без определенного суждения о деле войны и без руководителей. Москвичи чувствовали, что что то нехорошо и что обсуждать эти дурные вести трудно, и потому лучше молчать. Но через несколько времени, как присяжные выходят из совещательной комнаты, появились и тузы, дававшие мнение в клубе, и всё заговорило ясно и определенно. Были найдены причины тому неимоверному, неслыханному и невозможному событию, что русские были побиты, и все стало ясно, и во всех углах Москвы заговорили одно и то же. Причины эти были: измена австрийцев, дурное продовольствие войска, измена поляка Пшебышевского и француза Ланжерона, неспособность Кутузова, и (потихоньку говорили) молодость и неопытность государя, вверившегося дурным и ничтожным людям. Но войска, русские войска, говорили все, были необыкновенны и делали чудеса храбрости. Солдаты, офицеры, генералы – были герои. Но героем из героев был князь Багратион, прославившийся своим Шенграбенским делом и отступлением от Аустерлица, где он один провел свою колонну нерасстроенною и целый день отбивал вдвое сильнейшего неприятеля. Тому, что Багратион выбран был героем в Москве, содействовало и то, что он не имел связей в Москве, и был чужой. В лице его отдавалась должная честь боевому, простому, без связей и интриг, русскому солдату, еще связанному воспоминаниями Итальянского похода с именем Суворова. Кроме того в воздаянии ему таких почестей лучше всего показывалось нерасположение и неодобрение Кутузову.
– Ежели бы не было Багратиона, il faudrait l'inventer, [надо бы изобрести его.] – сказал шутник Шиншин, пародируя слова Вольтера. Про Кутузова никто не говорил, и некоторые шопотом бранили его, называя придворною вертушкой и старым сатиром. По всей Москве повторялись слова князя Долгорукова: «лепя, лепя и облепишься», утешавшегося в нашем поражении воспоминанием прежних побед, и повторялись слова Ростопчина про то, что французских солдат надо возбуждать к сражениям высокопарными фразами, что с Немцами надо логически рассуждать, убеждая их, что опаснее бежать, чем итти вперед; но что русских солдат надо только удерживать и просить: потише! Со всex сторон слышны были новые и новые рассказы об отдельных примерах мужества, оказанных нашими солдатами и офицерами при Аустерлице. Тот спас знамя, тот убил 5 ть французов, тот один заряжал 5 ть пушек. Говорили и про Берга, кто его не знал, что он, раненый в правую руку, взял шпагу в левую и пошел вперед. Про Болконского ничего не говорили, и только близко знавшие его жалели, что он рано умер, оставив беременную жену и чудака отца.


3 го марта во всех комнатах Английского клуба стоял стон разговаривающих голосов и, как пчелы на весеннем пролете, сновали взад и вперед, сидели, стояли, сходились и расходились, в мундирах, фраках и еще кое кто в пудре и кафтанах, члены и гости клуба. Пудренные, в чулках и башмаках ливрейные лакеи стояли у каждой двери и напряженно старались уловить каждое движение гостей и членов клуба, чтобы предложить свои услуги. Большинство присутствовавших были старые, почтенные люди с широкими, самоуверенными лицами, толстыми пальцами, твердыми движениями и голосами. Этого рода гости и члены сидели по известным, привычным местам и сходились в известных, привычных кружках. Малая часть присутствовавших состояла из случайных гостей – преимущественно молодежи, в числе которой были Денисов, Ростов и Долохов, который был опять семеновским офицером. На лицах молодежи, особенно военной, было выражение того чувства презрительной почтительности к старикам, которое как будто говорит старому поколению: уважать и почитать вас мы готовы, но помните, что всё таки за нами будущность.