Ar mažesnis VPN MTU yra greitesnis? Palyginkite tikruosius įrodymus
Mažesnis MTU gali apeiti kelio ribą ir vis tiek kainuoti pralaidumą. Palyginkite tikrąjį apribojimą, antraščių sąnaudas ir darbo krūvį prieš palikdami pakeitimą.
Tunelis meta didelius perdavimus, bet praleidžia ping, todėl patarimas ateina greitai: sumažinkite MTU. Pataisa kartais veikia, o paskui ji taikoma kiekvienam profiliui kiekviename tinkle. Būtent tada tikslinga pataisa tampa nuolatiniu našumo mokesčiu. Palyginimas, kurį reikia atlikti, yra tarp tikrosios kelio ribos ir kiekvieno paketo sumažinimo žemiau jos kainos.
Kas iš tikrųjų mažėja, kai sumažinate MTU
Kiekvienas paketas neša antraštes prieš nešdamas jūsų duomenis. 1500 baitų Ethernet kelyje IPv4 ir TCP sunaudoja 40 baitų ir palieka 1460 naudingajai apkrovai; inkapsuliavimas prideda viršuje išorines IP, UDP ir tunelio antraštes, todėl vidinis apkrovos biudžetas vėl krenta. Sąsajos MTU sumažinimas sąmoningai sumažina tą biudžetą.
Sąnaudos proporcingos paketų skaičiui, o ne baitų skaičiui. Tas pats failas, padalytas į daugiau paketų, reikalauja daugiau pertraukimų, daugiau maršrutizavimo sprendimų ir daugiau apdorojimo vienam paketui kiekviename kelyje esančiame įrenginyje. Maršrutizatoriuje, kuris jau arti savo paketų per sekundę ribos, tai tikras sulėtėjimas, o ne apvalinimo klaida. Sąnaudos matomos net tada, kai pats perdavimas pavyksta.
Todėl mažesnis MTU yra apribojimo apėjimas, o ne bendras optimizavimas. Jis perka patikimumą prieš kelią, kuris negali pernešti didesnio kadro, ir ima antkainį už kiekvieną paketą, kuriam sumažinimo nereikėjo.
Kada mažesnis MTU yra teisinga pataisa
Klasikinis simptomas yra konkretus: TCP rankos paspaudimas baigiasi, ateina maži atsakymai, o didelis atsisiuntimas sustoja arba atsinaujina. Ping su nedalinti bitu 1472 baitais nepavyksta, o 1400 baitų ping pavyksta, o tai rodo kelią, kuris negali pernešti viso dydžio paketo ir nepristato ICMP pranešimo, kuris pasakytų siuntėjui mažinti.
Kelio MTU aptikimas priklauso nuo tų ICMP pranešimų apie būtiną skaidymą. Kai ugniasienė juos išmeta, siuntėjas vis kartoja didelį paketą ir ryšys atrodo pakibęs. MTU sumažinimas tunelio pusėje išvengia kartojimo, ir tai yra teisėta to tinklo pataisa.
Prieigos technologijos taip pat nustato savo ribas: PPPoE paprastai apsiriboja 1492, kai kurie mobilieji ir DSL keliai yra žemesni, o įdėtieji tuneliai antkainį atima du kartus. Matuokite tikrąjį kelią, o ne kopijuokite skaičių iš vadovo, ir atminkite, kad IPv6 reikalauja bent 1280 baitų MTU kiekvienoje jungtyje, kuri jį perneša, kaip nustato RFC 8200.
Palyginkite tris valdiklius prieš keisdami vieną
MTU, MSS ir skaidymas yra skirtingi valdikliai skirtinguose sluoksniuose, o pakeitus netinkamą simptomas lieka vietoje.
| Control | Layer | What it changes | Where it misleads |
|---|---|---|---|
| Interface MTU | IP link | Largest frame the interface will send | Penalizes every protocol, not just the one that failed |
| TCP MSS clamp | TCP | Segment size advertised in the handshake | Leaves UDP and QUIC untouched |
| DF and fragmentation | IP | Whether a router may split a packet | Can break path MTU discovery and security assumptions |
| Tunnel overhead | Encapsulation | Inner MTU after outer headers | Mismatch shows up only for large inner packets |
MSS ribojimas dažnai yra mažiausiai invazinė pataisa, nes ji veikia tik TCP ir palieka sąsają laisvą kitam srautui. Mažesnis sąsajos MTU yra platesnis ir lengviau apmąstomas, todėl jis paplitęs namų maršrutizatoriuose, bet jis ima kiekvienam protokolui vieno protokolo problemos mokestį.
Nedalinti veiksenos išjungimas paslepia simptomą leisdamas skaidymą, ir paprastai pablogina delsą, kartu sulaužydamas grįžtamąjį ryšį, kuris būtų radęs tinkamą dydį. Venkite to kaip nuolatinės pataisos.
Matuokite kompromisą, o ne vieną skaičių
Raskite kelio ribą bandymu su nedalinti bitu, pradėkite nuo aukštos vertės ir leiskitės, kol ateis atsakymas:
ping -M do -s 1472 203.0.113.10
ping -M do -s 1400 203.0.113.10
tracepath 203.0.113.10Tada palyginkite tikrąją užduotį abiem nuostatomis: tą patį failų perdavimą, tą patį galinį tašką ir tą patį tinklą. Užrašykite užbaigimo laiką ir pakartotinius perdavimus, pavyzdžiui, su nstat -az TcpRetransSegs, ir stebėkite įrenginio procesorių, jei tunelis baigiasi mažame maršrutizatoriuje. Trumpas sintetinis pralaidumo testas gali praleisti sustojimą, kuris pasirodo tik po kelių megabaitų.
Paketų skaitikliai padidės po sumažinimo, nes tas pats perdavimas dabar naudoja daugiau paketų. Tai tikėtina ir nėra didesnio pralaidumo įrodymas. Palyginkite užbaigtus programos duomenis, pakartotinių perdavimų skaičių ir reaktyvumą, o ne vien paketų dažnį.
Įveskite pakeitimą etapais ir laikykite jį apribotą
Užrašykite pradinę vertę, pakeiskite vieną valdiklį ir pakartokite matavimą prieš padarydami jį nuolatiniu. Jei įrodymai nerodo naudos, atkurkite ankstesnę vertę ta pačia sąsajos komanda, kuria ją nustatėte:
ip link set dev wg0 mtu 1420
ip link set dev wg0 mtu 1500Apribokite rezultatą tam tinklui, kuriam jo reikėjo. Profilis, kuris turi veikti viešbučio Wi-Fi, mobiliojo ryšio hotspot ir biuro LAN tinkle, neturėtų paveldėti mažiausios vertės, kurios reikalauja bet kuris iš jų, nebent klientas negali aptikti kelio.
Teisinga vertė yra didžiausias MTU, kuris išgyvena kelyje, o ne mažiausias, kuris panaikina simptomą. Dokumentuokite kelią, bandymo rezultatą ir grąžinimą, ir peržiūrėkite nuostatą, kai pasikeičia prieigos tinklas.