Laske yksi G.729-paketti IPsec-tunnelin läpi
Läpikäyty G.729-esimerkki näyttää, miten hyötykuorma, RTP, ESP ja Ethernet-kehystys lasketaan yhteen ja miksi sama puhelu maksaa eri kaistanleveyden joka rajalla.
IPsecin yli kulkeva puhe ilmoitetaan koodekin bitratena, ja luku on väärä jokaisella rajalla paitsi koodekin omalla. Ääni on 8 kbit/s, sen kuljettava paketti on suurempi, ESP-verhokäärre on vielä suurempi ja Ethernet-kehys lisää kehystystä, jota tunnelilla tehty kaappaus ei koskaan näytä. Yhden paketin laskeminen ilmoitetusta muodosta on ainoa tapa oppia, mitä fyysisen linkin on todella kuljetettava. Alla oleva läpikäynti tekee sen vain yhteen suuntaan, ja jokainen luku tässä on aritmetiikkaa, ei mittausta.
Aloita paketointivalinnasta, älä koodekin luvusta
Koodekkitaulukko antaa hyötykuorman nopeuden eikä mitään muuta: G.729 tuottaa 8 kbit/s, mikä on 30 tavua ääntä 30 ms välein. Se ei kerro mitään otsikoista, suojauksesta tai kehystyksestä, ja juuri ne kolme hallitsevat tulosta. Väli on käytäntövalinta, josta molempien päiden on sovittava, joten valitse se ensin ja ilmoita se, koska jokainen myöhempi luku riippuu siitä yhdestä päätöksestä.
Tämä esimerkki käyttää 30 ms, joten pakettinopeus on 33.3 sekunnissa. Se olettaa 12 tavun RTP-otsikon, 8 tavun UDP-otsikon ja 20 tavun sisemmän IPv4-otsikon ilman valintoja sekä sen, ettei SRTP:tä, otsikkopakkausta tai liikennevirran luottamuksellisuuden täytettä ole; mikä tahansa muutos siirtää budjettia mukanaan, siksi oletukset kuuluvat vastauksen viereen.
Lisää sisemmät otsikot ja sitten ESP-verhokäärre
Sovellus lähettää hyötykuorman plus RTP:n plus UDP:n plus IP:n, mikä on tässä paketoinnissa 70 tavua. Sisempi virta laskee 18.7 kbit/s, jo yli kaksinkertainen koodekin nopeuteen, koska paketin suurimman osan muodostavat otsikot eivätkä ääni. Mikään noista tavuista ei ole puhetta; ne ovat osoitteistamisen ja järjestämisen hinta. Tunnelilta ylempää otettu kaappaus näyttää täsmälleen tämän luvun, ja se on luku, jota ihmiset lainaavat sanoessaan puhelun olevan pieni.
Se on myös luku, joka ei koskaan päädy johdolle. ESP-tunnelitila lisää 8 tavun SPI:n ja sekvenssinumeron, 8 tavun eksplisiittisen IV:n AES-GCM:lle, 2 tavun peräosan ja 16 tavun todentamistunnisteen. 70 tavun hyötykuorma plus peräosa osuu 72:een, mikä täyttää jo neljän tavun tasauksen, joten lisätäytettä ei tässä tarvita.RFC 4106 vahvistaa GCM:n IV:n ja tunnisteen koot, ja molemmat kuuluvat aritmetiikkaan eivätkä alaviitteeseen:
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 packetLisää ulommat otsikot, joita NAT-läpäisy vaatii
ESP-verhokäärteen ulkopuolella ovat 20 tavun ulompi IPv4-otsikko ja 8 tavun UDP-otsikko NAT-läpäisyä varten, joten paketti kasvaa 132 tavuun. UDP-kapselointi on olemassa, koska paketin on selvittävä vertaisten välisestä kääntävästä laitteesta, ja se muuttaa ulompaa muotoa koskematta suojattuun hyötykuormaan. Kun paketteja on 33.3 sekunnissa, 132 tavua on noin 35.2 kbit/s eli suunnilleen nelinkertainen koodekin nimellisnopeuteen.
Tunnistetta tai IV:tä ei voi pudottaa arviosta pienentääkseen sitä, koska molemmat ovat osa sitä, mitä linkki tosiasiassa kuljettaa. Arvio, joka jättää ne pois, kuvaa pakettia, jonka vastaanottaja hylkäisi. Sama koskee peräosaa, joka on olemassa merkitsemään hyötykuorman raja ja seuraava otsikko suojatulla alueella.
Nimeä raja ennen kuin lainaat lukua
Ulompi IP-luku jättää yhä Ethernet-kehystyksen pois. Merkitty tai merkitsemätön liityntälinkki lisää 14 tavun MAC-otsikon ja 4 tavun kehyksen tarkistussekvenssin, jolloin kehyksestä tulee 150 tavua, mikä on kytkinportin laskema koko. Samalla pakettinopeudella se on 40 kbit/s, viisinkertainen koodekin nopeuteen, eikä ero ole tuhlausta vaan kuljetuksen hinta.
| 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 |
Luku 40 kbit/s jättää yhä pois johdannon, kehysten välisen aukon, VLAN-tunnisteet, operaattorin kapseloinnin, RTCP:n, signaloinnin ja toiseen suuntaan kulkevan äänen. Se on arvio yhtä suuntaa kohden, ei linkin varaus, ja sen lainaaminen varauksena liioittelee sitä, mitä linkin on varattava yhdessä paikassa, ja aliarvioi sitä toisessa. Isäntäkoneen kaappaus voi myös ohittaa kehystyksen, jonka linkki lisää, siksi raja on nimettävä luvun rinnalle, ja siksi rajataulukko on hyödyllisempi kuin yksi otsikkoluku. Varaa erikseen sille suunnalle, jota et laskenut.
Tarkista aritmetiikka liitäntää vasten
Ennen kuin luotat arvioon, vertaa sitä siihen, mitä liitäntä raportoi tunnetulle pakettimäärälle. Kaappaa fyysiseltä liitännältä, älä tunnelilaitteelta, jotta kehystys, jonka yrität ottaa huomioon, tulee mukaan, ja odota pientä eroa täydellisen osuman sijaan.
sudo tcpdump -ni eth0 -c 50 'udp port 4500'
ip -s link show eth0Kaappaus vahvistaa ulomman paketin koon, kun taas liitännän laskurit näyttävät nopeuden kehystys mukaan lukien. Jos kaksi eroavat suunnilleen Ethernet-varan verran, aritmetiikka on oikein ja vain raja oli nimetty väärin. Yhtä kehyksen otsikkoa paljon suurempi ero viittaa johonkin muuhun linkillä, kuten uudelleenlähetyksiin tai toiseen liitäntää jakavaan virtaan. Kirjoita paketointiväli, suojausvalikoima ja raja luvun viereen, sillä ilman näitä kolmea arvio lainataan mittauksena seuraavan lukijan toimesta.