Tīkla pārslodze

**Tīkla pārslodze** datortīklu un rindošanas teorijā ir pakalpojuma kvalitātes pasliktināšanās, kas rodas, ja tīkla mezglā vai savienojumā tiek pārraidīts vairāk datu, nekā tas spēj apstrādāt. Tipiskas sekas ir rindas aizkavēšanās, pakešu zudumi vai jaunu savienojumu bloķēšana.

Tīkla protokoli, kas izmanto agresīvu retranslāciju, lai kompensētu pakešu zudumus pārslodzes dēļ, var palielināt pārslodzi pat pēc tam, kad sākotnējā slodze ir samazināta līdz līmenim, kas parasti nebūtu izraisījis tīkla pārslodzi. Šādiem tīkliem ir divi stabili stāvokļi pie vienāda slodzes līmeņa. Stabilo stāvokli ar zemu caurlaidspēju sauc par **pārslodzes sabrukumu**.

Lai izvairītos no sabrukuma, tīklos izmanto **pārslodzes kontroles** un **pārslodzes novēršanas metodes**. Tie ietver tādus protokolus kā CSMA/CA 802.11 standartā un līdzīgajā CSMA/CD sākotnējā Ethernet standartā, loga samazināšanu TCP un taisnīgu rindas veidošanu tādās ierīcēs kā maršrutētāji un tīkla komutatori. Citas pārslodžu problēmas risināšanas metodes ietver prioritāšu shēmas, kas dažas paketes pārraida ar augstāku prioritāti pirms citām, un noteiktu tīkla resursu piešķiršanu konkrētām plūsmām, izmantojot pielaides kontroli. 

## Tīkla kapacitāte
Tīkla resursi ir ierobežoti, tostarp maršrutētāju apstrādes laiks un savienojuma caurlaidspēja. Bieži tīklos var rasties konkurence par resursiem. Bezvadu lokālā tīkla caurlaidspēju viegli aizpilda viens personālais dators. Pat ātrdarbīgos datoru tīklos pamattīklu var viegli pārslogot daži serveri un klientu personālie datori. Pakalpojumatteices uzbrukumi, ko veic robottīkli (botnets), spēj aizpildīt pat lielākos interneta maģistrālā tīkla savienojumus, radot liela mēroga tīkla pārslodzi. Telefona tīklos masveida zvanu notikuma gadījumos var tikt pārslogotas digitālās telefona līnijas. 

## Pārslodzes sabrukums
Pārslodzes sabrukums ir stāvoklis, kad tīkla caurlaidspējas pārslodze kavē vai ierobežo efektīvu saziņu. Pārslodzes sabrukums parasti rodas tīkla pārslodzes punktos, kur ienākošā datplūsma pārsniedz izejošās joslas platumu. Bieži sastrēguma punkti ir savienojuma punkti starp lokālo tīklu un teritoriālo tīklu. Šādā stāvoklī pieprasījums pēc datplūsmas ir liels, bet ir pieejama maza lietderīgā caurlaidspēja, kuras laikā rodas pakešu aizkavēšanās un zudumi, un pakalpojumu kvalitāte ir ļoti slikta.

## Pārslodzes kontrole
Pārslodzes kontrole modulē datplūsmas ieplūšanu telekomunikāciju tīklā, lai izvairītos no pārslodzes izraisīta sabrukuma. To parasti panāk, samazinot pakešu ātrumu. Pārslodzes kontrole neļauj sūtītājiem pārslogot tīklu, savukārt plūsmas kontrole neļauj sūtītājam pārslogot saņēmēju. 

## Seku mazināšana
Ir izgudroti mehānismi, lai novērstu tīkla pārslodzi vai novērstu tīkla sabrukumu:

* Tīkla plānotājs (Network scheduler) - aktīva rindas pārvaldība, kas sastrēguma gadījumā maina tīkla pakešu kārtību vai selektīvi pārtrauc to pieņemšanu.
* Explicit Congestion Notification - IP un TCP sakaru protokolu paplašinājums, kas ievieš plūsmas kontroles mehānismu.
* TCP pārslodzes kontrole (TCP congestion control) - dažādas implementācijas, lai risinātu tīkla pārslodzes problēmas.

Pareiza galapunkta uzvedība parasti ir atkārtot noraidīto informāciju, bet pakāpeniski palēnināt atkārtošanas ātrumu. Ja visi galapunkti to dara, pārslodze tiek novērsta un tīkls atsāk normāli darboties. Citas stratēģijas, piemēram, lēnais starts (slow-start), nodrošina, ka jauni savienojumi nepārslogo maršrutētāju pirms pārslodzes atklāšanas uzsākšanas.

Izplatīti maršrutētāju pārslodzes novēršanas mehānismi ietver godīgo rindošanu (fair queuing) un citus plānošanas algoritmus, kā arī nejaušu agrīnu atklāšanu (random early detection, RED), kad, konstatējot pārslodzi, paketes tiek nejauši izvēlētā kārtībā atmestas. Tas  galapunktiem liek laicīgi palēnināt pārraidi pirms pārslodzes sabrukuma. 

Daži galaprotokoli ir izstrādāti tā, lai tie labi darbotos pārslodzes apstākļos; labi zināms piemērs ir TCP. Pirmās TCP implementācijas sastrēgumu novēršanai tika aprakstītas 1984. gadā, bet Van Jakobsona ieviestais atvērtā koda risinājums Berkeley Standard Distribution UNIX ("BSD") operētājsistēmā 1988. gadā pirmo reizi nodrošināja labu darbību tīkla pārslodzes apstākļos.

UDP nekontrolē sastrēgumus. Uz UDP balstītiem protokoliem sastrēgumi jārisina neatkarīgi. Problēmas var radīt protokoli, kas pārraida ar fiksētu ātrumu neatkarīgi no pārslodzes. Šī īpašība piemīt reāllaika straumēšanas protokoliem, tostarp daudziem IP balss pārraides protokoliem. Tāpēc ir jāveic īpaši pasākumi, piemēram, pakalpojuma kvalitātes nodrošināšana, lai nepieļautu pakešu atmešanu sastrēgumu gadījumā. 

## Pārslodzes sabrukuma novēršanas blakusparādības

### Radio savienojumi
Protokolos, kas ļauj izvairīties no pārslodzes sabrukuma, parasti pieņem, ka datu zudumu izraisa pārslodze. Kļūdas pārraides laikā vadu tīklos ir reti sastopamas. WiFi, 3G un citi tīkli ar radio slāni ir jutīgi pret datu zudumiem traucējumu dēļ, un dažos gadījumos var būt zema caurlaides spēja. TCP savienojumi, kas darbojas radio fiziskajā slānī, redz datu zudumus un mēdz kļūdaini uzskatīt, ka notiek pārslodze.

### Īslaicīgi savienojumi
Lēnā starta (slow-start) protokols darbojas slikti īslaicīgiem savienojumiem. Vecākās tīmekļa pārlūkprogrammas izveidoja daudz īslaicīgu savienojumu, un katram failam tika atvērts un slēgts savienojums. Tādējādi vairums savienojumu palika lēnās starta režīmā. Sākotnējā savienojuma veiktspēja var būt slikta, un daudzi savienojumi nekad neizkļūst no lēnā starta režīma, ievērojami palielinot latentumu. Lai izvairītos no šīs problēmas, modernās pārlūkprogrammas vai nu atver vairākus savienojumus vienlaicīgi, vai atkārtoti izmanto vienu savienojumu visiem failiem, kas pieprasīti no konkrēta servera. 
## Atsauces