Kalkuli unu G.729-paketon tra IPsec-tunelo
Prilaborita G.729-ekzemplo montras kiel utilaĵo, RTP, ESP kaj Ethernet-kadrumado sumiĝas, kaj kial la sama voko kostas malsaman bendolarĝon ĉe ĉiu limo.
Voĉo super IPsec estas citata kiel koduma bitrapido, kaj tiu cifero malĝustas ĉe ĉiu limo krom tiu de la kodumo mem. La aŭdio estas 8 kbit/s, la paketo portanta ĝin estas pli granda, la ESP-ujo estas eĉ pli granda, kaj la Ethernet-kadro aldonas kadrumadon, kiun kaptaĵo sur la tunelo neniam montras. Kalkuli unu paketon el difinita formato estas la sola maniero ekscii, kion la fizika ligo efektive devas porti. La pritraktado malsupre faras tion nur por unu direkto, kaj ĉiu nombro ĉi tie estas aritmetiko, ne mezurado.
Komencu per elekto de paketigo, ne per cifero de kodumo
Koduma tabelo donas la rapidon de la utilaĵo kaj nenion alian: G.729 eligas 8 kbit/s, tio estas 30 bajtoj da aŭdio ĉiujn 30 ms. Ĝi diras nenion pri kaplinioj, protektado aŭ kadrumado, kaj tiuj tri dominas la rezulton. La intervalo estas politika elekto, pri kiu ambaŭ flankoj devas interkonsenti, do elektu ĝin unue kaj deklaru ĝin, ĉar ĉiu posta nombro dependas de tiu ununura decido.
Ĉi tiu ekzemplo uzas 30 ms, do la paketa rapido estas 33.3 en sekundo. Ĝi supozas RTP-kaplinian de 12 bajtoj, UDP-kaplinian de 8 bajtoj kaj internan IPv4-kaplinian de 20 bajtoj sen opcioj, kaj neniun SRTP, kaplinian kunpremadon aŭ plenigaĵon de trafikflua konfidenco; ajna ŝanĝo movas la buĝeton kun si, tial la supozoj apartenas apud la respondo.
Aldonu la internajn kapliniojn, poste la ESP-ujon
La aplikaĵo sendas utilaĵon plus RTP plus UDP plus IP, kio ĉe ĉi tiu paketigo estas 70 bajtoj. Tiu interna fluo rezultas 18.7 kbit/s, jam pli ol duoble la koduma rapido, ĉar kaplinioj, ne aŭdio, konsistigas la plej grandan parton de la paketo. Neniu el tiuj bajtoj estas voĉo; ili estas la prezo de adresado kaj sinsekvigo. Kaptaĵo prenita super la tunelo montras ĝuste ĉi tiun nombron, kaj ĝi estas tiu, kiun homoj citas kiam ili diras, ke la voko estas malgranda.
Ĝi estas ankaŭ la nombro, kiu neniam atingas la draton. La ESP-tunela reĝimo aldonas SPI kaj sinsekvan numeron de 8 bajtoj, eksplicitan IV de 8 bajtoj por AES-GCM, postkuron de 2 bajtoj kaj aŭtentigan etikedon de 16 bajtoj. La utilaĵo de 70 bajtoj plus la postkuro atingas 72, kio jam plenumas la kvar-bajtan ĝisrandigon, do plia plenigaĵo ne necesas ĉi tie.RFC 4106 fiksas la grandojn de la GCM-IV kaj de la etikedo, kaj ambaŭ apartenas al la aritmetiko, ne al piednoto:
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 packetAldonu la eksterajn kapliniojn, kiujn postulas NAT-trapaso
Ekster la ESP-ujo staras ekstera IPv4-kaplinio de 20 bajtoj kaj UDP-kaplinio de 8 bajtoj por NAT-trapaso, do la paketo fariĝas 132 bajtoj. La UDP-enkapsuligo ekzistas ĉar la paketo devas postvivi tradukan aparaton inter la partneroj, kaj ĝi ŝanĝas la eksteran formon sen tuŝi la protektitan utilaĵon. Ĉe 33.3 paketoj en sekundo, 132 bajtoj estas ĉirkaŭ 35.2 kbit/s, aŭ proksimume kvaroble la nominala rapido de la kodumo.
Nek la etikedo nek la IV povas esti forigitaj el la takso por fari ĝin pli malgranda, ĉar ambaŭ estas parto de tio, kion la ligo efektive portos. Takso, kiu preterlasas ilin, priskribas paketon, kiun la ricevanto malakceptus. La samo validas por la postkuro, kiu ekzistas por marki la limon de la utilaĵo kaj la sekvan kaplinian ene de la protektita regiono.
Nomu la limon antaŭ ol citi la nombron
Ekstera IP-nombro ankoraŭ ekskludas Ethernet-kadrumadon. Etikedita aŭ neetikedita alira ligo aldonas MAC-kaplinian de 14 bajtoj kaj kadro-kontrolan sinsekvon de 4 bajtoj, igante la kadron 150 bajtoj, kio estas la grandeco, kiun komutila pordo kalkulas. Ĉe la sama paketa rapido tio estas 40 kbit/s, kvinoble la koduma rapido, kaj la diferenco ne estas malŝparo sed la kosto de transporto.
| 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 |
La nombro 40 kbit/s ankoraŭ ekskludas la antaŭkuron, la interkadran interspacon, VLAN-etikedojn, enkapsuligon de provizanto, RTCP, signaladon kaj la aŭdion irantan la alian direkton. Ĝi estas takso por unu direkto, ne rezervo de la ligo, kaj citi ĝin kiel tia troigas, kion la ligo devas rezervi en unu loko, dum ĝi subtaksas tion en alia. Kaptaĵo sur la gastiganto ankaŭ povas maltrafi kadrumadon, kiun la ligo aldonas, tial la limo devas esti nomata apud la nombro, kaj tial limtabelo estas pli utila ol unu ĉefa nombro. Rezervu aparte por la direkto, kiun vi ne kalkulis.
Kontrolu la aritmetikon kontraŭ la interfaco
Antaŭ ol fidi la takson, komparu ĝin kun tio, kion la interfaco raportas por konata nombro da paketoj. Kaptu sur la fizika interfaco, ne sur la tunela aparato, por ke la kadrumado, kiun vi provas prikalkuli, estu inkludita, kaj atendu malgrandan malkongruon anstataŭ perfektan kongruon.
sudo tcpdump -ni eth0 -c 50 'udp port 4500'
ip -s link show eth0La kaptaĵo konfirmas la eksteran paketan grandecon, dum la interfacaj nombriloj montras la rapidon inkluzive de kadrumado. Se la du malsamas proksimume je la Ethernet-permeso, la aritmetiko ĝustas kaj nur la limo estis mise nomita. Diferenco multe pli granda ol unu kadra kaplinio indikas ion alian sur la ligo, ekzemple resendojn aŭ alian fluon, kiu dividas la interfacon. Skribu la paketigan intervalon, la protektan aron kaj la limon apud la nombro, ĉar takso sen tiuj tri estas citata kiel mezurado de la sekva leganto.