Przejdź do treściHisnLabs
← TCP/IP: adresy, porty i połączenia

Lekcja 2 z 4 · 7 min

Porty, TCP i UDP

Dlaczego jeden adres IP może prowadzić naraz sto rozmów i dlaczego niektóre z tych rozmów wymieniają szybkość na niezawodność.

Adres IP dostarcza pakiet do właściwego urządzenia. Nie mówi, która aplikacja na tym urządzeniu powinna go otrzymać. To zadanie portu: liczby, która mówi twojemu Macowi, jaki program prowadzi rozmowę. Cloudflare Learning Center porównuje to do budynku mieszkalnego: adres ulicy (IP) dostarcza pocztę do właściwego budynku, a numer mieszkania (port) dostarcza ją do właściwych drzwi.

Jedno połączenie, wiele drzwi

Porty pozwalają komputerowi odróżniać różne rodzaje ruchu, mimo że wszystko dociera przez to samo połączenie Wi-Fi lub kablowe. Wyjaśnienie Cloudflare jest bezpośrednie: „porty pozwalają komputerom łatwo odróżniać różne rodzaje ruchu: e-maile trafiają na inny port niż strony internetowe, na przykład, mimo że oba docierają do komputera przez to samo połączenie internetowe”. Porty żyją w nagłówkach TCP i UDP, warstwę wyżej niż sam adres IP; goły pakiet IP nie ma miejsca, by powiedzieć, dla jakiego portu jest przeznaczony.

Kto może używać jakiego numeru

Numery portów sięgają od 0 do 65535, a Internet Assigned Numbers Authority (IANA) zarządza tym, kto który dostaje: porty systemowe (0–1023) są przydzielane wyłącznie w drodze formalnej weryfikacji, porty użytkownika lub rejestrowane (1024–49151) można zarejestrować dla konkretnej usługi, a najwyższy zakres, 49152–65535, pozostaje nieprzydzielony do tymczasowego użytku, na przykład jako adres zwrotny wybierany przez twoją przeglądarkę dla własnego końca połączenia.

Źródło: rejestr IANA Service Name and Transport Protocol Port Number Registry.
PortZarejestrowana usługaCo zwykle z niego korzysta
22Secure Shell (SSH)Zdalny dostęp do wiersza poleceń
25Simple Mail TransferWysyłanie poczty między serwerami pocztowymi
53Domain Name ServerZapytania DNS
80HTTPZwykłe, niezaszyfrowane strony internetowe
443HTTPSZaszyfrowane strony internetowe

TCP: wolniejszy, ale nic nie ginie

Transmission Control Protocol (TCP), zdefiniowany w RFC 9293, jest zbudowany, by być niezawodny: „zapewnia aplikacjom niezawodną usługę strumienia bajtów w kolejności”, wykrywając utracone pakiety za pomocą numerów sekwencyjnych i wysyłając je ponownie, dopóki druga strona nie potwierdzi odbioru. Ta niezawodność kosztuje trochę czasu i narzutu, dlatego TCP jest właściwym wyborem dla rzeczy, które muszą dotrzeć w całości i we właściwej kolejności: strony internetowej, pobierania pliku, e-maila.

UDP: szybki i gotowy stracić trochę

User Datagram Protocol, opisany w RFC 768, przyjmuje odwrotny kompromis: „zapewnia programom aplikacji procedurę wysyłania wiadomości do innych programów przy minimalnym mechanizmie protokołu”. Nie ma uzgadniania, gwarancji kolejności ani automatycznego ponownego wysyłania. Cloudflare zaznacza, że pasuje to zwłaszcza do „transmisji wrażliwych na czas, takich jak odtwarzanie wideo czy zapytania DNS”, gdzie utracony pakiet to drobna usterka, ale czekanie na retransmisję byłoby gorsze niż po prostu kontynuowanie.

Najważniejsze

  • Port to liczba, która mówi urządzeniu, dla jakiej aplikacji lub usługi jest pakiet; sam adres IP identyfikuje tylko urządzenie.
  • IANA zarządza numerami portów w trzech pasmach: porty systemowe (0–1023), porty użytkownika/rejestrowane (1024–49151) i nieprzydzielone porty dynamiczne (49152–65535).
  • Popularne porty to między innymi 22 (SSH), 25 (poczta), 53 (DNS), 80 (HTTP) i 443 (HTTPS).
  • TCP (RFC 9293) sprawdza i ponownie wysyła utracone dane, zapewniając niezawodne dostarczenie we właściwej kolejności, kosztem prędkości.
  • UDP (RFC 768) pomija te sprawdzenia dla szybkości, co pasuje do ruchu wrażliwego na czas, takiego jak wideo i zapytania DNS.

Sprawdź się

  1. 1. Jaki problem rozwiązują porty, którego sam adres IP nie rozwiąże?

    • Mówią sieci, dla jakiej aplikacji na urządzeniu jest pakiet — Dobrze.
    • Szyfrują połączenie
    • Zastępują potrzebę adresu IP
    • Przyspieszają Wi-Fi

    Adres IP kieruje pakiet do urządzenia; port, przenoszony w nagłówku TCP lub UDP, mówi, jaki program na tym urządzeniu powinien się nim zająć.

  2. 2. Który port jest zarejestrowany dla HTTPS według rejestru IANA?

    • 21
    • 80
    • 443 — Dobrze.
    • 8080

    IANA wymienia port 443 jako „https”, używany dla HTTP przez TLS/SSL. Port 80 to zwykłe, niezaszyfrowane HTTP.

  3. 3. Dlaczego RFC 9293 opisuje TCP jako „niezawodny, w kolejności”?

    • Ponieważ TCP wykrywa utracone dane i wysyła je ponownie, i zachowuje dane w kolejności, w jakiej zostały wysłane — Dobrze.
    • Ponieważ TCP nigdy nie używa portów
    • Ponieważ TCP jest zawsze szybszy niż UDP
    • Ponieważ TCP domyślnie wszystko szyfruje

    TCP śledzi numery sekwencyjne, by wykryć luki, wysyła ponownie brakujące dane i składa strumień bajtów z powrotem w kolejności.

  4. 4. Dlaczego zapytania DNS i odtwarzanie wideo zwykle używają UDP zamiast TCP?

    • UDP jest bezpieczniejszy
    • UDP wymienia niezawodność na szybkość, co pasuje do ruchu, w którym brakujący pakiet to tylko drobna usterka — Dobrze.
    • TCP nie może używać portu 53
    • UDP gwarantuje, że pakiety dotrą w kolejności

    Cloudflare zaznacza, że UDP pasuje do „transmisji wrażliwych na czas, takich jak odtwarzanie wideo czy zapytania DNS” właśnie dlatego, że pomija uzgadnianie i narzut retransmisji TCP.

Wypróbuj to z FireAI

Zastosuj tę lekcję w praktyce na swoim Macu.

Źródła

Zastosuj to na swoim Macu

Wypróbuj wszystkie funkcje za darmo przez 17 dni, bez karty.

Pobierz na Maca Dokumentacja