Mrežno zagušenje

S Vikipedije, slobodne enciklopedije

Mrežno zagušenje kod umrežavanja podataka je smanjen kvalitet usluga koji se javlja kada mrežni čvor nosi više podataka nego što može da obradi. Tipični efekti su kašnjenje usled čekanja, gubitak paketa ili blokiranje novih konekcija. Posledica poslednja dva efekta je da postepen porast opterećenja dovodi do neznatnog povećanja ili čak smanjenja protoka u mreži.[1]

Mrežni protokoli koji koriste agresivne retransmisije da se nadoknadi gubitak paketa zbog zagušenja može povećati zagušenje, čak i nakon što je početno opterećenje smanjeno na nivo koji inače ne bi doveo do opterećenja mreže. Takve mreže pokazuju dva stabilna stanja pod istim nivoom opterećenja. Stabilno stanje sa malim protokom je poznato kao kongestivni kolaps.

Mreže koriste tehnike kontrole zagušenja i izbegavanje zagušenja da bi izbegle kongestivni kolaps. Tu spadaju: eksponencijalni backoff u protokolima kao što je 802.11 CSMA/CA i Ethernet, smanjenje prozora u TCP, i odziv u uređajima kao što su ruteri. Drugi metod je da se implementiraju šeme prioriteta, koje prenose neke pakete sa većim prioritetom od ostalih. Šeme prioriteta ublažavaju efekat zagušenja za servise, kao što su 802.1p.

Treći metod izbegavanja je eksplicitna dodela mrežnih resursa specifičnim tokovima. Jedan primer toga je upotreba Contention-Free Transmission Opportunities (CFTXOPs) u ITU-T G.hn standardu, koji omogućava veliku brzinu (do 1 Gbit/s) lokalnog umrežavanja preko različitih žica (elektro mreža, telefonske linije i koaksijalni kablovi).

Kapacitet mreže[uredi | uredi izvor]

Mrežni resursi su ograničeni, uključujući vreme obrade rutera i samog protoka.

Na primer:

  • Kapacitet bežičnog LAN-a je ograničen i lako se dostiže od strane jednog računara.
  • Čak i na brzim računarskim mrežama (npr. Gigabit Ethernet), kičma mreže (eng. backbone) se lako može zagušiti od strane nekoliko servera i klijenata računara.
  • P2P mreža lako popunjava komunikacionu liniju ili neko drugo mrežno usko grlo.
  • Denial-of-service botnets napadi su sposobni za zagušenje čak i najvećih internet kapaciteta, generisanjem velikog mrežnog zagušenja.
  • U telefonskim mrežama (posebno mobilnih telefona), veliki broj istovremenih poziva može dovesti do opterećenja digitalnih telefonskih linija.

Kongestivni kolaps[uredi | uredi izvor]

Kongestivni kolaps je stanje u kome zastoj sprečava ili ograničava komunikaciju. Obično se javlja u tačkama zagušenja u mreži, gde dolazni saobraćaj prevazilazi odlazni protok. Priključne tačke između lokalne mreže i WAN mreže su tačke zagušenja.

Kada je mreža u ovom stanju kašnjenje paketa i kvalitet servisa je izuzetno loš.

Kongestivni kolaps je identifikovan kao mogući problem 1984. godine, na primer u RFC 896. Prvi put je primećen na internetu u oktobru 1986, kada je kičma mreže (eng. backbone) NSFnet faze-I pala tri reda veličine od svog kapaciteta od 32 kbit/s do 40 bit/s, što se nastavilo sve dok se nije implementirala Van Jakobsonova kontrola zagušenja između 1987. i 1988. godine.

Kada je poslato više paketa nego što ruter može da obradi svojim kapacitetom, ruteri odbacuju mnoge pakete, očekujući da će na kraju mreža ponoviti prenos podataka. Međutim, implementacija ranih TCP protokola je imala slabu retransmisiju podataka.

Kontrola zagušenja[uredi | uredi izvor]

Kontrola zagušenja kontroliše mrežni saobraćaj za ulazak u telekomunikacione mreže, kako bi se izbegao kongestivni kolaps smanjivanjem brzine paketa. To ne treba mešati sa kontrolom protoka, koji sprečava pošiljaoca da preoptereti primaoca.

Teoriju o kontroli zagušenja je razvio Frenk Keli, koji je primenio mikroekonomiju i teoriju konveksne optimizacije da opiše kako pojedinci koji kontrolišu svoje brzine mogu komunicirati da bi postigli optimalnu alokaciju brzine.

Neka je brzina protoka , kapacitet mreže , i ima vrednost 1 ako protok koristi link inače ima vrednost 0. Neka su , i odgovarajući vektori i matrice. Ako je rastuća, strogo konkavna funkcija, nazvana korisnost, koja računa koliku korist korisnik dobija prenošenjem brzinom . Onda optimalna alokacija brzine zadovoljava

tako da

Klasifikacija algoritama kontrole zagušenja[uredi | uredi izvor]

Ima nekoliko klasifikacija algoritama kontrole zagušenja:

  • Prema vrsti i količini povratnih informacija dobijenih od mreže: gubitak; odlaganja; jednobitni ili višebitni eksplicitni signali
  • Prema inkrementalnoj dostavi: Samo pošiljaocu treba izmena; pošiljalac i primalac trebaju izmenu; samo ruter treba izmenu; pošiljalac, primalac i ruteri trebaju izmenu.
  • Po performansama: Visoko propusno odlaganje; prednost u kratkim tokovima.
  • Po pravičnosti kriterijuma: maks-min, proporcionalni, "minimalno potencijalno kašnjenje"

