Von multimedialen Daten spricht man, wenn Daten aus einer Kombination unterschiedlicher Quellen hervorgegangen sind. Typische Datenquellen sind dabei
Weitergehend kann man an taktile (Tastsinn), gustatorische (Geschmacksempfinden) und olfaktorische (Geruchsempfinden) Quellen denken.
Anwendungen, die mit multimedialen Daten arbeiten, werden üblicherweise in zwei Klassen eingeteilt. Entweder es handelt sich um
Werden diese Anwendungen über ein Netzwerk, zum Beispiel über das Internet, betrieben, dann treten, wie die beiden nächsten Absätze zeigen, ganz unterschiedlichen Anforderungen an die Netzwerkprotokolle auf.
Als interaktive Echtzeitanwendungen bezeichnet man Anwendungen wie beispielsweise
Diese Anwendungen arbeiten in Echtzeit, das heißt, sie haben ein zeitliches Verhalten wie ein Gespräch zwischen zwei Gesprächspartnern. Da die Anwendungen interaktiv sind, dürfen im Kommunikationsverlauf keine oder nur sehr geringe zeitliche Verzögerungen auftreten. Das hat zur Folge, dass beispielsweise Datenpuffer, die bei der Datenübertragung eingesetzt werden, sehr schnell wieder geleert werden müssen. Interaktive Echtzeitanwendungen sind empfindlich gegenüber jeglicher zeitlicher Verzögerung und damit auch gegenüber den Schwankungen der Zeitabstände, mit denen Datenpakete bei einem Empfänger ankommen. In der Netzwerktechnik werden diese Laufzeitschwankungen als Jitter bezeichnet. Zeitliche Verzögerungen bei der Datenpaketzustellung können dazu führen, dass Pakete so spät eintreffen, dass sie trotz inhaltlich korrekter Übertragung dem Empfänger nicht mehr zugestellt werden können.
Auch der Begriff Streaming-Anwendung soll unter Zugrundelegung einiger typischer Beispiele erläutert werden. Es handelt sich jeweils um nicht interaktive, mit multimedialen Daten arbeitende Anwendungen wie:
Die Daten, die hier über ein Netzwerk zu übertragen sind, befinden sich in formatierter Form auf Dateien und müssen einem Aufbereitungsprogramm bei einem (fernen) Client zugeführt werden. Techniken, die dafür typischerweise verwendet werden, sind:
Werden multimediale Daten über das Internet übertragen, dann werden sie wie alle Anwendungsdaten mit IP übertragen. Sowohl IPv4 als auch IPv6 sind Datenpaketdienste und folgen beide einer Strategie der bestmöglichen Zustellung. Damit ist gemeint, dass IPv4 und IPv6 zwar versuchen, ein Datenpaket zuzustellen, aber diese Zustellung nicht garantieren. Genau so wenig garantieren sie die Einhaltung einer Reihenfolge oder ein bestimmtes Zeitverhalten bei der Zustellung. Bei ihrer Verwendung können Datenpakete verloren gehen oder mehrfach auftreten oder sich überholen. Verzögerungen bei der Paketzustellung sind unvorhersehbar. Für eine anforderungsgerechte Übertragung multimedialer Daten sind beide IP-Versionen nicht gut geeignet.
Als in der DoD- bzw. ISO/OSI-Hierarchie über den beiden IP-Versionen angesiedelte Protokolle stehen im Internet die Transportprotokolle UDP und TCP zur Verfügung. (Siehe dazu das Kapitel 4 (Transportprotokolle im Internet).) UDP erweitert im Wesentlichen IPv4 bzw. IPv6 um die beiden Ports der beteiligten Anwendungen und hat die gleichen Eigenschaften wie die zugrunde liegende IP-Version. TCP dagegen realisiert zwar eine zuverlässige Ende-zu-Ende-Verbindung von Sender und Empfänger, kann jedoch kein bestimmtes Zeitverhalten garantieren.
Sollen multimediale Daten über das Internet übertragen werden, dann muss mit einer der beiden IP-Versionen gearbeitet werden. Man kann daran denken, neben TCP und UDP ein weiteres Transportprotokoll zu entwickeln, das den Besonderheiten multimedialer Daten gerecht wird. Da ein solches Protokoll auch die Zuordnung der beiden Ports von Sender- und Empfängeranwendung zu den Anwendungsdaten vornehmen muss, UDP dies aber bereits tut ohne die Eigenschaften der jeweiligen IP-Version zu verändern, wurden entsprechende sogenannte medienorientierte Protokolle auf der Ebene der Anwendungsprotokolle realisiert, die dann UDP als Transportprotokoll verwenden. Eine dieser Entwicklungen, die häufig eingesetzt wird, wird im Folgenden exemplarisch kurz besprochen.
Von der ehemaligen Gesellschaft für Mathematik und Datenverarbeitung (GMD) in Bonn wurde 1992 ein Protokollpaar für die Übertragung multimedialer Daten über das Internet vorgestellt. Es handelte sich um das Realtime Transport Protocol (RTP) und um das Realtime Transport Control Protocol (RTCP). RTP dient der Übertragung der Anwendungsdaten, während RTCP Kontrollinformationen überträgt. Dazu gehören zum Beispiel der Austausch von Zeitparametern und Paketverlustangaben zwischen den Teilnehmern. Beide Protokolle sind trotz ihres Namens keine Transportprotokolle im Sinne des DoD- bzw. des ISO/OSI-Kommunikationsmodells (vgl. Abschnitt 1.4.3 (Netzwerkprotokolle)), sondern es sind Internetanwendungsprotokolle und benutzen das Transportprotokoll UDP. Beide sind in der Zwischenzeit mehrfach überarbeitet worden.
RTP realisiert eine kontinuierliche Übertragung multimedialer Daten als Datenströme über IPv4 bzw. IPv6 in Echtzeit. Es kodiert bzw. dekodiert die Daten und bildet und versendet die zugehörigen Datenpakete. Stammen die Daten aus mehreren Datenquellen, z.B. aus einer Video- und einer Audioquelle, dann werden zwei Datenströme erzeugt, je einer für jede Quelle, wobei die Quellen jeweils durch eine 32 Bits große Markierung gekennzeichnet werden. Jeder Datenstrom wird in eine Folge von RTP-Paketen überführt, die an UDP weitergegeben werden.
Neben Sendern und Empfängern definiert RTP auch die Rollen Translator und Mixer. Ein Translator übersetzt Datenformate. Beispielsweise könnten in einer Videokonferenz einige Teilnehmer nur eine so kleine Bandbreite besitzen, dass sie die Videokonferenz mit diesem Datenformat nicht in Echtzeit empfangen können. Dann könnte das Format der Daten in ein weniger aufwändiges umgeformt werden. Mixer dagegen führen Datenströme aus unterschiedlichen Quellen zusammen. Beispielsweise können mit ihnen Video- und Audiosequenzen, die zu einzelnen Personen gehören, so zusammengeführt werden, dass damit eine Gruppensitzung nachgebildet wird.
Jedes RTP-Paket hat einen Protokollkopf, dessen erste 12 Bytes immer vorhanden sind. Die anderen hängen von der Art der zugehörigen Daten ab. Der minimale RTP-Protokollkopf enthält neben einigen Kontrollbits eine Sequenznummer mit einer Größe von 16 Bits, einen 32 Bits großen Zeitstempel und die bereits erwähnte ebenfalls 32 Bits große Datenquellenmarkierung.
Dieses Partnerprotokoll zu RTP tauscht im Rahmen einer RTP-Sitzung periodisch Kontrollinformationen zwischen allen Teilnehmern aus. Die Pakete enthalten Reports mit Statistiken wie zum Beispiel
Jedes RTCP-Paket hat einen Paketkopf mit Angaben über die Paketgröße, das Paketformat und über die Anzahl der in dem Paket enthaltenen Reports.