työssäni joudun oppimaan paljon sen eri aiheista. Varsinkin virtualisointimarkkinoilla monet ovat yleensä hyvin valmistautuneita infrastruktuurin, palvelimien ja tallennustilan suhteen, mutta huomasin, että heikoin kohta on monta kertaa verkottuminen. On joitakin aiheita, jotka ovat hämäriä monille, kuten Layer2 vs Layer3, BGP, Spanning Tree, mutta on yksi aihe, joka on todella tärkeä jopa infrastruktuurin kaverit, mutta se on lähes tuntematon heille: latenssi.
mikä on latenssi?
niin nopea kuin voi olla, valonnopeuskaan ei ole ääretön. Fotonin matka pisteestä A pisteeseen B vie aikaa, ja esimerkiksi auringon tuottaman valon saapuminen maahan kestää 8 minuuttia. Tietokoneverkkomme eivät ole lähelläkään tuota nopeutta, koska ensinnäkin yleensä yhteyksiämme ei tehdä valokuidulla (joka olisi lopulta yhtä nopea kuin valo) vaan sähkökaapeleilla, joten lähetykset näiden medioiden kautta ovat hitaampia, mutta myös siksi, että lähteen ja kohteen välillä on monia laitteita, jotka tarvitsevat paketin manipulointia. Lähde isäntä, kytkimet, reitittimet, palomuurit, kohde isäntä; jokainen ”hop” lisää aikaa kokonaisaika, että paketti tarvitsee perille. Voimme suunnitella tilanteen näin.:
( lähde: https://stackoverflow.com/questions/8682702/how-to-calculate-packet-time-from-latency-and-bandwidth )
joten, yksinkertaisesti sanottuna, latenssi on aika, että se vie paketin mennä lähteestä kohteeseen.
lähiverkossa on helppo approksimoida ja ilmoittaa, että käsittelyviive on 0, ja myös, että kahden isännän väliset useat Kytkimet eivät lisää lisäviivettä. Loppujen lopuksi, kun suoritamme ping-komennon tarkistaaksemme, onko isäntä kytketty, latenssi on aina ”alle 1 ms” :
tästä syystä, se ei ole harvinaista laskea suurin siirtonopeus yksinkertaisesti katsomalla käytettävissä kaistanleveys:
– 1 Gb ethernet– linkki jaettuna 8: lla antaa minulle 125 MBps
– 10 Gb ethernet-linkki tarkoittaa 1250 MBps
ja niin edelleen. Ja jos minun kaistanleveys on 125mbps, se tarkoittaa, että voin siirtää 125mb joka sekunti.
miksi viiveellä on merkitystä?
koska sen huomiotta jättäminen yhdessä muiden parametrien kanssa johtaa vääriin tuloksiin!
Katso edellistä esimerkkiä. Jopa lähiverkossa, jossa latenssi on lähellä nollaa, on muitakin parametreja, jotka voivat vaikuttaa lopulliseen nopeuteen. Yksi ennen kaikkea: TCP-ikkunan koko. En aio toistaa sitä, mitä muut ovat jo kirjoittaneet täydellisellä tavalla, joten jos haluat oppia lisää, Lue tämä Brad Hedlundin postaus. Mikä juju tässä on? Linkin nopeus puhumme yleensä on puhdas kaapeli linkki nopeus. Mutta sen lisäksi, meidän täytyy ajaa useita protokollia, yksi ylitse muiden, kuten TCP over IP. TCP jakaa tiedot paketteihin, ja pakettien koko sanelee TCP-ikkunan koko: suurempi tämä arvo, enemmän dataa voidaan siirtää yhdellä lähetyksellä. Sitten, hyötykuorma on pakattu paketin sisälle, joten on olemassa ylimääräisiä tavuja jokaiselle paketille, että nave lähetetään, vaikka ne eivät sisällä mitään tietoja (on myös joitakin yläpuolella taustalla ethernet-runko, ajattele kaikki keskustelu suhteen Jumbo Kehykset). Lopuksi, TCP latenssi tekee osansa, koska voin lähettää seuraavan paketin vasta kun edellinen on saapunut määränpäähänsä, koska linkki on muuten kiireinen siirtää muita paketteja.
latenssi ja ikkunan koko tulevat ensiarvoisen tärkeiksi, kun siirrymme lähiverkoista julkisiin verkkoihin. Tässä <1ms-arvo menee pois, ja meillä on korkeammat arvot huomioitavana. Korkeampi on latenssi, pienempi on suurin ”todellinen” kaistanleveys näen. Otetaan helppo esimerkki: asiakkaalla on 100 Mbps linkki Internetiin, ja hänen on siirrettävä 1TB-tiedosto palveluntarjoajalleen.
tavanomaiset teoreettiset laskelmat olisivat yksinkertaisia:
100 Mbps = 12,5 MBps
1 TB = 1000 GB = 1000000 MB
1000000 MB / 12,5 MBps = 80000 sekuntia = 1333,33 minuuttia = 22,22 tuntia tai (d:h:m:S): 22h:13m:20s
mutta jos yrität lähettää tämän tiedoston palveluntarjoajallesi, se ei koskaan vie tätä aikaa, ellet sinä ja palveluntarjoajasi ole kytketty samaan ethernet-linkkiin; mikä tarkoittaa, et käytä internetiä lainkaan!
kuinka oikein lasketaan siirtonopeus
laskin edellisen arvon alas tarkkoihin sekunteihin tällä mukavalla työkalulla:
http://wintelguy.com/transfertimecalc.pl
jos katsot sitä kuitenkin, näet saman ”likiarvovirheen”, josta puhuin aiemmin: vain koko ja kaistanleveys otetaan huomioon. Ei ikkunan kokoa, eikä viivettä. Mutta WintelGuy verkkosivuilla on enemmän uskomattomia työkaluja, ja yksi on juuri sitä, mitä tarvitsemme:
http://wintelguy.com/wanperf.pl
tässä yksi, näet, että jokainen tärkeä parametri on lueteltu ja käytetään laskelmia. Toistetaan sama laskelma kuin ennenkin, mutta nyt hieman uutta tietoa:
lisäsimme 40ms latenssin ja hyväksyimme kaksi muuta oletusarvoa (Pakettihäviö ja MTU). Meillä ei ole mitään mahdollisuutta vaihtaa MTU: ta Internet-linkin kautta, koska meidän ja palveluntarjoajiemme välillä on monia laitteita, jotka eivät ole hallinnassamme. Tämä on yksi syy siihen, miksi monet Telco tarjoavat asiakkailleen MPLS-yksityisiä linkkejä julkisen Internetin VPN-linkkien sijaan, koska palveluntarjoaja voi ohjata ja virittää yhteysasetuksia (NO, on olemassa myös hieman lock-in, mutta tämä on toinen tarina…). Täällä, näet, että TCP yläpuolella ja latenssi vaikuttavat jo todellinen suurin läpimeno, joka laskee alas 94.9 MBps. Sanoisin kuitenkin, että tämä on todella hyvä tilanne, ja se voisi olla huonompi: pidetään kaikki muut parametrit kuten ennen, ja lisätä latenssi 150ms:
läpimeno on vähentynyt 77.8 Mbps, menetys 22% teoreettinen nopeus. Ja se voi olla vielä pahempaa: ADSL-yhteys esimerkiksi on enemmän pakettihäviö, joten jos pidämme 150ms latenssi, mutta lisäämme pakettihäviö 10 kertaa, saamme tämän (sivuuttaa se, että ADSL voi mennä 100 Mbps, se on tehty pitää sama nopeus kaikissa esimerkeissä):
Pakettihäviö on kasvanut 0.0001 :stä (1 kadonnut Paketti jokaista 10000 lähetettyä) 0: een.001 (1 kadonnut Paketti jokaista 1000 lähetettyä), ja pelkästään tämä arvo on laskenut maksiminopeuttamme 75%!!!
joten seuraavan kerran, kun näet uuden kiiltävän Internet-linjasi toimivan odotetulla tavalla, ennen kuin syytät palveluntarjoajaasi tai ohjelmistoa, jota käytät tietojen siirtämiseen, katso paremmin verkkoasi. Saatat huomata, että nämä 25mbps on nopein nopeus voit saada.