i jobben min må jeg lære mye om flere emner AV DET. Spesielt i virtualiseringsmarkedet er mange mennesker vanligvis godt forberedt når det gjelder infrastruktur, servere og lagring, men jeg fant ut at det svakeste punktet er mange ganger nettverk. Det er noen emner som er uklare for mange, som Layer2 vs Layer3, BGP, Spanning Tree, men det er ett emne som er veldig viktig selv for infrastrukturgutter, men det er nesten ukjent for dem: Latens.
Hva er latens?
så fort det kan være, er selv lyshastigheten ikke uendelig. Det tar tid å en foton å gå fra punkt A Til Punkt B, og for eksempel lyset som genereres Av Solen tar 8 minutter å nå Jorden. Våre datanettverk er ikke engang nær den hastigheten, for først og fremst er våre tilkoblinger ikke laget med optisk fiber (som til slutt vil være så fort som lys), men med elektriske kabler og så er overføringer over disse mediene langsommere, men også fordi det er mange apparater mellom kilde og destinasjon som trenger å manipulere pakken. Kilden vert, brytere, rutere, brannmurer, målet vert; hver » hop » legger tid til den totale tiden som en pakke trenger for å nå målet. Vi kan designe denne situasjonen slik:
(kilde: https://stackoverflow.com/questions/8682702/how-to-calculate-packet-time-from-latency-and-bandwidth )
så, bare sagt, latens er tiden det tar å en pakke å gå fra kilde til destinasjon.
i et lokalt nettverk er det enkelt å bruke noen tilnærming og erklære at behandlingsforsinkelsen er 0, og at flere brytere mellom to verter ikke legger til ekstra ventetid. Når alt kommer til alt, når vi kjører en ping-kommando for å sjekke om en vert er tilkoblet, er latens alltid «under 1 ms» :
av denne grunn er det ikke uvanlig å beregne maksimal overføringshastighet ved å bare se på tilgjengelig båndbredde:
– 1 Gb ethernet-kobling , delt med 8, gir meg 125 MBps
og så videre. Og hvis båndbredden min er 125 mbps, betyr det at jeg kan overføre 125 MB hvert sekund.
Hvorfor er latens viktig?
fordi å ignorere det, sammen med andre parametere, fører til falske resultater!
Se på det forrige eksemplet. Selv på et lokalt nettverk, hvor latens er nær null, er det andre parametere som kan påvirke slutthastigheten. En over alt: TCP Vindu størrelse. Jeg kommer ikke til å gjenta det som allerede er skrevet på en perfekt måte av andre, så hvis du vil lære mer, les Dette innlegget Av Brad Hedlund. Hva er haken? Koblingshastigheten vi vanligvis snakker om, er den rene kabelkoblingshastigheten. Men på toppen av det må vi kjøre flere protokoller, den ene over den andre, som TCP over IP. TCP deler data i pakker, og størrelsen på pakkene dikteres AV TCP-Vinduets størrelse: større denne verdien, flere data kan overføres i en enkelt overføring. Deretter er en nyttelast pakket inne i en pakke, så det er flere byte for hver pakke som skipet skal overføres, selv om de ikke inneholder noen data (det er også noe overhead for den underliggende ethernet-rammen, tenk på all diskusjon med Hensyn Til Jumbo-Rammer). ENDELIG spiller TCP latency sin del, fordi jeg bare kan overføre neste pakke når den forrige har nådd målet, fordi lenken ellers er opptatt med å overføre de andre pakkene.
Ventetid og Vindustørrelse blir avgjørende når vi flytter fra lokale nettverk til offentlige nettverk. Her går verdien <1ms bort, og vi har høyere verdier å ta hensyn til. Høyere er latens, mindre er maksimal «ekte» båndbredde jeg vil se. La oss ta et enkelt eksempel: en kunde har 100 Mbps-kobling Til Internett, og må overføre EN 1tb-fil til tjenesteleverandøren.
de vanlige teoretiske beregningene vil være enkle:
100 Mbps = 12,5 MBps
1 TB = 1000 GB = 100000 MB
1000000 MB / 12,5 MBps = 80000 sekunder = 1333,33 minutter = 22,22 timer eller (d:h:m:s): 22h:13m:20s
men hvis du prøver å sende denne filen til leverandøren din, vil det ALDRI ta denne tiden å fullføre, med mindre du og tjenesteleverandøren din er koblet til samme ethernet-kobling; noe som betyr at Du ikke bruker Internett i Det hele tatt!
slik beregner du overføringshastigheten
jeg beregnet forrige verdi ned til de nøyaktige sekundene ved hjelp av dette fine verktøyet:
http://wintelguy.com/transfertimecalc.pl
hvis du ser på det, vil du se den samme «tilnærmingsfeilen» jeg snakket om tidligere: bare størrelse og båndbredde er tatt i betraktning. Ingen vindu størrelse, og ingen ventetid. Men wintelguy nettstedet har flere fantastiske verktøy, og en er akkurat det vi trenger:
http://wintelguy.com/wanperf.pl
I denne kan du se at alle viktige parametere er oppført og brukt til beregningene. La oss gjenta den samme beregningen vi gjorde før, men nå med litt ny informasjon:
Vi la til 40ms latens, og aksepterte de to andre standardverdiene (Pakketap og MTU). VI har ingen mulighet til å endre MTU via En internett-kobling, da det er mange apparater mellom oss og våre tjenesteleverandører som ikke er under vår kontroll. Dette er en av grunnene til at Mange Telco tilbyr SINE kunder mpls private koblinger i stedet FOR VPN-koblinger over offentlig internett, fordi tilkoblingsinnstillingene kan styres og innstilles av leverandøren (vel, det er litt lock-in også, men dette er en annen historie…). HER ser DU AT TCP overhead og latency allerede påvirker den virkelige maksimale gjennomstrømningen, som faller ned til 94.9 MBps. Jeg vil imidlertid si at dette er en veldig god situasjon, og det kan bli verre: la oss holde alle andre parametere som før, og øke latensen til 150ms:
Gjennomstrømningen er redusert til 77,8 Mbps, et tap på 22% av den teoretiske hastigheten. OG det kan bli enda verre: EN adsl-tilkobling har for eksempel mer pakketap, så hvis vi holder 150ms ventetid, men vi øker pakketapet med 10 ganger, får vi dette (ignorere DET faktum at INGEN ADSL kan gå til 100 Mbps, det er gjort for å holde samme hastighet på tvers av alle eksemplene):
Pakketapet er økt fra 0.0001 (1 tapt pakke for hver 10000 overført) til 0.001 (1 tapt pakke for hver 1000 overført), og denne verdien alene har redusert vår maksimale hastighet med 75%!!!
så neste gang du ser at den nye skinnende Internettlinjen ikke fungerer som forventet, før du skylder tjenesteleverandøren eller programvaren du bruker til å overføre disse dataene, må du se bedre på nettverket ditt. Du kan oppleve at de 25Mbps er den raskeste hastigheten du kan få.