Che cos'è una porta di rete?

Ovviamente, l'uso più comune della parola porto si riferisce alla spedizione. L'informatica, tuttavia, usa anche il termine porta. In effetti, ha due usi. Il primo si riferisce alla presa in cui è possibile inserire un cavo. Esempi tipici includono una porta USB o Ethernet. Tecnicamente, una presa ethernet potrebbe essere considerata una porta di rete. Questo non è il significato accettato della parola porta in rete. Una porta di rete è un numero logico che identifica a quale processo o servizio di rete è destinato il traffico di rete o da cui viene inviato.

Perché sono necessari i numeri di porta?

Quando il tuo computer comunica con un server web su Internet, inserisce il suo indirizzo IP nel campo del mittente. Ciò consente al server di sapere a quale indirizzo IP deve inviare la risposta. Quando quella risposta ritorna al tuo computer, il tuo browser interpreta la risposta e visualizza la pagina web.

Funziona bene in un sistema idealizzato con un solo pezzo di software che crea e riceve traffico di rete. Il mondo reale non è così, però. In ogni computer è presente una serie di software che creano traffico di rete. Per garantire che il traffico di rete venga correttamente trasferito al programma corretto, in alcuni casi, il processo corretto in un programma. Un ultimo livello di indirizzamento viene utilizzato il numero di porta.

Immagina di avere un browser web con due schede aperte e un videogioco online contemporaneamente. Ciascuna scheda del browser deve essere in grado di inviare e ricevere traffico di rete, potenzialmente contemporaneamente. Il gioco online deve anche inviare e ricevere traffico di rete. Non vuoi che il tuo gioco debba filtrare le risposte Web casuali e nemmeno che il tuo browser debba filtrare il traffico di gioco. A entrambe le schede e al gioco verrà assegnata almeno una porta di rete a ciascuna in modo che il processo del destinatario previsto possa essere facilmente determinato.

Lo stesso funziona anche per i server. Supponiamo di avere un server che esegue sia un server web che un server di posta elettronica. In tal caso, il numero di porta consente al sistema operativo di differenziare facilmente quali pacchetti di rete sono destinati a quale servizio.

Quali sono i numeri di porta?

I numeri di porta assumono la forma di un intero senza segno a 16 bit. Ciò significa che ci sono sedici bit binari per comporre i numeri, nessun numero negativo e tutti i numeri sono interi. Ciò consente 65536 possibili numeri di porta compresi tra 0 e 65535. Non esiste un sistema di porte fisiche.

L'intero schema di indirizzamento, come per gli indirizzi IP e gli indirizzi MAC, è del tutto logico. Potresti pensare agli indirizzi IP e MAC come all'indirizzo su una lettera per portarlo a casa tua/al tuo computer. In questa analogia, il numero di porta sarebbe come il nome sulla busta, assicurandosi che arrivi alla persona/processo giusto nella tua casa/computer.

All'interno dello spazio del numero di porta, c'è un'altra struttura. La porta numero 0 è riservata. Nel traffico TCP, 0 è completamente inutilizzato. Nel traffico UDP, il numero di porta è facoltativo, con una porta 0 che significa "nessuna porta". Funziona per UDP perché è un protocollo stateless che non si aspetta necessariamente una risposta. Le porte TCP e UDP sono separate. Un servizio può collegarsi a una o più porte su uno o entrambi i protocolli. I servizi che utilizzano entrambi in genere si collegano agli stessi numeri di porta in TCP e UDP.

Le porte 1-1023 sono note come porte "famose" e generalmente richiedono autorizzazioni amministrative per l'associazione. Alcune porte conosciute sono 80 per HTTP, 443 per HTTPS e 53 per DNS. Successivamente, hai l'intervallo 1024 – 49151. Queste sono conosciute come le porte "registrate". Si tratta di porte utilizzate regolarmente da determinati servizi, ma non abbastanza comuni o non abbastanza presto per ottenere un numero inferiore a 1023. Le porte tra 49152 e 65535 sono conosciute come porte effimere.

L'uso dei numeri di porta

IANA, Internet Assigned Numbers Authority, gestisce gli elenchi di porte noti e registrati. Le porte note hanno un solo servizio associato. Le porte registrate, tuttavia, possono avere una serie di servizi noti che utilizzano la porta per impostazione predefinita.

In genere, nulla impedisce effettivamente a qualsiasi programma di collegarsi a qualsiasi numero di porta. Come accennato in precedenza, i numeri di porta inferiori a 1024 tendono a richiedere autorizzazioni amministrative o di root per l'associazione. Tuttavia, puoi forzare qualsiasi servizio a collegarsi alla porta 80, ad esempio, anche se non è un server web. I numeri di porta negli intervalli noti e registrati tendono ad essere utilizzati solo dai listener di rete, con porte temporanee generalmente utilizzate per avviare le connessioni.

Un listener è una porta che viene aperta e lasciata aperta. Ascolta i messaggi in modo da poterli elaborare e inviare una risposta. Questo è quasi esclusivamente il comportamento di servizi di tipo server come un server web. Il server Web sarebbe ospitato sulle porte 80 e 443, mentre un browser che si connette a tali porte utilizzerebbe localmente una porta temporanea.

I numeri di porta standard per i listener di applicazioni indicano che è facile sapere come connettersi effettivamente a un servizio. Ad esempio, quando inserisci HTTPS all'inizio di un URL, il tuo browser presuppone per impostazione predefinita che debba connettersi alla porta 443. In alcuni casi, i listener verranno impostati su porte alternative. Ciò può essere dovuto al fatto che un altro servizio o versione del servizio utilizza già la porta standard. Potrebbe anche essere un tentativo di sicurezza attraverso l'oscurità.

Conclusione

Una porta di rete è un indirizzo logico. Il software può collegarsi a una porta, quindi il sistema operativo sa che tutto il traffico inviato a quella porta è destinato a quel processo. I numeri di porta vanno da 0 a 65535. Molti servizi sono associati a un numero di porta standard. I server utilizzano queste porte, mentre i dispositivi che si connettono ad esse utilizzano porte a numero elevato casuale. Ciò consente una facile connessione predefinita ai servizi e garantisce che la connessione a tale servizio non ti impedisca di ospitare tu stesso un altro servizio.