Utrata pakietów — Packet loss

Utrata pakietów ma miejsce, gdy jeden lub więcej pakietów danych przesyłanych przez sieć komputerową nie dociera do miejsca docelowego. Utrata pakietów jest spowodowana błędami transmisji danych, zwykle w sieciach bezprzewodowych , lub przeciążeniem sieci . Utrata pakietów jest mierzona jako procent utraconych pakietów w stosunku do pakietów wysłanych.

Transmission Control Protocol (TCP) wykrywa utratę pakietów i wykonuje retransmisji, aby zapewnić niezawodne wiadomości . Utrata pakietów w połączeniu TCP jest również wykorzystywana w celu uniknięcia przeciążenia, a tym samym powoduje celowo zmniejszoną przepustowość połączenia.

W aplikacjach działających w czasie rzeczywistym, takich jak strumieniowanie multimediów lub gry online , utrata pakietów może wpływać na jakość obsługi (QoE) użytkownika.

Powoduje

Internet Protocol (IP) jest zaprojektowany zgodnie z zasadą end-to-end jako best effort delivery usługi, z zamiarem utrzymania logiki routery muszą wdrożyć tak proste, jak to możliwe. Jeśli sieć sama zapewniłaby niezawodne gwarancje dostarczania , wymagałoby to infrastruktury przechowywania i przekazywania , w której każdy router poświęca znaczną ilość miejsca na pakiety, czekając na sprawdzenie, czy następny węzeł prawidłowo je odebrał. Niezawodna sieć nie byłaby w stanie utrzymać gwarancji dostarczania w przypadku awarii routera. Niezawodność również nie jest potrzebna we wszystkich zastosowaniach. Na przykład w przypadku multimediów strumieniowych na żywo ważniejsze jest szybkie dostarczanie najnowszych pakietów niż zapewnienie ostatecznego dostarczenia nieaktualnych pakietów. Aplikacja lub użytkownik może również zdecydować się na ponowną próbę operacji, która zajmuje dużo czasu, w którym to przypadku dodatkowy zestaw pakietów zostanie dodany do ciężaru dostarczenia oryginalnego zestawu. Taka sieć może również wymagać protokołu dowodzenia i kontroli do zarządzania przeciążeniami, co jeszcze bardziej zwiększa złożoność.

Aby uniknąć wszystkich tych problemów, protokół internetowy pozwala routerom po prostu odrzucać pakiety, jeśli router lub segment sieci jest zbyt zajęty, aby dostarczyć dane w odpowiednim czasie. Nie jest to idealne rozwiązanie dla szybkiej i wydajnej transmisji danych i nie oczekuje się, że nastąpi to w niezatłoczonej sieci. Odrzucanie pakietów działa jako niejawny sygnał, że sieć jest przeciążona i może spowodować, że nadawcy zmniejszą zużycie przepustowości lub spróbują znaleźć inną ścieżkę. Na przykład, wykorzystując postrzeganą utratę pakietów jako informację zwrotną w celu wykrycia przeciążenia, protokół kontroli transmisji (TCP) został zaprojektowany tak, aby nadmierna utrata pakietów spowodowała, że ​​nadawca cofnie się i przestanie zalewać punkt wąskiego gardła danymi.

Pakiety mogą być również odrzucane, jeśli suma kontrolna nagłówka IPv4 lub sekwencja kontrolna ramki Ethernet wskazuje, że pakiet został uszkodzony. Utrata pakietów może być również spowodowana atakiem polegającym na upuszczaniu pakietów .

Sieci bezprzewodowe

Sieci bezprzewodowe są podatne na wiele czynników, które mogą uszkodzić lub utracić pakiety podczas przesyłania, takie jak zakłócenia częstotliwości radiowych (RFI), sygnały radiowe, które są zbyt słabe z powodu odległości lub zaniku wielościeżkowego , wadliwy sprzęt sieciowy lub wadliwe sterowniki sieciowe .

Wi-Fi jest z natury zawodne i nawet gdy dwa identyczne odbiorniki Wi-Fi są umieszczone blisko siebie, nie wykazują podobnych wzorców utraty pakietów, jak można by się spodziewać.

Sieci komórkowe mogą doświadczać utraty pakietów z powodu „wysokiej stopy błędów bitowych (BER), niestabilnej charakterystyki kanału i mobilności użytkownika”. Celowe ograniczanie przepustowości protokołu TCP uniemożliwia sieciom bezprzewodowym działanie zbliżone do ich teoretycznych potencjalnych szybkości transmisji, ponieważ niezmodyfikowany protokół TCP traktuje wszystkie odrzucone pakiety tak, jakby były spowodowane przeciążeniem sieci , a zatem może ograniczać sieci bezprzewodowe, nawet jeśli w rzeczywistości nie są one przeciążone.

Przeciążenie sieci

Przeciążenie sieci jest przyczyną utraty pakietów, która może mieć wpływ na wszystkie typy sieci. Gdy zawartość dociera przez dłuższy czas do danego routera lub segmentu sieci z szybkością większą niż jest to możliwe do przesłania, nie ma innej opcji niż odrzucanie pakietów. Jeśli pojedynczy router lub łącze ogranicza przepustowość całej ścieżki podróży lub ogólnie podróży sieci, określa się to jako wąskie gardło . W niektórych przypadkach pakiety są celowo odrzucane przez procedury routingu lub technikę odstraszania sieci do celów zarządzania operacyjnego.

Efekty

Utrata pakietów bezpośrednio zmniejsza przepustowość dla danego nadawcy, ponieważ niektóre wysłane dane nigdy nie są odbierane i nie można ich zaliczyć do przepustowości. Utrata pakietów pośrednio zmniejsza przepustowość, ponieważ niektóre protokoły warstwy transportowej interpretują utratę jako oznakę przeciążenia i dostosowują szybkość transmisji, aby uniknąć przeciążenia.

