Diversamente dalla maggior parte dei numeri di porta, la porta 0 è una porta riservata in rete TCP / IP, il che significa che non dovrebbe essere usata nei messaggi TCP o UDP.
La porta 0 ha un significato speciale nella programmazione di rete, in particolare nel sistema operativo Unix quando si tratta di programmazione di socket in cui la porta viene utilizzata per richiedere porte dinamiche allocate al sistema. La porta 0 è come una porta jolly che indica al sistema di trovare un numero di porta adatto.
Le porte di rete in TCP e UDP vanno dal numero zero fino a 65535. I numeri di porta compresi tra zero e 1023 sono definiti come porte di sistema o porte note. L'Internet Assigned Numbers Authority (IANA) mantiene un elenco ufficiale dell'uso previsto di questi numeri di porta su Internet e la porta di sistema 0 non deve essere utilizzata.
Come porta 0 funziona nella programmazione di rete
La configurazione di una nuova connessione socket di rete richiede che venga assegnato un numero di porta sul lato di origine e di destinazione. I messaggi TCP o UDP inviati dal mittente (origine) contengono entrambi i numeri di porta in modo che il destinatario del messaggio (destinazione) possa inviare messaggi di risposta al corretto endpoint del protocollo.
IANA ha preassegnato le porte di sistema designate per applicazioni Internet di base come i server Web (porta 80), ma molte applicazioni di rete TCP e UDP non dispongono di una propria porta di sistema e devono ottenerne una dal sistema operativo del dispositivo ogni volta che iniziano a funzionare.
Per allocare il suo numero di porta di origine, le applicazioni chiamano le funzioni di rete TCP / IP come bind () per richiederne una. L'applicazione può fornire un numero fisso (codificato) da associare () se preferisce richiedere un numero specifico, ma tale richiesta può non riuscire poiché alcune altre applicazioni in esecuzione sul sistema potrebbero attualmente utilizzarlo.
In alternativa, può invece fornire la porta 0 a bind () come parametro di connessione. Ciò fa sì che il sistema operativo cerchi automaticamente e restituisca una porta disponibile adeguata nell'intervallo di numeri di porte dinamiche TCP / IP.
Si noti che all'applicazione non verrà effettivamente assegnata la porta 0 ma piuttosto un'altra porta dinamica. Il vantaggio di questa convenzione di programmazione è l'efficienza. Invece di ogni applicazione che deve implementare ed eseguire codice per provare più porte fino a quando non ottengono una valida, le app possono fare affidamento sul sistema operativo per farlo.
Unix, Windows e altri sistemi operativi variano leggermente nella gestione della porta 0, ma si applica la stessa convenzione generale.
Porta 0 e sicurezza di rete
Il traffico di rete inviato attraverso Internet agli host in ascolto sulla porta 0 potrebbe essere generato da utenti della rete o accidentalmente da applicazioni programmate in modo errato. I messaggi di risposta che gli host generano in risposta al traffico della porta 0 possono aiutare gli aggressori a conoscere meglio il comportamento e le potenziali vulnerabilità di rete di tali dispositivi.
Molti provider di servizi Internet (ISP) bloccano il traffico sulla porta 0, sia i messaggi in entrata che quelli in uscita, per proteggere questi exploit.