Inhoud

Inleiding

Achtergrondinformatie

VoIP - per gespreksbandbreedte

Uitleg van de voorwaarden

Bandbreedterekeningsformules

Berekening van monster

Grootte van spraakpayload configureren in Cisco Call Manager en Cisco IOS-gateways

Effect van een wijziging in de grootte van de spraakpayload

Spraakopsporing

RTP-headercompressie voor gecomprimeerde RTP (cRTP)

Heuristiek voor compressie

Gerelateerde informatie

Inleiding

Dit document beschrijft bandbreedteberekeningen en -functies voor spraakcodec om bandbreedte aan te passen of te behouden wanneer Voice over IP (VoIP) wordt gebruikt.

Achtergrondinformatie

Eén van de belangrijkste factoren die u in overweging moet nemen wanneer u pakketspraaknetwerken bouwt, is de juiste capaciteitsplanning. Binnen capaciteitsplanning is de bandbreedteberekening een belangrijke factor om te overwegen wanneer u pakketspraaknetwerken ontwerpt en problemen oplost voor een goede spraakkwaliteit.

Opmerking: Als aanvulling op dit document kunt u de TAC Voice Bandwidth Codec Calculator (alleen geregistreerde klanten) gebruiken. Dit hulpmiddel verstrekt informatie over hoe te om de bandbreedte te berekenen die voor pakketstemvraag wordt vereist.

VoIP - per gespreksbandbreedte

Deze veronderstellingen van de protocolheader worden gebruikt voor de berekeningen:

- 40 bytes voor IP (20 bytes) / User Datagram Protocol (UDP) (8 bytes) / Real-Time Transport Protocol (RTP) (12 bytes) kopregels.

- Compressed Real-time Protocol (cRTP) reduceert de IP/UDP/RTP-headers tot 2 of 4 bytes (cRTP is niet beschikbaar over Ethernet).

- 6 bytes voor Multilink Point-to-Point Protocol (MP) of Frame Relay Forum (FRF) 12 Layer 2 (L2)-header.

- 1 byte voor de end-of-frame markering op MP- en Frame Relay-frames.

- 18 bytes voor Ethernet L2-headers, die 4 bytes Frame Check Sequence (FCS) of Cyclic Redundancy Check (CRC) bevatten.

Opmerking: Deze tabel bevat alleen berekeningen voor de standaardgrootte van de spraakpayload in Cisco Call Manager- of Cisco IOS®-softwaregateways met H.323. Voor extra berekeningen, die verschillende grootte van de spraakpayload en andere protocollen omvatten, zoals Voice over Frame Relay (VoFR) en Voice over ATM (VoATM), gebruikt u de TAC Voice Bandwidth Codec Calculator (alleen geregistreerde klanten).

Codec-informatie

Bandbreedtecalculaties

Codec- en bitsnelheid (Kbps)

Codec-steekproefgrootte (bytes)

Codec-voorbeeldinterval (ms)

Gemiddelde adviesscore (MOS)

Grootte spraakpayload (bytes)

Grootte spraakpayload (ms)

Pakketten per seconde (PPS)

Bandbreedte MP of FRF.12 (Kbps)

Bandbreedte met cRTP MP of FRF.12 (Kbps)

Bandbreedte Ethernet (Kbps)

G.711 (64 Kbps)

80 Bytes

10 ms

4.1

160 Bytes

20 ms

50

82,8 Kbps

67,6 Kbps

87,2 Kbps

G.729 (8 Kbps)

10 Bytes

10 ms

3.92

20 Bytes

20 ms

50

26,8 Kbps

1,6 Kbps

31,2 Kbps

G.723,1 (6,3 Kbps)

24 Bytes

30 ms

3.9

24 Bytes

30 ms

33.3

18,9 Kbps

8,8 Kbps

21,9 Kbps

G.723,1 (5,3 Kbps)

20 Bytes

30 ms

3.8

20 Bytes

30 ms

33.3

17,9 Kbps

7,7 Kbps

20,8 Kbps

G.726 (32 Kbps)

20 Bytes

5 ms

3.85

80 Bytes

20 ms

50

50,8 Kbps

35,6 Kbps

5,2 Kbps

G.726 (24 Kbps)

15 Bytes

5 ms

20 ms

50

42,8 Kbps

27,6 Kbps

47,2 Kbps

G.728 (16 Kbps)

10 Bytes

5 ms

3.61

60 Bytes

30 ms

33.3

28,5 Kbps

18,4 Kbps

31,5 Kbps

G722_64k (64 Kbps)

80 Bytes

