Serwis Top10VPN ma pełną niezależność redakcyjną. Możemy otrzymać prowizję, jeśli kupisz VPN z na naszej stronie.
TCP vs. UDP – na czym polega różnica?
JP Jones
JP Jones jest naszym dyrektorem ds. technicznych (CTO). Ma ponad 25 lat doświadczenia w inżynierii oprogramowania i sieci. Nadzoruje wszystkie aspekty techniczne procesu testowania usług VPN. Przeczytaj pełny opis
TCP i UDP to protokoły sieciowe stosowane do transmisji danych przez Internet. UDP jest szybki i wydajny, podczas gdy TCP jest bezpieczny i niezawodny. OpenVPN działa z oboma protokołami, ale zalecamy najpierw wypróbować UDP i przełączyć się na TCP, jeśli nie będzie działał.
TCP (Transmission Control Protocol) i UDP (User Datagram Protocol) to dwa protokoły komunikacyjne używane do wysyłania informacji przez Internet.
W oprogramowaniu VPN protokół OpenVPN musi korzystać z UDP lub TCP, aby móc wysyłać dane między Twoim urządzeniem a serwerem VPN.
Poniższa tabela prezentuje kluczowe różnice między tymi protokołami:
Istnieją jednak sytuacje, w których TCP będzie lepszą opcją, zwłaszcza gdy konieczna jest niezawodność.
Oto szybki przewodnik informujący, kiedy należy użyć którego protokołu:
TCP: odpowiedni do aktywności, które wymagają stabilnego połączenia, takich jak przeglądanie Internetu (HTTP, HTTPS), sprawdzanie skrzynki e-mail (SMTP, IMAP/POP), pobieranie i przesyłanie (FTP) oraz zdalny dostęp do komputera za pomocą secure shell (SSH)
UDP: odpowiedni dla przypadków użycia, w których prędkość ma kluczowe znaczenie, jak granie online, streaming wideo, Voice over IP (VoIP) czy komunikacja między urządzeniami podłączonymi do sieci Internetu rzeczy (IoT), np. czujnikami wysyłającymi regularnie pewne dane
Dlaczego warto nam zaufać?
Jesteśmy w pełni niezależni i recenzujemy usługi VPN od 2016 roku. Nasze porady są oparte na wynikach własnoręcznie przeprowadzonych testów, a korzyści finansowe nie mają na nie wpływu. Dowiedz się, kim jesteśmy i jak testujemy VPN-y.
Czym jest TCP?
TCP tworzy połączenie między dwoma urządzeniami, np. Twoim komputerem i serwerem internetowym. Dane są wysyłane przez to połączenie, które przypomina rozmowę telefoniczną – dwa urządzenia komunikują się ze sobą, aby upewnić się, że informacje zostały odebrane prawidłowo.
Korzystając z TCP:
Masz gwarancję, że wszystkie pakiety danych zostaną dostarczone. Jeśli odbiorca nie potwierdzi otrzymania pakietu, nadawca wysyła go jeszcze raz.
Wszystkie pakiety są sekwencjonowane, aby zapewnić, że trafią do odbiorcy w tej samej kolejności, w jakiej zostały wysłane.
Pakiety nie są wysyłane, jeśli odbiorca nie jest gotowy do ich odebrania.
TCP to protokół zorientowany połączeniowo, który korzysta z uzgadniania trójetapowego, aby nawiązać połączenie. Działa poprzez wymianę następujących pakietów:
Pakiet SYN (Synchronizuj): klient inicjuje połączenie, wysyłając pakiet SYN do serwera. Pakiet ten zawiera początkowy numer sekwencyjny klienta.
Pakiet SYN-ACK (Synchronizuj-Potwierdź): po otrzymaniu pakietu SYN serwer odpowiada pakietem SYN-ACK. Dany pakiet potwierdza SYN klienta i zawiera początkowy numer sekwencyjny serwera.
Pakiet ACK (Potwierdź): wreszcie klient wysyła do serwera pakiet ACK potwierdzający SYN-ACK serwera. Połączenie zostaje ustanowione i klient oraz serwer mogą rozpocząć wymianę danych.
Oto przykład, jak VPN nawiązuje połączenie TCP:
Zrzut ekranu z Wireshark przedstawiający uzgadnianie trójetapowe ustanawiające połączenie TCP.
Uzgadnianie trójetapowe zapewnia gotowość klienta i serwera do komunikacji oraz synchronizuje numery sekwencyjne używane do monitorowania wysyłanych danych.
Dany proces zapobiega problemom z połączeniem, utracie danych oraz innym problemom, które mogą zaistnieć podczas początkowego nawiązywania połączenia.
Po zakończeniu uzgadniania klient i serwer mogą rozpocząć niezawodną wymianę danych w formie transmisji typu pełny dupleks.
Czym jest UDP?
W przeciwieństwie do TCP UDP to protokół, który nie nawiązuje połączenia. Dane są wysyłane, ale nie ma mechanizmu informacji zwrotnej, który potwierdziłby, że zostały odebrane prawidłowo. UDP przypomina raczej wysyłanie wiadomości pocztą tradycyjną – wrzucasz list do skrzynki i zapominasz o nim.
Korzystając z UDP:
Pakiety danych mogą zostać utracone podczas transmisji i nadawca nie będzie o tym wiedział.
Pakiety wysyłane do przeciążonego odbiorcy zostaną utracone i nie będą mogły zostać odzyskane.
Nie ma wbudowanego mechanizmu odzyskiwania zagubionych lub uszkodzonych danych, ale aplikacje korzystające z UDP mogą mieć swój własny mechanizm w tym celu.
UDP bywa zawodny w porównaniu z TCP, ale ponieważ nie musi nawiązywać i utrzymywać połączenia, UDP jest szybszy od TCP. Stanowi on idealną opcję dla aplikacji wrażliwych na opóźnienia jak wideokonferencje czy gry online.
Sporadycznie zagubiony pakiet może spowodować drobne zakłócenie, ale to lepsze niż opóźnienia spowodowane ponowną wysyłką pakietu przez TCP.
Skorzystaliśmy z Wireshark, aby sprawdzić ruch UDP między portami 60970 i 12718.
Ponadto, rozmiar nagłówka UDP jest mniejszy od TCP, co zapewnia niższy narzut oraz wyższe prędkości transmisji.
System nazw domen (DNS) korzysta zarówno z UDP, jak i TCP. Choć wraz z rosnącym rozmiarem pakietów zapytań coraz częściej używa TCP, UDP to domyślny protokół, który zapewnia najwyższe możliwe prędkości.
Różnice między UDP i TCP
Choć zarówno TCP, jak i UDP to protokoły sieciowe umożliwiające komunikację między hostami przez Internet, różnią się sposobem transmisji danych.
Oto pięć kluczowych różnic między tymi protokołami:
1. UDP jest szybszy od TCP
Przetestowaliśmy ExpressVPN i NordVPN, dwa najpopularniejsze VPN-y 2024 roku, aby zobaczyć, jak wygląda ich prędkość z użyciem protokołu Open VPN z UDP i TCP.
Łącząc się z naszej siedziby w Stanach Zjednoczonych z serwerami w USA, Wielkiej Brytanii oraz Australii, dokonaliśmy pomiaru prędkości pobierania dla każdego VPN-u i protokołu.
Jak pokazują nasze dane, UDP jest zwykle szybszy od TCP. Różnica rośnie wraz z odległością od serwera.
Dzieje się tak, ponieważ TCP dostarcza pakiety danych w uporządkowanym i sprawdzonym pod kątem błędów strumieniu, w związku z czym wszelkie nieprawidłowe lub brakujące dane muszą być ponownie uzyskane od nadawcy, co zwiększa opóźnienia.
Z kolei pakiety UDP mają mniejszy nagłówek, dzięki czemu umożliwiają transmisję większej ilości danych użytkowych na połączeniu, co zapewnia większą przepływność.
Z tego powodu UDP jest używany częściej od TCP podczas aktywności wrażliwych na opóźnienia, takich jak streaming lub granie.
W przypadku ExpressVPN UDP był o 24% szybszy na połączeniu ze Stanów Zjednoczonych do Wielkiej Brytanii i o 37% szybszy na połączeniu z Australią.
Różnica była jeszcze wyraźniejsza dla NordVPN. Utraciliśmy 81% naszej prędkości pobierania na połączeniu TCP z Wielką Brytanią i 94% na połączeniu z Australią.
TCP był jednak odrobinę szybszy od UDP, gdy łączyliśmy się z serwerem NordVPN w tym samym kraju.
2. TCP zużywa więcej danych niż UDP
TCP zużywa więcej danych niż UDP, ponieważ oferuje więcej informacji w nagłówku każdego pakietu danych.
Każdy pakiet danych wysyłany przez Internet ma nagłówek, który można porównać do adresu na kopercie. Zawiera on informacje konieczne, aby dostarczyć dane do właściwego miejsca oraz inne dodatkowe informacje wymagane przez protokół.
Zarówno UDP, jak i TCP pokazują porty źródłowe oraz docelowe dla danych, długość pakietu danych oraz sumę kontrolną w nagłówku. TCP zawiera jednak dodatkowe informacje, aby zagwarantować prawidłowe dostarczenie:
Numer sekwencyjny
Numer potwierdzenia
Flagi TCP (np. synchronizacja, potwierdzenie)
Okno (rozmiar bufora odbiorczego)
Wskaźnik pilności
Dodatkowe opcje TCP
Choć dzięki temu TCP jest jest niezawodny, jest też mniej wydajny od UDP. Nagłówki TCP mogą przekroczyć 20 bajtów w porównaniu do zaledwie 8 bajtów dla UDP.
WSKAZÓWKA EKSPERTA: Suma kontrolna jest obliczana dla danych dwa razy: przed ich wysyłką i po odebraniu. Jeśli wynik odbiorcy będzie inny, to znaczy, że dane zostały uszkodzone podczas przesyłania.
TCP wymaga również intensywniejszej komunikacji między nadawcą i odbiorcą. Dzieje się tak, ponieważ odbiorca potwierdza (ACK) odbiór pakietów TCP, a wszystkie zagubione pakiety muszą zostać wysłane ponownie. W rezultacie TCP zużywa więcej danych niż UDP.
Podczas naszej analizy zużycia danych przez VPN odkryliśmy, że OpenVPN z TCP zużył 19,96% więcej danych niż połączenie bez VPN-u, a OpenVPN z UDP 17,23% więcej.
Jeśli korzystasz z pakietu danych Twojej sieci komórkowej i płacisz za zużyte gigabajty lub Twój usługodawca nakłada limity, zużyjesz swój przydział szybciej z TCP.
3. TCP jest nieco bezpieczniejszy od UDP
UDP i TCP nie zostały zaprojektowane pod kątem bezpieczeństwa. Są przeznaczone po prostu do wysyłania pakietów danych przez Internet.
Inne protokoły i aplikacje wyżej w stosie komunikacyjnym zwykle dbają o bezpieczeństwo.
Ponieważ pakiety TCP są sekwencjonowane i potwierdzane, hakerom trudniej jest wstrzyknąć złośliwe dane niż w przypadku UDP.
Dzieje się tak, ponieważ TCP zapewnia, że pakiety zostaną otrzymane w odpowiedniej kolejności, więc brakujące/uszkodzone dane są wysyłane ponownie.
W praktyce żaden z tych protokołów nie ma problemów z bezpieczeństwem, gdy jest używany z VPN-em. Zarówno TCP, jak i UDP obsługują zabezpieczenia oraz funkcje prywatności mające na celu zapewnienie Ci bezpieczeństwa.
4. TCP jest mniej zawodny w porównaniu z UDP
TCP jest mniej zawodny z kilku powodów. Niektóre z nich, jak dokładniejsze sprawdzanie błędów i zastosowanie uzgadniania trójetapowego, by nawiązać połączenie, opisaliśmy już wcześniej.
Kolejny element niezawodności TCP to fakt, że w przeciwieństwie do UDP korzysta z mechanizmów kontroli przepływu, które minimalizują prawdopodobieństwo zagubienia pakietów.
TCP stosuje mechanizm „okna przesuwnego” do zarządzania transmisją danych.
Odbiorca informuje o dostępnej przestrzeni bufora, którą może wykorzystać do zaakceptowania pakietów przychodzących.
Następnie TCP ogranicza nadawcę do transmisji danych o rozmiarze nieprzekraczającym rozmiaru tego okna TCP. W razie przekroczenia rozmiaru nadawca musi poczekać, aż odbiorca zasygnalizuje, że ma więcej miejsca, zanim będzie mógł kontynuować wysyłkę.
Zrzut ekranu z Wireshark pokazujący kontrolę przepływu TCP w akcji.
Taki proces kontroli przepływu pozwala TCP dostosować szybkość transmisji do możliwości odbiorcy, co zapobiega jego przeciążeniu.
Niestety konieczność oczekiwania na komunikat zwrotny przed wysłaniem każdego pakietu sprawia, że TCP jest nieco wolniejszy i mniej wydajny niż bezpołączeniowy protokół UDP.
Z drugiej strony, UDP transmituje dane z prędkością dostosowaną do potrzeb nadawcy i nie bierze pod uwagę żadnych mechanizmów kontroli przepływu.
W efekcie serwer może zalać odbiorcę wieloma jednoczesnymi strumieniami danych, potencjalnie przekraczając jego pojemność.
W takich przypadkach odbiorca po prostu porzuca nadmiarowe pakiety UDP, których nie jest w stanie przetworzyć, zamiast czekać na sygnał mechanizmu kontroli przepływu.
5. UDP obsługuje Multicast, TCP nie
TCP jest zorientowany połączeniowo, co oznacza, że nawiązuje bezpośrednie połączenie między klientem a serwerem. Takie podejście ma wiele zalet, jeśli chodzi o niezawodną komunikację między dwoma węzłami sieci, jak np. między przeglądarką a serwerem internetowym.
Niestety, dana struktura nie jest kompatybilna z Multicast, rodzajem komunikacji sieciowej stosowanym do wideokonferencji oraz gier online, ponieważ wymaga on komunikacji typu „jeden do wielu”.
Z drugiej strony, UDP jest kompatybilny z Multicast, gdyż nie musi wiedzieć, czy zamierzony odbiorca jest dostępny.
Ponieważ UDP priorytetyzuje prędkość ponad niezawodność. jest idealny dla Multicast. Dane są transmitowane bez oczekiwania na potwierdzenie ich otrzymania. Wszelkie utracone pakiety powodują co najwyżej drobne zakłócenia streamingu w czasie rzeczywistym i nie mają wpływu na ogólną transmisję.
TCP vs. UDP: który jest lepszy?
Jeśli Twój VPN pozwala Ci wybrać między UDP i TCP, najpierw wypróbuj UDP. UDP jest szybszy od TCP, z którego nadal możesz korzystać do innych działań, jak przeglądanie Internetu w Twoim tunelu VPN UDP.
Zalecamy TCP z OpenVPN, tylko jeśli UDP jest zablokowany przez zaporę sieciową lub Twoje połączenie bywa niestabilne.
Wybór jednego z protokołów komunikacyjnych zależy od tego, w jakim celu korzystasz z VPN-u. W tej sekcji wyjaśnimy, który protokół będzie lepszy do streamingu, przeglądania Internetu, omijania cenzury i innych celów.
Streaming i gry
Zwycięzca: UDP
Granie i streaming zwykle używają połączenia UDP. Dzieje się tak, ponieważ lepiej jest pominąć niewielką część transmisji niż doświadczyć opóźnień, próbując ją odzyskać.
Z tego powodu zalecamy UDP, jeśli korzystasz z VPN-u do streamingu filmów lub grania w gry wideo.
W porównaniu z TCP UDP umożliwił nam bardziej stabilny streaming w wysokiej rozdzielczości
Jeśli używasz OpenVPN TCP, Twój VPN może niepotrzebnie próbować odzyskać zagubione pakiety danych. Kiedy czekasz na zagubione pakiety, gra lub stream są kontynuowane, zanim Twój ekran zostanie zaktualizowany.
Omijanie zapór sieciowych i cenzury
Zwycięzca: TCP
Jeśli chcesz ominąć cenzurę lub zaporę sieciową, wybierz TCP dla OpenVPN.
Korzystając z TCP na porcie 4433, Twój ruch wgląda tak samo, jak zaszyfrowany ruch sieciowy HTTPS. Blokowanie portu TCP 4433 zamknęłoby wszystkie strony e-commerce, dlatego ten ruch jest zwykle przepuszczany przez zapory.
Niektóre VPN-y obsługują TCP na porcie 80, który jest używany do przesyłania niezaszyfrowanego ruchu internetowego i również będzie w stanie obejść zaporę bez najmniejszego problemu.
Naszym zdaniem protokoły TCP zawsze lepiej radziły sobie z omijaniem cenzury internetowej.
Studenci twierdzą, że używanie OpenVPN z TCP pozwoliło im obejść zaporę sieciową uczelni, podczas gdy ruch UDP był blokowany.
TCP może działać w krajach, gdzie VPN-y są oficjalnie zablokowane, ale należy mieć na uwadze, że ruch VPN nadal może zostać zidentyfikowany za pomocą głębokiej inspekcji pakietów. Sam TCP nie zapewni Ci ochrony, jeśli korzystanie z VPN-ów jest nielegalne lub niebezpieczne w Twoim kraju.
Zawsze próbuj najpierw UDP dla OpenVPN. Jest szybszy, a Twoje aplikacje nadal będą miały TCP w wewnątrz tunelu, jeśli będą go potrzebowały w celu zapewnienia niezawodności.
OpenVPN Inc. – firma, która tworzy oprogramowanie VPN, opierając się na protokole OpenVPN, zapewnia:
„Protokół OpenVPN funkcjonuje najlepiej z protokołem UDP. Domyślnie, połączenie(a) … są zaprogramowane tak, aby zawsze najpierw próbować UDP, a jeśli to się nie uda, przejść na TCP”.
Jeśli więc Twój VPN nie działa z UDP przez problemy z siecią, może się okazać, że korzystanie z OpenVPN z TCP naprawi ten problem. Protokół TCP został przecież zaprojektowany, aby zrekompensować zawodne połączenia sieciowe.
E-maile i przeglądanie Internetu
Zwycięzca: UDP
Zalecamy wybór OpenVPN UDP podczas codziennych aktywności, takich jak korzystania ze skrzynki e-mail czy przeglądania Internetu.
Powszechne przekonanie, że należy używać tunelu VPN TCP dla aplikacji, które wymagają szczególnej niezawodności, jest błędne. Nie jest to konieczne i zwykle nie stanowi najlepszego pomysłu. Wewnętrzne połączenie nadal ma TCP w razie potrzeby – tunel VPN nie potrzebuje kolejnej warstwy.
Jeśli opakujesz połączenie TCP w tunel VPN TCP, ryzykujesz „załamanie TCP”. Dzieje się tak, gdy obie warstwy TCP próbują zrekompensować utracone pakiety, ponieważ mają one niezależne liczniki czasu używane do określania, kiedy pakiet został utracony.
Jak VPN-y używają TCP i UDP?
OpenVPN, to protokół VPN z otwartym kodem źródłowym używany przez większość bezpiecznych usług VPN. Wiele sieci oferuje użytkownikom możliwość wyboru między OpenVPN UDP i OpenVPN TCP. W tej sekcji omówimy, jaki wpływ mają one na funkcjonalność Twojego VPN-u.
Funkcje UDP i TCP NordVPN można znaleźć w menu protokołu.
Najpierw wyobraź sobie, że przeglądasz stronę internetową bez VPN-u. Połączenie między Twoim urządzeniem a przeglądarką będzie oparte na TCP, ponieważ dany protokół jest mniej zawodny od UDP. Zobacz, jak to działa:
Jak ruch TCP jest kierowany przez Internet bez VPN-u.
Gdy masz włączony VPN, nowe połączenia są opakowane w tunel Open VPN między Twoim urządzeniem a serwerem VPN. Tunel łączy Twoje urządzenie oraz serwer VPN – może on korzystać zarówno z UDP, jak i TCP.
Jak OpenVPN UDP lub TCP opakowuje ruch TCP.
Kiedy zmieniasz swoje ustawienia VPN, decydujesz, jakiego „opakowania” chcesz używać.