Interromper o acesso à porta TCP / IP (no Windows)

1

Estou procurando uma configuração em que um Windows com uma placa ethernet seja capaz de lidar com mais de 65k conexões TCP IPv4 abertas - sim, não é possível por padrão pela especificação.

Eu encontrei um bom tutorial sobre como configurar Como ajustar a pilha TCP / IP para um grande volume de solicitações da Web Windows e Linux sobre as portas utilizáveis máximas.

Minha ideia seria configurar vários endereços IP por controlador de ethernet (endereço MAC) e deixar o servidor DNS fazer uma varredura por Registros de recursos CNAME .

O aplicativo do servidor em execução na máquina Windows se ligaria a vários endereços IP conectados ao mesmo endereço MAC (controlador ethernet).

Os clientes seriam redirecionados para endereços IP diferentes por servidor DNS atendido pelo mesmo servidor.

Onde está definido - documentação oficial da Microsoft impressa ou online apreciada - quantos endereços IP podem ser configurados por controler ethernet? (Experimente não é confiável)

Existe alguma outra ideia de como resolver as limitações sem usar alterações de infra-estrutura adicionais? visualização ou nic adicional?

    
por Raphael Bossek 10.06.2011 / 11:23

1 resposta

4

Você provavelmente entendeu mal a limitação. Se você estiver executando um servidor com soquetes de escuta, não será afetado pelo limite de portas. O serviço apenas escuta em uma ou várias portas (por exemplo, porta 80 para um servidor da Web) e não "usa mais" do que isso.

Apenas com os clientes do serviço, a imagem é diferente. Eles precisam "reservar" uma porta para cada solicitação de conexão para servir como terminal da conexão. Normalmente, você não ficará sem portas, a menos que o cliente esteja criando um grande número de conexões por algum motivo ou esteja girando-as com muita rapidez, para que o sistema fique sem portas antes que os timers TIME_WAIT expirem.

One client opens and hold multiple TCP connections but there are multiple 1000 workstations running this client in my scenario

Você não está vendo esgotamento de porta então. Se você está tendo problemas, isso se deve a outra coisa. Existe uma coisa como o limite de memória para o conjunto não paginado, que se aplicaria principalmente a sistemas de 32 bits e limitaria efetivamente o número de conexões em torno de 44.000 - consulte a seção 4.8 do FAQ do Winsock para detalhes. Você pode estar atingindo vários outros limites também. Este artigo smallvoid.com explica alguns deles.

    
por 10.06.2011 / 11:30