01.09. Portu numuri

Last modified by Valdis Vītoliņš on 2018/01/15 21:44

01.09. Portu numuri

Mēs teicām, ka TCP un UDP identificē lietotnes, izmantojot 16-bitu portu numurus. Kā šie portu numuri tiek izraudzīti? Serveri parasti ir pazīstami pēc to labi zināmajiem portu numuriem. Piemēram, katra TCP/IP implementācija, kura nodrošina FTP servisu, to nodrošina uz TCP 21. porta. Katrs Telnet serveris ir uz TCP 23. porta. Katra TFTP (Triviālais Failu Pārsūtīšanas Protokols) ir uz UDP 69. porta. Šiem servisiem, kurus var nodrošināt jebkura TCP/IP implementācija var būt portu numuri starp 1 un 1023. Labi zināmos portus pārvalda Interneta Piešķirto Numuru Institūcija (IANA). 

Līdz 1992.g. labi zināmie portu numuri bija starp 1 un 255. Porti starp 256 un 1023 parasti tika lietoti UNIX-specifiskiem servisiem, t.i. servisiem, kurus var atrast UNIX sistēmās, bet parasti ne uz citām operētājsistēmām. IANA tagad pārvalda portus starp 1 un 1023. Piemērs starpībai starp visā Internetā pazīstamu servisu un UNIX-specifisku servisu ir atšķirība starp telnet un rlogin. Abi ļauj mums ielogoties pa tīklu uz citu mītni. Telnet ir TCP/IP standarts ar labi zināmo porta numuru 23, ko var implementēt gandrīz uz ikvienas operētājsistēmas. Rlogin, no otras puses, bija sākotnēji izveidots Unix sistēmām (lai gan daudzas ne-UNIX sistēmas to arī piedāvā), tādēļ tam 1980-to gadu sākumā tika izraudzīts labi zināmais porta numurs 513.

Klientam parasti ir vienalga, kuru porta numuru lietot savā galā. Vienīgais, kas jānodrošina, lai šis porta numurs būtu dotajā mītnē unikāls. Klienta porta numurus sauc par gaistošiem portiem (jeb efemerāliem, jeb īslaicīgiem). Tas tādēļ, ka klienta ports pastāv vienīgi tik ilgi, kamēr klientam, kurš to darbina ir nepieciešams konkrētais serviss, toties servisi parasti darbojas kamēr vien mītne ir ieslēgta. 

Vairums TCP/IP implementāciju piešķir gaistošos portu numurus starp 1024 un 5000. Portu numuri virs 5000 ir domāti citiem servisiem (tiem, kuri nav pazīstami Internetā). Turpmāk grāmatā redzēsim vairākus piemērus, kā gaistošie porti tiek piešķirti. 

Solaris 2.2 ir izņēmums. Pēc noklusēšanas gaistošie porti priekš TCP un UDP sākas no 32768. E.4.nodaļa apraksta konfigurācijas īpatnības, ar kurām sistēmas administrators var izmainīt noklusētās vērtības.

Labi zināmie portu numuri ir atrodami failā /etc/services vairumā Unix sistēmu. Lai atrastu portu numurus Telnet serverim un DNS, varam izpildīt komandas: 

sun % grep telnet /etc/services
telnet 23/tcp says it uses TCP port 23
sun % grep domain /etc/services
domain 53/udp
domain 53/tcp says it uses UDP port 53
and TCP port 53

Rezervētie porti 

UNIX'a sistēmās pastāv rezervēto portu jēdziens. Vienīgi process ar superlietotāja tiesībām var piešķirt sev rezervēto portu. Šie portu numuri ir intervālā starp 1 un 1023, un tos lieto dažas aplikācijas (konkrēti, Rlogin, 26.2.nodaļa) kā daļu autentifikācijas procesam starp serveri un klientu.