Jump to content

Протокол описания сеанса

Протокол описания сеанса ( SDP ) — это формат описания мультимедийной связи сеансов с целью объявления и приглашения. [1] Его преимущественное использование — поддержка приложений потокового мультимедиа , таких как передача голоса по IP (VoIP) и видеоконференцсвязь . SDP сам по себе не доставляет никаких медиапотоков, но используется между конечными точками для согласования сетевых метрик, типов мультимедиа и других связанных свойств. Набор свойств и параметров называется профилем сеанса .

SDP является расширяемым для поддержки новых типов и форматов мультимедиа. SDP изначально был компонентом протокола объявления сеанса (SAP). [2] но нашел и другие применения в сочетании с транспортным протоколом реального времени (RTP), протоколом потоковой передачи в реальном времени (RTSP), протоколом инициации сеанса (SIP) и в качестве автономного протокола для описания сеансов многоадресной рассылки .

IETF в апреле 1998 г. ( RFC опубликовал первоначальную спецификацию как предлагаемый стандарт 2327). [3] Пересмотренные спецификации были выпущены в 2006 году (RFC 4566). [1] и в 2021 году (RFC 8866). [4]

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

[ редактировать ]

Протокол описания сеанса описывает сеанс как группу полей в текстовом формате, по одному полю в строке. [примечание 1] Форма каждого поля следующая.

<character>=<value><CR><LF>

Где <character> это одиночный , чувствительный к регистру , и символ <value> представляет собой структурированный текст в формате, который зависит от символа. Значения обычно имеют кодировку UTF-8 . [примечание 2] Пробелы не допускаются сразу по обе стороны от знака равенства. [1] : Раздел 5

Описания сеансов состоят из трех разделов: сеанс, время и описания мультимедиа. Каждое описание может содержать множество описаний синхронизации и мультимедиа. Имена уникальны только внутри связанной синтаксической конструкции. [5]

Поля должны располагаться в указанном порядке; необязательные поля отмечены звездочкой:

  • Описание сеанса
    v=  (protocol version number, currently only 0)
    o=  (originator and session identifier : username, id, version number, network address)
    s=  (session name : mandatory with at least one UTF-8-encoded character)
    i=* (session title or short information)
    u=* (URI of description)
    e=* (zero or more email address with optional name of contacts)
    p=* (zero or more phone number with optional name of contacts)
    c=* (connection information—not required if included in all media)
    b=* (zero or more bandwidth information lines)
    One or more time descriptions ("t=" and "r=" lines; see below)
    z=* (time zone adjustments)
    k=* (encryption key)
    a=* (zero or more session attribute lines)
    Zero or more Media descriptions (each one starting by an "m=" line; see below)
  • Описание времени (обязательно)
    t=  (time the session is active)
    r=* (zero or more repeat times)
  • Описание мультимедиа (необязательно)
    m=  (media name and transport address)
    i=* (media title or information field)
    c=* (connection information — optional if included at session level)
    b=* (zero or more bandwidth information lines)
    k=* (encryption key)
    a=* (zero or more media attribute lines — overriding the Session attribute lines)

Ниже приведен пример описания сеанса из RFC 4566. Этот сеанс инициирован пользователем «jdoe» по адресу IPv4 10.47.16.5. Его название — «Семинар SDP», и расширенная информация о сеансе («Семинар по протоколу описания сеанса») включена вместе со ссылкой для получения дополнительной информации и адресом электронной почты для связи с ответственной стороной, Джейн Доу. Этот сеанс рассчитан на два часа с использованием временных меток NTP с адресом подключения (который указывает адрес, к которому клиенты должны подключиться или — когда предоставляется многоадресный адрес, как здесь — подписаться), указанным как IPv4 224.2.17.12 с TTL равен 127. Получателям этого описания сеанса указано получать только медиафайлы. Предоставляются два описания мультимедиа, оба с использованием профиля аудио-видео RTP. Первый — это аудиопоток на порту 49170, использующий тип полезных данных RTP/AVP 0 (определенный в RFC 3551 как PCMU ), а второй — видеопоток на порту 51372, использующий тип полезных данных RTP/AVP 99 (определяемый как «динамический»). Наконец, включен атрибут, который сопоставляет тип полезной нагрузки RTP/AVP 99 с форматом h263-1998 с тактовой частотой 90 кГц. Подразумеваются порты RTCP для аудио- и видеопотоков 49171 и 51373 соответственно.

