Kova už milisekundes. Kaip pasirinkti serverį su mažiausiu ping

Atliekant daugelį užduočių, vėlavimai tarp kliento ir serverio yra labai svarbūs, pavyzdžiui, internetiniuose žaidimuose, vaizdo / balso konferencijose, IP telefonijoje, VPN ir kt. Jei serveris yra per toli nuo kliento IP tinklo lygiu, delsos (liaudiškai vadinamos „ping“, „lag“) trukdys darbui.

Geografinis serverio artumas ne visada prilygsta artumui IP maršruto parinkimo lygiu. Taigi, pavyzdžiui, serveris kitoje šalyje gali būti „arčiau“ nei serveris jūsų mieste. Viskas dėl maršruto parinkimo ir tinklo konstravimo ypatumų.

Kova už milisekundes. Kaip pasirinkti serverį su mažiausiu ping

Kaip išsirinkti serverį, kuris būtų kuo arčiau visų potencialių klientų? Kas yra IP tinklo ryšys? Kaip nukreipti klientą į artimiausią serverį? Išsiaiškinkime straipsnyje.

Vėlavimų matavimas

Pirma, išmokime išmatuoti vėlavimą. Ši užduotis nėra tokia paprasta, kaip gali atrodyti, nes delsos gali skirtis priklausomai nuo skirtingų protokolų ir paketų dydžių. Taip pat galite praleisti trumpalaikius įvykius, pvz., keletą milisekundžių trunkančių kritimų.

ICMP – įprastas ping

Naudosime „Unix ping“ programą, kuri leidžia rankiniu būdu nustatyti intervalus tarp paketų siuntimo, ko „Windows“ skirta ping versija negali padaryti. Tai svarbu, nes jei tarp paketų yra ilgos pauzės, galite tiesiog nematyti, kas vyksta tarp jų.

Pakuotės dydis (parinktis -s) – pagal numatytuosius nustatymus ping programa siunčia 64 baitų dydžio paketus. Naudojant tokius mažus paketus, reiškiniai, atsirandantys su didesniais paketais, gali būti nepastebimi, todėl paketo dydį nustatysime iki 1300 baitų.

Intervalas tarp paketų (parinktis -i) – laikas tarp duomenų siuntimų. Pagal numatytuosius nustatymus paketai siunčiami kartą per sekundę, tai labai ilgai, realios programos siunčia šimtus ir tūkstančius paketų per sekundę, todėl nustatysime intervalą 0.1 sekundės. Programa tiesiog neleidžia mažiau.

Dėl to komanda atrodo taip:

ping -s 1300 -i 0.1 yandex.ru

Šis dizainas leidžia pamatyti tikroviškesnį vėlavimo vaizdą.

Ping per UDP ir TCP

Kai kuriais atvejais TCP ryšiai apdorojami kitaip nei ICMP paketai, todėl matavimai gali skirtis priklausomai nuo protokolo. Taip pat dažnai atsitinka, kad pagrindinis kompiuteris tiesiog nereaguoja į ICMP, o įprastas ping neveikia. Pavyzdžiui, tai šeimininkas daro visą gyvenimą. microsoft.com.

Naudingumas nping garsaus skaitytuvo nmap kūrėjai gali sugeneruoti bet kokius paketus. Jis taip pat gali būti naudojamas vėlavimui matuoti.
Kadangi UDP ir TCP veikia tam tikruose, turime „ping“ konkrečiam prievadui. Pabandykime išsiųsti ping TCP 80, tai yra, žiniatinklio serverio prievadą:

$ sudo nping --tcp -p 80 --delay 0.1 -c 0 microsoft.com

