IANA (ang. Internet Assigned Numbers Authority) to organizacja, która wyłoniła się z Internet Engineering Task Force w celu zaprowadzenia porządku w nazwach domen i adresach IP komputerów przyłączonych do Internetu.
Port protokołu – pojęcie związane z protokołami używanymi w Internecie do identyfikowania procesów działających na odległych systemach. Jest to jeden z parametrów gniazda.
Gniazdo w telekomunikacji (ang. socket) – pojęcie abstrakcyjne reprezentujące dwukierunkowy punkt końcowy połączenia. Dwukierunkowość oznacza możliwość wysyłania i odbierania danych. Wykorzystywane jest przez aplikacje do komunikowania się przez sieć w ramach komunikacji międzyprocesowej.
Gniazdo posiada trzy główne właściwości:
- typ gniazda identyfikujący protokół wymiany danych
- lokalny adres (np. adres IP, IPX, czy Ethernet)
- opcjonalny lokalny numer portu identyfikujący proces, który wymienia dane przez gniazdo (jeśli typ gniazda pozwala używać portów)
Gniazdo może posiadać (na czas trwania komunikacji) dwa dodatkowe atrybuty:
- adres zdalny (np. adres IP, IPX, czy Ethernet)
- opcjonalny numer portu identyfikujący zdalny proces (jeśli typ gniazda pozwala używać portów)
Adres IP wyznacza węzeł w sieci, numer portu określa proces w węźle, a typ gniazda determinuje sposób wymiany danych.
Numery portów reprezentowane są przez liczby naturalne z zakresu od 0 do 65535 (). Niektóre numery portów (od 0 do 1023) są określone jako ogólnie znane (ang. well known ports) oraz zarezerwowane na standardowo przypisane do nich usługi, takie jak np. WWW czy poczta elektroniczna. Dzięki temu można identyfikować nie tylko procesy, ale ogólnie znane usługi działające na odległych systemach. Numery od 1024 do 49151 są określone przez IANA jako zarejestrowane, (ang. registered), a od 49152 do 65535 jako dynamiczne/prywatne, (ang. dynamic/private).
Różne usługi mogą używać tego samego numeru portów, pod warunkiem że korzystają z innego protokołu (TCP lub UDP), chociaż istnieją także usługi korzystające jednocześnie z jednego numeru portu i obu protokołów. Przykładem takiej usługi jest DNS – korzysta z portu 53 za pomocą TCP i UDP jednocześnie. Zdarza się także, że jedna usługa może korzystać z dwóch różnych portów używanych do innych zadań, jak to jest w przypadku FTP czy SNMP.
Poszczególne numery portów przydzielone są przez IANA.
Grupy portów:
Do dyspozycji jest ogółem 65 535 portów TCP i UDP. Aby zachować nad nimi kontrolę, a także by móc przydzielać aplikacjom stałe numery, podzielono je na trzy grupy.
- Dobrze znane porty (well known ports) – zarezerwowane, standardowe numery portów od 1 do 1023. Ułatwiają nawiązanie połączenia, ponieważ zarówno nadawca, jak i odbiorca z góry wiedzą, że dane muszą być przesłane dla określonego procesu pod określony numer portu. Serwery Telnetu używają na przykład portu nr 23. Dobrze znane porty umożliwiają klientom nawiązywanie połączeń z serwerami bez dodatkowej konfiguracji. Zarządzaniem tymi portami zajmuje się Internet Assigned Numbers Authority (IANA). Listę aktualnie przydzielonych numerów portów można znaleźć pod adresem http://www.iana.org/assignments/port-numbers . Do roku 1992 dobrze znane porty ograniczały się do zakresu 1 do 255. Porty o numerach od 256 do 1023 były stosowane do usług uniksowych.
- Zarejestrowane porty (registered ports) – porty o numerach od 1024 do 49.151 przewidziane są dla usług, które zwyczajowo korzystają z określonych portów. Przykładem może być port 3128, często wykorzystywany przez serwery proxy jako alternatywny port HTTP.
- Porty przydzielane dynamicznie (dynamically allocated ports, również ephemeral ports) – jak wskazuje nazwa, zawsze przydzielane dynamicznie. Są to porty o numerach od 49.152 do 65.535. Każdy klient może korzystać z nich tak długo, jak długo kombinacja protokołu transportowego, adresu IP i numeru portu jest jednoznaczna. Proces, który potrzebuje dostępu do portu, żąda go od swojego hosta
W systemie Windows polecenie netstat wyświetla listę aktualnie uruchomionych programów (usług) korzystających z zasobów sieci, adresy IP do których nastąpiło połączenie, aktualne porty zarówno lokalne jak i zdalne z którymi łączy się dany program (usługa) oraz stan połączenia. Program netstat posiada duże możliwości w wyświetlaniu danych. Dane formuje się poprzez przełączniki (dodatkowe argumenty podawane podczas wywoływania programu). Wszystkie przełączniki wyświetlane są po podaniu polecenia:
>netstat /?
Poniżej przykład działania programu netstat z opcją -b (wymaga uprawnień administratora):
Proto Local Address Foreign Address State TCP 10.100.2.21:59446 db5sch101102019:https ESTABLISHED [OneDrive.exe] TCP 10.100.2.21:59752 162.125.18.133:https ESTABLISHED [Dropbox.exe] TCP 10.100.2.21:59789 db5sch101101914:https ESTABLISHED [Explorer.EXE] TCP 10.100.2.21:59798 db5sch101110315:https ESTABLISHED ProfSvc [svchost.exe] TCP 10.100.2.21:59888 az0022:2078 ESTABLISHED WebClient [svchost.exe] TCP 10.100.2.21:59914 106.48.12.36:http CLOSE_WAIT [wps.exe] TCP 10.100.2.21:59960 0126-01-1:7680 ESTABLISHED DoSvc [svchost.exe]
Standardowe usługi
Port | Protokół |
---|---|
53 | DNS |
20 | FTP – przesyłanie danych |
21 | FTP – przesyłanie poleceń |
67 | BOOTP – serwer |
68 | BOOTP – klient |
79 | Finger |
70 | Gopher |
80 | HTTP, dodatkowe serwery, np. proxy, są najczęściej umieszczane na porcie 8080 |
443 | HTTPS (HTTP na SSL) |
143 | IMAP |
220 | IMAP3 |
6661 – 6667 | IRC |
5222 | XMPP – dla serwera sieci Jabber |
389 | LDAP |
636 | LDAPS (LDAP na SSL) |
3306 | MySQL |
119 | NNTP |
110 | POP3 |
995 | POP3S (POP3 na SSL) |
5432 | PostgreSQL |
873 | Rsync |
25 | SMTP |
22 | SSH |
514 | Syslog |
23 | Telnet |
69 | TFTP |
6000 – 6007 | X11 |
161 | SNMP |
W systemach uniksopodobnych lista portów i nazw odpowiadających im usług znajduje się w pliku /etc/services
Przykład:
za pomocą przeglądarki internetowej łączymy się ze stroną http://www.pg.edu.pl . Przeglądarka utworzy połączenie z adresem IP 153.19.40.170. Na serwerze zostanie użyty port TCP numer 80, dobrze znany port serwerów WWW (internetowych). Klient wykorzysta dynamicznie przydzielany port np. 29867.
Klient, który wywołuje stronę internetową, znajduje się w lokalnej sieci, co można poznać po adresie 192.168.0.55 Dane przechodzą przez router, gdzie stosowana jest maskarada z użyciem Network Address Translation (NAT).