10 ms

4.13

160 Bytes

20 ms

50

82,8 Kbps

67,6 Kbps

87,2 Kbps

ilbc_mode_20 (15,2 Kbps)

38 Bytes

20 ms

NVT

38 Bytes

20 ms

50

34,0 Kbps

18,8 Kbps

38,4 Kbps

ilbc_mode_30 (13,3 Kbps)

50 Bytes

30 ms

NVT

50 Bytes

30 ms

33.3

25,867 Kbps

15,73 Kbps

28,8 Kbps

Uitleg van de voorwaarden

Codec-bitsnelheid (Kbps)

Gebaseerd op de codec, is dit het aantal beetjes per seconde die moeten worden overgebracht om een stemvraag te leveren. (codec bitsnelheid = codec steekproefgrootte/codec steekproefinterval).

Codec-steekproefgrootte (bytes)

Gebaseerd op de codec, is dit het aantal bytes dat door de Digitale Signaalprocessor (DSP) bij elk codec steekproefinterval wordt gevangen. Zo werkt de G.729 coder op voorbeeldintervallen van 10 ms, wat overeenkomt met 10 bytes (80 bits) per sample met een bitsnelheid van 8 Kbps. (codec bitsnelheid = codec steekproefgrootte/codec steekproefinterval).

Codec-voorbeeldinterval (ms)

Dit is het steekproefinterval waarbij de codec werkt. Zo werkt de G.729 coder op voorbeeldintervallen van 10 ms, wat overeenkomt met 10 bytes (80 bits) per sample met een bitsnelheid van 8 Kbps. (codec bitsnelheid = codec steekproefgrootte/codec steekproefinterval).

Gemiddelde adviesscore (MOS)

MOS is een systeem dat wordt gebruikt om de spraakkwaliteit van telefoonverbindingen te beoordelen. Met MOS beoordeelt een breed scala aan luisteraars de kwaliteit van een stemmonster op een schaal van 1 (slecht) tot 5 (uitstekend). De scores worden gemiddeld om de MOS voor de codec te leveren.

Grootte spraakpayload (bytes)

De grootte van de stemlading vertegenwoordigt het aantal bytes (of bits) dat in een pakket is ingevuld. De grootte van de stemlading moet een veelvoud van de codec steekproefgrootte zijn. G.729-pakketten kunnen bijvoorbeeld 10, 20, 30, 40, 50 of 60 bytes aan spraakpayloadgrootte gebruiken.

Grootte spraakpayload (ms)

De grootte van de stemlading kan ook in termen van de codec steekproeven worden vertegenwoordigd. Een G.729 spraakpayload-grootte van 20 ms (twee 10 ms codec-voorbeelden) vertegenwoordigt bijvoorbeeld een spraakpayload van 20 bytes [(20 bytes *) / (20 ms) = 8 Kbps ]

PS

PPS staat voor het aantal pakketten dat elke seconde moet worden verzonden om de codec bitsnelheid te leveren. Bijvoorbeeld, voor een G.729 vraag met de grootte van de stemlading per pakket van 20 bytes (160 beetjes), moeten 50 pakketten elke seconde worden overgebracht [50 pps = (8 Kbps) / (160 beetjes per pakket)]

Bandbreedterekeningsformules

Deze berekeningen worden gebruikt:

- Totale pakketgrootte = (L2-header: MP of FRF.12 of Ethernet) + (IP/UDP/RTP-header) + (grootte spraakpayload)

- PPS = (codec bitsnelheid) / (grootte spraakpayload)

- Bandbreedte = totale pakketgrootte * PPS

Berekening van monster

De vereiste bandbreedte voor een G.729-oproep (8 Kbps codec-bitsnelheid) met cRTP, MP en de standaard 20 bytes van de spraakpayload is bijvoorbeeld:

- Totale pakketgrootte (bytes) = (MP-header van 6 bytes) + ( gecomprimeerde IP/UDP/RTP-header van 2 bytes) + (spraak-payload van 20 bytes) = 28 bytes

- Totale pakketgrootte (bits) = (28 bytes) * 8 bits per byte = 224 bits

- PPS = (8 Kbps codec bitsnelheid) / (160 bits) = 50 pps

Opmerking: 160 bits = 20 bytes (standaard spraakpayload) * 8 bits per byte

- Bandbreedte per aanroep = spraakpakketgrootte (224 bits) * 50 pps = 11,2 Kbps

Grootte van spraakpayload configureren in Cisco Call Manager en Cisco IOS-gateways

