Por que existem apenas 65.535 portas e teremos sempre mais? [fechadas]

12

Eu entendo o raciocínio original por trás de ter 65.535 portas por endereço IP: esse é o número mais alto que pode ser representado por um número de 16 bits ou 2 bytes, e não era concebível que os computadores fossem capazes poupar mais do que isso para algo tão trivial como os portos, ou algo parecido. As portas podem de fato precisar de mais de 1 bit cada, já que cada porta pode ser aberta, bloqueada, "stealth" ou outras, mas por alguma razão as pessoas sempre dizem que as portas operam com um número de 16 bits. Se eu tiver alguma parte deste erro, por favor, me diga.

No entanto, em um mundo onde a maioria dos computadores são de 32 bits e têm memória / espaço mais que suficiente para mais algumas portas, por que ainda temos muitas portas? Estamos no processo de mudar para HTML5, HTTP2.0, IPv6 e outras versões definitivamente diferentes, então por que não o mesmo com as portas? Muitos deles permitem muito mais do que 16 bits; Na verdade, o IPv6 permite 16 bytes ! Eu entendo que muitos deles estão a anos ou mesmo décadas de distância, mas por que todas as conversas sobre essas atualizações, e nem mesmo um pio sobre mais portas (que eu, um amador, ouvi falar)?

As duas únicas razões pelas quais posso ver para manter 65.535 portas são permitir que as grandes empresas mantenham seus antigos sistemas legados, o que dificilmente é uma boa razão, e a ascensão de sistemas embarcados, muitos deles pequenos, com quantidades minúsculas de espaço, memória , etc., chegando à Internet em breve, muitos como parte da Internet das Coisas. Com esses sistemas embarcados, talvez pudéssemos permitir que eles tivessem menos portas e, quando um grande computador de mesa tentasse se conectar a ele, poderíamos dizer que ele é gentil, já que o sistema embarcado do bebê só pode usar ~ 65.000 portas.

Por outro lado, posso pensar em algumas boas razões para ter mais portas, a maioria das quais tem a ver com o NAT e outros sistemas onde mais de um endereço IP privado tem de se comunicar com o resto da Internet usando o mesmo público. Endereço IP, como o surgimento de VMs no mesmo computador, todas usando o mesmo endereço IP. Tecnicamente, cada endereço IP da VM tem 65.535 portas, mas na realidade todas usam as portas do host. Em casos como esse, esses sistemas podem ficar sem portas razoavelmente rapidamente. Outro caso específico é o NAT carrier-grade, onde um endereço IP público é traduzido em vários endereços IP privados, e pelo menos um desses endereços privados é traduzido em outro conjunto de endereços ainda mais privados. Novamente, cada endereço IP privado tecnicamente tem seu próprio conjunto de 65.535 portas, mas isso é uma ilusão, pois quando os dados saem para a Internet pública, eles estão usando as portas do IP público. Não tenho certeza se necessariamente precisamos do NAT, mas precisaremos de algo parecido para conservar os endereços, mesmo com os enormes volumes que o IPv6 nos dará. Quando temos casos como esses, podemos até não ter mais de 65.535 portas?

Então, por que ainda temos apenas 65.535 portas e há planos para permitir mais?

P.S. Eu sei que existem tecnicamente 65.536 portas por endereço IP, mas a porta 0 geralmente não é usada para nada.

    
por trysis 02.05.2014 / 06:51

1 resposta

24

A porta é uma parte do protocolo da camada 4 em uso - TCP ou UDP , na sua maior parte; ele não está relacionado ao endereçamento de memória dos computadores reais, portanto, não fique confuso com o endereçamento de memória de 32 ou 64 bits dos sistemas operacionais modernos.

Os cabeçalhos desses protocolos da camada 4 possuem estruturas especificamente definidas , para as quais exatamente 16 bits são usados portas de origem e destino. Sem alterações de quebra de compatibilidade aos protocolos da camada 4 de que toda a Internet depende, o número de portas não pode ser alterado. Até mesmo o mais novo SCTP tem a restrição de 16 bits nas portas.

Lembre-se de que esses protocolos identificam o tráfego com base não apenas na porta de recebimento, mas também no IP de recebimento, na porta de envio e no IP; você está limitado a 65535 ouvindo portas TCP (mas você não tem tantas), e você está limitado a 65535 conexões com um serviço específico em um sistema remoto específico (menor na prática, veja ephemeral ports ), portanto, é incomum encontrar o limite desses protocolos, a menos que você tenha um sistema criando várias conexões com um sistema remoto específico.

    
por 02.05.2014 / 07:10