Einleitung
In diesem Dokument werden die Bandbreitenberechnungen für den Sprach-Codec sowie Funktionen zum Ändern oder Schonen der Bandbreite bei Verwendung von VoIP (Voice over IP) beschrieben.
Hintergrundinformationen
Einer der wichtigsten Faktoren bei der Einrichtung von Paket-Sprachnetzwerken ist die richtige Kapazitätsplanung. Bei der Kapazitätsplanung ist die Bandbreitenberechnung ein wichtiger Faktor, der bei der Planung und Fehlerbehebung von Paket-Sprachnetzwerken für eine gute Sprachqualität berücksichtigt werden muss.
Hinweis: Als Ergänzung zu diesem Dokument können Sie das Tool TAC Voice Bandwidth Codec Calculator (nur für registrierte Kunden) verwenden. Dieses Tool bietet Informationen zur Berechnung der für Paket-Sprachanrufe erforderlichen Bandbreite.
VoIP - Bandbreite pro Anruf
Diese Protokoll-Header-Annahmen werden für die Berechnungen verwendet:
-
40 Byte für IP- (20 Byte)/UDP- (User Datagram Protocol) (8 Byte)/RTP- (Real-Time Transport Protocol) (12 Byte) Header.
-
Compressed Real-Time Protocol (cRTP) reduziert die IP/UDP/RTP-Header auf 2 oder 4 Byte (cRTP ist nicht über Ethernet verfügbar).
-
6 Byte für Multilink Point-to-Point Protocol (MP)- oder Frame Relay Forum (FRF).12 Layer 2 (L2)-Header.
-
1 Byte für das Flag für das Ende des Frames auf MP- und Frame-Relay-Frames.
-
18 Byte für Ethernet-L2-Header, darunter 4 Byte Frame Check Sequence (FCS) oder Cyclic Redundancy Check (CRC).
Hinweis: Diese Tabelle enthält nur Berechnungen für die Standardgrößen der Sprach-Payloads der H.323-Gateways von Cisco Call Manager oder Cisco IOS® Software. Für zusätzliche Berechnungen, die unterschiedliche Sprach-Payload-Größen und andere Protokolle umfassen, wie Voice over Frame Relay (VoFR) und Voice over ATM (VoATM), verwenden Sie das Tool TAC Voice Bandwidth Codec Calculator (nur für registrierte Kunden).
Codec-Informationen |
Bandbreitenberechnungen |
Codec und Bitrate (Kbit/s) |
Codec-Beispielgröße (Byte) |
Codec-Beispielintervall (ms) |
Mean Opinion Score (MOS) |
Voice-Nutzlastgröße (Byte) |
Voice-Nutzlastgröße (ms) |
Pakete pro Sekunde (PS) |
Bandbreite MP oder FRF.12 (Kbit/s) |
Bandbreite mit cRTP MP oder FRF.12 (Kbit/s) |
Bandbreite Ethernet (Kbit/s) |
G.711 (64 Kbit/s) |
80 Byte |
10 ms |
4.1 |
160 Byte |
20 ms |
50 |
82,8 Kbit/s |
67,6 Kbit/s |
87,2 Kbit/s |
G.729 (8 Kbit/s) |
10 Byte |
10 ms |
3.92 |
20 Byte |
20 ms |
50 |
26,8 Kbit/s |
11,6 Kbit/s |
31,2 Kbit/s |
G.723.1 (6,3 Kbit/s) |
24 Byte |
30 ms |
3.9 |
24 Byte |
30 ms |
33.3 |
18,9 Kbit/s |
8,8 Kbit/s |
21,9 Kbit/s |
G.723.1 (5,3 Kbit/s) |
20 Byte |
30 ms |
3.8 |
20 Byte |
30 ms |
33.3 |
17,9 Kbit/s |
7,7 Kbit/s |
20,8 Kbit/s |
G.726 (32 Kbit/s) |
20 Byte |
5 ms |
3.85 |
80 Byte |
20 ms |
50 |
50,8 Kbit/s |
35,6 Kbit/s |
55,2 Kbit/s |
G.726 (24 Kbit/s) |
15 Byte |
5 ms |
|
|
20 ms |
50 |
42,8 Kbit/s |
27,6 Kbit/s |
47,2 Kbit/s |
G.728 (16 Kbit/s) |
10 Byte |
5 ms |
3.61 |
60 Byte |
30 ms |
33.3 |
28,5 Kbit/s |
18,4 Kbit/s |
31,5 Kbit/s |
G722_64k (64 Kbit/s) |
80 Byte |
10 ms |
4.13 |
160 Byte |
20 ms |
50 |
82,8 Kbit/s |
67,6 Kbit/s |
87,2 Kbit/s |
ilbc_mode_20 (15,2 Kbit/s) |
38 Byte |
20 ms |
NA |
38 Byte |
20 ms |
50 |
34,0 Kbit/s |
18,8 Kbit/s |
38,4 Kbit/s |
ilbc_mode_30 (13,33 Kbit/s) |
50 Byte |
30 ms |
NA |
50 Byte |
30 ms |
33.3 |
25,867 Kbit/s |
15,73 Kbit/s |
28,8 Kbit/s |
Erläuterung der Begriffe
Codec-Bitrate (Kbit/s) |
Basierend auf dem Codec ist dies die Anzahl von Bits pro Sekunde, die übertragen werden müssen, um einen Sprachanruf zu übermitteln. (Codec-Bitrate = Codec-Abtastgröße / Codec-Abtastintervall). |
Codec-Beispielgröße (Byte) |
Basierend auf dem Codec ist dies die Anzahl der Bytes, die vom Digital Signal Processor (DSP) in jedem Codec-Abtastintervall erfasst werden. Beispielsweise arbeitet der G.729-Codierer in Abtastintervallen von 10 ms, was 10 Byte (80 Bit) pro Abtastwert bei einer Bitrate von 8 Kbit/s entspricht. (Codec-Bitrate = Codec-Abtastgröße / Codec-Abtastintervall). |
Codec-Beispielintervall (ms) |
Dies ist das Abtastintervall, in dem der Codec ausgeführt wird. Beispielsweise arbeitet der G.729-Codierer in Abtastintervallen von 10 ms, was 10 Byte (80 Bit) pro Abtastwert bei einer Bitrate von 8 Kbit/s entspricht. (Codec-Bitrate = Codec-Abtastgröße / Codec-Abtastintervall). |
Mean Opinion Score (MOS) |
MOS ist ein System zur Bewertung der Sprachqualität von Telefonverbindungen. Mit MOS beurteilen zahlreiche Hörer die Qualität einer Stimmprobe auf einer Skala von eins (schlecht) bis fünf (ausgezeichnet). Die Bewertungen werden gemittelt, um den MOS für den Codec bereitzustellen. |
Voice-Nutzlastgröße (Byte) |
Die Sprach-Nutzlastgröße repräsentiert die Anzahl der Bytes (oder Bits), die in ein Paket gefüllt werden. Die Sprach-Nutzlastgröße muss ein Vielfaches der Codec-Beispielgröße sein. G.729-Pakete können beispielsweise eine Sprach-Nutzlastgröße von 10, 20, 30, 40, 50 oder 60 Byte verwenden. |
Voice-Nutzlastgröße (ms) |
Die Größe der Sprach-Nutzlast kann auch anhand der Codec-Samples dargestellt werden. Eine G.729-Sprach-Nutzlastgröße von 20 ms (zwei 10-ms-Codec-Samples) stellt beispielsweise eine Sprach-Nutzlast von 20 Byte dar [ (20 Byte *
/ (20 ms) = 8 Kbit/s ] |
PPS |
PPS steht für die Anzahl der Pakete, die jede Sekunde übertragen werden müssen, um die Codec-Bitrate zu liefern. Beispielsweise müssen für einen G.729-Anruf mit einer Sprach-Nutzlastgröße pro Paket von 20 Byte (160 Bit) pro Sekunde 50 Pakete übertragen werden [50 pps = (8 Kbit/s) / (160 Bit pro Paket) ] |
Formeln zur Berechnung der Bandbreite
Diese Berechnungen werden verwendet:
-
Gesamtpaketgröße = (L2-Header: MP oder FRF.12 oder Ethernet) + (IP/UDP/RTP-Header) + (Sprach-Nutzlastgröße)
-
PPS = (Codec-Bitrate) / (Voice-Nutzlastgröße)
-
Bandbreite = Gesamtpaketgröße * PPS
Beispielberechnung
Die erforderliche Bandbreite für einen G.729-Anruf (8 Kbit/s Codec-Bitrate) mit cRTP, MP und die standardmäßige 20-Byte-Sprach-Nutzlast beträgt beispielsweise:
-
Gesamtpaketgröße (Byte) = (MP-Header von 6 Byte) + (komprimierter IP/UDP/RTP-Header von 2 Byte) + (Sprachnutzlast von 20 Byte) = 28 Byte
-
Gesamtpaketgröße (Bit) = (28 Byte) * 8 Bit pro Byte = 224 Bit
-
PPS = (Codec-Bitrate von 8 Kbit/s) / (160 Bit) = 50 pps
Hinweis: 160 Bit = 20 Byte (Standard-Sprach-Payload) x 8 Bit pro Byte
-
Bandbreite pro Anruf = Größe des Sprachpakets (224 Bit) x 50 pps = 11,2 Kbit/s
Konfigurieren der Voice Payload-Größen in Cisco Call Manager und Cisco IOS Gateways
Die Größe der Sprach-Nutzlast pro Paket kann in Cisco Call Manager und Cisco IOS-Gateways konfiguriert werden.
Hinweis: Wenn das Cisco IOS-Gateway im Cisco Call Manager als MGCP-Gateway (Media Gateway Control Protocol) konfiguriert ist, werden alle Codec-Informationen (Codec-Typ, Nutzlastgröße, Erkennung von Sprachaktivität usw.) vom Cisco CallManager gesteuert.
Die Größe der Sprach-Nutzlast pro Paket kann im Cisco Call Manager systemweit konfiguriert werden. Dieses Attribut wird in der Cisco Call Manager-Verwaltung (Service > Service-Parameter > select_server > Cisco Call Manager) mit den folgenden drei Service-Parametern festgelegt:
-
PreferredG711MillisecondPacketSize - (Standardeinstellung: 20 ms). Verfügbare Einstellungen: 10, 20 und 30 ms.)
-
PreferredG729MillisecondPacketSize - (Standardeinstellung: 20 ms). Verfügbare Einstellungen: 10, 20, 30, 40, 50 und 60 ms.)
-
PreferredG723MillisecondPacketSize - (Standardeinstellung: 30 ms). Verfügbare Einstellungen: 30 und 60 ms.)
Die Größe der Sprach-Nutzlast wird im Cisco Call Manager in Millisekunden (ms)-Stichproben konfiguriert. Basierend auf dem Codec ordnet diese Tabelle einige ms-Samples der tatsächlichen Payload-Größe in Byte zu.
Codec |
Voice-Nutzlastgröße (ms) |
Voice-Nutzlastgröße (Byte) |
Kommentare |
G.711 |
20 ms (Standard) |
160 Byte |
Beachten Sie, dass die Codec-Bitrate immer beibehalten wird. Beispiel: G.711 Codec = [240 Bytes * 8 (Bits/Bytes)] / 30 ms = 64 Kbit/s |
30 ms |
240 Byte |
G.729 |
20 ms (Standard) |
20 Byte |
30 ms |
30 Byte |
G.723 |
30 ms (Standard) |
|
|
In Cisco IOS-Gateways wurde eine Funktion in Version 12.0(5)T der Cisco IOS-Software hinzugefügt, mit der die Größe der Sprach-Payload (in Byte) für VoIP-Pakete über die CLI geändert werden kann. Die neue Befehlssyntax lautet wie folgt:
Cisco-Router(config-dial-peer)#codec g729r8 bytes ?
Each codec sample produces 10 bytes of voice payload.
Valid sizes are:
10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120,
130, 140, 150, 160, 170, 180, 190, 200, 210, 220, 230
Any other value within the range will be rounded down to nearest valid size.
<10-230> Choose a voice payload size from the list above
Auswirkungen einer Änderung der Payload-Größe für Sprachdatenverkehr
Die Anzahl der Codec-Samples pro Paket ist ein weiterer Faktor, der die Bandbreite und Verzögerung eines VoIP-Anrufs bestimmt. Der Codec definiert die Größe der Stichprobe, aber die Gesamtzahl der Stichproben in einem Paket beeinflusst, wie viele Pakete pro Sekunde gesendet werden.
Wenn Sie die Nutzlast für Sprache erhöhen, verringert sich die VoIP-Bandbreite, und die Gesamtverzögerung erhöht sich. Dieses Beispiel zeigt Folgendes:
-
G.729-Anruf mit einer Sprach-Nutzlastgröße von 20 Byte (20 ms): (40 Byte IP/UDP/RTP-Header + 20 Byte Sprach-Nutzlast)* 8 Bit pro Byte * 50 pps = 24 Kbit/s
-
G.729-Anruf mit einer Sprach-Nutzlastgröße von 40 Byte (40 ms): (40 Byte IP/UDP/RTP-Header + 40 Byte Sprach-Nutzlast) x 8 Bit pro Byte x 25 pps = 16 Kbit/s
Hinweise:
- L2-Header werden bei dieser Berechnung nicht berücksichtigt.
- Die Berechnungen zeigen, dass sich die Nutzlastgröße verdoppelt, die Anzahl der benötigten Pakete pro Sekunde jedoch halbiert.
- Gemäß der Definition in den G.114-Spezifikationen der Internationalen Fernmeldeunion (ITU-T) beträgt die empfohlene unidirektionale Gesamtverzögerung für Sprache 150 ms. Für ein privates Netzwerk sind 200 ms ein sinnvolles Ziel, und 250 ms müssen das Maximum sein.
Erkennung von Sprachaktivität
Bei leitungsvermittelten Sprachnetzwerken werden für alle Sprachanrufe Verbindungen mit fester Bandbreite von 64 Kbit/s verwendet, unabhängig davon, wie viel Gespräch auf Sprache geschrieben wird und wie viel Stille vorhanden ist. Bei VoIP-Netzwerken sind Konversation und Stille als Pakete verfügbar. Mit der Sprachpausenerkennung (Voice Activity Detection, VAD) können Pausenpakete unterdrückt werden.
Im Zeitverlauf und im Durchschnitt bei einem Volumen von mehr als 24 Anrufen kann VAD Bandbreiteneinsparungen von bis zu 35 % erzielen. Die Einsparungen werden nicht bei jedem einzelnen Sprachanruf oder bei einer bestimmten Punktmessung realisiert. Im Rahmen des Netzwerkdesigns und der Bandbreitentechnik darf VAD nicht berücksichtigt werden, insbesondere nicht bei Verbindungen, die weniger als 24 Sprachanrufe gleichzeitig übertragen. Verschiedene Funktionen wie Warteschleifenmusik und Fax machen VAD unwirksam. Wenn das Netzwerk für die gesamte Bandbreite von Sprachanrufen ausgelegt ist, stehen alle durch VAD erzielten Einsparungen Datenanwendungen zur Verfügung.
VAD bietet auch Comfort Noise Generation (CNG) an. Da bei einem getrennten Anruf die Stille verwechselt werden kann, stellt CNG ein lokal generiertes weißes Rauschen bereit, sodass der Anruf normalerweise mit beiden Parteien verbunden erscheint. G.729 Annex-B und G.723.1 Annex-A enthalten eine integrierte VAD-Funktion, führen aber ansonsten die gleichen Funktionen aus wie G.729 bzw. G.723.1.
Im Cisco Call Manager kann VAD mit den folgenden Serviceparametern aktiviert (standardmäßig deaktiviert) werden:
-
SilenceSuppressionSystemWide - Mit diesem Parameter wird die VAD-Einstellung für alle "skinny"-Endpunkte (z. B. Cisco IP-Telefone und Skinny-Gateways) ausgewählt.
-
SilenceSuppressionWithGateways: Mit diesem Parameter wird die VAD-Einstellung für alle MGCP-Gateways ausgewählt. Dies hat keine Auswirkungen auf H.323-Gateways. VAD auf H.323-Gateways muss auf dem Gateway deaktiviert werden.
Diese Serviceparameter finden Sie unter Cisco Call Manager Administration (Service > Service Parameters > select_server > Cisco CallManager).
RTP Header-Compression oder Compressed RTP (cRTP)
Alle VoIP-Pakete bestehen aus zwei Komponenten: Sprachstichproben und IP-/UDP-/RTP-Header. Obwohl die Sprachmuster durch den Digital Signal Processor (DSP) komprimiert werden und je nach verwendetem Codec in ihrer Größe variieren können, sind diese Header konstante 40 Byte lang. Im Vergleich zu den 20 Byte Sprachstichproben bei einem Standard-G.729-Anruf machen diese Header einen erheblichen Overhead aus. Mit cRTP können diese Header auf zwei oder vier Byte komprimiert werden. Diese Komprimierung ermöglicht erhebliche Einsparungen bei der VoIP-Bandbreite. Beispielsweise benötigt ein Standard-G.729-VoIP-Anruf 24 KB ohne cRTP, aber nur 12 KB mit aktiviertem cRTP.
Da cRTP VoIP-Anrufe Link für Link komprimiert, müssen beide Enden der IP-Verbindung für cRTP konfiguriert werden.
In den Cisco IOS Software-Versionen 12.0.5T und früher ist cRTP prozessgesteuert, was die Skalierbarkeit von cRTP-Lösungen aufgrund der CPU-Leistung stark einschränkt. Die meisten dieser Probleme wurden durch verschiedene cRTP-Leistungsverbesserungen behoben, die in den Cisco IOS Software-Versionen 12.0.7T bis 12.1.2T eingeführt wurden. Dies ist eine Zusammenfassung des Verlaufs.
-
cRTP ist prozessgesteuert in Cisco IOS Software, Version 12.0.5T und früheren Versionen.
-
In der Cisco IOS Software-Version 12.0.7T und danach in der Version 12.1.1T wird die Unterstützung von Fast-Switching und Cisco Express Forwarding-Switching für cRTP eingeführt.
-
In Version 12.1.2T der Cisco IOS Software werden Verbesserungen der algorithmischen Leistung eingeführt.
Wenn Sie cRTP in den Fast-Switching-Pfad verschieben, wird die Anzahl der RTP-Sitzungen (VoIP-Anrufe), die von VoIP-Gateways und zwischengeschalteten Routern verarbeitet werden können, deutlich erhöht.
Heuristik zur Komprimierung
Da RTP keinen eigenen eindeutigen Paket-Header hat, wird ein RTP-Stream (für cRTP) durch Heuristik von einem UDP-Stream (cUDP) unterschieden. Die genauen Heuristiken, die derzeit zur Erkennung von RTP-Paketen für die Komprimierung verwendet werden, sind:
-
Die Zielportnummer ist gerade.
-
Die Zielportnummer liegt im Bereich von 16384-32767 oder 49152-65535.
-
Das Feld für die RTP-Version ist auf "2" gesetzt.
-
Das Feld für die RTP-Erweiterung ist auf Null gesetzt.
Zugehörige Informationen