Foar in protte taken binne fertragingen tusken de kliïnt en tsjinner kritysk, bygelyks yn online spultsjes, fideo- / stimkonferinsjes, IP-telefony, VPN, ensfh. As de tsjinner te fier fan 'e kliïnt is op it IP-netwurknivo, dan sille fertragingen (yn 'e folken neamd "ping", "lag") it wurk bemuoie.
Geografyske tichtby fan in tsjinner is net altyd gelyk oan tichtby op it IP-routingnivo. Sa, bygelyks, in tsjinner yn in oar lân kin wêze "tichter by jo dan in tsjinner yn jo stêd. Alles troch de eigenaardichheden fan routing en netwurkbou.
Hoe kinne jo in server kieze dy't sa ticht mooglik is by alle potensjele kliïnten? Wat is IP-netwurkferbining? Hoe kinne jo in kliïnt rjochtsje nei de tichtste server? Litte wy útfine yn it artikel.
Fertragingen mjitten
Litte wy earst leare hoe't jo fertragingen mjitten. Dizze taak is net sa ienfâldich as it liket, om't fertragingen kinne ferskille foar ferskate protokollen en pakketgrutte. Jo kinne ek eveneminten op koarte termyn misse, lykas dips dy't in pear millisekonden duorje.
ICMP - reguliere ping
Wy sille it Unix-ping-hulpprogramma brûke; it lit jo de yntervallen manuell ynstelle tusken it ferstjoeren fan pakketten, wat de pingferzje foar Windows net kin dwaan. Dit is wichtich, om't as d'r lange pauzes binne tusken pakketten, jo miskien gewoan net sjogge wat der tusken bart.
Pakket grutte (opsje -s) - standert stjoert it ping-hulpprogramma pakketten fan 64 bytes yn grutte. Mei sokke lytse pakketten binne ferskynsels dy't foarkomme mei gruttere pakketten miskien net te merken, dus sille wy de pakketgrutte op 1300 bytes ynstelle.
Ynterval tusken pakketten (opsje -i) - tiid tusken gegevensferstjoeren. Standert wurde pakketten ien kear per sekonde ferstjoerd, dit is heul lang, echte programma's stjoere hûnderten en tûzenen pakketten per sekonde, sadat wy it ynterval ynstelle op 0.1 sekonde. It programma lit gewoan net minder ta.
As resultaat sjocht it kommando der sa út:
ping -s 1300 -i 0.1 yandex.ru
Dit ûntwerp lit jo in mear realistysk byld fan fertragingen sjen.
Ping fia UDP en TCP
Yn guon gefallen wurde TCP-ferbiningen oars ferwurke as ICMP-pakketten, en hjirtroch kinne mjittingen ferskille ôfhinklik fan it protokol. It bart ek faak dat de host gewoan net reagearret op ICMP, en gewoane ping wurket net. Dat docht bygelyks in gasthear syn hiele libben. microsoft.com.
Utility
Sûnt UDP en TCP operearje op spesifike, moatte wy in spesifike poarte "pinge". Litte wy besykje TCP 80 te pingjen, dat is de poarte fan 'e webserver:
$ 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
Standert stjoert nping 4 pakketten en stopt. Opsje -c 0 makket it einleaze ferstjoeren fan pakketten mooglik; om it programma te stopjen, moatte jo Ctrl+C drukke. Statistiken wurde oan 'e ein toand. Wy sjogge dat de gemiddelde rtt (round-trip tiid) wearde is 101ms.
MTR - traceroute op steroïden
It programma
$ sudo mtr microsoft.com
(Klikbere) MTR programma ynterface. Rûte tracing nei microsoft.com begûn
MTR toant fuortendaliks de ping oan elke host yn 'e keten, en de gegevens wurde hieltyd bywurke wylst it programma rint en koarte-termyn feroarings kinne sjoen wurde.
It skermôfbylding lit sjen dat knooppunt #6 pakketferlies hat, mar yn feite is dit net hielendal wier, om't guon routers pakketten mei in ferrûne TTL gewoan ferwiderje kinne en gjin flaterantwurd weromjaan, sadat de pakketferliesgegevens hjir kinne wurde negearre.
WiFi vs kabel
Dit ûnderwerp is net hielendal relevant foar it artikel, mar nei myn miening is it tige wichtich yn 'e kontekst fan fertragingen. Ik hâld echt fan WiFi, mar as ik sels de minste kâns haw om te ferbinen mei it ynternet mei in kabel, sil ik it brûke. Ik ried minsken ek altyd ôf om WiFi-kamera's te brûken.
As jo serieuze online shooters spielje, fideo streame, of hannelje op 'e beurs: brûk asjebleaft it ynternet fia kabel.
Hjir is in fisuele test om WiFi- en kabelferbiningen te fergelykjen. Dit is in ping nei de WiFi-router, dat is noch net iens it ynternet.
(Klikber) Fergeliking fan ping mei in WiFi-router fia kabel en fia WiFi
It kin sjoen wurde dat oer WiFi de fertraging 1ms langer is en soms binne d'r pakketten mei fertragingen tsien kear langer! En dit is mar in koarte perioade fan tiid. Tagelyk produseart deselde router stabile fertragingen fan <1ms.
Yn it foarbyld hjirboppe wurdt WiFi 802.11n op 2.4GHz brûkt, allinich in laptop en in tillefoan binne ferbûn mei it WiFi-tagongspunt. As d'r mear kliïnten op it tagongspunt wiene, soene de resultaten folle slimmer wêze. Dêrom bin ik sa tsjin it wikseljen fan alle kantoarkompjûters nei WiFi as it mooglik is om se te berikken mei in kabel.
IP ferbining
Dat, wy hawwe leard om fertragingen oan 'e tsjinner te mjitten, litte wy besykje de tsjinner te finen dy't it tichtst by ús is. Om dit te dwaan kinne wy sjen hoe't de routing fan ús provider wurket. It is handich om de tsjinst hjirfoar te brûken
As wy tagong krije ta de side, sjogge wy dat ús IP-adres heart by it autonome systeem
Troch te sjen nei de ferbiningsgrafyk fan autonome systemen, kinne wy sjen troch hokker providers op heger nivo ús provider is ferbûn mei de rest fan 'e wrâld. Elk fan 'e stippen is te klikken, jo kinne yngean en lêze hokker soarte provider it is.
Konnektivitätgrafyk fan de autonome systemen fan de provider
Mei dit ark kinne jo studearje hoe't de kanalen fan elke provider, ynklusyf hosting, binne strukturearre. Sjoch mei hokker oanbieders it direkt ferbûn is. Om dit te dwaan, moatte jo it IP-adres fan de tsjinner ynfiere yn it sykjen nei bgp.he.net en sjoch nei de grafyk fan syn autonome systeem. Jo kinne ek begripe hoe't ien datasintrum of hostingprovider is ferbûn mei in oar.
De measte ferkearsútwikselingspunten jouwe in spesjaal ark neamd looking glass, wêrmei jo kinne ping en traceroute fan in spesifike router op it útwikselpunt.
Hjir, bygelyks,
Dat, by it kiezen fan in tsjinner, kinne wy foarôf sjen hoe't it sil útsjen fan ferskate ferkearsútwikselpunten. En as ús potensjele kliïnten yn in bepaald geografysk gebiet lizze, kinne wy de optimale lokaasje fine foar de tsjinner.
Selektearje de tichtstbye tsjinner
Wy besletten de proseduere te ferienfâldigjen foar it finen fan de optimale tsjinner foar ús kliïnten en hawwe in side makke mei automatyske testen fan lokaasjes yn 'e buert:
As jo in side besykje, mjit it skript de fertragingen fan jo blêder nei elke server en toant se op in ynteraktive kaart. As jo op in datasintrum klikke, wurdt ynformaasje mei testresultaten werjûn.
De knop bringt jo nei de latency testpagina foar al ús datasintra. Om de testresultaten te besjen, klikje jo op it gegevenssintrumpunt op 'e kaart
Boarne: www.habr.com