Sprečavanje opterećenja mreže[uredi | uredi izvor]

Nekoliko mehanizma je izmišljeno kako bi se sprečilo opterećenje mreže ili mrežni kolaps:

Pravilno ponašanje krajnje tačke je ponavljanje odbačene informacije, ali postepeno usporavanje brzine ponavljanja. Pod uslovom da se sve krajnje tačke ponašaju tako, zagušenje mreže prestaje i mreža nastavlja normalno ponašanje. Druge strategije, kao što su slow-start osiguravaju da nove veze ne preplave ruter pre nego što se započne detekcija zagušenja.

Neki end-to-end protokoli se bolje ponašaju tokom zagušenja mreže.TCP protkol je pokazao najbolje ponašanje. Prve TCP implementacije za rad sa mrežnim zagušenjem su razvijene 1984, ali tek Van Jakobsonovo rešenje otvorenog koda u Berkeley Standard Distribution UNIX ("BSD") standardu 1988. je obezbedilo dobro ponašanje.

UDP protokol ne kontroliše mrežno zagušenje. Protokoli zasnovani na UDP moraju nezavisno rukovati zagušenjem. Protokoli koji prenose fiksnom brzinom, nezavisno od zagušenja, mogu biti problematični.

Praktično izbegavanje mrežnog zagušenja[uredi | uredi izvor]

Protokoli, kao što je široko rasprostranjeni TCP protokol, proveravaju greške paketa, gubitak paketa, ili kašnjenje paketa da bi prilagodili brzinu prenosa. Razni procesi za izbegavanje mrežnog zastoja, podržavaju različite kompromise.[2]

TCP/IP izbegavanje mrežnog zagušenja[uredi | uredi izvor]

TCP algoritam za izbegavanje mrežnog zagušenja je osnova za kontrolu zagušenja na internetu.[3][4][5][6][7]

Aktivno upravljanje redom[uredi | uredi izvor]

Aktivno upravljanje redom (eng. Active queue management – AQM) je raspoređivanje ili pad mrežnih paketa unutar bafera koji je u vezi sa mrežnim adapterom (eng. Network card, NIC, network adapter).

Eksplicitno obaveštenje zagušenja[uredi | uredi izvor]

Drugi pristup je korišćenje IP eksplicitnog obaveštenja zagušenja (eng. Explicit Congestion Notification – ECN).[8] ECN se koristi samo ako oba hosta žele da ga koriste. Ovim postupkom bit protokola signalizira eksplicitno zagušenje.

Kada ruter primi paket označen kao ECN-capable i očekuje zagušenje, postavlja ECN flag, obaveštavajući pošiljaoca zagušenja. Pošiljalac bi trebalo da odgovori smanjivanjem protoka, na primer, smanjivanjem veličine TCP prozora (brzine slanja) ili na neki drugi način.

Cisco AQM : Dinamičko ograničavanje bafera[uredi | uredi izvor]

Cisco ima sposobnost da klasifikuje protoke kao agresivne (loše) ili prilagodljive (dobre). To osigurava da nijedan protok neće popuniti portove.

Posledice izbegavanja kongestivnog kolapsa[uredi | uredi izvor]

Radio veze[uredi | uredi izvor]

Protokoli koji izbegavaju kongestivni kolaps često se zasnivaju na ideji da zagušenje prouzrokuje gubitak podataka. To je tačno u skoro svim slučajevima; greške prilikom prenosa su retke. Međutim, to izaziva da mreže kao što su WiFi, 3G, ili neke druge mreže imaju slabiji protok u nekim slučajevima, pošto su bežične mreže podložne gubitku podataka usled smetnji.

Kratkotrajne veze[uredi | uredi izvor]

Korišćenje protokola sa sporim početnim prenosom su loše za male prenose. Stariji veb pregledači su kreirali mnogo kratkotrajnih veza koje su otvarali i zatvarali za svaku datoteku. Da bi se izbegao ovaj problem, moderni veb pregledači ili otvore više veza istovremeno ili koriste istu vezu za sve datoteke nekog određenog servera. Početne performanse mogu biti slabije, i većina veza nikad ne izađu iz slow-start režima, značajno povećavajući kašnjenje.

Reference[uredi | uredi izvor]

  1. ^ Hussein 2012, str. 282.
  2. ^ TCP Tunnels: Avoiding Congestion Collapse (2000)
  3. ^ Van Jacobson, Michael J. Karels. Congestion Avoidance and Control (1988). Proceedings of the Sigcomm '88 Symposium, vol.18(4): pp. 314—329. Stanford, CA. August, 1988. This paper originated many of the congestion avoidance algorithms used in TCP/IP.
  4. ^ RFC 2001 - TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms
  5. ^ RFC 2581 - TCP Congestion Control
  6. ^ RFC 3390 - TCP Increasing TCP's Initial Window
  7. ^ „TCP Congestion Avoidance Explained via a Sequence Diagram” (PDF). Arhivirano iz originala (PDF) 22. 11. 2010. g. Pristupljeno 17. 05. 2016. 
  8. ^ RFC 3168 - The Addition of Explicit Congestion Notification (ECN) to IP

Literatura[uredi | uredi izvor]