Um servidor TCP é limitado a 65535 clientes?


10

Pode-se pensar que isso impõe um limite rígido ao número de clientes que um único computador / aplicativo pode manter.

Pode-se supervisionar um servidor da Web e ser necessário garantir que ele possa ser dimensionado para níveis de uso projetados para ir além das conexões de ~ 65k.

Para o software, existem algumas considerações separadas ( /programming/1575453/how-many-socket-connections-can-a-web-server-handle )


Alguma resposta o ajudou? Nesse caso, você deve aceitar a resposta para que a pergunta não apareça para sempre, procurando uma resposta. Como alternativa, você pode fornecer e aceitar sua própria resposta.
Ron Maupin

Respostas:


16

A resposta curta é não, esse não é o limite.

Um campo de porta TCP tem 2x bytes e armazena uma quantidade de 65536. Esse número limita a quantidade de endereços que um servidor pode ter. Mas isso não limita o número de clientes a ~ 64k. Cada pacote TCP possui dois campos de porta, um para o destino e outro para a origem (além de dois endereços IP).

Uma determinada conexão TCP é uma tupla da origem e do destino, cada um com endereço IP e número da porta. O destino (lado do servidor) permanece fixo, mas o endereço de origem (lado do cliente) pode variar entre a porta e o endereço IP.

Considerar:

  • IP do servidor - 100.0.0.1 (fixo)
  • Porta do servidor - 80 (fixa)
  • IP do cliente - 0.0.0.0 - 255.255.255.255 (intervalo de 32 bits)
  • Porta do cliente - 0 - 65535 (intervalo de 16 bits)

Sim, um cliente (ou escritório) com um único endereço IP, só pode se conectar ao servidor 65535 vezes simultaneamente, mas se esse cliente (ou escritório) tiver vários endereços IPv4, poderá conectar muitos mais.

Normalmente, existem milhões de endereços IP em uso em muitos dispositivos clientes e, se eles usassem apenas uma porta de origem única para conectar-se à sua porta de servidor único , já é possível ver o potencial de ultrapassar o número 65536.

O limite matemático teórico do protocolo IP / TCP é 2 ^ 32 * 2 ^ 16. Praticamente o número de endereços IP é menor - você precisaria subtrair alguns blocos IP reservados. Também praticamente, o número de portas do lado do cliente é menor porque um computador cliente típico estará executando vários aplicativos se conectando a outros servidores, reduzindo também o pool de portas TCP, mas esse pool raramente é usado - uma vez que uma sessão TCP termina o número da porta está disponível na piscina novamente.

Nota: Para IPv6, a quantidade de endereços IP aumenta muito, mas o campo Porta para TCP permanece do mesmo tamanho.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.