VoIP Thomas Leutermann Universität Osnabrück Die Ausarbeitung zum Thema Voice over IP stellt die Grundlagen und wesentlichen verwendeten Protokolle dar. Zusätzlich wird kurz auf die Entstehung und die aktuellen Einsatzgebiete eingegangen. Inhaltsverzeichnis 1 Einführung................................................................................................................................................. 2 2 Entstehung und Organisationen.............................................................................................................. 3 3 Protokolle und Standards im Überblick.................................................................................................. 3.1 Digitalisierung und Codierung............................................................................................................ 3.2 Transport der digitalen Sprachdaten.................................................................................................. 3.2.1 Real-Time Transport Protocol................................................................................................... 3.2.2 Real-Time Transport Control Protocol...................................................................................... 3.3 Protokolle zur Signalisierung............................................................................................................. 3.3.1 Session Initiation Protocol........................................................................................................ 3.3.2 SIP Proxy-Mode und Redirect-Mode........................................................................................ 3.3.3 SIP-Nachrichten....................................................................................................................... 3.4 Ablaufsteuerung zwischen verschiedenen Netzen............................................................................ 3.5 Telefonnummern-Systematik und Internet-Adressierung................................................................... 5 6 7 9 10 12 13 13 14 16 18 4 Schlussbetrachtung.................................................................................................................................. 20 5 Literaturverzeichnis und Web-Links........................................................................................................ 21 6 VoIP Diensteanbieter................................................................................................................................. 22 7 Anlagen...................................................................................................................................................... 23 1 Einführung 2 1 Einführung Voice over Internet Protocol, Voice over IP oder kurz VoIP ermöglicht eine Sprachkommunikation über das Internet bzw. über Netze, die das Internet Protocol nutzen. Sprachkommunikation bedeutet, dass Nutzer miteinander interagieren, so dass eine Übertragung in Echtzeit erfolgen muss. Außerdem soll, wie in der klassischen Welt der Telefonie, jeder Nutzer mit einem Netzzugang prinzipiell mit jedem andern Nutzer eine Verbindung aufnehmen können. Dem entsprechend sind die Anforderungen, die an die Vermittlung einer Verbindung und an die Übertragung eines Gespräches gestellt werden, im digitalen, Datenpakete versendende Internet zu realisieren. Der folgende Beitrag gibt einen Überblick über die Entstehung, die notwendigen Protokolle und Standards und die technischen Realisierungen von VoIP. Außerdem soll kurz auf die Nutzung und auf aktuelle Entwicklungen eingegangen werden. 2 Entstehung und Organisationen 3 2 Entstehung und Organisationen Die Anfänge des Telefonierens über Datennetze liegen in der Übertragung von Sprache im Arpanet (Advanced 1 Research Projects Agency Network), dem Vorfahrendes Internets, mittels Network Voice Protocol (NVP) [1] , 2 das 1973 entwickelt und 1977 in dem Request for Comments 741 (RFC 741) [2] festgelegt wurde. Das NVP stellt damit den Vorläufer der VoIP-Protokollfamilie dar, hat aber heute keine Bedeutung, obwohl es im Internet Protocol mit der Protokollnummer 11 (NVP-II) geführt wird. Die Entwicklung des Arpanet zum Internet und dessen nach und nach entstandenen Protokolle bilden heute die Grundlage für verschiedenste Dienste. Zunächst war nur die reine Datenkommunikation und die Robustheit der Datenübertragung gegenüber Störungen und dem Ausfall von Teilen des Übertragungsnetzes wichtig. 1980 (aktualisiert 1981) wurden die wichtigsten dieser Protokolle veröffentlicht: • User Datagram Protocol (UDP), RFC 768 (1980) [3]3 • Internet Protocol (IP), RFC 791 IPv4 (1981) [4]4 • Transmission Control Protocol (TCP), RFC 793 (1981) [5]5 +------+ +-----+ +-----+ +-----+ |Telnet| | FTP | | TFTP| ... | ... | +------+ +-----+ +-----+ +-----+ | | | | +-----+ +-----+ +-----+ | TCP | | UDP | ... | ... | +-----+ +-----+ +-----+ | | | +--------------------------+----+ | Internet Protocol & ICMP | +--------------------------+----+ | +---------------------------+ | Local Network Protocol | +---------------------------+ Protocol Relationships Abbildung 1: Übersicht aus IPv4, RFC 791 Im gleichen Jahr wurde auch die ITU-T-Empfehlung (damals noch CCITT) für ISDN verabschiedet, die ebenfalls prägend für die weitere Entwicklung sein sollte. Die nächsten Schritte wurden getan mit dem Real-Time Transport Protocol (RTP) (1996 als Protokoll zur Echtzeitkommunikation im RFC 1889; seit 2003 RFC 3550), dem ITU-T-Rahmenwerk H.323 u.a. zur Signalisierung (1998), dem Session Initiation Protocol (SIP) (1999 im RFC 2543) als eine Alternative zur Signalisierung im H.323 ITU-Standard sowie mit der SIP-Erweiterung im RFC 3261 in 2002 und dem Standard ITU Q.1912.5 für die Interoperabilität zwischen SIP und ISDN User Part. Damit waren die wichtigsten Grundlagen gelegt, um auch die Übertragung von Sprache/Audio und Video in einem datenpaketvermittelnden Netz zu ermöglichen. Nach einem kleinen Zwischenhoch des Interesses an der Thematik auf Basis von H.323 um das Jahr 2000 herum, kam es zu einem großen Interesse ab 2004, wo sich VoIP im Consumer-Bereich als Massenbewegung etablierte. Treibend war der Erfolg des Unternehmens Skype, dem viele weitere Anbieter, u.a. auch klassische 1 http://en.wikipedia.org/wiki/Network_Voice_Protocol 2 http://tools.ietf.org/html/rfc741 3 http://tools.ietf.org/html/rfc768 4 http://tools.ietf.org/html/rfc791 5 http://tools.ietf.org/html/rfc793 2 Entstehung und Organisationen 4 Telekommunikationsunternehmen folgten. Als Signalisierungs-Protokoll kommt hier seit dem vor allem SIP 6 zum Einsatz. [6] Die Entwicklung im Business-Bereich war geprägt durch das Bestreben Kosten zu senken und die Effizienz zu steigern. Nachdem in den meisten Unternehmen die lokale Rechnervernetzung (LAN) und die Nutzung des Internets gängig war, wurden einerseits die lokalen TK-Anlagen mit dem LAN verbunden und andererseits eine Standortvernetzung über das Internet betrieben. Neben den deutlich verringerten Verbindungsentgelten kam die Effizienzsteigerung insbesondere durch die Computer Telephony Integration (CTI), also die Integration von Sprachkommunikation, Email, Web, Fax, usw. und das Call Routing innerhalb von bzw. zwischen Firmenstandorten. Die Möglichkeit die Sprach- und auch Videokommunikation gänzlich auf die IP-Basis zu verlagern und die alten TK-Netze zu ersetzen wird seither zunehmend genutzt und ermöglicht auch kleinen Unternehmen den standortübergreifenden, globalen Einsatz. Häufig verschwimmen hier die Grenzen der Consumer- und Business-Angebote, die VoIP als Grundlage haben. Die aktuelle Entwicklung geht hin zu konvergenten Netzwerken, in denen VoIP aufgeht. Die Schlagworte sind Multimedia-Kommunikation, Triple- und Quad-Play (Fernsehen, Telefonieren und Internet sowie Mobilfunk), All-IP-Network bzw. Next Generation Network (NGN) und IP Multimedia Subsystem (IMS) sowie der Wandel der klassischen Telekommunikationsunternehmen hin zu Content Service Providern. Als Organisationen, die die Entwicklung begleiteten und auch heute im wesentlichen noch steuern sind besonders zu nennen • Internet Engineering Task Force (IETF) 7, die u.a. die Internet Drafts (ID) - Vorschläge für einen neuen oder erweiterten Internet-Standard - diskutiert und ggf. als Request for Comments (RFC) - Internet-Standard 8 - heraus gibt. Die Arbeiten werden in so genannten Working Groups durchgeführt. • International Telecommunication Union, mit der Abteilung Telecommunication Standardization Sector 9 (ITU-T) , die mit ihren Study Groups weltweite Standards zur Technik und Tarifierung in der Telekommunikation festlegt. • European Telecommunication Standards Institute (ETSI) 10, zuständig für die Standards und Normen in der Informationstechnik und Telekommunikation auf europäischer Ebene. Die Arbeit ist in Technical Bodies (Technical Committee, ETSI Project und ETSI Partnership Project) organisiert. 6 http://de.wikipedia.org/wiki/VoIP 7 http://www.ietf.org/ 8 weiteres zur Organisation IETF in 'The TAO of IETF', http://tools.ietf.org/html/rfc4677 9 http://www.itu.int/ITU-T 10 http://www.etsi.org/ 3 Protokolle und Standards im Überblick 5 3 Protokolle und Standards im Überblick Neben den bereits genannten wichtigsten Protokollen und Standards gibt es weitere Standards für die Übertragung und Vermittlung, die sich mit den Themen • • • • • Digitalisierung und Codierung der analogen Sprachsignale, Transport der digitalen Sprachdaten, Signalisierung für den Auf- und Abbau und die Steuerung einer Verbindung, Ablaufsteuerung zwischen verschiedenen Netzen und Verbindung der Telefonnummern-Systematik mit der Internet-Adressierung beschäftigen. Außerdem sind Anforderungen an die Qualität der Übertragung vom Sender an den Empfänger zu berücksichtigen, um eine ausreichende Sprachverständlichkeit zu erreichen, die sich an der Qualität herkömmlicher analoger und digitaler Telefonverbindungen messen lassen muss. VoIP ist eine isochrone Verbindung, d.h. es müssen gleiche Zeitabstände zwischen den Datenpaketen auf Sende- und Empfangsseite 11 gegeben sein. Die wichtigsten Parameter der Quality of Service (QoS), die die Isochronität beeinflussen sind : • Bandbreite des Übertragungsweges - hier muss eine definierte Mindestbandbreite gegeben sein • Ende-zu-Ende-Verzögerung (Delay) - Zeit, die ein Signal vom Sender zum Empfänger benötigt; eine Laufzeit der Signale zwischen 150 ms bis 300 ms oder niedriger wird als ausreichen angesehen, über 300 ms ist nicht mehr akzeptabel • Schwankungen der Übermittlungszeit (Jitter) - kann durch einen Jitter-Buffer ausgeglichen werden • Paketverluste (Packet Lost Rate) - vereinzelte Paketverluste stellen noch kein Problem dar, Häufungen führen zu störenden Unterbrechungen Zur Orientierung für die weiteren Beschreibungen hier die Darstellung der verwendeten Protokolle und Standards 12 für VoIP in einem Bild, die die Beziehungen und Abhängigkeiten veranschaulichen. 11 vgl. Badach 2007, S. 99 ff. 12 Anmerkung: Die Abkürzungen in dem Bild sowie die konkreten Abhängigkeiten werden in den nachfolgenden Kapiteln erläutert. 3 Protokolle und Standards im Überblick 6 Abbildung 3.1: Übersicht VoIP-Protokolle In den nachfolgenden Kapiteln wird eine Übersichten der Standards gegeben. Ist eine Zuordnung in das vier Schichten umfassende TCP/IP möglich, so wird diese mit angegeben. In der nachfolgend Tabelle werden die 13 Schichten kurz beschrieben.[1] TCP/IP model - DoD model 4. Application layer/ Die Anwendungsschicht umfasst alle Protokolle, die mit Process layer Anwendungsprogrammen zusammenarbeiten und die Netzwerkinfrastruktur für den Austausch anwendungsspezifischer Daten nutzen. 3. Transport layer/ Die Transportschicht stellt eine Ende-zu-Ende-Verbindung host-to-host layer (host to host) her. 2. Network layer/ Die Vermittlungsschicht ist für die Weitervermittlung von Internet layer Paketen und die Wegewahl (Routing) zuständig. Auf dieser Schicht und den darunter liegenden Schichten werden Punkt-zu-Punkt-Verbindungen betrachtet. Die Aufgabe dieser Schicht ist es, zu einem empfangenen Paket das nächste Zwischenziel zu ermitteln und das Paket dorthin weiterzuleiten. 1. Network access Die Netzwerkschicht ist im TCP/IP-Referenzmodell layer spezifiziert, enthält jedoch keine Protokolle der TCP/IP-Familie. Sie ist vielmehr als Platzhalter für verschiedene Techniken zur Datenübertragung von Punkt zu Punkt zu verstehen. Die Internet-Protokolle wurden mit dem Ziel entwickelt, verschiedene Subnetze zusammenzuschließen. Daher kann die Host-an-Netz-Schicht durch Protokolle wie Ethernet, FDDI, PPP (Punkt-zu-Punkt-Verbindung) oder 802.11 (WLAN) ausgefüllt werden. Tabelle 3.1: TCP/IP Schichten-Modell 3.1 Digitalisierung und Codierung Die Umsetzung und Aufbereitung der Sprachsignale in eine digital übertragbare Form kann mit einer Vielzahl an Verfahren durchgeführt werden. Entscheidend für die Auswahl ist der Frequenzumfang des Ursprungssignals, die gewünschte Qualität auf der Empfängerseite und die Bandbreite des Übertragungsweges. Man unterscheidet bei der Sprachcodierung nach (a) Abtastwert-orientierten (sample-based) und (b) Segment-orientierten (frame-based) Verfahren. Im ersten Fall erfolgt eine Abtastung des analogen Sprachsignals mit einer Abtastrate von meist 8 kHz und einer anschließenden linearen oder nichtlinearen Quantisierung und Codierung. Auf der Empfängerseite werden die Abtastsignale decodiert, regeneriert und mittels Tiefpassschaltung geglättet. 14 Übersicht der wichtigsten internationalen CODEC Spezifikationen [1] [2] Codec G.711 Name 15 Transfer Rate Frequency Quality / MOS Pulse Code Modulation (PCM)\ 56 o. 64 kbit/s 300 bis ISDN / 4.3 A-law and µ-law (a) 3400 Hz 13 http://en.wikipedia.org/wiki/TCP/IP_mode 14 http://www.itu.int/rec/T-REC-G/e 15 http://www.xten.de/ 3 Protokolle und Standards im Überblick 7 G.726 Adaptive Differential Pulse Code 16 - 40 kbit/s Modulation (ADPCM) (a) G.728 Low Delay Code Excited Linear 16 kbit/s Prediction (LD-CELP) (b) G.729/ Conjugate Structure Algebraic 8 kbit/s G.729A Code Excited Linear Prediction (CS-ACELP) (b) G.723.1 Multiple Maximum Likelihood 6,3 kbit/s Quantization (MPMLQ) (b) G.723 Algebraic Code Excited Linear 5,3 kbit/s Prediction (ACELP) (b) Speex Free patent audio compression 4 - 15 kbit/s Narrow-band (free), \ Code Excited Linear Prediction (CELP) (b) Speex\\\ Free patent audio compression 10 - 28 kbit/s Wide-band (free), \ Code Excited Linear Prediction (CELP) (b) DVI4 Adaptive Differential Pulse Code 32 kbit/s Modulation (ADPCM) (a) iLBC Internet Low Bit Rate Codec 13,3 kbit/s (free) (b) G.722.1 MLT 24 kbit/s l16 PCM Linear PCM at 16 bits per 128 kbit/s sample (a) EVCR Enhanced Variable Rate Codec, 8 kbit/s Relaxed Code Excited Linear Prediction (RCELP) (b) H.263 Videocodec Discrete Cosine 16-256 kbit/s Transformation (DCT) H.261 Videocodec DCT 64-256 kbit/s - / 3.8 300 bis 3400 Hz 300 bis 3400 Hz nearly ISDN / 3.6 / 3.9, 3.7 300 bis 3400 Hz - / 3.9 8 kHz medial GSM / 3.6 16 - 32 kHz better GSM 8 kHz - 8 kHz / 4.1 16 kHz - - - - - medium - low Tabelle 3.2.: Digitalisierung und Codierung Bei dem Segment-orientierten Verfahren wird das Sprachsignal in Abschnitten von 10 bis 30 ms nach verschiedenen Kriterien analysiert, die u.a. die stimmhaften und stimmlosen Laute der menschlichen Sprache charakterisieren. Nach der Codierung, der Übertragung und Decodierung auf der Empfängerseite wird das Sprachsignal synthetisch mittels eines LPC-Vocoders (Linear Predictive Coding) zurückgewonnen, der akustisch den menschlichen Vokaltrakt nachbildet. Die Ausgangs-Sprachqualität wird im so genannten Meaning Opinion Score (MOS) angegeben in einer Skala von 16 1 = bad, 2 = poor, 3 = fair, 4 = good und 5 = excellent. Im RFC 3551 wird konkret angegeben, welche Codec-Verfahren zum Einsatz kommen können.[3] 17 Für eine effiziente Übertragung von Videodaten kommen ebenfalls Codierungsverfahren zum Einsatz, auf die hier jedoch nicht weiter eingegangen wird. 3.2 Transport der digitalen Sprachdaten Zur Übertragung von Daten für Echtzeitanwendungen in datenpaketvermittelnden Netzen, wie dem Internet, sind Protokolle erforderlich, die möglichst geringe Übertragungszeiten und Isochronität, also den gleichen 16 vgl. Badach 2007, S. 133 ff. 17 http://tools.ietf.org/html/rfc3551 3 Protokolle und Standards im Überblick 8 zeitlichen Ablauf bei Sender und Empfänger sichern. In der Funktion wird dabei unterschieden nach Protokollen für die Datenübermittlung selbst und für die Kontrolle und Absicherung der Übermittlung bzw. der Übertragungsqualität. Bei den Transportprotokollen wird zwischen verbindungsorientierten, verbindungslosen und gemischten Protokollen unterschieden.Verbindungsorientierte Protokolle wie TCP ermöglichen eine gesicherte Übertragung, da eine virtuelle Verbindung aufgebaut wird und empfangene Daten quittiert werden. Verbindungslose Protokolle wie UDP übermitteln verbindungslos Daten und erhalten keine Bestätigung, ob diese angekommen sind. Ein Beispiel für ein gemischtes Protokoll ist das Domain Name System (DNS), das in einem nachfolgenden Kapitel 18 kurz erläutert wird. Protokoll Beschreibung RFC RTSP Real-Time Transport Streaming Protocol (Application Layer) RFC 2326 initiiert und kontrolliert einen oder mehrere zeit-synchrone Datenströme für Audio und Video. Die eigentliche Datenübertragung erfolgt meist über RTP. RTCP Real-Time Transport Control Protocol (Application Layer) RFC 3550 Da RTP keine Empfangsquittierung hat, wird als Monitoringprotokoll RTCP eingesetzt, indem Reports ausgetauscht werden, um die Qualität der Sprachübermittlung zu überwachen. RTP Real-Time Tranport Protocol (Transport Layer) zur RFC 3550, Übertragung von Sprache/Audio und Video in Echtzeit. Mit 3551 dem Dokument RTP Profile for Audio and Video Conferences with Minimal Control" (RTP A/V Profile) wird eine Hilfe gegeben zur Implementierung von Audio, Video und anderen Echtzeit-Multimediaanwendungen. Zusätzlich existieren für RTP viele Spezifikationen zur Payload (Medienformate der zu übertragenden Nutzdaten) und zur Header Compression (Reduzierung der Größe des Overhead, wie Compressed RTP (CRTP) und Robust Header Compression (ROHC)). RSVP Resource Reservation Protocol (Transport Layer) dient zur RFC 2205, Reservierung einer benötigten Bandbreite und der Ermittlung 2750, 3936, der optimalen Route in IP-Netzen, um eine bestimmte 4495 Quality of Service (QoS) zu garantieren. TCP Transmission Control Protocol (Transport Layer) ermöglicht RFC 793, eine gesicherte virtuelle Verbindung zwischen zwei 3168 Rechnern über Sockets (Internetadresse und TCP-Port). UDP User Datagram Protocol (Transport Layer) ermöglicht eine RFC 768 ungesicherte Übertragung mit wenig Overhead auf dem Internet Protocol. SCTP Stream Control Transmission Protocol (Transport Layer) als RFC 3286, verbindungsorientiertes Protokoll arbeitet ähnlich wie TCP. 4960 Es werden jedoch keine sequenzierte Byte-Streams übertragen, sondern parallel mehrere Inbound- und Outbound-Streams, die Nachrichten in s.g. Chunks unidirektional an einen oder mehrere Endpunkte (IP-Adresse und SCTP-Port) transportieren. Es können z.B. Signalisierungsprotokolle wie SS7 aus dem ISDN übertragen werden und bietet einen Schutz vor Denial of Service-Attacken. IP Internet Protocol (Network/Internet Layer) dient der RFC 791 datenpaketvermittelnden Übertragung. Als Kontrollmecha-nismus ist nur die Header Checksum gegeben. Weitere Fehlerkontrollen können mit dem Internet Control Message Protocol (ICMP) durchgeführt werden. 18 vgl. Badach 2007, S. 69 3 Protokolle und Standards im Überblick 9 Tabelle 3.3: Protokolle für die Sprachübermittlung Nachfolgend werden die Protokolle RTP und RTCP etwas näher betrachtet. 3.2.1 Real-Time Transport Protocol Eine RTP-Session kann als ein logischer Media Channel (Übermittlungskanal) verstanden werden, in dem die zu übertragenden Daten, die Payload enthalten ist. Daneben sind noch diverse Informationen im RTP-Header angegeben, die die Reihenfolge der RTP-Pakte und die Isochronität garantieren sowie die Art der Payloadformate und den Einsatz von Translator und Mixer regeln. Die Translatorfunktionalität ermöglicht die Umsetzung von einem Payloadformat in ein anderes, der Mixer kann verschiedene Quellmedien in einer Payload zusammenfassen. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |V=2|P|X| CC |M| PT | sequence number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | timestamp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | synchronization source (SSRC) identifier | +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | contributing source (CSRC) identifiers | | (optional) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | header extension | | (optional) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | payload (audio/video segment) | | (optional) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Abbildung 3.2: RTP Packet Format 19 20 21 Die Bedeutung der einzelnen Abschnitte im RTP-Paket bzw. im RTP Header [1] [2] : • Version (V), 2 bits: RTP-Version • Padding (P), 1 bit: gibt an, ob das Paketes für eine gewünschte Länge mit Bit-Oktetten aufgefüllt werden muss, wie z.B. bei Verschlüsselungen • Extension (X), 1 bit: weist auf eine Header Extension • CSRC count (CC), 4 bits: gibt de Anzahl der Quell-Indikatoren an - siehe CRSC-List • Marker (M), 1 bit: weist auf eine anwendungsspezifische Nutzlast • Payload type (PT), 7 bits: Format der Nutzlast, spezifiziert durch eine feste Nummer (0 bis 95) oder durch dyn" (96 bis 127) für eine dynamische Zuteilung in einer Session (Beispiele: 0: PCM µ/G.711, 4: G.723, 8: PCM A/G.711, 31: H.261, 34: H.263) • Sequence number, 16 bits: ist eine Nummer, die zufällig ausgewählt je weiterem RTP-Paket hochgezählt wird, die Nummer kennzeichnet ein Paket und legt die Reihenfolge fest • Timestamp, 32 bits: eine beliebig festgelegte Zeitmarke, die für die Synchronisation und zum Ausgleich von Jitter (Schwankungen der Übertragungszeit) verwendet wird • SSRC - Synchronised Source Identifiers, 32 bits: dient zur Unterscheidung der Synchronisationsquelle, von der die Media-Daten stammen, damit der Empfänger diese richtig zuordnen kann • CSRC - Contributing Source Identifiers, Liste möglich von 0 bis 15 zu je 32 bits: Angaben, wenn mehrere Mediaquellen zusammengefasst/gemixt werden • Header Extension: wird optional für neue Klassen von Anwendungen, also Nutzlast abhängig verwendet • Payload: enthält die eigentlichen Mediadaten 19 vgl. Badach 2007, S. 149 ff. 20 http://tools.ietf.org/html/rfc3550 21 http://tools.ietf.org/html/rfc3551 3 Protokolle und Standards im Überblick 10 22 Hier ein Beispiel für RTP-Paket aus einer RTP-Session : Frame 276 (104 bytes on wire, 104 bytes captured) Ethernet II, Src: UniwillC_3e:79:8a (00:03:0d:3e:79:8a), Dst: ProcompI_fe:2b:f3 (00:30:95:fe:2b:f3) Internet Protocol, Src: 192.168.62.51 (192.168.62.51), Dst: eul0300290-pip.eu.verio.net (213.198.65.201) User Datagram Protocol, Src Port: 5004 (5004), Dst Port: 6630 (6630) Real-Time Transport Protocol [Stream setup by SDP (frame 27)] [Setup frame: 27] [Setup Method: SDP] 10.. .... = Version: RFC 1889 Version (2) ..0. .... = Padding: False ...0 .... = Extension: False .... 0000 = Contributing source identifiers count: 0 0... .... = Marker: False Payload type: iLBC (102) Sequence number: 5184 [Extended sequence number: 70720] Timestamp: 1682251140 Synchronization Source identifier: 0x35825f05 (897736453) Payload: 7899AF945B63EEACF743073C3B591F00740F68B41980BEA1... Text 3.1: Beispiel RTP-Paket Das Beispiel zeigt neben dem RTP-Paket auch die umgebenden Protokollebenen UDP, IP und Ethernet mit Angaben zu den IP-Adressen und den genutzten Ports. Wie zu sehen ist, erfolgte hier ein Sprachkommunikation mit dem Internet Low Bit Rate Codec. Das Netzwerk-Analyse-Tool mit dem die VoIP-Session beobachtet wurde, zeigt an, welcher Signalisierungskanal, hier mit dem Session Description Protocol (SDP), die RTP-Session steuert. 3.2.2 Real-Time Transport Control Protocol Das RTCP hat als eine Art Reporting-Kanal für RTP verschiedene Typen von Kontrollinformationen, die als Nummern im Protokollfeld Payload Type erscheinen. • Sender report - SR (200): Übertragungs- und Empfangsstatistiken der beteiligten Quellen als Information für den Empfänger, zur Einstellung auf die zu erwartende Qualität bzw. die notwendigen Ressourcen • Receiver report - RR (201): Empfangsstatistik der tatsächlich empfangenen Datenqualität SR- und RR-Datenpakete nach dem RTCP haben annähernd den gleichen Aufbau. • Source description - SDES (202): Quellangaben mit textuellem Namen, um Daten einzelner Quellen zusammenführen zu können. • Anzeige des Endes - BYE (203) • Applikationsspezifische Funktionen - APP (204) Der Anfang der RTCP-Pakete hat einen festen Teil, der ähnlich aufgebaut ist wie die RTP-Datenpakete, gefolgt von einem variablen Teil, der in jedem Fall mit einer 32-bit-Begrenzung abgeschlossen wird. Zusammengefasst können folgende Aufgaben festgehalten werden, die Überwachung der Übertragungsqualität, 23 die Identifikation der Quelle und die Unterstützung der Mehrpunkt-Kommunikation. 22 Anmerkung: aufgenommen mit Wireshark Network Protocol Analyzer 23 vgl. Badach 2007, S. 158 ff. 24 http://tools.ietf.org/html/rfc3550 [1] 24 3 Protokolle und Standards im Überblick 11 Nachfolgend exemplarisch das SR-Format des RTCP-Datenpaketes und ein RTCP-Beispiel aus einer RTP-Session, wobei, wie schon gesagt, schon einige Angaben in RTP-Paketen enthalten sind. Angegeben sind in dem Paket unter anderem die Anzahl der Report-Blöcke - Reception report count (RC), die Länge des RTCP-Paketes - length, ein Zeitstempel im Format Network Time Protocol (NTP). Besonders wichtig ist der Pakettyp - PT, mit dem der jeweilige oben genannte Typ angegeben wird. Daneben gibt es noch weitere hier nicht weiter genannte Typen.[2] 25 Im Report-Block sind noch eine Abschätzung des Jitters, eine Verlustquote von RTP-Paketen, der Fraction Lost und eine Berechnung der Verzögerung, dem Round-Trip Delay. header sender info report block 1 report block 2 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |V=2|P| RC | PT=SR=200 | length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SSRC of sender | +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | NTP timestamp, most significant word | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NTP timestamp, least significant word | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RTP timestamp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | sender's packet count | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | sender's octet count | +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | SSRC_1 (SSRC of first source) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | fraction lost | cumulative number of packets lost | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | extended highest sequence number received | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | interarrival jitter | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | last SR (LSR) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | delay since last SR (DLSR) | +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | SSRC_2 (SSRC of second source) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : ... : +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | profile-specific extensions | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Abbildung 3.3: RTCP-Packet Sender Report SR Im nachfolgenden Beispiel ist die Ähnlichkeit des RTCP-Paketes mit dem RTP-Paket zu sehen. Frame 146 (122 bytes on wire, 122 bytes captured) Ethernet II, Src: UniwillC_3e:79:8a (00:03:0d:3e:79:8a), Dst: ProcompI_fe:2b:f3 (00:30:95:fe:2b:f3) Internet Protocol, Src: 192.168.62.51 (192.168.62.51), Dst: eul0300290-pip.eu.verio.net (213.198.65.201) User Datagram Protocol, Src Port: 5005 (5005), Dst Port: 6631 (6631) Real-time Transport Control Protocol (Sender Report) [Stream setup by SDP (frame 27)] [Setup frame: 27] [Setup Method: SDP] 10.. .... = Version: RFC 1889 Version (2) ..0. .... = Padding: False ...0 0001 = Reception report count: 1 25 http://www.networksorcery.com/enp/protocol/rtcp.htm 26 Anmerkung: aufgenommen mit Wireshark Network Protocol Analyzer 26 3 Protokolle und Standards im Überblick 12 Packet type: Sender Report (200) Length: 12 (52 bytes) Sender SSRC: 0x35825f05 (897736453) Timestamp, MSW: 3403971859 (0xcae47d13) Timestamp, LSW: 2550136832 (0x98000000) [MSW and LSW as NTP timestamp: Nov 13, 2007 19:44:19,5938 UTC] RTP timestamp: 1682220110 Sender's packet count: 68 Sender's octet count: 3400 Source 1 Identifier: 0x00000000 (0) SSRC contents Extended highest sequence number received: 0 Interarrival jitter: 0 Last SR timestamp: 0 (0x00000000) Delay since last SR timestamp: 0 (0 milliseconds) Real-time Transport Control Protocol (Source description) [Stream setup by SDP (frame 27)] [Setup frame: 27] [Setup Method: SDP] 10.. .... = Version: RFC 1889 Version (2) ..0. .... = Padding: False ...0 0001 = Source count: 1 Packet type: Source description (202) Length: 6 (28 bytes) Chunk 1, SSRC/CSRC 0x35825F05 Identifier: 0x35825f05 (897736453) SDES items Type: CNAME (user and domain) (1) Length: 17 Text: user@gizmoproject Type: END (0) [RTCP frame length check: OK - 80 bytes] Text 3.2: Beispiel RTCP-Packet SR 3.3 Protokolle zur Signalisierung Das Session Initiation Protocol hat für VoIP gegenüber dem Rahmenwerk H.323-SIG in den letzten Jahren eindeutig die größere Bedeutung gewonnen. Daneben kommt es auch zunehmend in den neueren Ansätzen Next Generation Network und IP Multimedia Subsystem zum Einsatz, so dass nur SIP ausführlicher dargestellt werden soll. Protokoll Beschreibung RFC/ITU H.323-SIG H.323 - ITU-T Recommendation Q.931 H.323 beschreibt H.323 H.225.0 H.225.0 das Zusammenwirken der Protokolle H.225.0, H.245 sowie H.245 Q.931 H.245 RTP und RTCP. H.225.0 entspricht der Schicht 2, also der Sicherungsschicht des D-Kanal-Protokolls im ISDN und wird über TCP geführt. H.225.0 beschreibt die Rufsignalisierung, die Medien (Audio und Video), die Umwandlung des Datenstroms in Pakete, die Synchronisierung des Datenstroms und die Kontrolle des Nachrichtenformats. H.245 beschreibt die Nachrichten und Verfahrensweisen für das Öffnen und Schließen logischer Kanäle, die zur Übertragung von Audio, Video und Daten dienen; sowie den Austausch, die Kontrolle 27 SIP und Anzeige der Übertragungskapazitäten.[1] Session Initiation Protocol (Application Layer) SIP ist RFC 3261 bis ein textbasierendes Protokoll ähnlich dem Hypertext 3265, 3853, Transfer Protokoll (HTTP). In der Funktion entspricht SIP 4320, 4916 27 http://de.wikipedia.org/wiki/H.323 3 Protokolle und Standards im Überblick 13 weitgehend dem D-Kanal-Protokoll im ISDN und kann beliebige RTP-Sessions für beliebige Multimediaströme mit einem oder mehreren Teilnehmern verwalten und scheint sich zum Standard-Protokoll für Voice over IP 28 SDP 29 (VoIP) zu entwickeln. [2] Session Desciption Protocol (Application Layer) SIP wird RFC 4566 unterstützt durch das Session Desciption Protocol (SDP) zur Beschreibung von Multimediaströmen. 30 Tabelle 3.4.: Protokolle zur Signalisierung 3.3.1 Session Initiation Protocol Die Signalisierung dient dem Auf- und Abbau und der Steuerung einer Verbindung. Eine SIP-Session stellt damit einen logischen Kanal dar, der zusätzlich über eine Fehlerkontrolle verfügt, so dass im Regelfall auf UDP aufgesetzt und hierdurch ein schneller Verbindungsaufbau erreicht werden kann. Als Well-Known-Port wird 5060 angegeben. Häufig werden jedoch auch andere Ports benutzt, da vielen Netzwerken eine Firewall bzw. Network Adress Translation (NAT) vorgeschaltet ist, die ggf. diesen Port sperren oder umleiten. Die Übertragung der Nutzinformation erfolgt, wie bereits dargestellt in RTP-Paketen. Es ist zusätzlich notwendig zwischen den Endgeräten der Kommunikation bekannt zu geben, welcher Art die Nutzinformation sind. Dies erfolgt mit dem Session Description Protocol (SDP). Die Endpunkte der Kommunikation bezeichnet man, nach der Client-Server-Systematik als User Agent Client (UAC) für die aufrufende Seite und User Agent Server (UAS) für die aufgerufene Seite. Der große Vorteil von SIP besteht darin, dass es sich in die bestehende, durch HTTP geprägte Landschaft einfügt. So erfolgt die Adressierung für einen Anruf mittels eines URI (Uniform Ressource Identifier), der Teilnehmer entspricht der Email-Adress-Systematik z.B. [email protected] oder im Sinne einer Rufnummer [email protected] (SIP URI). Die IP-Adresse des zugeordneten Endgerätes kann somit auch über DNS ermittelt werden. Neben dem Einsatz für den direkten Verbindungsaufbau zwischen zwei Endpunkten, soweit die IP-Adresse bekannt ist, wird SIP auch für die Signalisierung mit Hilfe von Proxy-Servern, 31 Redirect-Servern und Registraren/Location-Servern verwendet. [1] 32 3.3.2 SIP Proxy-Mode und Redirect-Mode Die beiden Betriebsarten Proxy-Mode und Redirect-Mode ermöglichen es, ohne direkte Kenntnis der IP-Adresse des gewünschten Endgerätes, eine Verbindung aufzubauen. Der Proxy-Server leitet, ggf. mit Nachfrage bei einem Location-Server die Anfrage (INVITE) des Anrufers an das entsprechende Endgerät oder an einen anderen Proxy-Server. Es erfolgt also eine Weiterleitung der Anfrage. Der Austausch der Echtzeitdaten über RTP erfolgt dann direkt zwischen den Endgeräten (peer-to-peer), wenn der Anruf akzeptiert (OK) und die Verbindung aufgenommen (ACK) wurde. Der Abbau (BYE) der Verbindung, für den ebenfalls der Proxy-Server benutzt wird, wird abschließend quittiert (ACK). Im Redirect-Mode ermittelt der Redirect-Server die SIP-Adresse des gewünschten Partners und teilt diese dem anrufenden Endgerät mit. Der Verbindungsaufbau und die Signalisierungsmeldungen (Request und Response genannt) genannt, erfolgt danach direkt zwischen den Endpunkten. 28 vgl. Badach 2007, S. 248 29 http://de.wikipedia.org/wiki/Session_Initiation_Protocol 30 vgl. ebd., S. 248 f. 31 vgl. Badach 2007, S. 247 ff. 32 http://tools.ietf.org/html/rfc3261 3 Protokolle und Standards im Überblick 14 Mit diesen Mechanismen können Rufverzweigungen, Anrufweiterleitungen und die Einbindung von netzseitigen Diensten wie Voice-Mail-Systeme eingerichtet werden. Daneben gibt es noch zwei weitere wichtige Servertypen, die VoIP-Gateways für den Übergang von IP-Netzen auf ISDN und die Gatekeeper zwischen Netzen mit SIP und H.323-Signalisierung, wo ggf. auch die Konvertierung der Nutzdaten in ein anderes Medienformat 33 stattfindet. 3.3.3 SIP-Nachrichten SIP-Nachrichten verfügen wie HTTP über einen Satz an Request-Typen und Response-Klassen, mit denen die Abläufe gesteuert werden. Request-Typen Response-Klassen INVITE initiiert einen neuen Anruf und enthält Informational - 1xx teilt dem SIP-Adresse von beiden Teilnehmern, den Absender die Bearbeitung des Grund (Subject) des Anrufes und dessen Requests mit: 100 Trying, 180 Priorität. Ringing BYE initiiert den Abbau der bestehenden Success - 2xx teilt dem Absender VoIP-Verbindung den erfolgreichen Empfang mit: 200 OK ACK (ACKnowledgemanagement) bestätigt Redirection - 3xx signalisiert dem die Annahme des Anrufes Absender , dass der Empfänger sich in einer anderen Domäne befindet: 301 Moved Permanently, 302 Moved Temporarily OPTIONS fragt nach Fähigkeiten (Media Client-Error - 4xx teilt dem Capabilities), wie Arten von Medien (Audio, Absender ein Problem bei der Video) und Verfahren zur Codierung Bearbeitung des Requests mit: 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 406 Not Acceptable, 486 Busy Here CANCEL bricht Aufbau einer be-reits initiierten Server-Error - 5xx signalisiert dem VoIP-Verbindung ab Absender ein Serverproblem: 500 Internal Server Error, 501 Not Implemented, 502 Bad Gateway, 505 SIP Version not supported REGISTER teilt Registrar Informationen über Global-Failure - 6xx signalisiert ein die Lokation/Art der IP-Telefone mit; Registrar allgemeines Zugriffsproblem: 600 kann im SIP Server (Proxy bzw. Busy Everywhere, 606 Not Redirect-Server) oder im Location-Server Acceptable untergebracht werden INFO übermitteln zusätzlicher Informationen während einer bestehenden RTP-Session PRACK (Provisional Response ACKnowledgement) bestätigen eines Responses mit vorläufigen Charakter (sog. Provisional Responses) wie z.B. 180 Ringing, um eine Übertragung zu garantieren UPDATE verändert bestimmte Parameter schon während des Aufbaus dieser RTP-Session MESSAGE spezifiziert die SIP-Erweiterungen für Instant Messaging 33 vgl. Badach 2007, S. 252 ff. 3 Protokolle und Standards im Überblick 15 REFER soll sog. Session Transfer (überleiten von einer Verbindung in eine andere) zu ermöglichen SUBSCRIBE und NOTIFY übermitteln bestimmter Ereignisse z.B. die Integration des Internets mit dem Intelligent Network Tabelle 3.5: SIP Request-Typen und Response-Klassen Exemplarisch ist der Verlauf einer Verbindung im RFC 3261 dargestellt, die über zwei Proxy-Server abläuft. Request und Response werden jeweils von den Proxy-Servern empfangen und weitergeleitet. Die Verbindung wird von Alice" initiiert und in diesem Fall von Bob" beendet. Media Session steht für den RTP-Datenaustausch. . atlanta.com proxy . . . biloxi.com proxy . . . Alice's . . . . . . . . . . . . . . . . . . . . Bob's softphone SIP Phone | | | | | INVITE F1 | | | |--------------->| INVITE F2 | | | 100 Trying F3 |--------------->| INVITE F4 | |<---------------| 100 Trying F5 |--------------->| | |<-------------- | 180 Ringing F6 | | | 180 Ringing F7 |<---------------| | 180 Ringing F8 |<---------------| 200 OK F9 | |<---------------| 200 OK F10 |<---------------| | 200 OK F11 |<---------------| | |<---------------| | | | ACK F12 | |------------------------------------------------->| | Media Session | |<================================================>| | BYE F13 | |<-------------------------------------------------| | 200 OK F14 | |------------------------------------------------->| | | Abbildung 3.4: SIP-Session über zwei Proxy-Server In dem nachfolgenden Beispiel einer reale SIP-Session1 ist zu sehen, dass in dem INVITE-Request auch das Session Descripten Protocol zum Einsatz kommt. Dort ist angegeben, welche Medienformate auf Seiten des Anrufenden verwendet werden können. In einer nachfolgenden Antwort OK-Response des Empfängers, die hier nur auszugsweise angegeben ist, wird mitgeteilt welche Möglichkeiten der Empfänger hat, so dass ein passendes Format gewählt werden kann. In diesem Fall ist es, wie in der obigen RTP-Session zu sehen ist, der Codec iLBC (Internet Low Bit Rate codec). An dem Beispiel ist auch der Aufbau eines SIP-Paketes zu erkennen, u.a. mit der Angabe des Request- bzw. Response-Typen, des Empfängers (To), des Senders (From) und des Inhaltes (Content-Type) mit Verweis auf das SDP-Paket. Weitere Informationen, wie in diesem Fall zu einer anbieterspezifischen Chat-Funktion mit dem Jabber Protocol, können enthalten sein. Im Teil des UDP-Protocols ist auch der angesprochene Port 5060 34 zu sehen. ... User Datagram Protocol, Src Port: 64064 (64064), '''Dst Port: 5060 (5060)''' Session Initiation Protocol Request-Line: '''INVITE''' sip:echoproxy01.sipphone.com SIP/2.0 Method: INVITE [Resent Packet: False] 34 Anmerkung: aufgenommen mit Wireshark Network Protocol Analyzer 3 Protokolle und Standards im Überblick 16 Message Header Via: SIP/2.0/UDP 192.168.62.51:64064;branch=z9hG4bK-d87543-2e49d2507207de51-1--d87543-;rport Max-Forwards: 70 Contact: <sip:1747246242787.183.76.234:64064> To: <sip:echoproxy01.sipphone.com> From: <sip:17472462427proxy01.sipphone.com>;tag=1f0e7842 Call-ID: 720ac62d7247393712839456656Tm90ZWJvb2tfQW1pbG8. CSeq: 1 INVITE Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, INFO, NOTIFY, MESSAGE Content-Type: application/sdp Supported: ICE User-Agent: WinGizmo/1.7.08 (Gizmo-s2n1) Content-Length: 451 JabberID: name-xychat.gizmoproject.com CQBM: 242 Message body Session Description Protocol Session Description Protocol Version (v): 0 Owner/Creator, Session Id (o): GizmoProject 1120482861 1 IN IP4 213.198.65.201 Session Name (s): GizmoAudioSession Connection Information (c): IN IP4 213.198.65.201 Time Description, active time (t): 0 0 Media Description, name and address (m): audio 6630 RTP/AVP 103 102 97 100 101 0 8 3 106 13 117 Media Attribute (a): rtpmap:103 ISAC/16000 Media Attribute (a): rtpmap:102 iLBC/8000 Media Attribute (a): rtpmap:97 IPCMWB/16000 Media Attribute (a): rtpmap:100 EG711U/8000 Media Attribute (a): rtpmap:101 EG711A/8000 Media Attribute (a): rtpmap:0 PCMU/8000 Media Attribute (a): rtpmap:8 PCMA/8000 Media Attribute (a): rtpmap:3 GSM/8000 Media Attribute (a): rtpmap:106 telephone-event/8000 Media Attribute (a): rtpmap:13 CN/8000 Media Attribute (a): rtpmap:117 red/8000 Media Attribute (a): rtcp:6631 -------------------------------------------------------------------------... Session Initiation Protocol Status-Line: SIP/2.0 200 OK ... Message body Session Description Protocol ... Time Description, active time (t): 0 0 Media Description, name and address (m): audio 19566 RTP/AVP 102 0 8 106 Media Attribute (a): rtpmap:102 iLBC/8000 Media Attribute (a): rtpmap:0 PCMU/8000 Media Attribute (a): rtpmap:8 PCMA/8000 Media Attribute (a): rtpmap:106 telephone-event/8000 Media Attribute (a): fmtp:106 0-16 Media Attribute (a): silenceSupp:off - - - - Text 3.3: Beispiel SIP INVITE-Request und OK-Request mit SDP 3.4 Ablaufsteuerung zwischen verschiedenen Netzen Neben dem Verbindungsaufbau und dem Transport der Nutzdaten ist eine Ablaufsteuerung auf der Ebene der Verbindungen unterschiedlicher Netze notwendig. Dies wird im Zusammenspiel von VoIP-Netzen und anderen Netzen mit Hilfe der Protokolle Media Gateway Control Protocol (MGCP) und Media Gateway Control (Megaco) ermöglicht. 3 Protokolle und Standards im Überblick 17 Protokoll Beschreibung RFC/ITU MGCP Media Gateway Control Protocol (Application Layer) RFC 3435, MGCP ist ein Netzwerkprotokoll zur Steuerung von 3661 VoIP-Gateways. MGCP ist ein Master/Slave Protokoll welches die Steuerinformationen in Klartext (wie SIP) überträgt. Das VoIP-Gateway arbeitet als Slave und wird von einer Vermittlungseinheit (Call Control Device) 35 gesteuert.[1] Die Übertragung erfolgt auf Basis von UDP. Megaco Media Gateway Control (Application Layer) Megaco ist RFC 3015, ein von der IETF und der ITU-T unterstütztes Gate2805, H.248 way-Protokoll zur Steuerung von Media Gateways (MG) und wird für den Aufbau von VoIP-Verbindungen benutzt. Es arbeitet unabhängig von Rufsignalisierungen wie dem Netzwerkprotokoll H.323 und dem SIP-Protokoll.[2] kann über TCP und UDP übertragen werden. 36 Es Tabelle 3.6: Protokolle zur Ablaufsteuerung zwischen Netzen Wegen des größeren Funktionsumfangs und der höheren Akzeptanz durch die Standardisierung von ITU-T und IETF kommt das Protokoll Megaco stärker zum Einsatz, insbesondere für das Next Generation Network und das IP Multimedia Subsystem. MGCP wird eher in kleineren Netzinfrastrukturen, z.B. zur Anbindung von 37 TK-Anlagen genutzt. Die zentralen Elemente zur Verknüpfung und Ablaufsteuerung sind das Media Gateway (MG) und der Media Gateway Controller (MGC). Das Media Gateway bildet die Schnittstelle zwischen dem IP-Netzwerk und anderen Netzwerken, wie dem herkömmlichen Telefonnetz (public switched telephone network - PSTN). Dort erfolgt nur die Umsetzung der angelieferten Nutzdaten in die für das jeweilige Netz transportierbare Form - für VoIP in RTP/RTCP-Pakete. Der MGC übernimmt die Steuerung der MG und die Signalisierung, also die Umsetzung von und nach SIP bzw. H.323-SIG. Zwischen MG und MGC kommen die Protokolle MGCP und Megaco zum Einsatz. Für die Wandlung der Signalisierung zwischen den Netzen wird analog zum MG ein Signaling Gateway 38 (SG) benötigt, dessen Daten z.B. mittels SIGTRAN-Protokollen , wie das bereits oben erwähnte Trans39 portprotokoll SCTP, an das MGC gegeben werden. Einen Überblick gibt folgendes Bild[3] : 35 http://de.wikipedia.org/wiki/MGCP 36 http://de.wikipedia.org/wiki/Megaco 37 vgl. Badach 2007, S. 287 ff. 38 SIGTRAN: IETF Working Group, die sich mit Signalisierung von und zu PSTN beschäftigt 39 http://www.syrus.ru/files/devices/mon/masterquest/75.gif 3 Protokolle und Standards im Überblick 18 Abbildung 3.5: Überblick Konvergente Netzwerkarchitektur 3.5 Telefonnummern-Systematik und Internet-Adressierung Das Grundprinzip der meisten Anbieter für VoIP-Dienste ist, für angemeldete Nutzer die zentrale Vermittlung unter den Nutzern durchzuführen. Eine direkte Verbindung von Nutzern unterschiedlicher Anbieter ist in der Regel nicht gegeben. Die Bereitstellung eines unabhängigen Verzeichnisdienstes mit dem ENUM-System (TElephone NUmber Mapping) in Verbindung mit dem Domain Name Service (DNS) ermöglicht es dem einzelnen Nutzer allgemein erreichbar zu werden und so unabhängig von einem Anbieter verschiedene Dienste wie VoIP mittels SIP mit anderen Nutzern zu betreiben. Protokoll Beschreibung RFC/ITU DNS Domain Name System (Application Layer) DNS wird RFC 1034, hauptsächlich zur Umsetzung von Domain-Namen in 1035 IP-Adressen (forward lookup) genutzt. Eine umgekehrte Abfrage ist ebenso möglich (reverse lookup). Das DNS besteht aus den drei Hauptkomponenten Domain-Namensraum, Nameserver und Resolver. Das DNS stellt ein hierarchisches System dar, das sich von hinten gelesen in den Ebenen eines Domain-Namens spiegelt (z.B. tools.ietf.org). Die erste Ebene des Domain-Namens (.arpa, .com, .org, .de, ...) wird als Top-Level-Domain 40 ENUM bezeichnet.[1] TElephone NUmber Mapping ist die Abbildung von RFC 3761 herkömmlichen Telefonnummern nach dem ITU-T-System (3401) E.164 auf IP-Adressen. Es nutzt das Domain Name System E.164 (DNS) um E.164-Nummern zu speichern und ist in der Lage, Dienste zu kennzeichnen, die unter einer E.164-Nummer 40 http://de.wikipedia.org/wiki/Domain_Name_System 3 Protokolle und Standards im Überblick 19 möglich sind. Es ermöglicht damit als Verzeichnisdienst die Verbindung von VoIP-Nutzern mit Nutzern anderer Netze. ENUM ist jedoch keine VoIP-Funktion und sollte getrennt 41 42 von deren Protokollen betrachtet werden.[2] [3] Der Dienst wird auf Servern unterhalb der Top Level Domain .arpa betrieben. Tabelle 3.7: Zuordnung IP-Adress mit Telefonnummer Die folgende Darstellung soll nur kurz anreißen, wie und welche Daten in dem Verzeichnisdienst vorgehalten werden können. Beispiel aus dem RFC 3761: Die Rufnummer "+441164960348" wird zu: 3.8.0.0.6.9.2.3.6.1.4.4.e164.arpa. Der ENUM-DNS stellt Server bereit, auf denen Naming Authority Pointer (NAPTR) im DNS Resource Record gespeichert sind. Es werden auf die umgeformte E.164-Rufnummer die verfügbaren Internet-Dienste abgebildet. $ORIGIN 3.8.0.0.6.9.2.3.6.1.4.4.e164.arpa. NAPTR 10 100 "u" "E2U+sip" "!^.*$!sip:[email protected]!" . NAPTR 10 101 "u" "E2U+h323" "!^.*$!h323:[email protected]!" . NAPTR 10 102 "u" "E2U+msg" "!^.*$!mailto:[email protected]!" . NAPTR 10 103 "u" "E2U+tel" "!^.*$!tel:+441164960348!" . Folgendes wird damit beschrieben: Die Domain 3.8.0.0.6.9.2.3.6.1.4.4.e164.arpa. ermöglicht eine Kommunikation mittels SIP, H.323 für Sprache und SMTP für EMail. Die Kürzel "sip", "h323", "msg" und tel" haben hierbei keinen direkten Bezug zu den Protokollen oder zum URI-Schema. 41 http://tools.ietf.org/html/rfc3761 42 http://www.itu.int/rec/T-REC-E/en 4 Schlussbetrachtung 20 4 Schlussbetrachtung Bis zu diesem Punkt wurden im Wesentlichen die Grundlagen für VoIP dargestellt, die ein Grundverständnis für die Abläufe und Inhalte der verwendeten Protokolle erreichen soll. Weiterführende Themen seien an dieser Stelle nur in Schlagworten für VoIP benannt. • • • • • • • Sicherheit (Technik und Datenschutz) Programmierschnittstellen und -umgebungen, u.a. auf Basis von Java Netzkonzepte Next Generation Network und IP Multimedia Subsystem Endgeräte und Anwendungen: Hardware und Softphones Anbieter von VoIP-Diensten und Hardware für Privat- und Geschäftskunden Marktübersichten und Geschäftsmodelle Technikfolgen wirtschaftlicher und sozialer Art VoIP ist technisch gesehen noch immer ein spannendes Thema, obwohl inzwischen die Grundlagen gefestigt und standardisiert sind. Auf Basis von VoIP und mit VoIP als einem Bestandteil neben Instand Messaging, IP-TV, usw. entwickeln sich heute neue Angebote, die schnell, wegen der hohen Verfügbarkeit von Internetzugängen, Verbreitung finden. Die Einbindung von VoIP in eigene Applikationen und Angebote stellt für jeden Programmierer ein interessantes und ggf. lukratives Betätigungsfeld dar. 5 Literaturverzeichnis und Web-Links 21 5 Literaturverzeichnis und Web-Links • • • • • • • • • • • Badach, Anatol (2007): Voice over IP Die Technik. 3., erweiterte Auflage. München Wien: Carl Hauser Verlag Internet Engineering Task Force (IETF): http://www.ietf.org IETF Tools, insbesondere RFC: http://tools.ietf.org International Telecommunication Union - Telecommunication Standardization Sector (ITU-T): http://www.itu.int/ITU-T European Telecommunication Standards Institute(ETSI): http://www.etsi.org Wikipedia, englische Version: http://en.wikipedia.org Wikipedia, deutsche Version: http://de.wikipedia.org Global IP Telecommunications, Inc.: http://www.xten.de Wireshark network protocol analyzer: http://www.wireshark.org Network Sorcery, RFC Sourcebook: http://www.networksorcery.com Syrus: http://www.syrus.ru/ 6 VoIP Diensteanbieter 6 VoIP Diensteanbieter Anbieter Hompage Anwendung Skype http://www.skype.com/intl/de/ http://www.skype.com/intl/de/download/features/ Gizmo http://www.gizmoproject.com/intl/de/ http://www.gizmoproject.com/intl/de/learn-more.html T-Online http://www.t-online.de http://service.t-online.de/c/12/71/61/14/12716114.html SparVoIP http://www.sparvoip.de/ http://www.sparvoip.de/de/instructions.html LowRateVoIP http://www.lowratevoip.com http://www.lowratevoip.com/en/instructions.html Google Talk http://www.google.com/talk/ http://www.google.com/talk/about.html Anbieter Peter zahlt Gelbe Seiten Marcophone Hompage http://www.peterzahlt.de/ Anmerkung Web-Initated Call Services: GoYellow http://maps.gelbeseiten.de/ Direktverbindung Click-and-Call http://marcophono.de/ Joke-Anwendung 22 7 Anlagen 23 7 Anlagen Hier einige Screenshots der VoIP-Applikationen verschiedener Anbieter mit einigen Verbindungsprotokollen. Skype skype_080107_uni_1_sessions.txt (Verbindung zu einem anderen Skype-Nutzer)) Skype Kontakte: Skype Wähltasten: Skype Optionen: T-Online t-online080107_uni_2_sessions.txt (Verbindung zu einer Rufnummer an einem Telefonanschluß) 7 Anlagen t-online-gizmo080103_sessions.txt (Verbindung zu einer Rufnummer bei einem anderen VoIP-Anbieter) T-Online Softphone (veränderbares Design): Peter zahlt Peter zahlt Anwahlseite: Gelbe Seiten Gelbe Seiten Anwahlseite: marcophon 24 7 Anlagen marcophon Eingabeseite: 25