If-Koubou

Jaka jest różnica między TCP i UDP?

Jaka jest różnica między TCP i UDP? (Jak)

Prawdopodobnie widziałeś odniesienia do TCP i UDP podczas konfigurowania przekierowania portów na routerze lub podczas konfigurowania oprogramowania zapory sieciowej. Te dwa protokoły są używane dla różnych typów danych.

TCP / IP to zestaw protokołów używanych przez urządzenia do komunikacji przez Internet i większość sieci lokalnych. Nazwa pochodzi od dwóch oryginalnych protokołów - TCP (Transmission Control Protocol) i IP (Internet Protocol). TCP zapewnia aplikacjom sposób dostarczania (i otrzymywania) uporządkowanego i sprawdzanego błędami strumienia pakietów informacji w sieci. Protokół UDP (User Datagram Protocol) jest wykorzystywany przez aplikacje do dostarczania szybszego strumienia informacji poprzez wyeliminowanie sprawdzania błędów. Podczas konfigurowania jakiegoś sprzętu sieciowego lub oprogramowania może być konieczna znajomość różnicy.

Co mają wspólnego

Zarówno TCP, jak i UDP są protokołami używanymi do wysyłania bitów danych - znanych jako pakiety - przez Internet. Oba protokoły opierają się na protokole IP. Innymi słowy, czy wysyłasz pakiet przez TCP lub UDP, ten pakiet jest wysyłany na adres IP. Pakiety te są traktowane podobnie, ponieważ są przekazywane z komputera do pośrednich routerów i do miejsca docelowego.

TCP i UDP nie są jedynymi protokołami, które działają na IP. Jednak są one najczęściej używane.

Jak działa TCP

TCP jest najczęściej używanym protokołem w Internecie.

Gdy żądasz strony internetowej w przeglądarce, twój komputer wysyła pakiety TCP na adres serwera sieciowego, prosząc go o odesłanie strony internetowej do ciebie. Serwer internetowy odpowiada wysyłając strumień pakietów TCP, które twoja przeglądarka łączy ze sobą, tworząc stronę internetową. Gdy klikniesz łącze, zalogujesz się, dodasz komentarz lub zrobisz cokolwiek innego, twoja przeglądarka wysyła pakiety TCP na serwer, a serwer odsyła pakiety TCP.

TCP polega na niezawodności - pakiety wysyłane z TCP są śledzone, więc żadne dane nie są tracone ani uszkodzone podczas przesyłania. Z tego powodu pobieranie plików nie ulega uszkodzeniu, nawet jeśli występują przeszkody sieciowe. Oczywiście, jeśli odbiorca jest całkowicie offline, komputer się podda i pojawi się komunikat o błędzie z informacją, że nie może się komunikować ze zdalnym hostem.

TCP osiąga to na dwa sposoby. Najpierw zamawia pakiety, numerując je. Po drugie, kontrola błędów polega na tym, aby odbiorca wysłał odpowiedź zwrotną do nadawcy informującą, że otrzymał wiadomość. Jeśli nadawca nie otrzyma prawidłowej odpowiedzi, może ponownie wysłać pakiety, aby upewnić się, że odbiorca je prawidłowo odebrał.

Process Explorer i inne narzędzia systemowe mogą pokazywać typ połączeń, które tworzy proces - tutaj możemy zobaczyć przeglądarkę Chrome z otwartymi połączeniami TCP z różnymi serwerami sieciowymi.

Jak działa UDP

Protokół UDP działa podobnie jak TCP, ale wyrzuca wszystkie sprawdzane błędy. Cała komunikacja zwrotna wprowadza opóźnienie, spowalniając działanie.

Gdy aplikacja używa UDP, pakiety są wysyłane do odbiorcy. Nadawca nie czeka, aby odbiorca odebrał pakiet - po prostu kontynuuje wysyłanie kolejnych pakietów. Jeśli odbiorca pominie kilka pakietów UDP, zostaną one po prostu utracone - nadawca nie wyśle ​​ich ponownie. Utrata całego tego kosztu oznacza, że ​​urządzenia mogą szybciej komunikować się.

Protokół UDP jest używany, gdy wymagana jest szybkość, a korekcja błędów nie jest konieczna. Na przykład UDP jest często używany do transmisji na żywo i gier online.

Załóżmy na przykład, że oglądasz strumień wideo na żywo, który często jest transmitowany przy użyciu UDP zamiast TCP. Serwer wysyła stały strumień pakietów UDP do oglądania komputerów. Jeśli utracisz połączenie na kilka sekund, wideo może zostać zawieszone lub na chwilę ulec zmianie, a następnie przejść do bieżącego bitu transmisji. Jeśli wystąpi niewielka utrata pakietów, wideo lub dźwięk mogą zostać zniekształcone na chwilę, ponieważ wideo będzie nadal odtwarzane bez brakujących danych.

Działa to podobnie w grach online. Jeśli przegapisz niektóre pakiety UDP, może pojawić się teleportacja graczy na mapie po otrzymaniu nowszych pakietów UDP. Nie ma sensu prosić o stare pakiety, jeśli je przegapiłeś, ponieważ gra toczy się bez ciebie. Ważne jest tylko to, co dzieje się teraz na serwerze gry - a nie to, co działo się kilka sekund temu. Zwalnianie poprawki błędów TCP pomaga przyspieszyć połączenie z grą i zmniejszyć opóźnienia.

Więc co?

To, czy aplikacja korzysta z TCP czy UDP, zależy od programisty, a wybór zależy od potrzeb aplikacji. Większość aplikacji wymaga korekcji błędów i odporności protokołu TCP, ale niektóre aplikacje wymagają szybkości i zmniejszenia narzutów UDP.Jeśli uruchomisz narzędzie do analizy sieci, takie jak Wireshark, zobaczysz różne typy pakietów podróżujących tam iz powrotem.

Jeśli nie jesteś administratorem sieci lub programistą, nie powinno to wpłynąć na ciebie zbyt mocno. Jeśli konfigurujesz router lub oprogramowanie zapory i nie masz pewności, czy aplikacja używa protokołu TCP lub UDP, możesz ogólnie wybrać opcję "Oba", aby router lub zapora stosowała tę samą regułę do ruchu TCP i UDP.