Tel een G.729-pakket deur 'n IPsec-tonnel
'n Uitgewerkte G.729-voorbeeld wys hoe die loonvrag, RTP, ESP en Ethernet-omraamwerk bymekaar tel, en waarom dieselfde oproep by elke grens ander bandwydte kos.
Stem oor IPsec word as 'n kodek-bisrate aangehaal, en daardie syfer is verkeerd by elke grens behalwe die kodek se eie. Die klank is 8 kbit/s, die pakket wat dit dra is groter, die ESP-omhulsel is weer groter, en die Ethernet-raam voeg omraamwerk by wat 'n opname op die tonnel nooit wys nie. Om een pakket uit 'n gegewe formaat te tel, is die enigste manier om te leer wat die fisiese skakel werklik moet dra. Die uiteensetting hieronder doen dit vir slegs een rigting, en elke syfer hier is rekenkunde, nie meting nie.
Begin by 'n pakketteringskeuse, nie 'n kodeksyfer nie
'n Kodektabel gee die loonvragtempo en niks anders nie: G.729 lewer 8 kbit/s, dit is 30 grepe klank elke 30 ms. Dit sê niks oor kopdele, beskerming of omraamwerk nie, en daardie drie oorheers die resultaat. Die interval is 'n beleidskeuse waaroor beide kante moet saamstem, so kies dit eerste en noem dit, want elke latere syfer hang van daardie enkele besluit af.
Hierdie voorbeeld gebruik 30 ms, so die pakettempo is 33.3 per sekonde. Dit aanvaar 'n 12-greep-RTP-kop, 'n 8-greep-UDP-kop en 'n 20-greep binneste IPv4-kop sonder opsies, en geen SRTP, kopkompressie of verkeersvloei-vertroulikheid-vulling nie; enige verandering skuif die begroting saam, en daarom hoort die aannames langs die antwoord.
Voeg die binneste kopdele by, dan die ESP-omhulsel
Die toepassing stuur loonvrag plus RTP plus UDP plus IP, wat 70 grepe by hierdie pakkettering is. Daardie binneste stroom werk uit op 18.7 kbit/s, reeds meer as twee keer die kodektempo, want dit is kopdele, nie klank nie, wat die meeste van die pakket uitmaak. Nie een van daardie grepe is stem nie; hulle is die prys van adressering en volgordebepaling. 'n Opname bokant die tonnel wys presies hierdie syfer, en dit is die een wat mense aanhaal wanneer hulle sê die oproep is klein.
Dit is ook die syfer wat nooit die draad bereik nie. ESP-tonnelmodus voeg 'n 8-greep-SPI en volgnommer by, 'n 8-greep eksplisiete IV vir AES-GCM, 'n 2-greep-slot en 'n 16-greep-verifikasie-etiket. Die 70-greep-loonvrag plus die slot beland op 72, wat reeds aan die vier-greep-belyning voldoen, so geen ekstra vulling is hier nodig nie.RFC 4106 bepaal die GCM-IV- en etiketgroottes, en albei hoort in die rekenkunde, nie in 'n voetnoot nie:
30 payload, G.729 at 30 ms
12 RTP
8 UDP
20 inner IPv4
--
70 inner IP packet
8 ESP SPI and sequence
8 explicit IV
2 pad length and next header
16 authentication tag
--
104 ESP packetVoeg die buitenste kopdele by wat NAT-deurgang vereis
Buite die ESP-omhulsel sit 'n 20-greep-buitenste IPv4-kop en 'n 8-greep-UDP-kop vir NAT-deurgang, so die pakket word 132 grepe. Die UDP-inkapseling bestaan omdat die pakket 'n vertalende toestel tussen die eweknieë moet oorleef, en dit verander die buitenste vorm sonder om aan die beskermde loonvrag te raak. Teen 33.3 pakkette per sekonde is 132 grepe ongeveer 35.2 kbit/s, of rofweg vier keer die kodek se nominale tempo.
Nie die etiket of die IV kan uit die skatting gelaat word om dit kleiner te maak nie, want albei is deel van wat die skakel werklik sal dra. 'n Skatting wat hulle weglaat, beskryf 'n pakket wat die ontvanger sou verwerp. Dieselfde geld die slot, wat bestaan om die loonvraggrens en die volgende kop binne die beskermde gebied aan te dui.
Noem die grens voordat jy die syfer aanhaal
'n Buitenste IP-syfer sluit steeds Ethernet-omraamwerk uit. 'n Gemerkte of ongemerkte toegangskakel voeg 'n 14-greep-MAC-kop en 'n 4-greep-raamkontrolesekwens by, wat die raam 150 grepe maak, dit is die grootte wat 'n skakelpoort tel. Teen dieselfde pakettempo is dit 40 kbit/s, vyf keer die kodektempo, en die verskil is nie vermorsing nie maar die koste van vervoer.
| Boundary | Packet size | Rate at 33.3 packets/s | What it counts |
|---|---|---|---|
| Codec payload | 30 bytes | 8.0 kbit/s | The audio alone |
| Inner IP packet | 70 bytes | 18.7 kbit/s | Application headers included |
| Outer IP packet | 132 bytes | 35.2 kbit/s | ESP and NAT-T included |
| Ethernet frame | 150 bytes | 40.0 kbit/s | Link framing included |
Die syfer van 40 kbit/s sluit steeds die preambule, die tussenraamgaping, VLAN-etikette, diensverskaffer-inkapseling, RTCP, seine en die klank wat die ander kant toe gaan, uit. Dit is 'n skatting per rigting, nie 'n skakelreservering nie, en om dit as een aan te haal, oorskat wat die skakel op een plek moet reserveer terwyl dit dit op 'n ander plek onderskat. 'n Opname op die gasheer kan ook omraamwerk mis wat die skakel byvoeg, en daarom moet die grens saam met die syfer genoem word, en daarom is 'n grenstabel nuttiger as 'n enkele hoofsyfer. Reserveer afsonderlik vir die rigting wat jy nie getel het nie.
Kontroleer die rekenkunde teen die koppelvlak
Voordat jy die skatting vertrou, vergelyk dit met wat die koppelvlak vir 'n bekende aantal pakkette rapporteer. Maak die opname op die fisiese koppelvlak eerder as die tonneltoestel, sodat die omraamwerk wat jy probeer verantwoord, ingesluit is, en verwag 'n klein verskil eerder as 'n perfekte passing.
sudo tcpdump -ni eth0 -c 50 'udp port 4500'
ip -s link show eth0Die opname bevestig die buitenste pakketgrootte, terwyl die koppelvlaktellers die tempo insluitend omraamwerk wys. As die twee met ongeveer die Ethernet-toelating verskil, is die rekenkunde reg en is net die grens verkeerd benoem. 'n Verskil wat veel groter as een raamkop is, dui op iets anders op die skakel, soos hertransmissies of 'n ander vloei wat die koppelvlak deel. Skryf die pakketteringsinterval, die beskermingsuite en die grens langs die syfer, want 'n skatting sonder daardie drie word deur die volgende leser as 'n meting aangehaal.