
Então... eu tive essa discussão com meu professor de redes. Ele disse que algumas pessoas reclamam de falhas no roteador devido a muitas entradas nas tabelas NAT de um roteador.
Não entendi e perguntei: "Se a aplicação usa a mesma porta, por que o roteador trava? Deve ter apenas uma entrada (pc-ip,pcport;public-ip,public-port)". E ele disse: “não importa que esteja usando a mesma porta”.
Tive a ideia de que o NAT cria uma entrada para cada pacote que passa por ele. Estou assumindo NAT com sobrecarga, como você deve ter adivinhado.
Então as perguntas são:
Como as entradas nat são criadas? Por pacote ou por conexão? Quero dizer: suponha que eu envie um pacote UDP. O roteador cria uma entrada?
Quando inicio uma conexão TCP, o roteador cria uma entrada nat persistente até que a conexão seja fechada?
Meu professor estava certo? A tabela NAT pode sobrecarregar assumindo uma aplicação na mesma porta enviando pacotes?
Desde já, obrigado.
Responder1
- Por conexão (ou por fluxo UDP)
- Sim
- Sim. Por exemplo, seu navegador da Web em um PC interno pode ter várias conexões TCP simultâneas abertas simultaneamente para cada um dos vários servidores da Web externos diferentes. Para cada conexão, a porta de origem irá variar (escolhida aleatoriamente), mas a porta de destino e o endereço IP de destino podem ser idênticos para várias conexões. Um roteador projetado para atender às necessidades de dois ou três computadores em uma casa pode não ser capaz de lidar com o número de conexões simultâneas necessárias (por exemplo) em uma escola com talvez centenas de computadores muito ocupados. Os roteadores devem ser dimensionados para a carga esperada.
Se você olharexemplo de fonte C para cliente TCPdescrito emComo, você verá que a API "sockets" não fornece nenhum meio para o cliente iniciar uma conexão para especificar uma porta de origem.