Strata paketov (angl. packet loss) je v informatike chyba pri prenose dát v počítačovej sieti. Nastáva, keď jeden alebo viac paketov putujúcich cez počítačovú sieť nedosiahne svoj cieľ. Strata paketov je braná ako jeden z troch hlavných problémov v digitálnej komunikácii. Ostatné dva problémy sú bitové chyby a falošné pakety.

Transmission Control Protocol (TCP) deteguje stratu paketov a vykonáva opakované prenosy, aby sa zabezpečilo spoľahlivé zasielanie správ. Detekcia straty paketov v spojení TCP sa tiež používa na zabránenie preťaženiu (congestion) a tým vytvára zámerne zníženú priepustnosť spojenia nastavením parametra window size.

V aplikáciách v reálnom čase, ako sú online hry, môže strata paketov ovplyvniť kvalitu zážitku používateľa (Quality of Experience).

Príčiny upraviť

Internetový protokol (IP) je navrhnutý podľa princípu end-to-end spojenia ako služba doručovania s najlepším úsilím so zámerom zachovať čo najjednoduchšiu implementáciu v rámci softvérových algoritmov, na ktorých fungujú internetové smerovače, aby sa dosiahla čo najväčšia rýchlosť prenosu dát. Ak by sieť poskytovala spoľahlivé záruky doručovania sama o sebe, vyžadovalo by si to sieťovú infraštruktúru, ktorá by musela ukladať a preposielať dáta, teda každý smerovač (router) by musel obsahovať značné množstvo úložného priestoru pre pakety, kým by čakal na overenie, či ich nasledujúci uzol správne prijal. Spoľahlivá sieť by v prípade zlyhania smerovača nebola schopná zachovať svoje záruky doručenia. Spoľahlivosť tiež nie je potrebná pre všetky aplikácie. Napríklad pri živých vysielaniach je dôležitejšie rýchlo doručiť najnovšie pakety, než zabezpečiť, aby sa nakoniec doručili aj zastarané pakety. Aplikácia alebo používateľ by sa tiež mohla rozhodnúť zopakovať operáciu, ktorá trvá dlho, v takom prípade by sa k pôvodnej sieťovej prevádzke musela pridať aj ďalšia sada paketov. Takáto sieť by tiež potrebovala riadiaci protokol na zvládnutie preťaženia, čo by zvyšovalo jej zložitosť.

Aby sa predišlo všetkým týmto problémom, internetový protokol umožňuje smerovačom jednoducho zahodiť pakety, ak je smerovač alebo sieťový segment príliš zaneprázdnený na to, aby doručoval údaje včas. Toto nie je ideálne pre rýchly a efektívny prenos údajov a neočakáva sa, že sa to stane v nepreťaženej sieti.[1] :42 – 43 Zahadzovanie paketov funguje ako implicitný signál, že sieť je preťažená a môže spôsobiť, že odosielatelia znížia rýchlosť prenášaných dát alebo sa pokúsia nájsť inú cestu po sieti. Napríklad pomocou vnímanej straty paketov ako spätnej väzby na zistenie preťaženia je Transmission Control Protocol (TCP) navrhnutý tak, že nadmerná strata paketov spôsobí, že odosielateľ zníži rýchlosť a prestane zahlcovať preťažený bod v sieti údajmi.[1]:282-283

Pakety môžu byť zahodené aj vtedy, ak kontrolný súčet hlavičky IPv4 alebo kontrolná sekvencia L2 rámca naznačuje, že paket bol poškodený. Strata paketov môže byť spôsobená aj útokom packet drop attack.

Bezdrôtové siete upraviť

Bezdrôtové siete sú náchylné na množstvo faktorov, ktoré môžu poškodiť alebo stratiť pakety počas prenosu, ako je rádiofrekvenčné rušenie (RFI)[2], rádiové signály, ktoré sú príliš slabé v dôsledku nadmernej vzdialenosti alebo viacerých ciest, chybný sieťový hardvér alebo chybné sieťové ovládače.

Wi-Fi je vo svojej podstate nespoľahlivé a aj keď sú dva rovnaké prijímače Wi-Fi umiestnené v tesnej blízkosti pri sebe, nevykazujú podobné vzory straty paketov, ako by sa očakávalo.[2]

