Bir G.729 paketini IPsec tunelindən saymaq
İşlənmiş G.729 nümunəsi yükün, RTP, ESP və Ethernet çərçivələməsinin necə toplandığını və eyni zəngin hər sərhəddə niyə fərqli buraxılış zolağı tutduğunu göstərir.
IPsec üzərindən səs kodek bitreyti kimi göstərilir və bu rəqəm kodekin öz sərhədindən başqa hər sərhəddə yanlışdır. Audio 8 kbit/s-dir, onu daşıyan paket daha böyükdür, ESP zərfi daha da böyükdür və Ethernet çərçivəsi tunel üzərindəki heç bir tutmada görünməyən çərçivələmə əlavə edir. Bir paketi müəyyən edilmiş formatdan saymaq fiziki əlaqənin həqiqətən nə daşımalı olduğunu öyrənməyin yeganə yoludur. Aşağıdakı yürüş bunu yalnız bir istiqamət üçün edir və buradakı hər rəqəm ölçmə deyil, hesablamadır.
Kodek rəqəmindən deyil, paketləşdirmə seçimindən başlayın
Kodek cədvəli yük sürətini verir və başqa heç nə: G.729 8 kbit/s verir, bu da hər 30 ms-də 30 bayt audiodur. Başlıqlar, qorunma və çərçivələmə barədə heç nə demir və nəticəni məhz bu üçü müəyyən edir. İnterval hər iki tərəfin razılaşmalı olduğu siyasət seçimidir, ona görə əvvəlcə onu seçin və göstərin, çünki bütün sonrakı rəqəmlər həmin tək qərardan asılıdır.
Bu nümunə 30 ms istifadə edir, ona görə paket sürəti saniyədə 33.3-dür. 12 baytlıq RTP başlığı, 8 baytlıq UDP başlığı və seçimsiz 20 baytlıq daxili IPv4 başlığı, həmçinin SRTP, başlıq sıxılması və ya trafik axını məxfiliyi doldurulması olmadığını fərz edir; hər hansı dəyişiklik büdcəni də aparır, buna görə fərziyyələr cavabın yanında olmalıdır.
Daxili başlıqları, sonra ESP zərfini əlavə edin
Tətbiq yük üstəgəl RTP, UDP və IP göndərir ki, bu paketləşdirmədə 70 baytdır. Bu daxili axın 18.7 kbit/s-ə çıxır, yəni artıq kodek sürətinin iki qatından çoxdur, çünki paketin çoxunu audio deyil, başlıqlar təşkil edir. O baytların heç biri səs deyil; onlar ünvanlama və ardıcıllığın qiymətidir. Tunelin üstündə götürülmüş tutma məhz bu rəqəmi göstərir və insanlar zəngin kiçik olduğunu deyəndə bu rəqəmi sitat gətirirlər.
Bu həm də heç vaxt kabelə çatmayan rəqəmdir. ESP tunel rejimi 8 baytlıq SPI və ardıcıllıq nömrəsi, AES-GCM üçün 8 baytlıq açıq IV, 2 baytlıq treyler və 16 baytlıq autentifikasiya teqi əlavə edir. 70 baytlıq yük treylerlə birlikdə 72-yə çatır ki, bu da dörd baytlıq düzlənməni artıq ödəyir, ona görə burada əlavə doldurma lazım deyil.RFC 4106 GCM IV və teq ölçülərini müəyyən edir və hər ikisi haşiyədə deyil, hesablamada olmalıdır:
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 keçidinin tələb etdiyi xarici başlıqları əlavə edin
ESP zərfindən kənarda 20 baytlıq xarici IPv4 başlığı və NAT keçidi üçün 8 baytlıq UDP başlığı yerləşir, beləliklə paket 132 bayt olur. UDP inkapsulyasiyası ona görə mövcuddur ki, paket həmyaşıdlar arasındakı tərcümə edən cihazdan keçməlidir və o, qorunan yükə toxunmadan xarici formanı dəyişir. Saniyədə 33.3 paketlə 132 bayt təxminən 35.2 kbit/s-dir, yəni kodekin nominal sürətinin təqribən dörd qatı.
Nə teq, nə də IV təxmini kiçiltmək üçün çıxarıla bilməz, çünki hər ikisi əlaqənin həqiqətən daşıyacağının bir hissəsidir. Onları buraxan təxmin, qəbul edənin rədd edəcəyi paketi təsvir edir. Eyni şey yükün sərhədini və qorunan bölgədəki növbəti başlığı qeyd etmək üçün mövcud olan treylerə də aiddir.
Rəqəmi sitat gətirməzdən əvvəl sərhədi adlandırın
Xarici IP rəqəmi hələ də Ethernet çərçivələməsini istisna edir. İşarələnmiş və ya işarələnməmiş giriş əlaqəsi 14 baytlıq MAC başlığı və 4 baytlıq çərçivə yoxlama ardıcıllığı əlavə edir, çərçivəni 150 bayt edir ki, bu da kommutator portunun saydığı ölçüdür. Eyni paket sürətində bu 40 kbit/s-dir, kodek sürətinin beş qatı, və fərq israf deyil, daşıma qiymətidir.
| 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 rəqəmi hələ də preambulanı, çərçivələr arası boşluğu, VLAN teqlərini, provayder inkapsulyasiyasını, RTCP-ni, siqnalizasiyanı və əks istiqamətdə gedən audionu istisna edir. Bu, hər istiqamət üçün təxmindir, əlaqə rezervasiyası deyil və onu rezervasiya kimi sitat gətirmək əlaqənin bir yerdə nəyi saxlamalı olduğunu şişirdir, başqa yerdə isə azaldır. Host tutması da əlaqənin əlavə etdiyi çərçivələməni qaçıra bilər, buna görə sərhəd rəqəmin yanında adlandırılmalıdır, və buna görə sərhəd cədvəli tək bir başlıq rəqəmindən daha faydalıdır. Saymadığınız istiqamət üçün ayrıca rezervasiya edin.
Hesablamanı interfeyslə yoxlayın
Təxminə güvənməzdən əvvəl onu interfeysin məlum paket sayı üçün bildirdiyi ilə müqayisə edin. Tutmanı tunel qurğusunda deyil, fiziki interfeysdə götürün ki, hesablamağa çalışdığınız çərçivələmə daxil olsun və mükəmməl uyğunluq deyil, kiçik fərq gözləyin.
sudo tcpdump -ni eth0 -c 50 'udp port 4500'
ip -s link show eth0Tutma xarici paket ölçüsünü təsdiqləyir, interfeys sayğacları isə çərçivələmə daxil olmaqla sürəti göstərir. Əgər ikisi təxminən Ethernet icazəsi qədər fərqlənirsə, hesablama düzdür və yalnız sərhəd səhv adlandırılıb. Bir çərçivə başlığından qat-qat böyük fərq əlaqədəki başqa bir şeyə, məsələn yenidən ötürmələrə və ya interfeysi paylaşan başqa axına işarə edir. Paketləşdirmə intervalını, qorunma dəstini və sərhədi rəqəmin yanında yazın, çünki bu üçü olmayan təxmin növbəti oxuyan tərəfindən ölçmə kimi sitat gətirilir.