W celu kontrolowania przepływu danych między użytkownikiem a serwerem stworzono protokół o nazwie TCP Flow Control.
Zapewnia, że pewna przepustowość jest dostępna do wysyłania i odbierania danych, dzięki czemu przetwarzanie może przebiegać bez żadnych poważnych problemów.
Protokół TCP wykorzystuje do tego metodę znaną jako protokół okna przesuwnego.
W tym artykule szczegółowo przyjrzymy się kontroli przepływu TCP, w tym jej działaniu i, co najważniejsze, protokołowi okna przesuwnego.
Co to jest kontrola przepływu TCP?
Protokół TCP zapewnia ustanowienie niezawodnego kanału komunikacji w nieprzewidywalnej sieci.
Pakiety danych mogą zostać utracone, przybyć poza kolejnością, otrzymać kopię zapasową w sieci lub zostać przeciążone w węźle odbiorczym podczas przesyłania z jednego węzła do drugiego.
Jednak podczas tworzenia aplikacji zazwyczaj nie mamy do czynienia z tą złożonością; zamiast tego po prostu wysyłamy trochę danych do gniazda, a TCP zapewnia, że pakiety zostaną pomyślnie dostarczone do węzła odbiorcy.
Kontrola przepływu to kluczowa dodatkowa funkcja oferowana przez TCP.
Dzięki wykorzystaniu kontroli przepływu, TCP zasadniczo upewni się, że nadawca nie wysyła do odbiorcy zbyt wielu pakietów naraz.
Jak działa protokół kontroli transferu – kontrola przepływu?
Dzieje się tak zwykle, gdy musimy przekazywać dane przez sieć.
Aplikacja nadawcy wysyła dane do gniazda, warstwa transportowa (w tym przypadku TCP) pakuje te dane w segmencie, a warstwa sieciowa (na przykład IP) przekazuje ten pakiet do węzła odbiorczego jakąś trasą.
Warstwa sieciowa prześle te dane do TCP na odbierającym końcu konwersacji, a TCP udostępni je aplikacji odbierającej jako identyczny duplikat podanych danych.
TCP nie będzie dostarczał pakietów w złej kolejności i będzie czekał na retransmisję w przypadku wykrycia przerwy w strumieniu bajtów.
Oto, co zobaczymy, jeśli się zbliżymy.
Zarówno bufor nadawczy, jak i odbiorczy w TCP służą do przechowywania danych, które muszą być odpowiednio wysłane i odebrane.
Dane z bufora odbiorczego zostaną następnie odczytane przez aplikację po jej przygotowaniu.
Upewnienie się, że nie wysyłamy dodatkowych pakietów, gdy bufor odbioru odbiorcy jest już pełny, jest głównym celem kontroli przepływu, ponieważ zmusiłoby to odbiorcę do odrzucenia dodatkowych pakietów, których nie mógłby obsłużyć.
Odbiornik ogłosi swoje okno odbioru lub dostępną przestrzeń w buforze odbioru, aby ograniczyć ilość danych, które może przesłać TCP.
Protokół okna przesuwnego
Protokół okna przesuwnego w TCP jest jedną z najczęściej stosowanych metod kontroli przepływu. Jest to procedura o zmiennej wielkości, zorientowana bajtowo.
W tym podejściu odbiorca wysyła nadawcy okno odbiorcze, gdy tylko nadawca i odbiorca zostaną połączone.
Rozmiar bieżącego bufora odbiornika jest określany jako okno odbiornika.
Ilość danych, które można przesłać dalej bez potwierdzenia, jest teraz obliczana przez TCP na podstawie dostępnego okna odbiorcy.
Jednak TCP zatrzymuje przesyłanie danych, jeśli rozmiar okna odbiornika wynosi 0 i czeka na jego zwiększenie.
Rozmiar okna odbiornika jest składnikiem ramki TCP.
Maksymalny rozmiar okna to 65,535 16 bajtów, ponieważ ma XNUMX bitów.
Wymiary okna wybiera odbiorca. Z każdą wiadomością potwierdzającą, odbiornik przesyła rozmiar okna odbiornika, który jest aktualnie dostępny.
Proces protokołu przesuwnego okna
W przypadku korzystania z techniki protokołu przesuwnego okna, podczas połączenia nadawcy i odbiorcy tworzone są dwa bufory.
Te dwa bufory są podzielone na dwie grupy: okno wysyłania, które należy do nadawcy i okno odbioru, które należy do odbiorcy.
Okno odbioru zwraca pozostałą przestrzeń bufora odbioru, gdy nadawca przesyła dane do odbiorcy.
W rezultacie nadawca jest ograniczony do ilości danych, które mogą zmieścić się w buforze odbiorczym.
Okno nadawcze w powyższym przykładzie przesyła dane do okna odbiorczego.
Po odebraniu danych okno odbiorcze wysyła potwierdzenie, a następnie okno nadawcze przesyła nową ramkę danych.
Tym razem jednak okno odbioru dodatkowo wysyła komunikat informujący, że dostępna pamięć jest zapełniona oprócz potwierdzenia, które odebrał.
Okno nadawcze wstrzymuje transmisję danych, dopóki nie otrzyma potwierdzenia od okna odbiorczego, że miejsce zostało zwolnione, w którym to momencie może wznowić transmisję danych.
Wnioski
Podsumowując, za obsługę problemów związanych z kontrolą przepływu odpowiadają warstwa połączenia danych i warstwa transportowa.
Podstawowym celem mechanizmu kontroli przepływu jest powstrzymanie odbiornika przed przeciążeniem danymi od szybciej transmitującego nadawcy.
Nawet jeśli dane przesyłane przez nadawcę są wolne od błędów i wysyłane z większą szybkością dzięki potężnej maszynie, możliwe jest, że odbiorca wolniejszego końca nie będzie w stanie obsłużyć większej szybkości przesyłania danych, a zatem straci część danych.
Dodaj komentarz