VoIP - Voice over IP
Voice over IP, kurz VoIP, ist die Übertragung und Vermittlung von Sprach-Kommunikation in einem IP-Netzwerk. Dieses Netzwerk kann sowohl lokal (LAN), ein Weitverkehrsnetzwerk (WAN) oder das ganze Internet sein. Voice over IP liegt in jedem Fall dem paketorientierten Internet-Protokoll (IP) zu Grunde.
Der Einsatz von Voice over IP ist darin begründet, dass es wesentlich Ressourcen-schonender mit dem zur Verfügung stehenden Übertragungsmedium umgeht. Insbesondere dann, wenn es sich um eine Breitbandverbindung handelt. So lassen sich über eine IP-gesteuerte Breitband-Verbindung mehr Sprachverbindungen realisieren als bei der klassischen Nutzung einer Telefonleitung.
Bestandteile von Voice over IP
Weltweit sind die Telefonnetze auf Zuverlässigkeit und höchste Verfügbarkeit optimiert. Die Technik ist ausgereift und stabil. Während die Festnetz-Telefonie aus möglichst wenigen Komponenten besteht, sind bei VoIP über das Internet sehr viele Komponenten im Spiel. Viele Faktoren spielen beim Verbindungsaufbau und auch danach eine große Rolle.
VoIP-Anwendungen | Call-Manager, Softphone, ... |
---|---|
VoIP-Protokolle | SIP, H.323, RTP, UDP, ... |
VoIP unterstützende Dienste | DNS, NAT, QoS, AAA, ... |
Betriebssysteme | Linux, Unix, Windows, ... |
Hardware | Breitbandmodem, Router, Server, IP-Telefon, Smartphone, ... |
Netze | LAN, WAN, DSL, TV-Kabel, ... |
Sprachqualität bei Voice over IP
Die Sprachqualität ist von der Verbindung und vom Codec abhängig, mit dem die Sprache digitalisiert wird. Wird der Codec G.711 verwendet, dann hat man Festnetz-Sprachqualität. Voraussetzung ist eine stabile Verbindung ohne Laufzeitschwankungen (Jitter) und Paketverluste. Bei der Festnetz-Telefonie wird vom Vermittlungssystem eine leitungsvermittelte Verbindungsqualität garantiert. Im Internet durchlaufen die Sprachdaten unterschiedliche Netze und Stationen. Wie schnell die Pakete weitergeleitet werden liegt in der Hand deren Betreiber. Nur mit einer durchgängigen Qualitätssicherung der Verbindung (Quality-of-Service, QoS) ist ein störungsfreies Telefongespräch über das Internet möglich.
Zur Zeit profitiert man im deutschen Internet von der großzügig vorhandenen Übertragungskapazität der Provider. Die Sprachpakete gelangen so ohne große Verzögerung durch das Internet. Die Sprachqualität ist mit der von Mobilfunkgesprächen vergleichbar. Hin und wieder hört man Knackser. Schwerer wiegt das Echo, das beide Teilnehmer zu hören bekommen können. In der Regel haben das die Anbieter im Griff. Ein leichte Zeitverzögerung der Übertragung lässt sich oftmals nicht vermeiden.
Voice over IP: Protokolle und Standards
Einheitliche Standards bei der Sprachübertragung über IP sind dünn gesät. Setzt man auf die Produkte eines einzigen Herstellers, so hat man keine Probleme. Versucht man jedoch die Produkte unterschiedlicher Hersteller zur Zusammenarbeit zu bewegen, muss man unter Umständen mit Einschränkungen leben.
Call Control | Audio | Video | |
---|---|---|---|
SIP H.323 |
G.711 G.723 G.729 |
H.261 H.263 |
|
RTP RTCP |
|||
TCP | UDP | ||
IP | |||
LAN |
Voice over IP im OSI-Schichtenmodell
Schicht | Protokoll | |
---|---|---|
7. | Anwendung | VoIP-Anwendung Softphone / Call-Manager |
6. | Präsentation | Sprachcodecs G.729 / G.723 / G.711 |
5. | Session | Signalisierung H.323 / SIP |
4. | Transport | Transport-Protokolle RTP / UDP / RSVP |
3. | Netzwerk | Netzwerk-Protokoll IP |
2. | Verbindung | ATM / Ethernet |
1. | Physikalische Ebene | DSL / Ethernet |
Transport-Protokolle
Bei Voice over IP muss man zwischen den Datenpaketen zum Verbindungsauf- und -abbau (Signalisierung, Call Control) und den eigentlichen Sprachpaketen (Datenstrom) unterscheiden. Die Signalisierungsdaten müssen dabei möglichst sicher übertragen werden. Sie steuern die Verbindung. Sie dürfen länger unterwegs sein und einen größeren Protokoll-Overhead haben. Hauptsache die Verbindung kommt zu Stande. Dagegen müssen die Sprachpakete schneller und verzögerungsfrei unterwegs sein. Dabei kann man sich eine unsichere Übertragung leisten. Wenn mal ein Datenpaket verloren geht, dann ist das nicht so schlimm.
In der Praxis sieht das so aus, dass die Sprachpakete zuerst in RTP-Pakete und dann in UDP-Pakete verpackt werden und zur Adressierung zusätzlich mit einem IP-Header versehen werden. Die Übertragungstechnik auf dem physikalischen Medium fügt dann noch einen Paketrahmen hinzu, der vom jeweiligen Medium und Übertragungssystem abhängig ist. Dabei entsteht ein Overhead von 54 Byte pro Paket. Durch Kompression kann der Protokoll-Kopf von 40 Byte auf nur zwei bis drei Byte komprimiert werden.
Sprach-Codec / Audio-Codec
Bevor die Sprache übertragen werden kann, muss sie zuerst digitalisiert werden. In der Regel werden die Sprachdaten auch gleich komprimiert. Bei zunehmender Komprimierung nimmt die Sprachqualität ab. Die Dekomprimierungszeit und die Rechenleistung nehmen zu.
Abhängigkeit der Sprachqualität von Laufzeit, Jitter und Paketverlusten
Voice over IP ist nur dann in einem Netzwerk nutzbar, wenn die wichtigen Kennwerte, wie Bandbreite, Laufzeit und Jitter bei einem voll ausgelasteten Netzwerk einschließlich der Netzübergänge ausreichend sind. Dadurch wird im wesentlichen die Sprachqualität beeinflusst.
Die Hauptprobleme entstehen durch eine zu geringe Bandbreite und zu lange Distanzen. Paketverluste, hoher Jitter und große Verzögerungen reduzieren die Sprachqualität.
Delay - Verzögerung - Laufzeit
Die Laufzeit der Sprachpakete ist ein wichtiges Kriterium für die Sprachqualität. Dabei interessiert man sich für die Gesamtverzögerung zwischen dem Sprechen des Senders und dem Hören des Empfängers (Ende-zu-Ende-Verzögerung).
Laufzeitverzögerungen, auch Delay genannt, entstehen bei der Umwandlung der Datenformate und durch das Routing. Gerade beim Transport entstehen die größten Verzögerungen. Besonders in den Zwischenstationen (Switch, Router, Gateway, Firewall und Proxy) treten Verzögerungen auf. Dort werden die Pakete verarbeitet, was Zeit in Anspruch nimmt und zu Verzögerungen führt. Besonders das Routing ist kritisch. Insbesondere dann, wenn ein Medienwechsel stattfindet.
Eine Verzögerung entsteht auch bei der Digitalisierung und Komprimierung des Sprachsignals. Die Verzögerung ist dabei abhängig vom Codec und der zur Verfügung stehenden Rechenleistung. Der Codec hat nur einen geringen Anteil an der Gesamtverzögerung. Deshalb bringt es meistens sehr wenig am Codec selber zu optimieren.
Ursache | Laufzeit |
---|---|
AD-Wandlung | 20 ms |
Paketerstellung | 30 ms |
sonstige Servicezeiten | 10 ms |
Routing über 800 Kilometer | 50 ms |
Jitter Buffering | 30 ms |
D-A-Wandlung | 20 ms |
Laufzeit gesamt | 160 ms |
Die Gesamtverzögerung von Teilnehmer zu Teilnehmer sollte 150 ms nicht überschreiten. Eine Verzögerung unter 150 ms ergibt eine sehr gute Sprachqualität. Ab einem Delay von 250 ms wird ein Gespräch bereits negativ beeinflusst. Mit bis zu 400 ms gilt ein Gespräch noch als akzeptabel. Eine Verzögerung ab 400 ms ist als deutliche Gesprächspause hörbar. Man hört den anderen Teilnehmer noch, obwohl er schon zu Ende gesprochen hat. Das führt dazu, dass man dem Gesprächspartner zu oft ins Wort fällt. Dieses Problem kennt man bei Mobilfunkgesprächen, wenn der Empfang einseitig schlecht ist. Dann kommt es zu unangenehmen Verzögerungen und Unterbrechungen.
Laufzeit mit Ping messen
Um Verzögerungen auf einer Übertragungsstrecke zu messen, bietet sich der Ping als grobe Abschätzung an. Dabei muss man beachten, dass der Ping die Gesamtverzögerung von Hinweg und Rückweg (Round-Trip-Time, RTT) misst. Sprachdaten dagegen werden nur in eine Richtung übertragen und enden beim Empfänger. Der Empfang der Pakete wird auf Transportebene nicht bestätigt. Deshalb muss der Wert, den Ping liefert, halbiert werden. Dabei muss man berücksichtigen, dass die Zeiten von Hinweg und Rückweg unterschiedlich sein können. Doch Ping weist diese Zeiten nicht getrennt voneinander aus. Deshalb kann man Pingzeiten auch nur zur groben Schätzung nehmen. Eine Messung mit aussagekräftigen und korrekten Werten muss in der Praxis anders erfolgen.
Um die Messung mit Ping trotzdem einigermaßen realistisch zu gestalten muss die Paketgröße von Ping eingestellt werden. Geht man von der Kodierung mit G.711 und 20 ms Sprachdaten pro Paket aus, dann entspricht das 160 Byte (64 kBit/s x 0,02 s). Hinzurechnen muss man noch 40 Byte für den IPv4/UDP/RTP-Header-Anteil. Der Ping sollte also 200 Byte pro Paket verschicken.
Unter Windows würde das Ping-Kommando demnach ping -l 200 -t {Hostname} lauten. Durch das Attribut -t wird der Ping so lange wiederholt, bis die Tastenkombination Strg + C gedrückt wird. Unter Linux würde das Ping-Kommando ping -s 200 {Hostname}} lauten.
Jitter
Bei der Übertragung von Datenpaketen gibt es gewisse Verzögerungen bei der Laufzeit. Diese Verzögerungen können unterschiedlich ausfallen. Diese Unterschiede werden als Laufzeitschwankungen oder Jitter bezeichnet. Sie führen zu einer schlechten Sprachqualität. Um das zu vermeiden, bedient man sich eines Jitter-Buffers. Der Jitter-Buffer speichert eingehenden Datenverkahr zwischen, um so ungleichmäßigen, wiederholten oder fehlerhaften Datenfluss auszugleichen. Es geht nicht um 10 ms mehr oder weniger, sondern darum, dass diese 10 ms stets konstant erreicht werden und es keinen Jitter gibt.
Je toleranter das System gegenüber Jitter ist, desto mehr erhöht sich das Delay (Verzögerung) durch den Codec. Man kann nur versuchen den Jitter in den eigenen Routern zu minimieren. Doch sobald die Datenpakete das Netzwerk verlassen hat man keinen Einfluss mehr auf den Jitter.
Paketverluste - Packet Loss
Für die Übertragung von VoIP-Sprachdaten wird UDP verwendet, das die Zustellung der Pakete nicht sicherstellen kann. Bei Sprachdaten macht das auch wenig Sinn. Ein Sprachpaket enthält nur etwa 20 bis 30 ms an Sprache, was in etwa einer Silbe entspricht. Eine Silbe nachzuliefern macht wenig Sinn und ist auch nicht notwendig. Sofern das nicht zu häufig auftritt, kann man den Verlust verschmerzen. Unregelmäßige Paketverluste kann man durchaus tolerieren. Unser Gehirn ist in der Lage, fehlende oder fehlerhafte, aber in einem logischen Satzzusammenhang stehende Worte bzw. Wortsilben selbständig richtig zu ergänzen. Doch wenn Datenpakete allzu oft fehlen, dann macht sich das durch Aussetzer und Ausfälle bemerkbar. Das reduziert die Sprachqualität. Sobald also aufeinanderfolgende Pakete verloren gehen, führt das dazu, dass ganze Wörter oder Satzbestandteile fehlen.
Die Angabe "Packet Loss" gibt Auskunft über die prozentuale Menge verlorengegangener Datenpakete. Dieser Wert liegt in der Regel bei einem Prozent. Bis zu 5% Datenverlust muss ein Codec ausgleichen können, was beim Telefonieren ungehört bleibt.
Die häufigste Ursache für Paketverluste ist die Überlastung des Netzwerks. Datenpuffer sind ein beliebtes Mittel um Paketverluste zu vermeiden und kurzzeitige Bandbreitenschwankungen durch das zwischenspeichern von Datenpaketen auszugleichen. Prinzipiell sollte man es vermeiden Sprachdaten bei der Übertragung zu puffern. Dadurch werden sie nur unnötig verzögert.
Quality of Service (QoS)
Für ein Telefongespräch mit Voice over IP in guter Qualität muss eine bestimmte Bandbreite für die Dauer des Gesprächs gewährleistet sein. Man spricht vom sogenannten Fernsprechkanal. In diesem Fernsprechkanal wird die Sprache isochron (gleich lang andauernd) übertragen. Die engen Grenzen bei der Verzögerung und den Laufzeitschwankungen lassen sich mit dem reinen Internet-Protokoll (IP) nicht realisieren.
Da Sprachübertragung von der Übertragungstechnik, in diesem Fall die paketorientierten Protokolle, besondere Eigenschaften fordern, lassen sich Übertragungsfehler, Verzögerungen und Laufzeitunterschiede nur durch eine ausreichende Bandbreite oder Protokollzusätze vermeiden. Man fasst diese Maßnahmen unter Quality-of-Service (QoS) zusammen.
Sicherheit
Sicherheits-Features für VoIP sind äußerst unpopulär. Als Grund wird der vergleichsweise hohe Aufwand für das Abhören oder Stören, im Vergleich zu ISDN oder analog, angeführt. Einen analogen Anschluss kann man abhören, in dem man ein Telefon oder Kopfhörer parallel zur Leitung schaltet. Bei VoIP ist das wesentlich komplizierter, weil die Daten auf mehreren Protokollschichten verteilt sind. Einen Datenverkehr mitzuschneiden ist sehr aufwendig und nur mit hochwertiger Hardware und Software möglich. Vorausgesetzt natürlich, man hat einen Punkt im Netz, an dem man Abhören kann.
Das Grundproblem bei VoIP ist die bidirektionale Datenverbindung. Die Datenpakete werden in beide Richtungen über die Firewall geschickt. Dafür werden Ports geöffnet, die wiederum als Angriffspunkt für Hacker dienen können. Solange die IP-Telefonie im lokalen Netzwerk und hinter einer Firewall arbeitet, ist das Risiko eines Angriffs von außen gering. Ist der Telefonie-Server über das öffentliche Netz zu erreichen, dann kann dessen Funktion beispielsweise durch Denial-of-Service-Attacken (DoS) gestört werden.
In H.323 ist H.235 definiert. Es umfasst Verfahren zur Authentifizierung und Verschlüsselung der Datenströme. Die Verschlüsselung ist optional. Die Verschlüsselung erfolgt mit SRTP.
Bei SIP könnte die Authentifizierung mit PGP erfolgen. Der Datenstrom könnte auch mit SRTP verschlüsselt werden.
Damit die Sicherheitsmaßnahmen auch greifen, müssen alle an der Übertragung beteiligten Komponenten über genügend Sicherheitsvorkehrungen verfügen. Es bringt nicht sehr viel, wenn die Signalisierung, aber nicht der Datenstrom verschlüsselt ist.
- SIPS - SIP über TLS/SSL für den Verbindungsaufbau
- SRTP - Secure RTP für die Übertragung der Sprachdaten