podaj_i_omow_grupy_portow_w_sieciach_tcp_udp_w_ip._podaj_mozliwosci_ich_programowania_oraz_wlasnosci_z_tego_wynikajace

Pytanie: “Podaj i omów grupy portów w sieciach TCP/UDP w IP. Podaj możliwości ich programowania oraz własności z tego wynikające.”

W każdej chwili wiele procesów może korzystać z protokołu TCP, UDP. W celu rozróżnienia tych procesów w obu protokołach używa się 16-bitowych numerów portów. Gdy klient chce się skontaktować z serwerem musi go zidentyfikować. Zarówno dla protokołu TCP jak i UDP zdefiniowano grupę portów ogólnie znanych (well-known port) przeznaczonych do wykonywania ogólnie znanych usług. Np. w każdej implementacji TCP/IP serwerowi FTP przypisano port 21. Serwerom TFTP przyporządkowano port 69 protokołu UDP.
Z drugiej strony klienci używają portów efemerycznych (ephemeral port), czyli krótkotrwałych. Numery tych portów zazwyczaj są automatycznie wyznaczane klientom przez protokoły TCP i UDP. Klienci zazwyczaj nie muszą sie zajmować numerami portów efemerycznych. Wyznaczaniem numerów portów zajmuje się organizacja IANA (Internet Assigned Numbers Authority).

Każdy port należy do jednego z trzech zakresów:

- Porty ogólnie znane – 0 - 1023. W miare możliwości ten sam numer portu jest przypisany do tej samej usługi w obu protokołach – TCP, UDP. Organizacja IANA sprawuje nad nimi kontrolę.
- Porty zarejestrowane – 1024 – 49151. Organizacja IANA, nie sprawuje nad nimi kontroli, lecz rejestruje numery portów i sporządza wykazy przyporządkowania. Np. porty 6000 do 6063 przyporządkowane są do serwera X Window dla obu protokołów.
- Porty dynamiczne albo prywatne – 49152 – 65335. Organizacja IANA nie mówi nic o tych portach, są to porty nazywane efemerycznymi.

W systemie UNIX istnieje pojęcie portu zarezerwowanego. Jest to każdy port mniejszy od 1024. Te porty mogą być przypisane gniazdom tylko przez proces nadzorczy (superuser). Wszystkie ogólnie znane porty sa zarezerwowanymi i serwer przypisujący numer takiego portu musi uzyskać przywilej nadzorcy. Kilka procesów klientów wymaga, by numer portu zarezerwowanego był używany w komunikacji klient – serwer w celu ustalenia tożsamości klienta; popularne przykłady to rlogin oraz rsh . Te procesy wywołują funkcję rrsesvport, aby utworzyć gniazdo i przypisać do niego nieużywany port z zakresu 513 – 1024.