Starting Nping 0.7.80 ( https://nmap.org/nping ) at 2020-04-30 13:07 MSK
SENT (0.0078s) TCP 10.0.0.1:63236 > 13.77.161.179:80 S ttl=64 id=49156 iplen=40  seq=3401731188 win=1480
SENT (0.1099s) TCP 10.0.0.1:63236 > 13.77.161.179:80 S ttl=64 id=49156 iplen=40  seq=3401731188 win=1480
RCVD (0.2068s) TCP 13.77.161.179:80 > 10.0.0.1:63236 SA ttl=43 id=0 iplen=44  seq=1480267007 win=64240 <mss 1440>
SENT (0.2107s) TCP 10.0.0.1:63236 > 13.77.161.179:80 S ttl=64 id=49156 iplen=40  seq=3401731188 win=1480
RCVD (0.3046s) TCP 13.77.161.179:80 > 10.0.0.1:63236 SA ttl=43 id=0 iplen=44  seq=1480267007 win=64240 <mss 1440>
SENT (0.3122s) TCP 10.0.0.1:63236 > 13.77.161.179:80 S ttl=64 id=49156 iplen=40  seq=3401731188 win=1480
RCVD (0.4247s) TCP 13.77.161.179:80 > 10.0.0.1:63236 SA ttl=42 id=0 iplen=44  seq=2876862274 win=64240 <mss 1398>

Max rtt: 112.572ms | Min rtt: 93.866ms | Avg rtt: 101.093ms
Raw packets sent: 4 (160B) | Rcvd: 3 (132B) | Lost: 1 (25.00%)
Nping done: 1 IP address pinged in 0.43 seconds

Pagal numatytuosius nustatymus nping siunčia 4 paketus ir sustabdo. Parinktis -c 0 m įgalina begalinį paketų siuntimą; norint sustabdyti programą, reikia paspausti Ctrl+C. Statistika bus rodoma pabaigoje. Matome, kad vidutinė rtt (atgalinės kelionės laikas) vertė yra 101 ms.

MTR – traceroute ant steroidų

Programa MTR „My Traceroute“ yra pažangi priemonė, skirta atsekti maršrutus iki nuotolinio kompiuterio. Skirtingai nuo įprastos sistemos paslaugų programos „traceroute“ („Windows“ tai yra „tracert“ programa), ji gali rodyti vėlavimus kiekvienam paketų grandinės kompiuteriui. Jis taip pat gali atsekti maršrutus ne tik per ICMP, bet ir per UDP bei TCP.

$ sudo mtr microsoft.com

Kova už milisekundes. Kaip pasirinkti serverį su mažiausiu ping
(Spustelėti) MTR programos sąsaja. Pradėtas maršruto sekimas į microsoft.com

MTR iš karto parodo ping kiekvienam grandinės kompiuteriui, o programai veikiant duomenys nuolat atnaujinami ir matomi trumpalaikiai pokyčiai.
Ekrano nuotraukoje matyti, kad mazgas #6 turi paketų nuostolių, tačiau iš tikrųjų tai nėra visiškai tiesa, nes kai kurie maršrutizatoriai gali tiesiog išmesti paketus su pasibaigusiu TTL ir negrįžti atsakymo į klaidą, todėl čia galima nepaisyti paketų praradimo duomenų.

WiFi vs kabelis

Kova už milisekundes. Kaip pasirinkti serverį su mažiausiu ping
Ši tema nėra visiškai susijusi su straipsniu, tačiau, mano nuomone, ji yra labai svarbi vėlavimo kontekste. Labai mėgstu WiFi, bet jei turėsiu nors menkiausią galimybę prisijungti prie interneto laidu, pasinaudosiu. Taip pat visada atgrasau žmones nuo WiFi kamerų naudojimo.
Jei žaidžiate rimtus internetinius šaudymo žaidimus, transliuojate vaizdo įrašus arba prekiaujate biržoje: naudokite internetą kabeliu.

Pateikiame vizualinį „WiFi“ ir kabelių jungčių palyginimo testą. Tai yra „WiFi“ maršrutizatoriaus ping, ty dar net ne internetas.

Kova už milisekundes. Kaip pasirinkti serverį su mažiausiu ping
(Spustelėti) Palyginimas su „WiFi“ maršruto parinktuvu kabeliu ir „WiFi“.

Matyti, kad per WiFi uždelsimas yra 1 ms ilgesnis, o kartais būna paketų, kurių vėlavimas yra dešimt kartų ilgesnis! Ir tai tik trumpas laiko tarpas. Tuo pačiu metu tas pats maršrutizatorius sukuria stabilų <1 ms vėlavimą.

Aukščiau pateiktame pavyzdyje naudojamas 802.11 GHz WiFi 2.4n, prie WiFi prieigos taško prijungtas tik nešiojamas kompiuteris ir telefonas. Jei prieigos taške būtų daugiau klientų, rezultatai būtų daug prastesni. Štai kodėl aš labai prieš, kad visi biuro kompiuteriai būtų perjungti į WiFi, jei įmanoma juos pasiekti kabeliu.

IP ryšys

Taigi, mes išmokome matuoti delsą iki serverio, pabandykime surasti artimiausią serverį. Norėdami tai padaryti, galime pažiūrėti, kaip veikia mūsų teikėjo maršruto parinkimas. Tam patogu naudotis paslauga bgp.he.net

Kova už milisekundes. Kaip pasirinkti serverį su mažiausiu ping

Kai patenkame į svetainę, matome, kad mūsų IP adresas priklauso autonominei sistemai AS42610.

Žvelgdami į autonominių sistemų jungiamumo grafiką, matome, per kuriuos aukštesnio lygio teikėjus mūsų teikėjas yra prijungtas prie likusio pasaulio. Kiekvieną tašką galima spustelėti, galite įeiti ir perskaityti, koks tai teikėjas.

Kova už milisekundes. Kaip pasirinkti serverį su mažiausiu ping
Tiekėjo autonominių sistemų jungiamumo grafikas

Naudodami šį įrankį galite ištirti, kaip yra sudaryti bet kurio teikėjo kanalai, įskaitant prieglobą. Pažiūrėkite, su kuriais teikėjais jis yra tiesiogiai prijungtas. Norėdami tai padaryti, ieškodami bgp.he.net turite įvesti serverio IP adresą ir pažvelgti į jo autonominės sistemos grafiką. Taip pat galite suprasti, kaip vienas duomenų centras arba prieglobos paslaugų teikėjas yra prijungtas prie kito.

Daugumoje srauto mainų punktų yra specialus įrankis, vadinamas look glass, kuris leidžia ping ir traceroute iš konkretaus maršruto parinktuvo mainų taške.

Pavyzdžiui, čia atrodantis stiklas iš MGTS

Taigi, rinkdamiesi serverį galime iš anksto pamatyti, kaip jis atrodys iš skirtingų srauto mainų taškų. O jei mūsų potencialūs klientai yra tam tikroje geografinėje vietovėje, galime rasti optimalią serverio vietą.

Pasirinkite artimiausią serverį

Nusprendėme supaprastinti savo klientams optimalaus serverio paieškos procedūrą ir sukūrėme puslapį su automatiniu netoliese esančių vietų testavimu: RUVDS duomenų centrai.
Kai lankotės puslapyje, scenarijus matuoja vėlavimą nuo jūsų naršyklės iki kiekvieno serverio ir parodo juos interaktyviame žemėlapyje. Spustelėjus duomenų centrą, rodoma informacija su bandymo rezultatais.

Kova už milisekundes. Kaip pasirinkti serverį su mažiausiu ping

Kova už milisekundes. Kaip pasirinkti serverį su mažiausiu ping

Mygtukas nukreipia jus į visų mūsų duomenų centrų delsos bandymo puslapį. Norėdami peržiūrėti bandymo rezultatus, spustelėkite duomenų centro tašką žemėlapyje

Kova už milisekundes. Kaip pasirinkti serverį su mažiausiu ping

Šaltinis: www.habr.com

Добавить комментарий