Bunkové siete (väčšinou mobilný internet) môžu zaznamenať stratu paketov spôsobenú "vysokou bitovou chybovosťou, nestabilnými charakteristikami kanálov a mobilitou používateľov." [3] Zámerné obmedzujúce správanie TCP bráni bezdrôtovým sieťam vo výkone blízko ich teoretickým potenciálnym prenosovým rýchlostiam, pretože nemodifikovaný TCP zaobchádza so všetkými zahodenými paketmi, ako keby boli spôsobené preťažením siete, a tak môže obmedziť bezdrôtové siete, aj keď v skutočnosti nie sú preťažené. [3] or network congestion.[1]

Preťaženie siete upraviť

Preťaženie siete je príčinou straty paketov, ktorá môže ovplyvniť všetky typy sietí. Keď obsah prichádza do daného smerovača alebo sieťového segmentu počas dlhšieho obdobia rýchlosťou vyššou, než je možné cez neho posielať, nie je iná možnosť ako zahodiť pakety. [1] :36 V niektorých prípadoch sú pakety zámerne zahadzované smerovacími rutinami [4] alebo prostredníctvom iných sieťových techník na účely prevádzkového manažmentu (poskytovatelia internetu napríklad môžu zámerne znižovať rýchlosť zahadzovaním paketov, ak má zákazník zakúpený program s nižšou dátovou priepustnosťou, alebo vyčerpal prenos dát plnou rýchlosťou). [5]

Účinky upraviť

Strata paketov priamo znižuje priepustnosť siete pre daného odosielateľa, pretože niektoré odoslané údaje sa nikdy neprijmú a nemožno ich počítať do plnej priepustnosti. Strata paketov znižuje priepustnosť aj nepriamo, pretože niektoré protokoly transportnej vrstvy interpretujú stratu ako preťaženie siete a upravujú svoju prenosovú rýchlosť, aby sa predišlo kolapsu siete upchaním (sprostredkujúce zariadenia by v dôsledku zahltenia mohli začať fungovať nepredvídane).

Keď je potrebné spoľahlivé doručenie, strata paketov zvyšuje latenciu v dôsledku dodatočného času potrebného na opakovaný prenos. Za predpokladu, že nedochádza k opakovanému prenosu, pakety s najhorším oneskorením môžu byť prednostne zahodené (v závislosti od použitej metódy radenia toku dát), čo má za následok celkovo nižšiu latenciu.

Meranie upraviť

Strata paketov môže byť meraná ako množstvo stratených rámcov (frame loss rate) definovaná ako percento rámcov, ktoré mali byť preposlané sieťou, ale neboli.[6]

Prijateľná strata paketov upraviť

Strata paketov je úzko spojená s požiadavkami na kvalitu služby (QoS) . Veľkosť straty paketov, ktorá je prijateľná, závisí od typu odosielaných údajov. Napríklad pri prenose hlasu cez IP (VoIP) sa jeden komentátor domnieval, že „z času na čas vynechanie jedného alebo dvoch paketov neovplyvní kvalitu konverzácie. Straty medzi 5 % a 10 % celkového toku paketov výrazne ovplyvnia kvalitu.“ [7] Ďalší opísal stratu paketov menej ako 1 % ako „dobrú“ pri vysielaní zvuku alebo videa a 1 – 2,5 % ako „prijateľnú“.[8]

Diagnóza upraviť

Stratu paketov detegujú spoľahlivé protokoly, ako je TCP. Spoľahlivé protokoly reagujú na stratu paketov automaticky, takže keď správca siete potrebuje zistiť a diagnostikovať stratu paketov, zvyčajne použije stavové informácie zo sieťového zariadenia alebo účelovo vytvorených nástrojov.

Internet Control Message Protocol poskytuje funkciu odozvy, kde sa prenáša špeciálny paket, ktorý vždy generuje odpoveď. Nástroje ako ping, traceroute a MTR používajú tento protokol na poskytnutie vizuálnej reprezentácie ciest, cez ktoré pakety prechádzajú, a na meranie straty paketov pri každom prechode routrom.

Mnoho smerovačov má stavové stránky alebo záznamy (logy), kde správca zariadenia môže nájsť počet alebo percento zahodených paketov za určité obdobie.

Obnova paketov pre spoľahlivé doručenie upraviť

Podľa princípu end-to-end internetový protokol ponecháva zodpovednosť za obnovu paketov (prostredníctvom opätovného prenosu zahodených paketov) na koncové body - počítače, ktoré odosielajú a prijímajú dáta. Sú v najlepšej pozícii, aby sa rozhodli, či je potrebný opakovaný prenos, pretože aplikácia odosielajúca údaje by mala vedieť, či je najlepšie odoslanie správy ako celku alebo jej časti, či už potreba odoslania správy pominula alebo nie a ako upraviť šírku pásma, aby zohľadnila akékoľvek preťaženie.

