Qual è il numero di porta di rete TCP / IP più grande consentito per IPv4?


Risposte:


565

Il numero di porta è un numero intero a 16 bit senza segno, quindi 65535.


216
"Ehi, Jim, quante porte dovremmo supportare?" "Basta fare 16 bit per buona misura. Nessuno avrà mai più di qualche centinaio aperto contemporaneamente, top."
JessieArr,

3
@barlop Stavo suggerendo che quando hanno creato le porte per la prima volta, una singola macchina con centinaia di connessioni era probabilmente considerata uno scenario peggiore. Ma oggi i server Web, i dispositivi di rete, ecc. Possono sicuramente confrontarsi con le limitazioni del numero di porte. Microsoft ha scritto un interessante articolo Technet su come diagnosticare ed evitarlo in ambienti Windows: blogs.technet.microsoft.com/askds/2008/10/29/…
JessieArr,

3
@JessieArr in entrambi i casi non è davvero un problema di 65536, è un problema di A) programmi che non rilasciano connessioni, lasciandoli nello stato "WAIT" che netstat mostra in combinazione con B) alcune versioni precedenti di Windows che vanno solo da 1024-5000 per porte dinamiche E anche allora, chissà se ciò fosse mai accaduto, dal momento che nessun programma si è mai preso la briga di riferire a nessuno che non poteva ottenere una porta dinamica, né ha Windows, quindi è un problema teorico che non è nemmeno realmente causato dal 65536 numero. Il browser Web potrebbe essere il maggiore utente di connessioni. Ho 297 righe nel mio output netstat. Lungi dall'essere 65K
barlop

3
@JessieArr La maggior parte degli stack IP utilizza una tupla di indirizzo IP di origine, porta di origine, indirizzo IP di destinazione e porta di destinazione come identificatore univoco per le connessioni. Ciò significa che un server può avere molte molte più connessioni attive che sono disponibili porte aperte, e la quantità di porte pone solo una limitazione (anche se molto grande) della quantità di connessioni aperte tra una singola fonte e una singola destinazione. Non credo che nessuno potrà mai eseguire server su (o ascoltare connessioni) più di 65536 porte contemporaneamente.
giovedì

41
@JessieArr - che ti insegnerà a provare a fare uno scherzo, questa è una faccenda seria, sai, non c'è tempo per questo genere di cose qui intorno: /
Matt

145

Il numero di porta più grande è un breve senza segno 2 ^ 16-1: 65535

Una porta registrata è quella assegnata da Internet Corporation per Assigned Names and Numbers (ICANN) a un determinato uso. Ogni porta registrata è nell'intervallo 1024–49151.

Dal 21 marzo 2001 l'agenzia del registro è ICANN; prima di allora era IANA.

Le porte con numeri inferiori a quelle delle porte registrate sono chiamate porte ben note; le porte con numeri maggiori di quelli delle porte registrate sono chiamate porte dinamiche e / o private.

Wikipedia: porte registrate


71

A quanto ho capito, dovresti usare solo fino a 49151, poiché da 49152 a 65535 sono riservati per le porte effimere


11
l'intervallo di porte effimere varia in base al sistema. Sto eseguendo Ubuntu Linux con kernel generico 3.19.0-43. $ cat /proc/sys/net/ipv4/ip_local_port_rangerisulta in output 32768 61000. Per quanto riguarda se si dovrebbe o non si debba usare una porta nell'intervallo di porte effimere del proprio sistema, sospetto che la maggior parte, se non tutti i sistemi operativi di rete moderni, salteranno su una porta che è già in uso.
Keith Reynolds,

37

Solo un seguito alla risposta di Smashery . L'intervallo di porte effimere (almeno su Linux, e sospetto anche di altri Unices) non è fisso. Questo può essere controllato scrivendo a /proc/sys/net/ipv4/ip_local_port_range

L'unica restrizione (per quanto riguarda IANA) è che i porti inferiori a 1024 sono designati come porti noti. Porte di cui sopra che sono gratuite per l'uso. Spesso scoprirai che le porte inferiori a 1024 sono limitate all'accesso da superutente, credo proprio per questo motivo.


15

Secondo RFC 793, la porta è un int senza segno a 16 bit.

Ciò significa che l'intervallo è compreso tra 0 e 65535.

Tuttavia, all'interno di tale intervallo, le porte da 0 a 1023 sono generalmente riservate a scopi specifici. Dico in generale perché, a parte la porta 0, di solito non c'è applicazione della prenotazione 0-1023. Le implementazioni TCP / UDP di solito non impongono prenotazioni diverse da 0. È possibile, se si desidera, eseguire la porta TLS di un server Web sulla porta 80, o 25 o 65535 anziché lo standard 443. Allo stesso modo, anche se lo è lo standard che i server SMTP ascoltano sulla porta 25, è possibile eseguirlo su 80, 443 o altri.

La maggior parte delle implementazioni riserva 0 per uno scopo specifico: assegnazione casuale delle porte. Quindi, nella maggior parte delle implementazioni , dire "ascolta sulla porta 0" significa in realtà "Non mi interessa quale porta utilizzo, dammi solo una porta casuale non assegnata su cui ascoltare".

Pertanto, qualsiasi limitazione all'utilizzo di una porta nell'intervallo 0-65535, incluso 0, intervallo di prenotazione temporaneo ecc., È specifica dell'implementazione (ovvero sistema operativo / driver) , tuttavia tutti, incluso 0, sono porte valide nell'RFC 793.



11

I numeri validi per le porte sono: da 0 a 2 ^ 16-1 = da 0 a 65535
Questo perché un numero di porta ha una lunghezza di 16 bit.

Tuttavia le porte sono divise in:
Porte ben note : da 0 a 1023 (utilizzate per servizi di sistema come HTTP, FTP, SSH, DHCP ...)
Porte registrate / utente : da 1024 a 49151 (puoi usarla per il tuo server, ma fai attenzione ad alcune applicazioni famose: come il server MSSQL (database management system) di Microsoft SQL Server o Apache Derby Network Server stanno già prendendo da questo intervallo, quindi non è consigliabile assegnare la porta di MSSQL al tuo server, altrimenti se MSSQL è in esecuzione allora il tuo server più probabilmente non funzionerà a causa del conflitto di porte)
Porte dinamiche / private : da 49152 a 65535. (non utilizzato per i server piuttosto che per i client, ad esempio nel servizio NATing)

Nella programmazione è possibile utilizzare qualsiasi numero compreso tra 0 e 65535 per il proprio server, tuttavia è necessario attenersi agli intervalli sopra menzionati, altrimenti alcuni servizi di sistema o alcune applicazioni non verranno eseguiti a causa di conflitti di porte.
Controlla l'elenco della maggior parte delle porte qui: https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers


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.