شمردن یک بسته G.729 در تونل IPsec
یک نمونه کارشده از G.729 نشان داد بار مفید، RTP، ESP و فریم اترنت چگونه با هم جمع شدند و چرا همان تماس در هر مرز پهنای باند متفاوتی هزینه داشت.
صدای روی IPsec را با نرخ بیت کدک نقل میکنند و این عدد در هر مرزی جز مرز خود کدک نادرست است. صدا 8 kbit/s است، بستهای که آن را حمل میکند بزرگتر است، پوشش ESP باز هم بزرگتر است و فریم اترنت قاببندیای میافزاید که هیچ ضبطی روی تونل آن را نشان نمیدهد. شمردن یک بسته از یک قالب مشخص تنها راه دانستن این است که پیوند فیزیکی واقعاً چه چیزی را باید حمل کند. بررسی زیر این کار را فقط برای یک جهت انجام میدهد و هر عدد در اینجا حساب است، نه اندازهگیری.
از انتخاب بستهبندی شروع کنید، نه از عدد کدک
جدول کدک نرخ بار مفید را میدهد و هیچ چیز دیگر: G.729 نرخ 8 kbit/s را میدهد که 30 بایت صدا در هر 30 ms است. درباره سرآیندها، حفاظت یا قاببندی هیچ نمیگوید و همان سه چیز بر نتیجه چیره میشوند. فاصله یک انتخاب سیاستی است که دو طرف باید بر آن توافق کنند، پس آن را نخست برگزینید و اعلام کنید، چون هر عدد بعدی به همان تصمیم تک وابسته است.
این نمونه 30 ms را به کار میبرد، پس نرخ بسته 33.3 در ثانیه است. سرآیند RTP 12 بایت، سرآیند UDP 8 بایت و سرآیند درونی IPv4 20 بایت بدون گزینهها را فرض میکند و هیچ SRTP، فشردهسازی سرآیند یا پرکننده رازداری جریان ترافیک ندارد؛ هر تغییر بودجه را هم جابهجا میکند، از این رو فرضها کنار پاسخ جای میگیرند.
سرآیندهای درونی را بیفزایید، سپس پوشش ESP
برنامه بار مفید بههمراه RTP بههمراه UDP بههمراه IP را میفرستد که در این بستهبندی 70 بایت است. آن جریان درونی به 18.7 kbit/s میرسد، یعنی بیش از دو برابر نرخ کدک، چون سرآیندها و نه صدا بخش بیشتر بسته را میسازند. هیچ یک از آن بایتها صدا نیست؛ آنها بهای نشانیدهی و ترتیبدهی هستند. ضبطی که بالای تونل گرفته شود دقیقاً همین عدد را نشان میدهد و همان عددی است که مردم هنگام گفتن کوچک بودن تماس نقل میکنند.
همچنین همان عددی است که هرگز به سیم نمیرسد. حالت تونل ESP سرآیند SPI و شماره ترتیب 8 بایتی، IV صریح 8 بایتی برای AES-GCM، دنباله 2 بایتی و برچسب احراز هویت 16 بایتی را میافزاید. بار مفید 70 بایتی بههمراه دنباله به 72 میرسد که از پیش تراز چهار بایتی را برآورده میکند، پس اینجا پرکننده بیشتری لازم نیست.RFC 4106 اندازه IV و برچسب GCM را تعیین میکند و هر دو به حساب تعلق دارند، نه به پانویس:
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سرآیندهای بیرونی را که گذر از NAT لازم دارد بیفزایید
بیرون پوشش ESP یک سرآیند بیرونی IPv4 20 بایتی و یک سرآیند UDP 8 بایتی برای گذر از NAT قرار دارد، پس بسته 132 بایت میشود. کپسولهسازی UDP وجود دارد چون بسته باید از دستگاه ترجمه میان دو همتا بگذرد و شکل بیرونی را بدون دست زدن به بار مفید محافظتشده تغییر میدهد. با 33.3 بسته در ثانیه، 132 بایت حدود 35.2 kbit/s است، یعنی تقریباً چهار برابر نرخ اسمی کدک.
نه برچسب و نه IV را نمیتوان برای کوچکتر کردن برآورد حذف کرد، چون هر دو بخشی از آن چیزی هستند که پیوند واقعاً حمل میکند. برآوردی که آنها را بیندازد بستهای را توصیف میکند که گیرنده رد میکرد. همین درباره دنباله هم درست است، که برای نشان دادن مرز بار مفید و سرآیند بعدی در ناحیه محافظتشده وجود دارد.
پیش از نقل عدد، مرز را نام ببرید
عدد IP بیرونی هنوز قاببندی اترنت را کنار میگذارد. پیوند دسترسی برچسبدار یا بیبرچسب یک سرآیند MAC 14 بایتی و یک دنباله بررسی فریم 4 بایتی میافزاید و فریم را 150 بایت میکند که همان اندازهای است که درگاه سوئیچ میشمارد. با همان نرخ بسته این 40 kbit/s است، پنج برابر نرخ کدک، و تفاوت هدر رفت نیست بلکه بهای حمل است.
| 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 هنوز پیشدرآمد، فاصله میان فریمها، برچسبهای VLAN، کپسولهسازی ارائهدهنده، RTCP، علامتدهی و صدای رونده در جهت دیگر را کنار میگذارد. این برآورد یک جهت است، نه رزرو پیوند، و نقل آن به عنوان رزرو آنچه پیوند باید در جایی رزرو کند بیش از اندازه نشان میدهد و در جایی دیگر کم. ضبط روی میزبان هم ممکن است قاببندی افزوده پیوند را از دست بدهد، از این رو مرز باید در کنار عدد نام برده شود، و از این رو جدول مرزها از یک عدد تیتر سودمندتر است. برای جهتی که نشمردید جداگانه رزرو کنید.
حساب را با رابط بسنجید
پیش از اعتماد به برآورد، آن را با آنچه رابط برای شمار دانستهای از بسته گزارش میکند بسنجید. روی رابط فیزیکی ضبط کنید نه دستگاه تونل، تا قاببندی که میخواهید به حساب آورید گنجانده شود، و اختلاف کوچک را انتظار داشته باشید نه تطابق کامل.
sudo tcpdump -ni eth0 -c 50 'udp port 4500'
ip -s link show eth0ضبط اندازه بیرونی بسته را تأیید میکند و شمارندههای رابط نرخ را با قاببندی نشان میدهند. اگر این دو حدود سهم اترنت تفاوت داشته باشند، حساب درست است و تنها مرز بد نام برده شده است. تفاوتی بسیار بزرگتر از یک سرآیند فریم به چیز دیگری در پیوند اشاره دارد، مانند بازفرستیها یا جریان دیگری که رابط را شریک است. فاصله بستهبندی، مجموعه حفاظت و مرز را کنار عدد بنویسید، چون برآورد بدون این سه، توسط خواننده بعدی به عنوان سنجش نقل میشود.