Razumevanje i rešavanje kašnjenja u mreži
Kašnjenje mreže, poznato i kao latencija, odnosi se na zastoje koji se javljaju prilikom prenosa zahteva ili podataka od izvora do odredišta unutar mrežnog sistema. Hajde da istražimo kako možete efikasno rešiti probleme vezane za kašnjenje mreže.
Svaka interakcija koja zahteva korišćenje mreže, kao što su otvaranje veb stranice, kliktanje na link ili pokretanje aplikacije i igranje onlajn igara, predstavlja aktivnost. Korisnička aktivnost se može smatrati zahtevom, a vreme potrebno da veb aplikacija odgovori na taj zahtev definiše se kao vreme odziva.
Ovo vremensko kašnjenje takođe uključuje i period potreban serveru da obradi zahtev. Dakle, ono se definiše kao vreme kružnog putovanja (round-trip time) – ukupno vreme koje prođe od trenutka kada je zahtev poslat, preko njegove obrade, do trenutka kada korisnik primi i dekodira odgovor.
Izraz „mala latencija“ opisuje situacije kada su kašnjenja u prenosu podataka relativno kratka. Nasuprot tome, velika ili preterana kašnjenja su neželjena jer negativno utiču na korisničko iskustvo.
Kako popraviti kašnjenje mreže?
Dostupan je veliki broj alata i softvera na internetu koji vam mogu pomoći da analizirate i rešite probleme u mreži. Neki od njih se plaćaju, dok su drugi besplatni. Jedan od veoma korisnih alata je Wireshark, aplikacija otvorenog koda sa GPL licencom koja služi za hvatanje paketa podataka u realnom vremenu. Wireshark je globalno najpopularniji i najčešće korišćen analizator mrežnih protokola.
Wireshark vam omogućava da detaljno analizirate mrežne pakete koje ste uhvatili. Možete ih koristiti za analizu u realnom vremenu ili van mreže. Ova aplikacija pruža mogućnost da „pod mikroskopom“ pregledate mrežni saobraćaj, filtrirate ga i detaljno istražite kako biste pronašli uzrok problema, pomažući vam u analizi mreže i poboljšanju njene sigurnosti.
Šta uzrokuje kašnjenje mreže?
Postoji nekoliko glavnih razloga koji dovode do sporog mrežnog povezivanja:
- Visoka latencija
- Zavisnosti aplikacija
- Gubitak paketa
- Uređaji za presretanje
- Neefikasne veličine prozora
U nastavku ćemo detaljnije ispitati svaki od navedenih uzroka kašnjenja mreže i kako Wireshark može pomoći u njihovom rešavanju.
Analiza problema pomoću Wiresharka
Visoka latencija
Visoka latencija, kao što smo ranije objasnili, označava vreme potrebno da podaci pređu put od jedne do druge krajnje tačke. Ona ima ogroman uticaj na performanse mrežnih komunikacija. Kao primer, pogledajmo dijagram koji ilustruje vreme kružnog putovanja prilikom preuzimanja datoteke na putanji sa visokom latencijom. Vreme kružnog putovanja često može premašiti jednu sekundu, što se smatra neprihvatljivim.
- U Wiresharku, idite na opciju „Statistics“.
- Odaberite opciju „TCP Stream Graph“.
- Izaberite grafikon „Round Trip Time“ da biste videli koliko vremena je potrebno za preuzimanje datoteke.
Wireshark se koristi za izračunavanje vremena kružnog putovanja kako bi se utvrdilo da li je to uzrok loših performansi komunikacione mreže protokola za kontrolu prenosa (TCP). TCP se koristi u različitim aplikacijama, uključujući surfovanje internetom, prenos podataka, protokole za prenos datoteka i mnoge druge. U mnogim situacijama, operativni sistem se može konfigurisati da efikasnije radi na mrežnim kanalima sa visokom latencijom, posebno kada su u pitanju računari sa Windows XP operativnim sistemom.
Zavisnosti aplikacija
Određene aplikacije su zavisne od drugih aplikacija, procesa ili komunikacije sa hostom. Na primer, ako se vaša aplikacija za bazu podataka oslanja na konekcije sa drugim serverima da bi dobila podatke, slabe performanse tih drugih servera mogu usporiti učitavanje vaše aplikacije.
Kao primer, uzmimo iskustvo pretraživanja interneta, gde ciljni server komunicira sa nekoliko drugih veb lokacija. Na primer, da biste učitali glavnu stranicu sajta www.espn.com, prvo morate da kontaktirate 16 hostova koji obezbeđuju oglase i sadržaj za glavnu stranicu www.espn.com.
Na prikazanoj slici, Wiresharkov prozor „HTTP Load Distribution“ prikazuje listu svih servera koje koristi početna stranica www.espn.com.
Gubitak paketa
Jedan od najčešćih problema koji se javljaju u mrežama je gubitak paketa. Do gubitka paketa dolazi kada se paketi podataka ne dostavljaju ispravno od pošiljaoca do primaoca preko interneta. Kada korisnik poseti veb lokaciju i počne da preuzima sadržaj, izgubljeni paketi prouzrokuju ponovne prenose, povećavajući vreme potrebno za preuzimanje veb datoteka i usporavajući ceo proces.
Štaviše, kada aplikacija koristi TCP, gubitak paketa ima poseban negativan uticaj. Kada TCP veza detektuje izgubljen paket, brzina protoka se automatski usporava kako bi se nadoknadili problemi u mreži. Protok se postepeno poboljšava do prihvatljivog tempa sve dok se ne desi sledeći gubitak paketa, što značajno smanjuje protok podataka. Velika preuzimanja datoteka, koja bi trebalo da se odvijaju glatko preko mreže, posebno su pogođena gubitkom paketa.
Kako se manifestuje gubitak paketa? Postoje dva moguća scenarija ako program radi preko TCP protokola. U jednom slučaju, prijemnik prati redne brojeve paketa i otkriva da neki paket nedostaje. Klijent šalje tri zahteva za ponovno slanje nedostajućeg paketa (duplirani ACK), što dovodi do ponovnog prenosa. Ako pošiljalac primeti da prijemnik nije potvrdio prijem paketa, on smatra da je došlo do isteka vremena i šalje paket ponovo.
Wireshark označava preopterećenje mreže i duplirane potvrde koje uzrokuju ponovni prenos saobraćaja, koristeći različite boje. Veliki broj dupliranih potvrda ukazuje na gubitak paketa i značajno kašnjenje u mreži.
Za poboljšanje brzine mreže, od kritičnog je značaja da se precizno odredi mesto gde dolazi do gubitka paketa. Kada se detektuje gubitak paketa, sa Wiresharkom se krećemo duž mrežne putanje dok više ne detektujemo gubitak. U tom trenutku smo locirali mesto gubitka paketa i možemo se fokusirati na njegovo rešavanje.
Uređaji za presretanje
Mrežni uređaji koji usmeravaju saobraćaj, kao što su svičevi, ruteri i zaštitni zidovi, donose odluke o prosleđivanju paketa. Kada se pojavi gubitak paketa, ove uređaje treba istražiti kao potencijalne uzroke problema.
Latencija se može povećati na putanji kroz ove uređaje za povezivanje. Na primer, ako je omogućeno određivanje prioriteta saobraćaja, može se javiti dodatno kašnjenje u toku sa nižim prioritetom.
Neefikasne veličine prozora
Osim Microsoft operativnog sistema, postoje i drugi „prozori“ u TCP/IP umrežavanju.
- Klizni prozor
- Prozor prijemnika
- Prozor kontrole preopterećenja
Ovi prozori zajednički utiču na performanse mrežne komunikacije zasnovane na TCP-u. Hajde da definišemo svaki od ovih prozora i objasnimo njihov uticaj na propusni opseg mreže.
Klizni prozor
Klizni prozor se koristi za slanje narednih TCP segmenata preko mreže, dok se podaci priznaju. Pošiljalac dobija potvrde za prenete delove podataka i klizni prozor se proširuje. Sve dok nema izgubljenih paketa, mogu se prenositi veće količine podataka. Kada se paket izgubi, klizni prozor se smanjuje jer mreža ne može da upravlja povećanom količinom podataka.
Prozor prijemnika
Prozor prijemnika TCP steka je bafer prostor. Kada se podaci prime, oni se čuvaju u ovom prostoru dok ih aplikacija ne preuzme. Prozor prijemnika se popunjava kada aplikacija ne drži korak sa brzinom prijema podataka, što dovodi do situacije „nula prozora“. U tom slučaju, sav prenos podataka do hosta mora biti zaustavljen i brzina protoka pada na nulu. Metoda poznata kao „Window Scaling“ (RFC 1323) omogućava hostu da poveća veličinu prozora prijemnika i smanji verovatnoću pojave scenarija nula prozora.
Gornja slika ilustruje kašnjenje od 32 sekunde u mrežnoj komunikaciji zbog scenarija nula prozora.
Prozor preopterećenja
Prozor preopterećenja definiše maksimalnu količinu podataka koju mreža može da obradi. Na ovu vrednost utiče brzina slanja paketa od strane pošiljaoca, stopa gubitka paketa i veličina prozora prijemnika. Prozor preopterećenja se stalno povećava tokom normalne mrežne komunikacije, dok se ne završi prenos ili dok ne dostigne „plafon“ koji je određen zdravljem mreže, mogućnostima prenosa pošiljaoca ili veličinom prozora prijemnika. Svaka nova konekcija započinje proceduru pregovaranja o veličini prozora.
Saveti za zdravu mrežu
- Naučite kako da koristite Wireshark kao prvi korak u rešavanju problema, kako biste brzo i efikasno otkrili izvor loših performansi.
- Identifikujte izvor kašnjenja na mrežnoj putanji i, ako je moguće, smanjite ga na prihvatljiv nivo.
- Pronađite i rešite uzrok gubitka paketa.
- Proverite veličinu prozora za prenos podataka i, ako je potrebno, smanjite je.
- Analizirajte performanse uređaja za presretanje da biste videli da li dodaju latenciju ili gube pakete.
- Optimizujte aplikacije kako bi mogle da šalju veće količine podataka i, ako je moguće, preuzimaju podatke iz prozora prijemnika.
Zaključak 👨🏫
Razmotrili smo glavne razloge za probleme sa mrežnim performansama, ali jedan važan faktor koji ne treba zanemariti jeste i razumevanje ponašanja mrežnih komunikacija. Wireshark pruža uvid u mrežu, slično kao što rendgenski i CT skener pružaju uvid u ljudsko telo radi precizne i brze dijagnoze. Ovaj alat je postao neophodan za lociranje i dijagnostikovanje problema u mreži.
Sada biste trebali biti u mogućnosti da analizirate i rešavate probleme mrežnih performansi koristeći različite Wireshark filtere i alate. 👍