Спецификация SDP — это просто формат описания сеанса. Он предназначен для распространения по различным транспортным протоколам по мере необходимости, включая SAP , SIP и RTSP . SDP может даже передаваться по электронной почте или в виде полезной нагрузки HTTP.

Атрибуты

[ редактировать ]

SDP использует атрибуты для расширения основного протокола. Атрибуты могут появляться в разделах «Сеанс» или «Медиа» и соответственно имеют область действия «уровень сеанса» или «уровень мультимедиа» . Новые атрибуты время от времени добавляются в стандарт посредством регистрации в IANA. [6]

Атрибуты — это либо свойства, либо значения:

  • Свойство: флаг a= передает логическое свойство носителя или сеанса.
  • a= Значение: атрибут : значение предоставляет именованный параметр.

Два из этих атрибутов определены специально:

  • a=charset: кодировка используется в разделах сеанса или мультимедиа для указания другой кодировки символов (как зарегистрировано в реестре IANA). [7] ) от рекомендуемого значения по умолчанию ( UTF-8 ) для ключей стандартного протокола. Эти значения содержат текст, предназначенный для отображения пользователю.
  • a=sdplang: код используется для указания языка текста. Альтернативный текст на нескольких языках может передаваться в сеансе и автоматически выбираться пользовательским агентом в соответствии с предпочтениями пользователя. [ нужны разъяснения ]

В обоих случаях текстовые поля, предназначенные для отображения пользователю, интерпретируются как непрозрачные строки, но отображаются для пользователя или приложения со значениями, указанными в последнем вхождении полей charset и sdplang в текущем разделе мультимедиа или, в противном случае, в их последнем значение в разделе сеанса.

Параметры v , s и o являются обязательными, не должны быть пустыми и должны быть в кодировке UTF-8. Они используются в качестве идентификаторов и не предназначены для отображения пользователям.

В примере также присутствует несколько других атрибутов: атрибут уровня сеанса (например, атрибут в форме свойства a=recvonly ), [примечание 3] или как атрибут уровня мультимедиа (например, атрибут в форме значения a=rtpmap:99 h263-1998/90000 для видео в примере).

Форматы времени и повторы

[ редактировать ]

Абсолютное время представлено в формате протокола сетевого времени (NTP) (количество секунд с 1900 года). Если время остановки равно 0, сеанс неограничен . Если время начала также равно нулю, сеанс считается постоянным . Неограниченные и постоянные сеансы не приветствуются, но не запрещены. Интервалы могут быть представлены временем NTP или в виде типизированного времени: последовательности значений и единиц времени (дни: d , часы: h , минуты: m и секунды: s ).

Таким образом, часовая встреча с 10:00 UTC 1 августа 2010 г. с единственным повторением через неделю в то же время может быть представлена ​​как:

        t=1280656800 1281265200
        r=604800 3600 0

Или используя введенное время:

        t=1280656800 1281265200
        r=7d 1h 0

Если указано время повтора, время начала каждого повторения может потребоваться скорректировать, чтобы компенсировать изменения летнего времени , чтобы оно происходило в одно и то же местное время в определенном часовом поясе в течение периода между временем начала и временем окончания. .

Вместо указания этого часового пояса и необходимости поддерживать базу данных часовых поясов, чтобы знать, когда и где потребуется корректировка летнего времени, предполагается, что все времена повторения определены в пределах одного и того же часового пояса, а SDP поддерживает указание абсолютного времени NTP. когда смещение дневного света (выраженное в секундах или с использованием типа времени) необходимо будет применить к повторяющемуся времени начала или времени окончания, приходящемуся на или после каждой корректировки летнего времени. Все эти смещения относятся к времени начала и не суммируются. NTP поддерживает это с помощью поля z , которое указывает серию пар, первый элемент которых представляет собой абсолютное время NTP, когда произойдет корректировка летнего времени, а второй элемент указывает смещение, которое необходимо применить относительно абсолютного времени, вычисленного с помощью поля r .

