Kontynuujemy rozpoczęty temat połączenia sieciowego w języku Java, aczkolwiek dzisiaj będzie więcej teorii niż praktyki z wklejanymi paskami z kodami źródłowymi celem przybliżenia Wam pewnych faktów dotyczących wprowadzanych portów do obiektów klasy "Socket". Temat niniejszego artykułu: port protokołu i pewne zasady jakie trzeba przestrzegać.

PORT PROTOKOŁU NA CHŁOPSKI ROZUM

Gdy chcemy podjąć próbę nawiązania połączenia z serwerem, znajomość samego adresu IP nie wystarczy. Potrzebna jest jeszcze jedna informacja liczbowa. I to nie byle jaka. Ona musi być dodatnia i trzymająca się pewnego przedziału. Nie można podać -1. Liczba 80? Niby tak, ale to jest przeznaczone dla serwerów HTTP. Jak podamy zbyt dużą, też jest niedobrze. No to jaka ta liczba musi być?

Port protokołu to liczba całkowita dodatnia, która pozwala serwerowi ustalić z jaką aplikacją klient próbuje nawiązać połączenie. Niemniej ważną wiadomością od tej jest taka, że ta liczba musi być 16-bitowa, czyli teoretycznie wspierane numery muszą znaleźć się w przedziale od 0 do 65,535! Przecież serwery obsługujące pocztę zwane jako POP3 czy też serwery transferów plików FTP również muszą mieć swoje "miejsce". Zajęte porty są już dostosowane do pewnych wymagań i one "wiedzą" jak obsługiwać takie połączenie gdy poda się taki, a nie inny port. Z tego względu nie wolno wprowadzać byle jakiego numerka!

PORT MUSI SPEŁNIAĆ PEWNE WARUNKI

Kolejna rzecz to przestrzeganie pewnego kryterium. Wspomniałem o przedziale <0; 65,535>. To jest tylko teoretyczny przedział wynikający z zakresu szesnastobitowej liczby w systemie binarnym (216 - 1). Port protokołu musi dodatkowo być większy od 1023. Dlaczego akurat tyle? Bo wszystkie mniejsze porty zostały już zajęte przez usługi powszechnie wykorzystywane przez firmy i klientów. Poniżej została zamieszczona tabelka ukazujące dokładne numery portów jakie powinny być wykorzystywane dla określonych celów. Co więcej, programując usługi w jakiejś firmie zalecanym jest skontaktowanie się z administratorem systemu celem zdobycia informacji które jeszcze inne porty zostały zarezerwowane.

Oto małe zestawienie niektórych powszechnie wykorzystywanych usług mających zarezerwowany port protokołu:

Numer portu Usługa
20 File Transfer Protocol (tryb aktywny)
21 File Transfer Protocol (tryb pasywny)
22 Secure Shell
23 Telnet
25 Simple Mail Transfer Protocol
53 Domain Name System
67 Dynamic Host Configuration Protocol (serwer)
68 Dynamic Host Configuration Protocol (klient)

Tych usług jest dużo dużo więcej, natomiast chciałem nakreślić tylko niektóre z nich.


To miało na celu przybliżenie Wam istoty portu protokołu oraz zasad bezpośrednio z nim związanych. Teraz będziecie wiedzieć, że jak konstruktor "Socket" wymaga podania pewnego portu, to nie można dać byle czego. Po pierwsze, musi przestrzegać kryteriów wymienionych powyżej, a po drugie, musi być zgodny po stronie serwera oraz klienta. Tyle!

PODOBNE ARTYKUŁY