De grootte van de spraaklading per pakket kan worden geconfigureerd in Cisco Call Manager en Cisco IOS-gateways.

Opmerking: Als de Cisco IOS-gateway in Cisco Call Manager is geconfigureerd als een MGCP-gateway (Media Gateway Control Protocol), wordt alle codec-informatie (codec-type, payloadgrootte, detectie van spraakactiviteit, enzovoort) beheerd door Cisco CallManager.

In Cisco Call Manager kan de grootte van de spraaklading per pakket op systeembrede basis worden geconfigureerd. Deze eigenschap wordt ingesteld in Cisco Call Manager Administration (Service > Service Parameters > select_server > Cisco Call Manager) met deze drie serviceparameters:

- PreferredG711Millisecond PacketSize - (standaardinstelling: 20 ms. Beschikbare instellingen: 10, 20 en 30 ms.)

- PreferredG729MillisecondPacketSize - (standaardinstelling: 20 ms. Beschikbare instellingen: 10, 20, 30, 40, 50 en 60 ms)

- PreferredG723Millisecond PacketSize - (standaardinstelling: 30 ms. Beschikbare instellingen: 30 en 60 ms.)

In Cisco Call Manager wordt de grootte van de spraakpayload geconfigureerd in termen van milliseconden (ms) monsters. Gebaseerd op de codec, brengt deze lijst sommige ms steekproeven aan de daadwerkelijke payloadgrootte in bytes in kaart.

Codec

Grootte spraakpayload (ms)

Grootte spraakpayload (bytes)

Opmerkingen

G.711

20 ms (standaard)

160 Bytes

Merk op dat de codec bitsnelheid altijd wordt gehandhaafd. Voorbeeld: G.711 codec = [240 bytes * 8(bits/bytes)] / 30 ms = 64 Kbps

30 ms

240 Bytes

G.729

20 ms (standaard)

20 Bytes

30 ms

30 Bytes

G.723

30 ms (standaard)

In Cisco IOS-gateways wordt een functie toegevoegd in Cisco IOS-softwarerelease 12.0(5)T waarmee de grootte van de spraakpayload (in bytes) voor VoIP-pakketten kan worden gewijzigd via de CLI. De nieuwe opdrachtsyntaxis volgt:

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

Effect van een wijziging in de grootte van de spraakpayload

Het aantal codec steekproeven per pakket is een andere factor die de bandbreedte en de vertraging van een vraag van VoIP bepaalt. De codec definieert de grootte van het monster, maar het totale aantal in een pakket geplaatste monsters beïnvloedt hoeveel pakketten per seconde worden verzonden.

Wanneer u de grootte van de spraakpayload verhoogt, vermindert de VoIP-bandbreedte en neemt de totale vertraging toe. Dit voorbeeld illustreert dit:

- G.729 bellen met een spraakpayloadgrootte van 20 bytes (20 ms): (40 bytes van IP/UDP/RTP-headers + 20 bytes spraak/payload)* 8 bits per byte * 50 pps = 24 Kbps

- G.729 gesprek met spraakpayloadgrootte van 40 bytes (40 ms): (40 bytes van IP/UDP/RTP-headers + 40 bytes spraak/payload) * 8 bits per byte * 25 pps = 16 Kbps

Opmerkingen:

- L2-headers worden in deze berekening niet meegenomen.

- De berekeningen tonen aan dat terwijl de payload-grootte wordt verdubbeld, het aantal benodigde pakketten per seconde vervolgens wordt gehalveerd.

- Zoals gedefinieerd in de specificaties van International Telecommunication Union Telecommunication Standardisation Sector (ITU-T) G.114, is de aanbevolen totale vertraging voor spraak 150 ms. Voor een privaat netwerk is 200 ms een redelijk doel en moet 250 ms het maximum zijn.

Spraakopsporing

Met circuit-switched spraaknetwerken gebruiken alle spraakoproepen 64 Kbps vaste-bandbreedte links ongeacht hoeveel van het gesprek spraak is en hoeveel stilte is. Met VoIP-netwerken worden alle gesprekken en stilte gepakketteerd. Met Voice Activity Detection (VAD) kunnen stiltepakketten worden onderdrukt.

In de loop van de tijd en als gemiddelde op een volume van meer dan 24 gesprekken, kan VAD tot een 35 procent bandbreedte-besparing bieden. De besparingen worden niet gerealiseerd op elke individuele spraakoproep, of op een specifieke puntmeting. Voor netwerkontwerp en bandbreedteontwikkeling mag VAD niet in aanmerking worden genomen, met name voor links die minder dan 24 spraakoproepen tegelijk vervoeren. Verschillende functies, zoals muziek in wachtstand en fax, maken VAD ineffectief. Wanneer het netwerk is ontworpen voor de volledige bandbreedte van spraakoproepen, zijn alle besparingen die door VAD worden geleverd beschikbaar voor gegevenstoepassingen.

