Feilsøking av nettverksforsinkelse: En dybdegående veiledning
Nettverksforsinkelse, eller latenstid, refererer til forsinkelsen som oppstår når data eller forespørsler overføres fra en kilde til en destinasjon i et nettverk. Dette er en vanlig utfordring som kan påvirke brukeropplevelsen negativt. La oss utforske hvordan du kan feilsøke og redusere nettverksforsinkelse.
Alle handlinger som involverer nettverksbruk, som å laste inn en nettside, klikke på en link, eller spille et online spill, kan betraktes som aktiviteter. En brukers aktivitet resulterer i en forespørsel, og responstiden for en nettapplikasjon er tiden det tar å besvare denne forespørselen. Denne responstiden inkluderer også tiden det tar for serveren å behandle forespørselen.
Forsinkelsen er kjent som rundturtid – den totale tiden det tar for en forespørsel å bli sendt, behandlet, og mottatt tilbake av brukeren i en forståelig form. Kort sagt, «lav latens» indikerer minimale forsinkelser i dataoverføring, mens lange forsinkelser eller overdreven ventetid er uønsket da det forringer brukeropplevelsen.
Hvordan kan man redusere nettverksforsinkelse?
Det finnes en rekke verktøy og programvarer tilgjengelig for å analysere og feilsøke nettverk, både betalte og gratis alternativer. Et spesielt nyttig verktøy er Wireshark, som er en åpen kildekode-applikasjon under GPL-lisens. Wireshark gir mulighet for å fange og analysere datapakkene i sanntid og er blant de mest populære nettverksprotokollanalysatorene globalt.
Wireshark lar deg detaljert granske nettverkstrafikk ved å fange opp datapakkene. Disse pakkene kan analyseres både live og offline, noe som gir verdifull innsikt for feilsøking, nettverksanalyse og sikkerhet. Du kan filtrere og bore deg ned i datatrafikken for å identifisere kilden til problemene.
Hva forårsaker nettverksforsinkelse?
Flere faktorer kan bidra til treg nettverkstilkobling, inkludert:
- Høy latenstid
- Applikasjonsavhengigheter
- Pakketap
- Nettverksenheter som forårsaker flaskehalser
- Ineffektive vindusstørrelser
La oss se nærmere på hver av disse årsakene, og hvordan Wireshark kan brukes for å finne og løse problemene.
Analyse med Wireshark
Høy latenstid
Høy latenstid beskriver tiden det tar data å bevege seg fra ett endepunkt til et annet. Dette påvirker nettverkskommunikasjonen betydelig. Se for deg nedlasting av en fil over en linje med høy latenstid. Tiden det tar for dataene å reise frem og tilbake kan ofte overstige et sekund, noe som er uakseptabelt.
- Åpne Wireshark-statistikker.
- Velg «TCP Stream Graph».
- Velg «Round Trip Time Graph» for å analysere nedlastingstiden.
Wireshark kan brukes til å beregne rundturtiden for å avgjøre om dette er årsaken til dårlig TCP-kommunikasjon. TCP brukes i mange applikasjoner, for eksempel nettsurfing og filoverføring. I mange tilfeller kan operativsystemet justeres for å forbedre ytelsen over linjer med høy latenstid, spesielt for eldre systemer.
Applikasjonsavhengigheter
Noen applikasjoner er avhengige av andre applikasjoner, prosesser eller kommunikasjon med eksterne servere. For eksempel kan en databaseapplikasjon trenge å koble seg til flere servere for å hente data. Hvis disse eksterne serverne har dårlig ytelse, vil det også påvirke ytelsen til den lokale applikasjonen.
Ta for eksempel en nettleseropplevelse, der en server refererer til flere andre nettsteder. For å laste inn forsiden til www.espn.com, kan det være nødvendig å laste inn elementer fra opptil 16 forskjellige servere som leverer annonser og annet innhold.
Bildet ovenfor viser hvordan HTTP Load Distribution-vinduet i Wireshark lister opp alle servere som brukes av www.espn.com.
Pakketap
Pakketap er et vanlig problem som oppstår når datapakker ikke leveres korrekt fra avsender til mottaker. Når en bruker laster inn en nettside, vil tapte pakker føre til at data må overføres på nytt, noe som øker lastetiden og reduserer den generelle ytelsen.
Når en applikasjon bruker TCP, vil tapte pakker ha en spesielt negativ effekt. Hvis en TCP-tilkobling oppdager en tapt pakke, vil hastigheten automatisk reduseres for å kompensere for nettverksproblemene. Hastigheten vil deretter gradvis økes igjen, inntil en ny pakke går tapt, noe som gir et betydelig tap i datagjennomstrømning. Store filnedlastinger vil lide betydelig under pakketap.
Hvordan oppdages pakketap? Det finnes to vanlige scenarioer når programmet kjører over TCP. Det første er at mottakeren oppdager en manglende pakke basert på sekvensnumre. Klienten vil da be om pakken på nytt (dobbel bekreftelse). Det andre er at avsenderen opplever en «timeout» fordi mottakeren ikke har bekreftet at pakken er mottatt. I begge tilfeller vil datapakken bli overført på nytt.
Wireshark vil indikere overbelastning i nettverket og fargekode den problematisk trafikken som skaper gjentatte bekreftelser og retransmisjon. Et stort antall dupliserte bekreftelser signaliserer pakketap og forsinkelser i nettverket.
For å forbedre nettverkshastigheten er det avgjørende å finne den spesifikke plasseringen av pakketapet. Når pakketap oppstår, kan man flytte «Wireshark-lytten» nedover nettverksbanen til pakketapet ikke lenger er synlig. Da befinner vi oss «oppstrøms» fra feilpunktet og kan fokusere feilsøkingen her.
Nettverksenheter som forårsaker flaskehalser
Nettverkstrafikk betjenes av sammenkoblede enheter som ruter, brytere og brannmurer. Når pakketap oppstår, bør disse enhetene undersøkes som mulige årsaker.
Disse enhetene kan legge til latenstid i nettverksbanen. For eksempel kan trafikprioritering føre til at lavprioritert trafikk får ekstra forsinkelse.
Ineffektive vindusstørrelser
I tillegg til Microsoft sitt operativsystem finnes det andre vinduer i TCP/IP-nettverk:
- Skyvevindu
- Mottakervindu
- Overbelastningskontrollvindu
Disse vinduene påvirker TCP-basert kommunikasjonsytelse. La oss definere hvert vindu og deres innvirkning på nettverksbåndbredden.
Skyvevindu
Skyvevinduet sender de neste TCP-segmentene over nettverket når data bekreftes. Avsenderen mottar bekreftelser for overførte datafragmenter og skyvevinduet utvides. Så lenge det ikke er tapte overføringer, kan større mengder data overføres. Hvis en pakke går tapt, reduseres skyvevinduet fordi nettverket ikke klarer å håndtere den økte datamengden.
Mottakervindu
Mottakervinduet i TCP-stakken er et bufferrom. Når data mottas, lagres det her til en applikasjon henter dem. Hvis applikasjonen ikke holder tritt med mottaksfrekvensen, fylles mottakervinduet, og dette kan føre til et «nullvindu»-scenario. All dataoverføring til verten må stoppe når en mottaker melder om nullvindu, noe som gjør at gjennomstrømningshastigheten faller til null. En metode kalt Window Scaling (RFC 1323) lar en vert øke mottakervinduet og redusere sannsynligheten for nullvindu.
Bildet ovenfor viser en 32 sekunders forsinkelse i nettverkskommunikasjon på grunn av et nullvindu.
Overbelastningsvindu
Overbelastningsvinduet definerer den maksimale mengden data nettverket kan håndtere. Senderens pakkeoverføringshastighet, nettverkspakketapshastighet og mottakerens vindusstørrelse bidrar alle til dette. Overbelastningsvinduet øker gradvis ved god nettverkskommunikasjon, frem til overføringen er fullført, eller det når et «tak» definert av nettverkets tilstand. Hver ny tilkobling starter en forhandlingsprosess for vindusstørrelsen på nytt.
Tips for et sunt nettverk
- Lær deg å bruke Wireshark som et viktig verktøy for raskt å identifisere kilden til dårlig ytelse.
- Finn og reduser latenstiden i nettverksbanen.
- Identifiser og løs kilden til pakketap.
- Sjekk størrelsen på dataoverføringsvinduene og juster dem om mulig.
- Evaluer ytelsen til de ulike nettverksenhetene for å avdekke om de bidrar til forsinkelser eller pakketap.
- Optimaliser applikasjoner for å håndtere større datamengder og raskere hente data fra mottakervinduet.
Avslutning
Vi har nå gått gjennom de viktigste årsakene til nettverksproblemer. Et viktig element som ofte blir oversett, er manglende forståelse av nettverksadferd. Wireshark gir innsyn i nettverket på samme måte som røntgen eller CT-skanning gir innsyn i menneskekroppen, noe som muliggjør nøyaktige og raske diagnoser. Wireshark er et essensielt verktøy for å identifisere og diagnostisere nettverksproblemer.
Du skal nå være i stand til å analysere og løse nettverksytelsesproblemer ved hjelp av Wireshark sine filtre og verktøy. 👍