קול מעל IPsec מצוטט כקצב סיביות של הקודק, והמספר הזה שגוי בכל גבול מלבד הגבול של הקודק עצמו. השמע הוא 8 kbit/s, החבילה שנושאת אותו גדולה יותר, מעטפת ESP גדולה עוד יותר, ומסגרת Ethernet מוסיפה מסגור ששום לכידה על המנהרה אינה מראה. ספירת חבילה אחת מתוך תבנית מוצהרת היא הדרך היחידה לדעת מה הקישור הפיזי צריך לשאת בפועל. המעבר שלהלן עושה זאת לכיוון אחד בלבד, וכל מספר כאן הוא אריתמטיקה, לא מדידה.

התחילו מבחירת פעפוע, לא ממספר של קודק

טבלת קודק נותנת את קצב המטען ושום דבר אחר: 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 חיצוני עדיין אינו כולל מסגור Ethernet. קישור גישה מתויג או לא מתויג מוסיף כותרת MAC של 14 בייטים ורצף בדיקת מסגרת של 4 בייטים, והופך את המסגרת ל-150 בייטים, וזה הגודל שפורט מתג סופר. באותו קצב חבילות זה 40 kbit/s, פי חמישה מקצב הקודק, וההפרש אינו בזבוז אלא מחיר ההובלה.

BoundaryPacket sizeRate at 33.3 packets/sWhat it counts
Codec payload30 bytes8.0 kbit/sThe audio alone
Inner IP packet70 bytes18.7 kbit/sApplication headers included
Outer IP packet132 bytes35.2 kbit/sESP and NAT-T included
Ethernet frame150 bytes40.0 kbit/sLink framing included

המספר 40 kbit/s עדיין אינו כולל את הפתיח, את המרווח בין מסגרות, תגי VLAN, עטיפת הספק, RTCP, איתות ואת השמע שנוסע לכיוון השני. זו הערכה לכל כיוון, לא הזמנת קישור, וציטוטה ככזו מגזים במה שהקישור צריך להזמין במקום אחד וממעיט בו במקום אחר. לכידה במארח עלולה גם להחמיץ מסגור שהקישור מוסיף, ולכן יש לתת שם לגבול לצד המספר, ולכן טבלת גבולות שימושית יותר ממספר כותרת אחד. הזמינו בנפרד לכיוון שלא ספרתם.

בדקו את האריתמטיקה מול הממשק

לפני שאתם סומכים על ההערכה, השוו אותה למה שהממשק מדווח עבור מספר חבילות ידוע. בצעו לכידה בממשק הפיזי ולא בהתקן המנהרה, כדי שהמסגור שאתם מנסים לקחת בחשבון ייכלל, וצפו לאי-התאמה קטנה ולא להתאמה מושלמת.

sudo tcpdump -ni eth0 -c 50 'udp port 4500'
ip -s link show eth0

הלכידה מאשרת את גודל החבילה החיצוני, בעוד מוני הממשק מציגים את הקצב כולל המסגור. אם השניים נבדלים בערך בכמות שמותר ל-Ethernet, האריתמטיקה נכונה ורק הגבול סומן לא נכון. הפרש גדול בהרבה מכותרת מסגרת אחת מצביע על משהו אחר בקישור, כמו שידורים חוזרים או זרימה אחרת שחולקת את הממשק. כתבו את מרווח הפעפוע, ערכת ההגנה והגבול לצד המספר, כי הערכה בלי שלושת אלה מצוטטת כמדידה בידי האדם הבא שקורא אותה.

מאמרים קשורים