Was ist ein Session Description Protocol (SDP)?

Als Session Description Protocol, kurz SDP, bezeichnet man ein Format für die Beschreibung von Multimedia-Sitzungen, das zur Aushandlung von Streaming-Media-Parametern (wie Codecs und Transportprotokolle) zwischen zwei Endpunkten beiträgt. Streaming-Media umfasst über ein Computernetzwerk empfangene Mediadatenströme aus Audio- und Videodaten, welche bereits während der Übertragung wiedergegeben werden.

SDP dient jedoch nicht der Übertragung von Daten selbst sondern ist in der Regel in ein anderes Protokoll eingebettet. Es lässt sich flexibel anpassen, um neue Medientypen und Medienformate zu unterstützen. Entwickelt von der IETF (Internet Engineering Task Force) Protokoll wird das Session Description Protocol im RFC 4566 beschrieben. SDP hat im Zusammenhang mit VoIP zu Beginn nur als Komponente des Session Announcement Protocol (SAP) fungiert. Nach und nach kam es jedoch gemeinsam mit dem RTP (Real-Time Transport Protocol), SIP (Session Initiation Protocol) und H.323 zum Einsatz.

Wie funktioniert ein SDP?

Vereinfacht ausgedrückt legt ein Media Endpoint per Session Description Protocol seine Empfangsspezifikationen und Fähigkeiten fest. Hierbei werden unter anderem folgende Parameter definiert:

  • welche IP-Adresse bereit ist, den eingehenden Media Stream zu empfangen

  • welche Portnummer den eingehenden Media Stream abhört

  • welchen Medientyp der Endpunkt zu empfangen erwartet (typischerweise Audio)

  • in welchem Protokoll der Endpunkt den Informationsaustausch erwartet (typischerweise RTP)

  • welche Komprimierung der Endpunkt dekodieren kann (Codec)

In einer typischen Session zwischen zwei Endpunkten sendet jeder dieser Endpunkte ein SDP, um den anderen Teilnehmer über seine Spezifikationen und Fähigkeiten zu informieren. Das Session Description Protocol an sich liefert keine Medien, sondern beschränkt sich lediglich auf die Aushandlung eines kompatiblen Satzes von Parametern für den Medienaustausch. Die Medienströme selbst werden über einen anderen Kanal und ein anderes Protokoll abgewickelt. Ein einfaches Beispiel:

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

Wir sehen hier, dass der Endpoint angibt, für den Medienempfang bereit zu stehen.

  • über die IP Address 10.11.12.13 (Parameter “c=”)

  • per Portnummer 15010 (im Parameter “m=” definiert)

  • im Audio-Format (im Parameter “m=” definiert)

  • via RTP, mit 2 möglichen Codecs nummeriert als 0 und 101, im Detail:

    • Codec 0 ist definiert als PCMU mit 8000 Hz
    • Codec 101 ist definiert als “telephone-event” mit 8000 Hz (“telephone-event” bedeutet ein DTMF-Signal)
    • bidirektionaler Modus (“a=sendrecv”)

Weiterführende Informationen