Qual é o maior número de porta de rede TCP / IP permitido para IPv4?

406

Qual é o número de porta mais alto que um pode usar?

nome do usuário
fonte

Respostas:

565

O número da porta é um número inteiro de 16 bits não assinado, portanto, 65535.

Greg Hewgill
fonte
216
"Ei, Jim, quantas portas devemos suportar?" "Basta fazer 16 bits para uma boa medida. Ninguém nunca terá mais do que algumas centenas abertas ao mesmo tempo, no máximo".
JessieArr
3
@barlop Eu estava sugerindo que, quando eles criaram portas, uma única máquina com centenas de conexões provavelmente foi considerada o pior cenário. Hoje, porém, servidores da Web, dispositivos de rede etc. podem definitivamente se deparar com as limitações da contagem de portas. Microsoft escreveu um artigo Technet interessante sobre como diagnosticar e evitá-lo em ambientes Windows: blogs.technet.microsoft.com/askds/2008/10/29/...
JessieArr
3
@JessieArr nesses dois casos, não é realmente um problema 65536, é um problema de A) programas que não liberam conexões, deixando-os no estado "WAIT" que o netstat mostra combinado com B) algumas versões anteriores do Windows, que vão de 1024-5000 para portas dinâmicas.E mesmo assim, quem sabe se isso já aconteceu, já que nenhum programa se incomodou em relatar a alguém que não podia obter uma porta dinâmica, nem possui janelas.Portanto, é um problema torácico que nem é realmente causado pelo 65536 number.O navegador da Web pode ser o maior usuário de conexões.Eu tenho 297 linhas na minha saída netstat. Longe de 65K
barlop
3
@JessieArr A maioria das pilhas IP usa uma tupla de endereço IP de origem, porta de origem, endereço IP de destino e porta de destino como um identificador exclusivo para conexões. Isto significa que um servidor pode ter muitas muitas mais conexões ativas que existem portas abertas disponíveis e da quantidade de portas única coloca uma limitação (embora um muito grande) na quantidade de conexões abertas entre uma única fonte e um único destino. Acho que ninguém nunca estará executando servidores (ou escutando conexões) em mais de 65536 portas ao mesmo tempo.
Jduncanator
41
@JessieArr - que vou te ensinar a tentar fazer uma piada, este é um negócio sério que você sabe, não há tempo para esse tipo de coisa por aqui: /
Matt
145

O maior número da porta é um curto não assinado 2 ^ 16-1: 65535

Uma porta registrada é aquela atribuída pela Internet Corporation para nomes e números atribuídos (ICANN) para um determinado uso. Cada porta registrada está no intervalo de 1024 a 49151.

Desde 21 de março de 2001, a agência de registro é ICANN; antes dessa época era a IANA.

Portas com números inferiores aos das portas registradas são chamadas de portas conhecidas; As portas com números maiores que os das portas registradas são chamadas de portas dinâmicas e / ou privadas.

Wikipedia: Portas registradas

Brian R. Bondy
fonte
71

Pelo que entendi, você só deve usar até 49151, desde 49152 até 65535 são reservados para portas efêmeras

Smashery
fonte
11
o alcance efetivo das portas varia de acordo com o sistema. Estou executando o ubuntu linux com o kernel 3.19.0-43-genérico. $ cat /proc/sys/net/ipv4/ip_local_port_rangeresulta em saída 32768 61000. Quanto a se alguém deve ou não usar uma porta no intervalo efetivo de portas de um sistema, suspeito que a maioria, se não todos os sistemas operacionais de rede modernos, pulem uma porta que já esteja em uso.
Keith Reynolds
37

Apenas um acompanhamento para a resposta do esmagamento . O intervalo de portas efêmeras (pelo menos no Linux, e eu suspeito que outros Unices também) não é fixo. Isso pode ser controlado escrevendo para /proc/sys/net/ipv4/ip_local_port_range

A única restrição (no que diz respeito à IANA) é que as portas abaixo de 1024 são designadas como portas conhecidas. Portas acima que são gratuitas para uso. Muitas vezes, você verá que portas abaixo de 1024 são restritas ao acesso de superusuário, acredito por esse motivo.

Andrew Edgecombe
fonte
15

De acordo com a RFC 793, a porta é um int sem sinal de 16 bits.

Isso significa que o intervalo é de 0 a 65535.

No entanto, dentro desse intervalo, as portas 0 - 1023 são geralmente reservadas para fins específicos. Digo geralmente porque, além da porta 0, geralmente não há imposição da reserva 0-1023. Implementações de TCP / UDP geralmente não impõem reservas além de 0. Você pode, se quiser, executar a porta TLS de um servidor Web na porta 80, 25 ou 65535 em vez da 443 padrão. Da mesma forma, mesmo que seja o padrão que os servidores SMTP escutam na porta 25, você pode executá-lo nas 80, 443 ou outras.

A maioria das implementações reserva 0 para uma finalidade específica - atribuição de porta aleatória. Portanto, na maioria das implementações , dizer "escutar na porta 0" significa realmente "Não me importo com a porta que uso, apenas me dê uma porta aleatória não atribuída para escutar".

Portanto, qualquer limitação no uso de uma porta no intervalo 0-65535, incluindo 0, intervalo efêmero de reserva, etc., é específica da implementação (por exemplo, OS / driver) ; no entanto, todas, incluindo 0, são portas válidas no RFC 793.

Eldakka
fonte
11

Os números válidos para portas são: 0 a 2 ^ 16-1 = 0 a 65535
Isso ocorre porque um número de porta tem 16 bits de comprimento.

No entanto, as portas são divididas em:
Portas conhecidas : 0 a 1023 (usadas para serviços do sistema, por exemplo, HTTP, FTP, SSH, DHCP ...)
Portas registradas / de usuário : 1024 a 49151 (você pode usá-la no servidor, mas seja cuidado com alguns aplicativos famosos: como o servidor MSSQL (Microsoft SQL Server Database Management System) ou o Apache Derby Network Server já estão usando esse intervalo, ou seja, não é recomendável atribuir a porta do MSSQL ao seu servidor, caso contrário, se o MSSQL estiver em execução, o servidor mais provavelmente não será executado devido a conflitos de portas)
Portas dinâmicas / privadas : 49152 a 65535. (não usadas para os servidores, e sim para os clientes, por exemplo, no serviço NATing)

Na programação, você pode usar qualquer número de 0 a 65535 para o servidor, no entanto, você deve manter os intervalos mencionados acima; caso contrário, alguns serviços do sistema ou alguns aplicativos não serão executados devido a conflitos de porta.
Verifique a lista da maioria das portas aqui: https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers

Mosab Shaheen
fonte
7

Deve ser 65535.

Chris
fonte