Голас праз 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 дадае 8-байтавы SPI і нумар паслядоўнасці, 8-байтавы яўны IV для 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, арыфметыка правільная і памылкова пазначана толькі мяжа. Розніца, значна большая за адзін загаловак кадра, указвае на нешта іншае ў звяне, напрыклад паўторныя перадачы або іншы паток, які дзеліць інтэрфейс. Запішыце інтэрвал пакетызацыі, набор абароны і мяжу побач з лічбой, бо ацэнка без гэтых трох цытуецца наступным чытачом як вымярэнне.

Падобныя артыкулы