Co to jest port w sieci i jak działa?
Port w sieci to logiczny punkt komunikacji, który wskazuje konkretną usługę lub aplikację działającą na urządzeniu. Adres IP identyfikuje komputer, a numer portu kieruje dane do właściwego procesu. Nie należy mylić go z fizycznym gniazdem Ethernet lub USB. Port logiczny jest wartością używaną przez protokoły sieciowe.
Czym jest port w sieci?
Możesz wyobrazić sobie blok mieszkalny. Adres IP wskazuje adres budynku, natomiast numer portu przypomina numer konkretnego mieszkania. Dzięki temu przesyłka trafia nie tylko do właściwego budynku, lecz także do właściwego odbiorcy.
Jeden komputer może jednocześnie udostępniać stronę internetową, odbierać pocztę, obsługiwać połączenie zdalne i prowadzić inne usługi. Porty pozwalają systemowi rozróżnić te rodzaje ruchu. Port 80 jest zwykle związany z HTTP, port 443 z HTTPS, a port 22 z SSH.
Numer portu może mieć wartość od 0 do 65535. Sam numer nie wystarcza jednak do pełnej identyfikacji połączenia. Znaczenie ma także adres IP oraz protokół transportowy, czyli najczęściej TCP albo UDP.
Jak port współpracuje z TCP i UDP?
TCP i UDP działają w warstwie transportowej. Oba wykorzystują numery portów, aby przekazać dane właściwej aplikacji. TCP zapewnia między innymi kontrolę dostarczenia i kolejności danych, a UDP przesyła je bez ustanawiania takiego połączenia, dlatego często wybiera się go tam, gdzie ważne są małe opóźnienia.
Połączenie aplikacji z siecią opisuje się za pomocą gniazda (socketu). W uproszczeniu jest ono powiązaniem adresu IP z numerem portu i protokołem. System operacyjny na podstawie tych informacji kieruje odebrane dane do odpowiedniego procesu. Ten mechanizm rozdzielania ruchu między aplikacje nazywa się demultipleksacją.
Przykład połączenia przeglądarki z serwerem WWW wygląda następująco:
- Przeglądarka ustala adres IP serwera na podstawie nazwy domeny.
- Tworzy połączenie z portem usługi działającej na serwerze, na przykład 80 dla HTTP albo 443 dla HTTPS.
- System klienta przydziela po swojej stronie tymczasowy port źródłowy.
- Serwer odczytuje port docelowy i przekazuje dane do właściwej usługi.
Port docelowy wskazuje usługę na serwerze, a port źródłowy pomaga rozróżnić konkretne połączenie klienta. Dzięki temu jedno urządzenie może obsługiwać wiele sesji jednocześnie.
Jakie są rodzaje portów?
IANA, czyli Internet Assigned Numbers Authority, prowadzi rejestr nazw usług i przypisanych im numerów. Zakres portów dzieli się na trzy grupy:
- Porty dobrze znane (well-known) obejmują zakres 0–1023 i są związane ze standardowymi usługami, takimi jak HTTP, HTTPS, DNS czy SSH.
- Porty zarejestrowane (registered) obejmują zakres 1024–49151 i mogą być przypisywane konkretnym aplikacjom lub producentom.
- Porty dynamiczne i prywatne obejmują zakres 49152–65535. System często przydziela je tymczasowo klientom podczas nawiązywania połączeń.
Przypisanie numeru przez IANA nie oznacza, że aplikacja technicznie nie może użyć innego portu. Oznacza raczej standardowe lub zarejestrowane skojarzenie. Administrator może skonfigurować usługę tak, aby nasłuchiwała na innym numerze, o ile nie powoduje to konfliktu z innym procesem.
Najpopularniejsze porty i usługi
Poniższa tabela przedstawia wybrane standardowe przypisania:
| Numer portu | Protokół | Usługa |
|---|---|---|
| 20 | TCP | FTP – transfer danych |
| 21 | TCP | FTP – sterowanie połączeniem |
| 22 | TCP | SSH – bezpieczny dostęp zdalny |
| 53 | TCP/UDP | DNS – tłumaczenie nazw domenowych |
| 80 | TCP | HTTP – nieszyfrowane strony WWW |
| 443 | TCP | HTTPS – szyfrowany ruch WWW |
Ten sam numer może występować osobno dla TCP i UDP, ponieważ protokół transportowy jest częścią identyfikacji połączenia. Przykładem jest DNS, który może korzystać z portu 53 zarówno przez UDP, jak i TCP. Z kolei jedna usługa może używać kilku portów, jak FTP wykorzystujący osobne porty do sterowania i przesyłania danych.
Port logiczny nie jest gniazdem w obudowie komputera. To numer używany przez TCP lub UDP do skierowania ruchu do właściwej aplikacji. Adres IP wskazuje urządzenie, a połączenie adresu IP, portu i protokołu pozwala rozpoznać konkretną usługę oraz sesję komunikacyjną.