Sieťové prenosové protokoly, ako je TCP, poskytujú koncovým bodom jednoduchý spôsob, ako zabezpečiť spoľahlivé doručovanie paketov, takže jednotlivé aplikácie nemusia implementovať túto logiku samy. V prípade straty paketu prijímateľ požiada o opätovné odoslanie alebo odosielateľ automaticky znova odošle všetky segmenty, ktoré neboli potvrdené. [1]:242 Hoci TCP sa dokáže zotaviť zo straty paketov, opakované vysielanie chýbajúcich paketov znižuje priepustnosť spojenia, pretože prijímatelia čakajú na opakované prenosy a spotrebúvajú dodatočnú šírku pásma. V určitých variantoch TCP, ak dôjde k strate prenášaného paketu, bude znovu odoslaný spolu s každým paketom, ktorý už bol odoslaný po ňom.

Protokoly ako User Datagram Protocol (UDP) neposkytujú žiadnu obnovu stratených paketov. Od aplikácií, ktoré používajú UDP, sa očakáva, že v prípade potreby implementujú svoje vlastné mechanizmy na zvládnutie straty paketov.

Vplyv modelu riadenia prevádzky upraviť

Na určenie, ktoré pakety sa majú zahodiť, sa používa veľa modelov radenia. Väčšina základných sieťových zariadení bude používať model radenia FIFO pre pakety čakajúce na prechod cez úzke miesto (bottleneck) a ak je front v čase prijatia paketu plný, paket zahodí. Tento typ zhadzovania paketov sa nazýva tail drop. Medzi ďalšie mechanizmy riadenia prostredníctvom frontu (queue) patrí štatistické riadenie metódou random early detection alebo weighted random early drop. Zahadzovanie paketov je nežiaduce, pretože paket sa buď stratí, alebo sa musí znova odoslať, čo môže ovplyvniť priepustnosť v reálnom čase; zväčšenie veľkosti vyrovnávacej pamäte však môže viesť k nafúknutiu vyrovnávacej pamäte, čo má svoj vlastný vplyv na latenciu a kolísanie oneskorenia (jitter) počas preťaženia.

V prípadoch, keď kvalita služby obmedzuje rýchlosť pripojenia, napr. pri použití algoritmu leaky bucket, môžu byť pakety zámerne zahodené, aby sa spomalili špecifické služby, aby sa zabezpečila dostupná šírka pásma pre iné služby označené vyššou dôležitosťou. Z tohto dôvodu nie je strata paketov nevyhnutne znakom slabej spoľahlivosti pripojenia alebo znakom úzkeho miesta v šírke pásma.

Referencie upraviť

  1. a b c d e KUROSE, James F.; ROSS, Keith W.. Computer Networking (A Top-down Approach). Londýn : Addison-Wesley, 2010. 862 s. ISBN 978-0-13-607967-5.
  2. a b SALYERS, David C.; STRIEGEL, Aaron; POELLABAUER, Christian. Wireless Reliability: Rethinking 802.11 Packet Loss [online]. cse.nd.edu, [cit. 2019-07-12]. Dostupné online. Archivované 2019-07-12 z originálu.
  3. a b TCP in Wireless Environments: Problems and Solutions. IEEE Radio Communications, March 2005, s. S27–S32. Dostupné online [cit. 2018-02-19]. DOI10.1109/MCOM.2005.1404595.
  4. Perkins, C.E. (2001). Ad Hoc Networking. Boston: Addison-Wesley. p. 147.
  5. "Controlling Applications by Managing Network Characteristics" Vahab Pournaghshband, Leonard Kleinrock, Peter Reiher, and Alexander Afanasyev ICC 2012
  6. BRADNER, Scott O.. RFC 1242 - Benchmarking Terminology for Network Interconnection Devices [online]. datatracker.ietf.org, 1991-07-01, [cit. 2023-01-10]. Dostupné online.
  7. Mansfield, K.C. & Antonakos, J.L. (2010). Computer Networking from LANs to WANs: Hardware, Software, and Security. Boston: Course Technology, Cengage Learning. p. 501.
  8. ICTP-SDU: About PingER [online]. . Dostupné online. Archivované 2013-10-10 z originálu.

Zdroj upraviť

  • Tento článok je čiastočný alebo úplný preklad článku Packet loss na anglickej Wikipédii (číslo revízie nebolo určené).

Pozri aj upraviť

Externé odkazy upraviť