El port 0 té una importància especial en la programació de xarxa, especialment en el sistema operatiu Unix quan es tracta de programació de sòcols on el port s'utilitza per sol·licitar ports dinàmics assignats pel sistema. El port 0 és un port comodí que indica al sistema que trobi un número de port adequat.
A diferència de la majoria dels números de port, el port 0 és un port reservat en xarxes TCP/IP, el que significa que no s'ha d'utilitzar en missatges TCP o UDP. Els ports de xarxa en TCP i UDP van des del nombre zero fins al 65535. Els números de port entre zero i 1023 es defineixen com a ports no efímers, ports del sistema o ports coneguts. L'Internet Assigned Numbers Authority (IANA) manté una llista oficial de l'ús previst d'aquests números de port a Internet i el port 0 del sistema no s'ha d'utilitzar.
Com funciona el port TCP/UDP 0 a la programació de xarxa
La configuració d'una nova connexió de sòcol de xarxa requereix que s'assigni un número de port tant al costat d'origen com al de destinació. Els missatges TCP o UDP enviats per l'originador (font) contenen els dos números de port de manera que el destinatari del missatge (destinació) pugui enviar missatges de resposta al punt final del protocol correcte.
IANA té ports de sistema designats prèviament per a aplicacions bàsiques d'Internet com ara servidors web (port 80), però moltes aplicacions de xarxa TCP i UDP no tenen el seu propi port de sistema i han d'obtenir-ne un del sistema operatiu del seu dispositiu cada vegada que s'executen.
Per assignar el seu número de port d'origen, les aplicacions criden a funcions de xarxa TCP/IP com bind() per sol·licitar-ne una. L'aplicació pot proporcionar un número fix (codificat en dur) per a bind() si prefereix sol·licitar un número específic, però aquesta sol·licitud pot fallar perquè una altra aplicació que s'executa al sistema l'està utilitzant actualment.
Com a alternativa, pot proporcionar el port 0 a bind() com a paràmetre de connexió. Això fa que el sistema operatiu cerqui i torni automàticament un port disponible adequat a l'interval de números de port dinàmics TCP/IP.
L'aplicació no té el port 0, sinó un altre port dinàmic. L'avantatge d'aquesta convenció de programació és l'eficiència. En lloc que cada aplicació implementi i executi codi per provar diversos ports fins que n'obtinguin un de vàlid, les aplicacions depenen del sistema operatiu.
Unix, Windows i altres sistemes operatius varien en el maneig del port 0, però s'aplica la mateixa convenció general.
Port 0 i seguretat de la xarxa
El trànsit de xarxa enviat a través d'Internet als amfitrions que escolten al port 0 pot ser generat per atacants de xarxa o accidentalment per aplicacions programades incorrectament. Els missatges de resposta que generen els amfitrions en resposta al trànsit del port 0 ajuden els atacants a conèixer el comportament i les vulnerabilitats potencials de la xarxa d'aquests dispositius.
Molts proveïdors de serveis d'Internet (ISP) bloquegen el trànsit al port 0, tant missatges entrants com sortints, per protegir-se d'aquests exploits.
FAQ
Quins són els números de port?
Els números de port utilitzats per a les connexions de xarxa TCP/IP actuen com a informació d'adreça, identificant els remitents i receptors d'un missatge. Els números de port permeten que diverses aplicacions de la mateixa xarxa comparteixin recursos alhora.
Com puc trobar els números de port?
Per trobar el número de port d'una adreça IP específica, aneu a l'indicador d'ordres, escriviu netstat -a i, a continuació, premeu Enter. Veureu una llista de connexions TCP actives juntament amb adreces IP i números de port separats per dos punts.
Em puc connectar al port 0?
No. Oficialment, el port 0 no existeix i no us podeu connectar, ja que és un número de port no vàlid. Tanmateix, podeu enviar un paquet d'Internet cap al port 0 i des del port 0 igual que ho faríeu amb un altre número de port.