Internet jest to złożona sieć wzajemnie powiązanych ze sobą urządzeń i systemów. Porty protokołów odgrywają kluczową rolę w organizacji tego chaosu. Dzięki nim możliwe jest precyzyjne zidentyfikowanie konkretnej usługi lub aplikacji, a co za tym idzie, my jako użytkownicy możemy korzystać jednocześnie z kilku różnych aplikacji na jednym urządzeniu. Ta funkcjonalność jest fundamentem efektywnego działania współczesnych sieci. W artykule tym omówię czym jest port protokołu i jaką odgrywa rolę w warstwie transportowej. Dowiesz się w jaki sposób zostały podzielone numery portów, a także jakie porty zostały domyślnie przypisane do niektórych protokołów warstwy aplikacji.
Kilka słów o warstwie transportowej
W procesie komunikacji pomiędzy urządzeniami w sieci, kluczową rolę pełni warstwa transportowa. Do jej głównych zadań należy nawiązanie połączenia, a także dalsza obsługa sesji pomiędzy hostami. Ponadto warstwa ta odpowiedzialna jest za segmentację danych (podział na mniejsze części), identyfikowanie poszczególnych aplikacji, a w razie utraty danych, retransmisja. Warstwa transportowa kontroluje także przepływ danych i na bieżąco śledzi połączenia pomiędzy hostami.
To właśnie dzięki śledzeniu połączeń można wysyłać i odbierać dane pochodzące z różnych aplikacji na jednym urządzeniu. Na jednym komputerze w tym samym momencie możesz odbierać pocztę, mieć włączonych kilka stron internetowych, rozmawiać przez komunikator, a także przesyłać dane przez FTP. Jednak nie byłoby to możliwe także bez segmentacji danych.
Warstwa transportowa dzieli przesyłane dane (pochodzące od różnych aplikacji) na mniejsze fragmenty i wysyła je naprzemiennie. Dzięki temu mniejsze porcje danych mogą na bieżąco być odbierane przez kilka aplikacji jednocześnie. Jeśli nie byłaby stosowana segmentacja i zostałaby wysłana na raz duża porcja danych pochodząca od jednej aplikacji, wtedy pozostałe aplikacje musiały czekać w kolejce. W takiej sytuacji nie byłoby możliwe efektywne korzystanie z kilku aplikacji na raz.
Teraz jak już wiemy jak działa warstwa transportowa, przejdźmy do definicji portu protokołu.
Definicja portu protokołu
Warstwa transportowa musi dostarczyć przesyłane dane do właściwej aplikacji. W tym właśnie pomagają porty protokołu. Numer portu jest to identyfikator liczbowy, który umożliwia rozpoznanie konkretnej usługi lub aplikacji działającej na urządzeniu. Jest to po prostu identyfikator danej usługi.
Porty współpracują z adresami IP, tworząc w ten sposób tzw. gniazda sieciowe (ang. sockets), które są wykorzystywane do przesyłania danych. Numer protokołu stanowi jeden z parametrów gniazda.
Gniazdo jest to dwukierunkowy punkt końcowy połączenia. Dwukierunkowość oznacza możliwość wysyłania oraz odbierania danych. Aplikacje wykorzystują gniazdo do komunikowania się przez sieć. Przykładowo adres IP identyfikuje urządzenie w sieci, np. 192.168.1.1, a port identyfikuje usługę na tym urządzeniu, np. port 80 dla HTTP (serwer WWW).
Jakie są numery portów
Organizacja IANA (ang. Internet Assigned Numbers Authority) zajmuje się zarządzaniem domenami, a także przydzielaniem adresów IP oraz numerów portów. Numery portów to wartości z zakresu od 0 do 65535, które zostały podzielone na trzy kategorie.
Porty ogólnie znane (ang. well-known ports)
Ogólnie znane porty to zakres numerów portów w protokole TCP/UDP, które zostały zarezerwowane dla określonych usług i aplikacji serwerowych. Obejmują zakres od 0 do 1023.
Te porty są używane przez popularne protokoły komunikacyjne, takie jak np. HTTP, FTP, czy SMTP. Każdy port odpowiada konkretnej usłudze, co ułatwia komunikację pomiędzy urządzeniami w sieci.
Poniżej znajduje się lista wybranych ogólnie znanych portów, które są przypisane do danych protokołów warstwy aplikacji:
Numer protokołu 15824_a59130-66> | Protokół warstwy transportowej 15824_95d5db-d0> | Protokół warstwy aplikacji 15824_de5e7f-5d> |
|---|---|---|
80 15824_814a01-cf> | TCP 15824_6cb5f5-ad> | HTTP (HyperText Transfer Protocol) Serwer proxy najczęściej przypisany jest do portu 8080. 15824_9d436f-77> |
443 15824_3650b4-7c> | TCP 15824_5c88ba-fb> | HTTPS (HTTP Secure) 15824_c837d0-70> |
20, 21 15824_0234c2-90> | TCP 15824_02f534-89> | FTP (File Transfer Protocol), port 20 – transfer plików, port 21 – transfer poleceń 15824_99c1b1-0b> |
22 15824_ef1007-88> | TCP 15824_2c64c1-e3> | SSH (Secure Shell) 15824_49a9d4-9e> |
110 15824_b99c00-3a> | TCP 15824_a70a62-54> | POP3 (Post Office Protocol v3) 15824_f156d1-24> |
995 15824_a8a5cb-7e> | TCP 15824_112e3b-b0> | Szyfrowany POP3 (Post Office Protocol v3) 15824_58577d-83> |
143 15824_3aab66-bc> | TCP 15824_b03c45-2c> | IMAP (Internet Message Access Protocol) 15824_43a984-03> |
993 15824_f7d648-53> | TCP 15824_7bdfdf-7f> | Szyfrowany IMAP (Internet Message Access Protocol) 15824_eefdd4-07> |
25 15824_594f36-13> | TCP 15824_16e4a4-2d> | SMTP (Simple Mail Transfer Protocol) 15824_1a6a26-b6> |
465 lub 587 15824_c841c3-ee> | TCP 15824_0fda87-3c> | Szyfrowany SMTP (Simple Mail Transfer Protocol) 15824_ecfb83-01> |
23 15824_68c8af-f4> | TCP 15824_def735-98> | TELNET 15824_b34baa-60> |
53 15824_4db821-73> | TCP lub UDP 15824_6d3080-8f> | DNS (Domain Name System) 15824_cb77df-88> |
67, 68 15824_e04bbc-21> | UDP 15824_38eb20-8f> | DHCP (Dynamic Host Configuration Protocol) |
161 15824_ae19d8-29> | UDP 15824_b2332a-07> | SNMP (Simple Network Management Protocol) 15824_df37b6-de> |
389 15824_3c720c-2b> | TCP lub UDP 15824_d26aa8-09> | LDAP (Lightweight Directory Access Protocol) 15824_ebfc6d-3f> |
639 15824_474fc6-db> | TCP lub UDP 15824_d1f2a7-4f> | Szyfrowany LDAP (Lightweight Directory Access Protocol) 15824_d8992f-ce> |
UWAGA!
Administrator danego systemu może zmienić numer portu dla danej usługi. Praktyka ta jest stosowana w celu poprawienia bezpieczeństwa. W ten sposób można uniknąć ataków skierowanych na domyślne numery portów protokołów.
Porty zarejestrowane (ang. registered ports)
Pula z zakresu 1024 – 49151 obejmuje porty zarezerwowane dla usług i aplikacji, które są zainstalowane na komputerze użytkownika.
Porty dynamiczne/prywatne (ang. dynamic/private ports)
Kolejna grupa portów obejmuje zakres 49152 – 65535. Numery te są używane dynamicznie przez aplikacje klienckie do tworzenia tymczasowych połączeń.
Czy różne usługi mogą używać tego samego numeru portu?
Przeważnie jeden numer portu jest używany przez jedną usługę. Jednak zdarzają się wyjątki. Czasami dwie różne usługi mogą jednocześnie korzystać z tego samego numeru portu. W takim przypadku każda z usług musi działać na innym protokole warstwy transportowej (TCP lub UDP).
Niektóre usługi wykorzystują ten sam port i protokoły, co jest raczej rzadkością. Przykładem jest DNS, który korzysta z portu 53 za pomocą TCP oraz UDP.
Czasami jedna usługa korzysta z dwóch różnych portów, przy czym każdy z nich pełni inną funkcję. Przykładowo protokół FTP używa portu 20 do transferu plików, a portu 21 do transferu poleceń.

