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 packet

Lisää 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.

BoundaryPacket sizeRate at 33.3 packets/sWhat it counts
Codec payload30 bytes8.0 kbit/sThe audio alone
Inner IP packet70 bytes18.7 kbit/sApplication headers included
Outer IP packet132 bytes35.2 kbit/sESP and NAT-T included
Ethernet frame150 bytes40.0 kbit/sLink 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 eth0

Kaappaus 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.

Aiheeseen liittyvät artikkelit