Port może działać inaczej zależnie od tego, czy usługa używa protokołu TCP, czy UDP. TCP najpierw ustanawia połączenie i potwierdza dostarczenie danych. UDP wysyła datagramy bez tworzenia połączenia i bez wbudowanego potwierdzania odbioru.
Spis treści
Czym różni się port TCP od portu UDP?
Port to numer używany do wskazania usługi działającej na urządzeniu. Numer portu nie określa jednak całego sposobu komunikacji. W regule zapory port TCP i port UDP są odrębnymi celami, nawet gdy mają ten sam numer.
TCP i UDP są protokołami transportowymi. TCP zapewnia uporządkowany i kontrolowany strumień danych. UDP przekazuje niezależne datagramy, czyli pojedyncze jednostki danych. Porównania tych protokołów zwykle wskazują trzy podstawowe różnice: sposób ustanawiania komunikacji, obsługę dostarczenia oraz koszt transmisji.
Porównanie TCP i UDP w SubnetPlanner opisuje te protokoły jako różne sposoby transportu danych, a nie jako dwa warianty tego samego portu.
Jak TCP ustanawia połączenie?
TCP rozpoczyna komunikację od ustanowienia połączenia między klientem i serwerem. Dopiero po tym etapie aplikacje przesyłają dane w ramach tego połączenia. Serwer może dzięki temu śledzić stan komunikacji i reagować na potwierdzenia oraz brak potwierdzenia.
TCP numeruje przesyłane dane i wykorzystuje potwierdzenia odbioru. Jeżeli fragment danych nie dotrze albo dotrze poza kolejnością, protokół może zareagować na ten problem, aby odbiorca otrzymał uporządkowany strumień. Zwiększa to przewidywalność transmisji, ale dodaje komunikaty kontrolne i czas potrzebny na rozpoczęcie połączenia.
W praktyce reguła zapory dla usługi TCP musi uwzględniać komunikację związaną z połączeniem, a nie tylko pojedynczy pakiet wysłany do numeru portu.
Jak działa komunikacja UDP?
UDP nie ustanawia połączenia przed wysłaniem danych. Aplikacja przekazuje datagram do wysłania, a protokół transportowy nie zapewnia samodzielnie potwierdzenia odbioru, ponowienia transmisji ani uporządkowania wszystkich datagramów.
Dzięki mniejszej liczbie czynności kontrolnych UDP może rozpocząć przesyłanie bez etapu ustanawiania połączenia. Jest to przydatne wtedy, gdy ważny jest krótki czas reakcji albo gdy aplikacja sama obsługuje utratę, kolejność lub ponowienie danych. Jeżeli takie mechanizmy są potrzebne, muszą wynikać z aplikacji lub protokołu działającego wyżej.
Opis TCP i UDP w Protocol Ports oraz zestawienie Portdir wskazują brak ustanawiania połączenia jako jedną z kluczowych cech odróżniających UDP od TCP.
Reliability and speed: co zmienia wybór protokołu?
TCP wybiera się wtedy, gdy brak danych lub ich zmiana kolejności może uszkodzić wynik działania usługi. Mechanizmy kontroli transmisji pomagają dostarczyć dane w odpowiedniej kolejności, ale mogą zwiększyć opóźnienie, szczególnie gdy występują straty pakietów.
UDP ma mniejszy narzut związany z obsługą transmisji i nie czeka na ustanowienie połączenia. Nie oznacza to jednak, że każda usługa UDP jest automatycznie szybsza. Rzeczywisty czas odpowiedzi zależy także od aplikacji, sieci, opóźnień i sposobu obsługi utraconych datagramów.
Najprostsza zasada interpretacji dokumentacji jest następująca: TCP stawia na kontrolowane dostarczenie strumienia, a UDP na prostą i szybką wymianę datagramów. Szczegółowe porównania praktycznych skutków tego wyboru przedstawia także SpeedtestHQ.
Przykłady usług używających TCP i UDP
| Usługa lub zastosowanie | Typowy wybór | Znaczenie dla działania |
|---|---|---|
| HTTP i HTTPS | TCP | Transmisja treści strony wymaga kontrolowanego dostarczenia danych. |
| DNS | UDP lub TCP | Wybór zależy od rodzaju i rozmiaru wymiany oraz od wymagań konkretnej komunikacji DNS. |
| Poczta elektroniczna | TCP | Połączenie i kontrola transmisji wspierają przewidywalne przekazywanie wiadomości. |
| VPN | TCP lub UDP | Protokół zależy od technologii VPN i sposobu, w jaki obsługuje ona transport danych. |
| Zdalny dostęp | TCP lub UDP | Wybór zależy od konkretnego protokołu oraz tego, czy ważniejsza jest kontrola dostarczenia, czy czas reakcji. |
Wniosek jest ważny przy konfiguracji zapory: wpis „port 443” nie zawsze wystarcza. Reguła musi określać także protokół, na przykład TCP albo UDP. Jeśli dokumentacja usługi podaje oba warianty, należy utworzyć reguły zgodne z wymaganym zastosowaniem.
Jak czytać regułę zapory dla portu?
- Sprawdź nazwę usługi i wymagany protokół transportowy.
- Odczytaj numer portu oraz kierunek ruchu: przychodzący albo wychodzący.
- Utwórz regułę dla właściwej pary, na przykład port plus TCP albo port plus UDP.
- Jeśli usługa korzysta z więcej niż jednego protokołu, skonfiguruj każdy wymagany wariant osobno.
- Po zmianie przetestuj usługę z urządzenia, które ma z niej korzystać.
Reguła TCP nie otwiera automatycznie tego samego numeru portu dla UDP. Analogicznie reguła UDP nie zastępuje reguły TCP. To jest oczekiwane zachowanie, ponieważ zapora rozróżnia protokół transportowy, a nie tylko numer portu.
Najważniejsza zasada wyboru
Wybierz TCP, gdy usługa potrzebuje uporządkowanego i kontrolowanego dostarczenia danych. Wybierz UDP, gdy aplikacja może działać bez ustanawiania połączenia i sama obsługuje skutki utraty lub kolejności datagramów. Przy analizie dokumentacji zawsze sprawdzaj razem numer portu i nazwę protokołu.
