Perché ci sono solo 65.535 porte e ne avremo mai di più? [chiuso]


20

Capisco il ragionamento originale dietro avere 65.535 porte per indirizzo IP: questo è il numero più alto che può essere rappresentato da un numero a 16 bit o 2 byte e non era concepibile che i computer sarebbero mai stati in grado di risparmiare di più di quello per qualcosa di banale come le porte, o qualcosa del genere. Le porte potrebbero infatti aver bisogno di più di 1 bit ciascuna, poiché ogni porta può essere aperta, bloccata, "nascosta" o altre, ma per qualche ragione le persone dicono sempre che le porte funzionano con un numero di 16 bit. Se ho qualcosa di sbagliato in questo, ditemelo sicuramente.

Tuttavia, in un mondo in cui la maggior parte dei computer è a 32 bit e dispone di memoria / spazio più che sufficiente per risparmiare un paio di porte in più, perché abbiamo ancora così tante porte? Stiamo passando a HTML5, HTTP2.0, IPv6 e altre versioni decisamente diverse, quindi perché non fare lo stesso con le porte? Molti di questi consentono molto più di 16 bit; infatti, IPv6 consente 16 byte ! Capisco che molti di questi sono lontani anni o addirittura decenni, ma perché tutte le chiacchiere su questi aggiornamenti, e nemmeno una sbirciatina su più porte (di cui io, un dilettante, ho sentito parlare)?

Le uniche 2 ragioni che posso vedere per mantenere 65.535 porte stanno lasciando che le grandi aziende mantengano i loro vecchi sistemi legacy, il che non è certo una buona ragione, e l'ascesa di sistemi embedded, molti dei quali minuscoli, con minuscole quantità di spazio, memoria, ecc. , presto disponibile su Internet, molti come parte dell'Internet of Things. Con questi sistemi integrati, forse potremmo consentire loro di avere meno porte e, quando un grande computer desktop tenta di connettersi a uno, si potrebbe dire che è gentile, poiché il sistema embedded bambino può usare solo ~ 65.000 porte.

D'altra parte, posso pensare ad alcuni buoni motivi per avere più porte, la maggior parte ha a che fare con NAT e altri sistemi in cui più di un indirizzo IP privato deve comunicare con il resto di Internet utilizzando lo stesso indirizzo IP pubblico, come l'ascesa di macchine virtuali sullo stesso computer, tutte usando lo stesso indirizzo IP. Tecnicamente, ogni indirizzo IP di VM ha 65.535 porte, ma in realtà usano tutte le porte dell'host. In casi come questo, questi sistemi potrebbero esaurire le porte abbastanza rapidamente. Un altro caso specifico è il NAT di livello carrier, in cui un indirizzo IP pubblico viene tradotto in diversi indirizzi IP privati ​​e almeno uno di questi indirizzi privati ​​viene tradotto in un altro set di indirizzi ancora più privati. Ancora una volta, ogni indirizzo IP privato ha tecnicamente il proprio set di 65.535 porte, ma questa è un'illusione, come quando i dati vengono diffusi su Internet pubblico, utilizzano le porte dell'IP pubblico. Non sono sicuro che abbiamo necessariamente bisogno del NAT, di per sé, ma avremo bisogno di qualcosa del genere per conservare gli indirizzi anche con le enormi quantità che IPv6 ci darà. Quando abbiamo casi come questi, possiamo anche permetterci di non avere più di 65.535 porte?

Quindi, perché abbiamo ancora solo 65.535 porte e ci sono piani per consentirne di più?

PS So che tecnicamente ci sono 65.536 porte per indirizzo IP, ma la porta 0 non viene normalmente utilizzata per nulla.


Penso che tu debba porre a IANA queste domande che controllano le risorse. Penso che sia necessario leggere anche la guida TCP / IP poiché alcune delle tue conoscenze sembrano imperfette.
user9517 supporta GoFundMonica

1
Sì, ho pensato. Ho cercato di dire quanto ho capito, ma come puoi vedere, non capisco tutto.
trysis

7
Cosa c'è di fuori tema su questa domanda? Mi sto solo chiedendo.
trysis

1
Ho anche rinunciato a porre domande in questi siti. In questi giorni tutto sembra fuori tema ...
Nuno,

IPv6 elimina la limitazione delle porte offrendo a un computer un / 64 di indirizzi da utilizzare.
J.Money,

Risposte:


28

La porta è una parte del protocollo di livello 4 in uso - TCP o UDP , per la maggior parte; non è correlato all'indirizzamento della memoria dei computer effettivi, quindi non confonderti con l'indirizzamento della memoria a 32 o 64 bit dei moderni sistemi operativi.

Le intestazioni di questi protocolli di livello 4 hanno strutture definite in modo specifico , per le quali vengono utilizzate esattamente 16 bit per le porte di origine e di destinazione. Senza modifiche che violano la compatibilità dei protocolli di livello 4 da cui dipende l'intera Internet, il numero di porte non può essere modificato. Anche il più recente SCTP ha il vincolo di 16 bit sulle porte.

Tenere presente che questi protocolli identificano il traffico in base non solo alla porta di ricezione, ma anche all'IP ricevente e alla porta e IP di invio; sei limitato a 65535 porte TCP in ascolto (ma non ne hai così tante) e sei limitato a 65535 connessioni a un servizio specifico su un sistema remoto specifico (in pratica inferiore, vedi le porte effimere ), quindi è raro eseguire il limite di questi protocolli a meno che non si disponga di un sistema che crea molte connessioni a un sistema remoto specifico.


3
Dipende sempre dalla retrocompatibilità, no? Perché possiamo passare a IPv6, il che consente a molti più indirizzi IP è ridicolo, ma non possiamo avere un paio di porte in più? Questo è il mio principale fastidio.
trysis

2
@trysis Right: passare da IPv4 a IPv6 è un buon confronto con ciò che sarebbe necessario per passare a una versione di TCP e una versione di UDP con più bit nell'intestazione della porta. E se non l'hai notato, è stato un processo lento e doloroso persino portare la distribuzione IPv6 in tutto il mondo dove si trova ora (con un 1-2% del traffico mondiale che lo utilizza). Per IPv4, c'era un bisogno irresistibile di muoversi - esaurimento dell'indirizzo. L'esaurimento dello spazio delle porte su questi protocolli, d'altra parte, non è un problema comune, quindi non è necessario convincere ad apportare le enormi modifiche necessarie per realizzarlo.
Shane Madden

Oh, ha più senso. Grazie. Forse un giorno sentiremo il bisogno, ma suppongo che tu abbia ragione in quel bisogno che non c'è adesso.
trysis

Spero che se dovessimo mai affrontare tutti questi problemi, potremmo trovare qualcosa di meglio dell'indirizzamento delle porte basato su numeri interi. Qualcosa come le porte basate su UUID sarebbe fantastico. O gli spazi dei nomi effettivi sarebbero ancora più descrittivi ed eliminerebbero il potenziale di conflitti tra applicazioni. Immagina di impostare una porta in avanti per lo spazio dei nomi "com.windows.local.yourdomain.server001" o qualcosa del genere.
njbair,

quindi se due PC insieme effettuano 65.535 connessioni o simili a una coppia di PC al di fuori del NAT, nessuno degli altri PC sarebbe in grado di accedervi. Ho ragione?
Denis,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.