Например, если корректировка на дневной свет вычтет 1 час 31 октября 2010 г. в 3:00 UTC (т. е. 60 дней минус 7 часов после времени начала в воскресенье 1 августа 2010 г. в 10:00 UTC), и это будет единственная применимая корректировка на дневной свет. в запланированный период, который произойдет с 1 августа 2010 г. по 28 ноября 2010 г. в 10:00 UTC (время остановки повторяющегося 1-часового сеанса, который повторяется каждую неделю в одно и то же местное время, что происходит через 88 дней), это можно указать как:

        t=1280656800 1290938400
        r=7d 1h 0
        z=1288494000 -1h

Если еженедельная 1-часовая сессия повторялась каждое воскресенье в течение одного полного года, т.е. с 3:00 UTC воскресенья 1 августа 2010 г. до 4:00 UTC воскресенья 26 июня 2011 г. (время окончания последнего повтора, т.е. 360 дней плюс 1 час позже, или 31107600 секунд спустя), чтобы он включал переход обратно на летнее время в воскресенье 27 марта 2011 года в 2 часа ночи (1 час снова добавляется к местному времени, чтобы второй переход на летнее время произошел через 209 дней после первого времени запуска):

        t=1280656800 1290938400
        r=7d 1h 0
        z=1288494000 -1h 1269655200 0

Поскольку объявления SDP о повторных сеансах не должны охватывать очень длительные периоды, превышающие несколько лет, количество корректировок летнего времени, включаемых в параметр z=, должно оставаться небольшим.

Сеансы могут повторяться нерегулярно в течение недели, но планируются одинаково для всех недель периода путем добавления большего количества кортежей в параметр r . Например, чтобы запланировать то же событие и на субботу (в то же время дня), вы должны использовать:

        t=1280656800 1290938400
        r=7d 1h 0 6d
        z=1288494000 -1h 1269655200 0

Протокол SDP не поддерживает ежемесячные и ежегодные расписания повторяющихся сеансов с таким простым временем повторения, поскольку они неравномерно разнесены во времени; дополнительные кортежи t / r вместо этого могут предоставляться для каждого месяца или года.

Примечания

[ редактировать ]
  1. ^ Строки завершаются возвратом каретки и символом перевода строки , но реализации могут ослабить это, опустив возврат каретки.
  2. ^ Информация о сеансе и значения имени сеанса зависят от кодировки, указанной в любом атрибуте кодировки раздела.
  3. ^ Этот атрибут уровня сеанса также применяется к описанным носителям, если только значение не переопределяется атрибутом уровня носителя.
  1. ^ Jump up to: а б с Хэндли, Марк; Ван Джейкобсон; Колин Перкинс (июль 2006 г.). SDP: протокол описания сеанса . IETF . дои : 10.17487/RFC4566 . РФК 4566 .
  2. ^ Салкинцис, Апостол К. (2004). Мобильный Интернет: возможности технологий и услуг . ЦРК Пресс. п. 11: 24–25. ISBN  0849316316 . Проверено 11 июля 2019 г.
  3. ^ Хэндли, Марк; Ван Джейкобсон (апрель 1998 г.). SDP: протокол описания сеанса . IETF . дои : 10.17487/RFC2327 . РФК 2327 .
  4. ^ Беген, Али; Марк Хэндли; П. Кивизат; Колин Перкинс (январь 2021 г.). SDP: протокол описания сеанса . IETF . дои : 10.17487/RFC8866 . RFC 8866 .
  5. ^ Углубленный обзор SDP, заархивированный 13 июля 2011 г. на Wayback Machine.
  6. ^ «Реестр параметров СДП» . Управление по присвоению номеров в Интернете . Проверено 15 января 2021 г.
  7. ^ «Реестр кодировок наборов символов на сайте Управления присвоения номеров в Интернете» .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 3a15eb88ba370046c50e92b68e936af1__1697310480
URL1:https://arc.ask3.ru/arc/aa/3a/f1/3a15eb88ba370046c50e92b68e936af1.html
Заголовок, (Title) документа по адресу, URL1:
Session Description Protocol - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)