IPsec ટનલ દ્વારા એક G.729 પેકેટની ગણતરી
એક ઉકેલાયેલ G.729 ઉદાહરણ દર્શાવે છે કે પેલોડ, RTP, ESP અને Ethernet ફ્રેમિંગ કેવી રીતે ભેગા થાય છે, અને શા માટે એ જ કૉલ દરેક સીમા પર અલગ બેન્ડવિડ્થ ખર્ચે છે.
IPsec પરના વૉઇસને કોડેક બિટરેટ તરીકે ટાંકવામાં આવે છે, અને કોડેકની પોતાની સીમા સિવાય દરેક સીમા પર એ આંકડો ખોટો છે. ઑડિયો 8 kbit/s છે, તેને વહન કરતું પેકેટ મોટું છે, ESP આવરણ વધુ મોટું છે, અને Ethernet ફ્રેમ એવી ફ્રેમિંગ ઉમેરે છે જે ટનલ પરનું કોઈ કૅપ્ચર કદી દર્શાવતું નથી. નિર્દિષ્ટ ફોર્મેટમાંથી એક પેકેટની ગણતરી એ જ જાણવાનો એકમાત્ર રસ્તો છે કે ભૌતિક લિંકે ખરેખર શું વહન કરવું પડે. નીચેની ચર્ચા તે માત્ર એક જ દિશા માટે કરે છે, અને અહીંનો દરેક આંકડો ગણિત છે, માપ નહીં.
કોડેકના આંકડાથી નહીં, પેકેટાઇઝેશનની પસંદગીથી શરૂ કરો
કોડેક ચાર્ટ પેલોડ દર આપે છે અને બીજું કંઈ નહીં: G.729 8 kbit/s આપે છે, જે દર 30 ms એ 30 બાઇટ ઑડિયો છે. તે હેડર, સુરક્ષા કે ફ્રેમિંગ વિશે કંઈ કહેતું નથી, અને એ ત્રણ જ પરિણામ પર પ્રભુત્વ ધરાવે છે. અંતરાલ એ નીતિ-નિર્ણય છે જેના પર બંને છેડાએ સંમત થવું પડે, તેથી તેને પહેલા પસંદ કરો અને જાહેર કરો, કારણ કે પછીનો દરેક આંકડો એ એક જ નિર્ણય પર આધાર રાખે છે.
આ ઉદાહરણ 30 ms વાપરે છે, તેથી પેકેટ દર સેકન્ડે 33.3 છે. તે 12 બાઇટનું RTP હેડર, 8 બાઇટનું UDP હેડર અને વિકલ્પો વિનાનું 20 બાઇટનું આંતરિક IPv4 હેડર ધારે છે, અને કોઈ SRTP, હેડર કમ્પ્રેશન કે ટ્રાફિક-ફ્લો-ગોપનીયતા પૅડિંગ નથી; કોઈપણ ફેરફાર બજેટને પણ ખસેડે છે, તેથી ધારણાઓ જવાબની બાજુમાં જ હોવી જોઈએ.
આંતરિક હેડર ઉમેરો, પછી ESP આવરણ
એપ્લિકેશન પેલોડ વત્તા RTP વત્તા UDP વત્તા IP મોકલે છે, જે આ પેકેટાઇઝેશનમાં 70 બાઇટ છે. એ આંતરિક પ્રવાહ 18.7 kbit/s થાય છે, જે કોડેક દર કરતાં પહેલેથી બમણાથી વધુ છે, કારણ કે પેકેટનો મોટો ભાગ ઑડિયો નહીં, હેડર બનાવે છે. એ બાઇટમાંથી એક પણ અવાજ નથી; તે સરનામું અને ક્રમ આપવાની કિંમત છે. ટનલની ઉપર લેવાયેલું કૅપ્ચર બરાબર આ આંકડો દર્શાવે છે, અને લોકો જ્યારે કહે છે કે કૉલ નાનો છે ત્યારે આ જ આંકડો ટાંકે છે.
તે એ આંકડો પણ છે જે કદી તાર સુધી પહોંચતો નથી. ESP ટનલ મોડ 8 બાઇટનું SPI અને ક્રમ નંબર, AES-GCM માટે 8 બાઇટનું સ્પષ્ટ IV, 2 બાઇટનું ટ્રેઇલર અને 16 બાઇટની પ્રમાણીકરણ ટૅગ ઉમેરે છે. 70 બાઇટનો પેલોડ વત્તા ટ્રેઇલર 72 થાય છે, જે ચાર બાઇટના સંરેખણને પહેલેથી પૂરું કરે છે, તેથી અહીં વધારાનું પૅડિંગ જરૂરી નથી.RFC 4106 GCM ના IV અને ટૅગના માપ નક્કી કરે છે, અને બંને ગણિતમાં જ આવે છે, પાદટીપમાં નહીં:
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 પસાર થવા માટે જરૂરી બહારના હેડર ઉમેરો
ESP આવરણની બહાર 20 બાઇટનું બહારનું IPv4 હેડર અને NAT પસાર થવા માટે 8 બાઇટનું UDP હેડર આવેલું છે, તેથી પેકેટ 132 બાઇટ થાય છે. UDP એન્કેપ્સ્યુલેશન એટલા માટે છે કારણ કે પેકેટને સહભાગીઓ વચ્ચેના અનુવાદક ઉપકરણમાંથી પસાર થવું પડે છે, અને તે સુરક્ષિત પેલોડને અડ્યા વિના બહારનો આકાર બદલે છે. સેકન્ડે 33.3 પેકેટ પર, 132 બાઇટ લગભગ 35.2 kbit/s છે, અથવા કોડેકના નામમાત્ર દર કરતાં લગભગ ચાર ગણું.
ટૅગ કે IV માંથી કોઈ પણ નાનું કરવા માટે અંદાજમાંથી કાઢી શકાતું નથી, કારણ કે બંને લિંક ખરેખર જે વહન કરશે તેનો ભાગ છે. જે અંદાજ તેમને છોડી દે છે તે એવું પેકેટ વર્ણવે છે જે પ્રાપ્તકર્તા નકારી કાઢત. તે જ ટ્રેઇલર માટે પણ લાગુ પડે છે, જે સુરક્ષિત વિસ્તારમાં પેલોડની સીમા અને પછીનું હેડર ચિહ્નિત કરવા માટે છે.
આંકડો ટાંકતા પહેલા સીમાને નામ આપો
બહારનું IP આંકડું હજી પણ Ethernet ફ્રેમિંગ સિવાયનું છે. ટૅગવાળી કે ટૅગ વગરની ઍક્સેસ લિંક 14 બાઇટનું MAC હેડર અને 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કૅપ્ચર બહારના પેકેટનું માપ પુષ્ટિ કરે છે, જ્યારે ઇન્ટરફેસ કાઉન્ટર ફ્રેમિંગ સહિતનો દર દર્શાવે છે. જો બંને લગભગ Ethernet ભથ્થાના પ્રમાણમાં જુદા પડે, તો ગણિત સાચું છે અને ફક્ત સીમાને ખોટું નામ આપ્યું હતું. એક ફ્રેમ હેડર કરતાં ઘણો મોટો તફાવત લિંક પર બીજા કંઈક તરફ ઈશારો કરે છે, જેમ કે પુનઃપ્રસારણ કે ઇન્ટરફેસ વહેંચતો બીજો પ્રવાહ. પેકેટાઇઝેશન અંતરાલ, સુરક્ષા સ્યૂટ અને સીમા આંકડાની બાજુમાં લખો, કારણ કે એ ત્રણ વગરનો અંદાજ આગલો વાચક માપ તરીકે ટાંકે છે.