Mengira satu paket G.729 melalui terowong IPsec
Contoh G.729 yang diselesaikan menunjukkan bagaimana muatan, RTP, ESP dan pembingkaian Ethernet bertambah, dan mengapa panggilan yang sama memakan lebar jalur berbeza pada setiap sempadan.
Suara melalui IPsec disebut sebagai kadar bit codec, dan angka itu salah pada setiap sempadan kecuali sempadan codec itu sendiri. Audio ialah 8 kbit/s, paket yang membawanya lebih besar, sampul ESP lebih besar lagi, dan bingkai Ethernet menambah pembingkaian yang tidak pernah ditunjukkan oleh tangkapan di terowong. Mengira satu paket daripada format yang dinyatakan ialah satu-satunya cara untuk mengetahui apa yang sebenarnya perlu dibawa oleh pautan fizikal. Huraian di bawah melakukannya untuk satu arah sahaja, dan setiap angka di sini ialah aritmetik, bukan pengukuran.
Mulakan dengan pilihan paketisasi, bukan angka codec
Jadual codec memberikan kadar muatan dan tiada yang lain: G.729 mengeluarkan 8 kbit/s, iaitu 30 bait audio setiap 30 ms. Ia tidak menyatakan apa-apa tentang pengepala, perlindungan atau pembingkaian, dan ketiga-tiganya menguasai hasilnya. Selang ialah pilihan dasar yang mesti dipersetujui kedua-dua hujung, jadi pilih dahulu dan nyatakan, kerana setiap angka berikutnya bergantung pada satu keputusan itu.
Contoh ini menggunakan 30 ms, jadi kadar paket ialah 33.3 sesaat. Ia menganggap pengepala RTP 12 bait, pengepala UDP 8 bait dan pengepala IPv4 dalaman 20 bait tanpa pilihan, serta tiada SRTP, pemampatan pengepala atau pengisi kerahsiaan aliran trafik; sebarang perubahan menggerakkan bajet bersamanya, sebab itulah andaian diletakkan di sebelah jawapan.
Tambah pengepala dalaman, kemudian sampul ESP
Aplikasi menghantar muatan tambah RTP tambah UDP tambah IP, yang pada paketisasi ini ialah 70 bait. Aliran dalaman itu menjadi 18.7 kbit/s, sudah lebih daripada dua kali kadar codec, kerana pengepala dan bukan audio membentuk sebahagian besar paket. Tiada satu pun bait itu suara; ia ialah harga pengealamatan dan penomboran. Tangkapan yang diambil di atas terowong menunjukkan angka ini dengan tepat, dan itulah yang dipetik orang apabila mereka berkata panggilan itu kecil.
Ia juga angka yang tidak pernah sampai ke kabel. Mod terowong ESP menambah SPI dan nombor jujukan 8 bait, IV eksplisit 8 bait untuk AES-GCM, treler 2 bait dan teg pengesahan 16 bait. Muatan 70 bait tambah treler menjadi 72, yang sudah memenuhi penjajaran empat bait, jadi tiada pengisi tambahan diperlukan di sini.RFC 4106 menetapkan saiz IV dan teg GCM, dan kedua-duanya tergolong dalam aritmetik, bukan nota kaki:
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 packetTambah pengepala luar yang diperlukan oleh lintasan NAT
Di luar sampul ESP terdapat pengepala IPv4 luar 20 bait dan pengepala UDP 8 bait untuk lintasan NAT, jadi paket menjadi 132 bait. Enkapsulasi UDP wujud kerana paket mesti melintasi peranti penterjemah antara rakan sebaya, dan ia mengubah bentuk luar tanpa menyentuh muatan yang dilindungi. Pada 33.3 paket sesaat, 132 bait ialah kira-kira 35.2 kbit/s, iaitu kira-kira empat kali kadar nominal codec.
Baik teg mahupun IV tidak boleh digugurkan daripada anggaran untuk menjadikannya lebih kecil, kerana kedua-duanya sebahagian daripada apa yang akan dibawa oleh pautan. Anggaran yang mengabaikannya menerangkan paket yang akan ditolak oleh penerima. Perkara yang sama berlaku pada treler, yang wujud untuk menandakan sempadan muatan dan pengepala seterusnya di dalam kawasan yang dilindungi.
Namakan sempadan sebelum memetik angka
Angka IP luar masih tidak termasuk pembingkaian Ethernet. Pautan akses bertag atau tanpa tag menambah pengepala MAC 14 bait dan jujukan semak bingkai 4 bait, menjadikan bingkai 150 bait, iaitu saiz yang dikira oleh port suis. Pada kadar paket yang sama itu 40 kbit/s, lima kali kadar codec, dan perbezaannya bukan pembaziran tetapi kos pengangkutan.
| 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 |
Angka 40 kbit/s masih tidak termasuk pembukaan, jurang antara bingkai, tag VLAN, enkapsulasi penyedia, RTCP, isyarat dan audio yang bergerak ke arah lain. Ia ialah anggaran bagi setiap arah, bukan tempahan pautan, dan memetiknya sebagai tempahan melebih-lebihkan apa yang pautan mesti tempah di satu tempat sambil meremehkannya di tempat lain. Tangkapan pada hos juga boleh terlepas pembingkaian yang ditambah oleh pautan, sebab itulah sempadan mesti dinamakan bersama angka, dan sebab itulah jadual sempadan lebih berguna daripada satu angka tajuk. Tempah secara berasingan untuk arah yang tidak anda kira.
Semak aritmetik terhadap antara muka
Sebelum mempercayai anggaran, bandingkannya dengan apa yang dilaporkan antara muka untuk bilangan paket yang diketahui. Tangkap pada antara muka fizikal, bukan peranti terowong, supaya pembingkaian yang anda cuba kira disertakan, dan jangkakan sedikit percanggahan dan bukan padanan sempurna.
sudo tcpdump -ni eth0 -c 50 'udp port 4500'
ip -s link show eth0Tangkapan mengesahkan saiz paket luar, manakala pembilang antara muka menunjukkan kadar termasuk pembingkaian. Jika kedua-duanya berbeza kira-kira elaun Ethernet, aritmetik itu betul dan hanya sempadan yang salah namanya. Perbezaan jauh lebih besar daripada satu pengepala bingkai menunjuk kepada sesuatu yang lain pada pautan, seperti penghantaran semula atau aliran lain yang berkongsi antara muka. Tulis selang paketisasi, suit perlindungan dan sempadan di sebelah angka, kerana anggaran tanpa ketiga-tiganya dipetik sebagai pengukuran oleh pembaca berikutnya.