Vergeet latency niet wanneer u netwerkprestaties berekent

0 Flares Twitter 0 Facebook 0 LinkedIn 0 Email — 0 Flares ×

In mijn werk moet ik veel leren over meerdere onderwerpen van het. Vooral in de virtualisatie markt, veel mensen zijn meestal goed voorbereid als het gaat om Infrastructuur, servers en opslag, maar ik kwam erachter dat het zwakste punt is vele malen netwerken. Er zijn een aantal onderwerpen die zijn obscure voor velen, zoals Layer2 vs Layer3, BGP, Spanning Tree, maar er is een onderwerp dat is echt belangrijk, zelfs voor de infrastructuur jongens, maar het is bijna onbekend voor hen: Latency.

Wat is latentie?

zo snel als het kan, is zelfs de lichtsnelheid niet oneindig. Het duurt even voordat een foton van punt A naar punt B gaat, en bijvoorbeeld het licht dat door de zon wordt gegenereerd duurt 8 minuten om de aarde te bereiken. Onze computernetwerken zijn niet eens in de buurt van die snelheid, omdat in de eerste plaats onze verbindingen zijn meestal niet gemaakt met optische vezels (die zou uiteindelijk zo snel als licht), maar met elektrische kabels en dus transmissies over deze media zijn langzamer, maar ook omdat er veel apparaten tussen bron en bestemming die nodig zijn om het pakket te manipuleren. De bronhost, switches, routers, firewalls, de doelhost; elke “hop” voegt tijd toe aan de totale tijd die een pakket nodig heeft om zijn bestemming te bereiken. We kunnen deze situatie zo ontwerpen:

