# Session Description Protocol

SDP (Session Description Protocol) :
| Familie: | Internetprotokollfamilie |
| Einsatzgebiet: | Beschreibung von Multimedia-Sitzungen im Rahmen der Aushandlung von Medienformaten |
| SDP im TCP/IP-Protokollstapel: Anwendung SDP Transport TCP Internet IP (IPv4, IPv6) Netzzugang Ethernet Token Bus Token Ring FDDI … ||
| Standards: | RFC 8866 (2021) |
Mit dem Session Description Protocol (SDP, RFC 8866; deutsch: „Sitzungsbeschreibungsprotokoll“) werden Eigenschaften von Multimediadatenströmen beschrieben. Es dient dazu, Kommunikationssitzungen zu verwalten, und wird beispielsweise zusammen mit SIP in der IP-Telefonie bei der Aushandlung von Codecs, Transportprotokollen und -adressen und zur Übertragung von Metadaten eingesetzt. SDP selbst bietet keinen eigenen Aushandlungsmechanismus, sondern nur eine Beschreibung der Datenströme (streams). Datensätze im SDP-Format können mit verschiedenen Transportprotokollen übertragen werden, z. B. auch mit dem Session Announcement Protocol (SAP, RFC 2974).
SDP wurde als Standardprotokoll für die Medienaushandlung beim Aufbau von SIP-Verbindungen definiert.

## SDP-Inhalte

SDP-Inhalte bestehen aus mehreren Parametern, die in einfacher Syntax (<Parametertyp>=<Parameterwert>) untereinander stehend angegeben werden.
Sitzungsbeschreibung
* v = Protokollversion (aktuelle Versionsnummer ist "0")
* o = Ersteller der Session und Session-Identifizierung
* s = Name der Session
* i = zusätzliche Session-Informationen (optional)
* u = URI der auf zusätzliche Informationen zur Session verweist (optional)
* e = E-Mail-Adresse (optional)
* p = Telefonnummer (optional)
* c = Verbindungsinformation (wird nicht benötigt, wenn bei allen Medien angegeben, optional)
* b = Information über die Datenübertragungsrate (optional)
* Eine oder mehrere Zeitbeschreibungen (s. u.)
* z = Zeitzonenanpassungen (optional)
* k = Verschlüsselungsschlüssel (encryption key) (optional)
* a = keine oder mehr Session-Attribute (optional)
* Keine oder mehr Medienbeschreibungen (s. u.)
Zeitbeschreibungen
* t = Zeit, in der die Session aktiv ist
* r = keine oder mehr Wiederholungen (optional)
Medienbeschreibung
* m = Medientyp, Port und Protokoll für den Medientransport sowie die Medienformate
* i = Titel des Mediums (optional)
* c = Verbindungsinformationen, wenn diese nicht in der Session definiert sind (s. o., optional)
* b = keine oder mehr Informationen zur Datenübertragungsrate (optional)
* k = Verschlüsselungsschlüssel ("encryption key", optional)
* a = keine oder mehr Medienattribute (optional)

## SDP-Beispiel

Anhand eines beispielhaften SDP-Teils einer SIP-Verbindungsnachricht werden die wesentlichen SDP-Parameter erläutert:
Sitzungsinitiator "Alice" bietet dem Empfänger von "host.provider2.com" ausgehend die Sitzungsnummer 1234 an (erste Zahl). Die zweite Zahl ist die Sitzungsversionsnummer, die sich bei jeder Änderung während der Sitzung erhöht. Die Sitzung soll zwei Datenströme (m=) übertragen, die beide mit dem Transportprotokoll RTP versendet werden. Der eine Datenstrom ist ein Audiostrom im Format iLBC (97) an Port 20000, der andere ein Videodatenstrom im Format H.261 (31) an Port 20002. Die Attribute (a=) der jeweiligen Datenströme beschreiben Formatparameter, der mit der Nummer 97 hat den Namen iLBC und eine Abtastrate von 8 kHz.
RFC 4317 enthält mehrere ausführliche Beispiele, wie eine Medienaushandlung mittels SDP aussehen könnte.