VAD levert ook Comfort Noise Generation (CNG). Omdat u stilte voor een losgekoppeld gesprek kunt verwarren, biedt CNG lokaal gegenereerde witte ruis zodat de oproep normaal verbonden met beide partijen lijkt. G.729 Bijlage-B en G.723.1 Bijlage-A bevatten een geïntegreerde VAD-functie, maar hebben voor het overige dezelfde functie als G.729 en G.723.1.

In Cisco Call Manager kan VAD worden ingeschakeld (standaard uitgeschakeld) met deze serviceparameters:

- SilenceSuppressionSystemWide - Deze parameter selecteert de VAD-instelling voor alle magere eindpunten (bijvoorbeeld Cisco IP-telefoons en slimme gateways)

- SilenceSuppressionWith Gateways - Deze parameter selecteert de VAD-instelling voor alle MGCP-gateways. Dit heeft geen effect op H.323 gateways. VAD op H.323 gateways moet op de gateway worden uitgeschakeld.

U kunt deze serviceparameters vinden onder Cisco Call Manager Administration (Service > Service Parameters > select_server > Cisco CallManager).

RTP-headercompressie voor gecomprimeerde RTP (cRTP)

Alle VoIP-pakketten bestaan uit twee componenten: spraakmonsters en IP/UDP/RTP-headers. Hoewel de spraakvoorbeelden worden gecomprimeerd door de digitale signaalprocessor (DSP) en in grootte kunnen variëren op basis van de gebruikte codec, zijn deze kopregels een constante 40 bytes in lengte. Vergeleken met de 20 bytes van stemsteekproeven in een standaardG.729 vraag, maken deze kopballen omhoog een aanzienlijke hoeveelheid overheadkosten. Met cRTP kunnen deze headers gecomprimeerd worden tot twee of vier bytes. Deze compressie biedt aanzienlijke bandbreedte-besparingen voor VoIP. Een standaard G.729 VoIP-oproep verbruikt bijvoorbeeld 24 Kb zonder cRTP, maar slechts 12 Kb met cRTP ingeschakeld.

Omdat cRTP VoIP-oproepen comprimeert op een link-voor-link basis, moeten beide uiteinden van de IP-link worden geconfigureerd voor cRTP.

In Cisco IOS-softwarereleases 12.0.5T en hoger is cRTP processwitched, waardoor de schaalbaarheid van cRTP-oplossingen aanzienlijk wordt beperkt vanwege CPU-prestaties. De meeste van deze problemen zijn opgelost door verschillende cRTP-prestatieverbeteringen die in Cisco IOS-softwarereleases 12.0.7T tot en met 12.1.2T zijn geïntroduceerd. Dit is een samenvatting van de geschiedenis.

- cRTP is proces-switched in Cisco IOS-softwarerelease 12.0.5T en hoger.

- In Cisco IOS-softwarerelease 12.0.7T en vervolgens in 12.1.1T wordt ondersteuning voor snelle switching en Cisco Express Forwarding-switching voor cRTP geïntroduceerd.

- In Cisco IOS-softwarerelease 12.1.2T worden verbeteringen in de algoritmische prestaties geïntroduceerd.

Wanneer u cRTP naar het snelswitchingpad verplaatst, wordt het aantal RTP-sessies (VoIP-oproepen) dat door VoIP-gateways en tussenliggende routers kan worden verwerkt, aanzienlijk verhoogd.

Heuristiek voor compressie

Aangezien RTP geen afzonderlijke pakketheader heeft, wordt een RTP-stroom (voor cRTP) van een UDP-stroom (cUDP) onderscheiden door het gebruik van heuristiek. De exacte heuristiek die momenteel wordt gebruikt om RTP-pakketten te detecteren voor compressie zijn:

- Het bestemmingspoortnummer is gelijk.

- Het doelpoortnummer valt binnen het bereik 16384-32767 of 49152-65535.

- Het veld RTP-versie is ingesteld op twee.

- Het veld RTP-extensie wordt op nul ingesteld.

Gerelateerde informatie

- Ondersteuning van spraaktechnologie

- Productondersteuning voor spraak en Unified Communications

- Probleemoplossing voor Cisco IP-telefonie

- Technische ondersteuning – Cisco Systems