Si noti che un sistema è in grado di gestire più di 65536 connessioni simultanee, poiché ciascuna di esse non utilizza necessariamente una porta separata.
Una connessione TCP o flusso UDP è definita dalla 4 tupla:
(source IP address, source port, destination IP address, destination port)
Pertanto, anche se si dispone di un computer server Web con un solo indirizzo IP e un singolo pacchetto software server HTTP in ascolto solo sulla porta 80, in teoria potrebbe gestire 65536 connessioni per indirizzo IP client che si collegano ad esso . Quindi connessioni 64 Ki dall'indirizzo IP client 1, più connessioni 64 Ki dall'indirizzo IP client 2, ecc.
Quindi i protocolli supportano, per prima approssimazione, 2 48 connessioni / flussi verso una singola porta TCP o UDP su un singolo indirizzo IPv4. Considera insieme sia TCP che UDP, sia lo spazio degli indirizzi di IPv4 sia lo spazio degli indirizzi cosmicamente / comicamente di IPv6 di grandi dimensioni, e puoi vedere che i protocolli stessi non sono probabilmente la fonte del limite al numero di connessioni simultanee che un host in grado di gestire.
Allo stesso modo, non c'è nulla nei protocolli TCP o UDP che impedisca a una macchina client di utilizzare una singola porta di origine su un singolo indirizzo IP per effettuare più connessioni in uscita a vari indirizzi e porte del server. A volte le API di rete di un determinato sistema operativo potrebbero non essere così facili, ma è importante ricordare che, diciamo, la venerabile vecchia API "[BSD] Socket" è solo un'API per TCP e UDP. TCP e UDP potrebbero avere funzionalità non esposte dall'API Socket tradizionale.
Quindi il numero di connessioni TCP o flussi UDP simultanei che un determinato host è in grado di gestire è limitato non tanto dai numeri di porta, ma dalle risorse di sistema come lo spazio RAM e il tempo della CPU necessari per tenere traccia di tutte quelle connessioni e servirle tutte. Anche i dettagli specifici dell'implementazione di un sistema operativo possono imporre limiti artificiali. Ad esempio, nella filosofia Unix "tutto è un file", potrebbe esserci un descrittore di file per ogni connessione TCP o flusso UDP. Se il tuo kernel Unix ha un limite al numero di descrittori di file di cui può tenere traccia, quel limite di descrittori di file è un limite artificiale sul numero di connessioni TCP o flussi UDP simultanei che il tuo kernel può gestire.