IPsec tünelinden bir G.729 paketini saymak
İşlenmiş bir G.729 örneği yükün, RTP'nin, ESP'nin ve Ethernet çerçevelemesinin nasıl toplandığını ve aynı çağrının her sınırda neden farklı bant genişliği tuttuğunu gösterir.
IPsec üzerinden ses, kodek bit hızı olarak anılır ve bu sayı kodeğin kendi sınırı dışında her sınırda yanlıştır. Ses 8 kbit/s'dir, onu taşıyan paket daha büyüktür, ESP zarfı daha da büyüktür ve Ethernet çerçevesi tünelde alınan hiçbir yakalamada görünmeyen çerçeveleme ekler. Bir paketi belirtilen biçimden saymak, fiziksel bağlantının gerçekte neyi taşıması gerektiğini öğrenmenin tek yoludur. Aşağıdaki yürüyüş bunu yalnızca bir yön için yapar ve buradaki her sayı aritmetiktir, ölçüm değil.
Kodek sayısından değil, paketleme seçiminden başlayın
Bir kodek tablosu yük hızını verir ve başka bir şey vermez: G.729 8 kbit/s üretir, bu da her 30 ms'de 30 bayt sestir. Başlıklar, koruma veya çerçeveleme hakkında hiçbir şey söylemez ve sonucu bu üçü belirler. Aralık, iki ucun da anlaşması gereken bir politika seçimidir, bu yüzden önce onu seçin ve belirtin, çünkü sonraki her sayı o tek karara bağlıdır.
Bu örnek 30 ms kullanır, dolayısıyla paket hızı saniyede 33.3'tür. 12 baytlık RTP başlığı, 8 baytlık UDP başlığı ve seçeneksiz 20 baytlık iç IPv4 başlığı varsayar ve SRTP, başlık sıkıştırması ya da trafik akışı gizliliği dolgusu yoktur; herhangi bir değişiklik bütçeyi de kaydırır, bu yüzden varsayımlar yanıtın yanında durur.
İç başlıkları ekleyin, sonra ESP zarfını
Uygulama yükü artı RTP artı UDP artı IP gönderir, bu da bu paketlemede 70 bayttır. Bu iç akış 18.7 kbit/s'ye çıkar, kodek hızının iki katından fazladır, çünkü paketin büyük kısmını ses değil başlıklar oluşturur. O baytların hiçbiri ses değildir; adresleme ve sıralama bedelidir. Tünelin üstünde alınan bir yakalama tam olarak bu sayıyı gösterir ve insanlar çağrının küçük olduğunu söylerken bu sayıyı aktarır.
Bu aynı zamanda kabloya hiç ulaşmayan sayıdır. ESP tünel modu 8 baytlık SPI ve sıra numarası, AES-GCM için 8 baytlık açık IV, 2 baytlık kuyruk ve 16 baytlık kimlik doğrulama etiketi ekler. 70 baytlık yük artı kuyruk 72'ye ulaşır, bu da dört baytlık hizalamayı zaten karşılar, dolayısıyla burada ek dolgu gerekmez.RFC 4106 GCM IV ve etiket boyutlarını belirler ve ikisi de aritmetiğe aittir, dipnota değil:
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 packetNAT geçişinin gerektirdiği dış başlıkları ekleyin
ESP zarfının dışında 20 baytlık dış IPv4 başlığı ve NAT geçişi için 8 baytlık UDP başlığı vardır, böylece paket 132 bayt olur. UDP kapsüllemesi, paketin eşler arasındaki çeviren aygıttan geçmesi gerektiği için vardır ve korunan yüke dokunmadan dış biçimi değiştirir. Saniyede 33.3 pakette 132 bayt yaklaşık 35.2 kbit/s'dir, yani kodeğin nominal hızının yaklaşık dört katı.
Ne etiket ne de IV tahminden çıkarılamaz, çünkü ikisi de bağlantının gerçekte taşıyacağı şeyin parçasıdır. Onları atlayan bir tahmin, alıcının reddedeceği bir paketi tanımlar. Aynısı, korunan bölgedeki yük sınırını ve sonraki başlığı işaretlemek için var olan kuyruk için de geçerlidir.
Sayıyı aktarmadan önce sınırı adlandırın
Dış IP sayısı hâlâ Ethernet çerçevelemesini dışlar. Etiketli ya da etiketsiz erişim bağlantısı 14 baytlık MAC başlığı ve 4 baytlık çerçeve denetim dizisi ekler, çerçeveyi 150 bayt yapar, bu da bir anahtar portunun saydığı boyuttur. Aynı paket hızında bu 40 kbit/s'dir, kodek hızının beş katı, ve fark israf değil taşıma bedelidir.
| 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 |
40 kbit/s sayısı hâlâ önsözü, çerçeveler arası boşluğu, VLAN etiketlerini, sağlayıcı kapsüllemesini, RTCP'yi, sinyalleşmeyi ve karşı yöne giden sesi dışlar. Bu bir yön için tahmindir, bağlantı rezervasyonu değil, ve onu rezervasyon olarak aktarmak bağlantının bir yerde ayırması gerekeni abartırken başka yerde küçümser. Ana makinedeki yakalama bağlantının eklediği çerçevelemeyi de kaçırabilir, bu yüzden sınır sayının yanında adlandırılmalıdır, ve bu yüzden bir sınır tablosu tek bir başlık sayısından daha yararlıdır. Saymadığınız yön için ayrı rezervasyon yapın.
Aritmetiği arayüze karşı denetleyin
Tahmine güvenmeden önce, bilinen bir paket sayısı için arayüzün bildirdiğiyle karşılaştırın. Tünel aygıtında değil fiziksel arayüzde yakalayın, böylece hesaba katmaya çalıştığınız çerçeveleme dahil olur, ve kusursuz bir eşleşme yerine küçük bir fark bekleyin.
sudo tcpdump -ni eth0 -c 50 'udp port 4500'
ip -s link show eth0Yakalama dış paket boyutunu doğrular, arayüz sayaçları ise hızı çerçeveleme dahil gösterir. İkisi yaklaşık Ethernet payı kadar farklıysa aritmetik doğrudur ve yalnızca sınır yanlış adlandırılmıştır. Bir çerçeve başlığından çok daha büyük bir fark bağlantıdaki başka bir şeye işaret eder, örneğin yeniden iletimlere ya da arayüzü paylaşan başka bir akışa. Paketleme aralığını, koruma takımını ve sınırı sayının yanına yazın, çünkü bu üçü olmayan bir tahmin bir sonraki okuyucu tarafından ölçüm olarak aktarılır.