Gdy konieczne jest niezawodne dostarczanie, utrata pakietów zwiększa opóźnienie ze względu na dodatkowy czas potrzebny na retransmisję. Zakładając brak retransmisji, pakiety doświadczające najgorszych opóźnień mogą być preferencyjnie odrzucane (w zależności od zastosowanej dyscypliny kolejkowania ), co skutkuje ogólnie niższym opóźnieniem.

Pomiar

Utrata pakietów może być mierzona jako współczynnik utraty ramek zdefiniowany jako procent ramek, które powinny zostać przesłane przez sieć, ale nie zostały przesłane.

Dopuszczalna utrata pakietów

Utrata pakietów jest ściśle związana z względami jakości usług . Dopuszczalna ilość utraconych pakietów zależy od typu przesyłanych danych. Na przykład, w przypadku ruchu Voice over IP , jeden z komentatorów stwierdził, że „od czasu do czasu brak jednego lub dwóch pakietów nie wpłynie na jakość rozmowy. Straty między 5% a 10% całkowitego strumienia pakietów wpłyną na jakość znacząco." Inny opisał mniej niż 1% utraty pakietów jako „dobry” do przesyłania strumieniowego audio lub wideo, a 1–2,5% jako „dopuszczalny”.

Diagnoza

Utratę pakietów wykrywają niezawodne protokoły, takie jak TCP. Niezawodne protokoły reagują automatycznie na utratę pakietów, więc gdy osoba, taka jak administrator sieci, musi wykryć i zdiagnozować utratę pakietów, zazwyczaj korzysta z informacji o stanie ze sprzętu sieciowego lub specjalnie zaprojektowanych narzędzi.

Internet Control Message Protocol stanowi echo funkcjonalność, gdzie specjalny pakiet jest transmitowany, że zawsze daje odpowiedź. Narzędzia takie jak ping , traceroute i MTR używają tego protokołu do zapewnienia wizualnej reprezentacji ścieżki, jaką obierają pakiety, oraz do pomiaru utraty pakietów przy każdym przeskoku .

Wiele routerów posiada strony lub dzienniki stanu, na których właściciel może znaleźć liczbę lub procent pakietów odrzuconych w określonym okresie.

Odzyskiwanie pakietów w celu niezawodnej dostawy

Zgodnie z zasadą end-to-end , protokół internetowy pozostawia odpowiedzialność za odzyskiwanie pakietów poprzez retransmisję porzuconych pakietów do punktów końcowych - komputerów wysyłających i odbierających dane. To oni są w stanie najlepiej zdecydować, czy retransmisja jest konieczna, ponieważ aplikacja wysyłająca dane powinna wiedzieć, czy wiadomość najlepiej retransmitować w całości czy w części, czy potrzeba wysłania wiadomości minęła i jak kontrolować ilość wykorzystywanej przepustowości, aby uwzględnić wszelkie zatory.

Protokoły transportu sieciowego, takie jak TCP, zapewniają punktom końcowym łatwy sposób zapewnienia niezawodnego dostarczania pakietów, dzięki czemu poszczególne aplikacje nie muszą samodzielnie implementować logiki. W przypadku utraty pakietu odbiorca prosi o retransmisję lub nadawca automatycznie wysyła ponownie wszystkie segmenty, które nie zostały potwierdzone. Chociaż TCP może odzyskać utracone pakiety, retransmisja brakujących pakietów zmniejsza przepustowość połączenia, ponieważ odbiorniki czekają na retransmisję i zużywają dodatkową przepustowość. W niektórych wariantach protokołu TCP, jeśli przesyłany pakiet zostanie utracony, zostanie on ponownie wysłany wraz z każdym pakietem, który został już wysłany po nim.

Protokoły takie jak User Datagram Protocol (UDP) nie zapewniają odzyskiwania utraconych pakietów. Oczekuje się, że aplikacje korzystające z protokołu UDP w razie potrzeby zaimplementują własne mechanizmy obsługi utraty pakietów.

Wpływ dyscypliny kolejkowania

Istnieje wiele dyscyplin kolejkowania używanych do określania, które pakiety mają zostać odrzucone. Większość podstawowych urządzeń sieciowych używa kolejkowania FIFO dla pakietów oczekujących na przejście przez wąskie gardło i odrzuca pakiet, jeśli kolejka jest pełna w momencie odebrania pakietu. Ten rodzaj odrzucania pakietów nazywa się tail drop . Inne mechanizmy pełnej kolejki obejmują losowe wczesne upuszczanie lub ważone losowe wczesne upuszczanie . Porzucanie pakietów jest niepożądane, ponieważ pakiet jest albo utracony, albo musi zostać ponownie przesłany, co może mieć wpływ na przepustowość w czasie rzeczywistym; jednak zwiększenie rozmiaru bufora może prowadzić do przerostu bufora, który ma swój własny wpływ na opóźnienie i jitter podczas przeciążenia.

W przypadkach, w których jakość usług jest czynnikiem ograniczającym szybkość połączenia, na przykład, za pomocą łyżki nieszczelnego algorytm, pakiety mogą być celowo spadła w celu spowolnienia usług specyficznych dla zapewnienia dostępnej przepustowości dla innych usług oznaczonych większe znaczenie. Z tego powodu utrata pakietów niekoniecznie wskazuje na słabą niezawodność połączenia lub oznaki wąskiego gardła przepustowości.

Zobacz też

Uwagi

Bibliografia

Zewnętrzne linki