(bron: https://stackoverflow.com/questions/8682702/how-to-calculate-packet-time-from-latency-and-bandwidth )

dus, simpel gezegd, latency is de tijd die het kost om een pakket te gaan van bron naar bestemming.

in een lokaal netwerk is het eenvoudig om enige benadering toe te passen en te verklaren dat de verwerkingsvertraging 0 is, en ook dat de meerdere switches tussen twee hosts geen extra latentie toevoegen. Immers, wanneer we een ping commando uitvoeren om te controleren of een host verbonden is, is latency altijd “onder 1 ms” :

om deze reden is het niet ongewoon om de maximale overdrachtssnelheid te berekenen door simpelweg te kijken naar de beschikbare bandbreedte:

– 1 Gb ethernet link, gedeeld door 8, geeft me 125 MBps

– 10 Gb ethernet link betekent 1250 MBps

enzovoort. En als mijn bandbreedte 125MBps is, betekent dat dat ik elke seconde 125MB kan overbrengen.

Waarom is latentie belangrijk?

omdat het negeren, samen met andere parameters, leidt tot valse resultaten!

Kijk naar het vorige voorbeeld. Zelfs op een lokaal netwerk, waar de latency bijna nul is, zijn er andere parameters die van invloed kunnen zijn op de uiteindelijke snelheid. Eén boven alles: TCP venstergrootte. Ik ben niet van plan om te herhalen wat al is geschreven op een perfecte manier door anderen, dus als je meer wilt leren, lees dit bericht door Brad Hedlund. Wat is het addertje? De verbindingssnelheid waar we het meestal over hebben is de pure kabelverbindingssnelheid. Maar daarnaast moeten we meerdere protocollen draaien, de ene boven de andere, zoals TCP over IP. TCP splitst gegevens in pakketten, en de grootte van de pakketten wordt bepaald door de grootte van het TCP-venster: groter deze waarde, meer gegevens kunnen worden overgedragen in een enkele transmissie. Vervolgens wordt een payload verpakt in een pakket, dus er zijn extra bytes voor elk pakket dat moet worden verzonden, zelfs als ze geen gegevens bevatten (er is ook wat overhead voor het onderliggende ethernet frame, denk na over alle discussie met betrekking tot Jumbo Frames). Tenslotte, TCP latency speelt zijn rol, omdat ik het volgende pakket alleen kan verzenden als het vorige zijn bestemming heeft bereikt, omdat de link anders bezig is met het overbrengen van de andere pakketten.

latentie en venstergrootte worden van het grootste belang wanneer we van lokale netwerken naar openbare netwerken gaan. Hier verdwijnt de waarde <1ms en hebben we hogere waarden om rekening mee te houden. Hoger is de latentie, kleiner is de maximale” echte ” bandbreedte die Ik zal zien. Laten we een eenvoudig voorbeeld nemen: een klant heeft 100 Mbps link naar Internet, en moet een 1TB-bestand overzetten naar zijn serviceprovider.

de gebruikelijke theoretische berekeningen zouden eenvoudig zijn:

100 Mbps = 12,5 MBps

1 TB = 1000 GB = 1000000 MB

1000000 MB / 12,5 MBps = 80000 seconden = 1333,33 minuten = 22,22 uur of (d: h: m: s): 22h: 13m:20s

maar als u probeert dit bestand naar uw provider te sturen, zal het nooit deze tijd in beslag nemen, tenzij u en uw provider verbonden zijn met dezelfde ethernet-link; Wat betekent dat u helemaal geen Internet gebruikt!

hoe de overdrachtsnelheid correct te berekenen

ik heb de vorige waarde berekend tot de exacte seconden met dit leuke Gereedschap:

http://wintelguy.com/transfertimecalc.pl

als je er echter naar kijkt, zie je dezelfde “benaderingsfout” waar ik het eerder over had: alleen Grootte en bandbreedte worden in aanmerking genomen. Geen venstergrootte en geen latentie. Maar de WintelGuy website heeft meer geweldige tools, en een is precies wat we nodig hebben:

http://wintelguy.com/wanperf.pl

in deze, kunt u zien dat elke belangrijke parameter wordt vermeld en gebruikt voor de berekeningen. Laten we dezelfde berekening herhalen die we eerder deden, maar nu met wat nieuwe informatie:

We voegden 40ms latency toe en accepteerden de andere twee standaardwaarden (Packet loss en MTU). We hebben geen kans om MTU via een internetverbinding te wijzigen, omdat er veel apparaten tussen ons en onze dienstverleners zijn die niet onder onze controle staan. Dit is een van de redenen waarom veel Telco bieden aan hun klanten MPLS private links in plaats van VPN-links via openbaar internet, omdat de verbinding instellingen kunnen worden gecontroleerd en afgestemd door de provider (goed, er is een beetje van lock-in te, maar dit is een ander verhaal…). Hier, je ziet dat TCP overhead en latency zijn al van invloed op de werkelijke maximale doorvoer, dat daalt tot 94,9 MBps. Ik zou echter zeggen dat dit een echt goede situatie is, en het zou erger kunnen zijn: laten we elke andere parameter als voorheen houden, en de latency verhogen tot 150ms:

de doorvoer is gedaald tot 77,8 Mbps, een verlies van 22% van de theoretische snelheid. En het kan nog erger zijn: een ADSL-verbinding heeft bijvoorbeeld meer pakketverlies, dus als we 150ms latency houden, maar we verhogen pakketverlies met 10 keer, krijgen we dit (negeer het feit dat geen ADSL naar 100 Mbps kan gaan, het wordt gedaan om dezelfde snelheid te houden over alle voorbeelden):

pakketverlies is verhoogd van 0,0001 (1 verloren pakket voor elke 10000 verzonden) naar 0.001 (1 verloren pakket voor elke 1000 verzonden), en deze waarde alleen al heeft onze maximale snelheid verlaagd met 75%!!!

dus, de volgende keer dat u ziet dat uw nieuwe shiny Internet lijn niet presteert zoals verwacht, voordat u de schuld geeft aan uw serviceprovider of de software die u gebruikt om deze gegevens over te dragen, kijk dan beter naar uw netwerk. U kunt vinden dat die 25Mbps is de snelste snelheid die u kunt krijgen.

Write a Comment

Het e-mailadres wordt niet gepubliceerd.