Menghitung satu paket G.729 melalui terowongan IPsec
Contoh G.729 yang dikerjakan menunjukkan bagaimana muatan, RTP, ESP, dan pembingkaian Ethernet bertambah, dan mengapa panggilan yang sama memakan lebar pita berbeda di tiap batas.
Suara melalui IPsec dikutip sebagai laju bit codec, dan angka itu salah di setiap batas kecuali batas codec itu sendiri. Audionya 8 kbit/s, paket yang membawanya lebih besar, selubung ESP lebih besar lagi, dan bingkai Ethernet menambahkan pembingkaian yang tidak pernah ditunjukkan oleh tangkapan di terowongan. Menghitung satu paket dari format yang dinyatakan adalah satu-satunya cara mengetahui apa yang sebenarnya harus dibawa oleh tautan fisik. Uraian di bawah melakukannya hanya untuk satu arah, dan setiap angka di sini adalah aritmetika, bukan pengukuran.
Mulailah dari pilihan paketisasi, bukan dari angka codec
Tabel codec memberi laju muatan dan tidak lebih: G.729 mengeluarkan 8 kbit/s, yaitu 30 bita audio setiap 30 ms. Tabel itu tidak mengatakan apa pun tentang tajuk, perlindungan, atau pembingkaian, dan ketiganya mendominasi hasil. Interval adalah pilihan kebijakan yang harus disepakati kedua ujung, jadi pilihlah lebih dulu dan nyatakan, karena setiap angka berikutnya bergantung pada satu keputusan itu.
Contoh ini memakai 30 ms, jadi laju paketnya 33.3 per detik. Contoh ini mengasumsikan tajuk RTP 12 bita, tajuk UDP 8 bita, dan tajuk IPv4 dalam 20 bita tanpa opsi, serta tanpa SRTP, pemadatan tajuk, atau pelapisan kerahasiaan aliran lalu lintas; perubahan apa pun menggeser anggaran bersamanya, karena itulah asumsinya diletakkan di samping jawaban.
Tambahkan tajuk dalam, lalu selubung ESP
Aplikasi mengirim muatan plus RTP plus UDP plus IP, yang pada paketisasi ini 70 bita. Aliran dalam itu menjadi 18.7 kbit/s, sudah lebih dari dua kali laju codec, karena tajuk dan bukan audio yang membentuk sebagian besar paket. Tidak satu pun bita itu adalah suara; itu adalah harga dari pengalamatan dan penomoran urut. Tangkapan yang diambil di atas terowongan menunjukkan persis angka ini, dan itulah yang dikutip orang ketika mereka mengatakan panggilannya kecil.
Ini juga angka yang tidak pernah sampai ke kabel. Mode terowongan ESP menambahkan SPI dan nomor urut 8 bita, IV eksplisit 8 bita untuk AES-GCM, trailer 2 bita, dan tag autentikasi 16 bita. Muatan 70 bita plus trailer menjadi 72, yang sudah memenuhi perataan empat bita, jadi tidak perlu pelapisan tambahan di sini.RFC 4106 menetapkan ukuran IV dan tag GCM, dan keduanya termasuk dalam aritmetika, bukan catatan 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 packetTambahkan tajuk luar yang dibutuhkan penerobosan NAT
Di luar selubung ESP ada tajuk IPv4 luar 20 bita dan tajuk UDP 8 bita untuk penerobosan NAT, sehingga paketnya menjadi 132 bita. Enkapsulasi UDP ada karena paket harus melewati perangkat penerjemah di antara kedua rekan, dan itu mengubah bentuk luar tanpa menyentuh muatan yang dilindungi. Pada 33.3 paket per detik, 132 bita sekitar 35.2 kbit/s, atau kira-kira empat kali laju nominal codec.
Baik tag maupun IV tidak dapat dihapus dari perkiraan agar lebih kecil, karena keduanya bagian dari apa yang benar-benar akan dibawa tautan. Perkiraan yang mengabaikannya menggambarkan paket yang akan ditolak penerima. Hal yang sama berlaku untuk trailer, yang ada untuk menandai batas muatan dan tajuk berikutnya di dalam wilayah yang dilindungi.
Namai batasnya sebelum mengutip angkanya
Angka IP luar masih mengecualikan pembingkaian Ethernet. Tautan akses bertag atau tanpa tag menambahkan tajuk MAC 14 bita dan urutan pemeriksaan bingkai 4 bita, membuat bingkainya 150 bita, yaitu ukuran yang dihitung port sakelar. Pada laju paket yang sama itu 40 kbit/s, lima kali laju codec, dan selisihnya bukan pemborosan melainkan biaya 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 mengecualikan pembukaan, celah antar-bingkai, tag VLAN, enkapsulasi penyedia, RTCP, pensinyalan, dan audio yang bergerak ke arah lain. Ini perkiraan per arah, bukan reservasi tautan, dan mengutipnya sebagai reservasi melebih-lebihkan apa yang harus dicadangkan tautan di satu tempat sambil meremehkannya di tempat lain. Tangkapan di host juga bisa melewatkan pembingkaian yang ditambahkan tautan, karena itu batasnya harus dinamai bersama angkanya, dan karena itu tabel batas lebih berguna daripada satu angka utama. Cadangkan secara terpisah untuk arah yang tidak Anda hitung.
Periksa aritmetikanya terhadap antarmuka
Sebelum mempercayai perkiraan, bandingkan dengan apa yang dilaporkan antarmuka untuk jumlah paket yang diketahui. Tangkap di antarmuka fisik, bukan di perangkat terowongan, agar pembingkaian yang hendak Anda perhitungkan ikut masuk, dan perkirakan ketidakcocokan kecil, bukan kecocokan sempurna.
sudo tcpdump -ni eth0 -c 50 'udp port 4500'
ip -s link show eth0Tangkapan menegaskan ukuran paket luar, sedangkan penghitung antarmuka menunjukkan laju termasuk pembingkaian. Jika keduanya berbeda sekitar kelonggaran Ethernet, aritmetikanya benar dan hanya batasnya yang salah nama. Selisih yang jauh lebih besar daripada satu tajuk bingkai menunjuk sesuatu yang lain di tautan, seperti pengiriman ulang atau aliran lain yang berbagi antarmuka. Tuliskan interval paketisasi, rangkaian perlindungan, dan batasnya di samping angka, karena perkiraan tanpa ketiga hal itu dikutip sebagai pengukuran oleh pembaca berikutnya.