Software de controle de tráfego fará com que os pacotes tcp sejam descartados

1

Estou testando nossos aplicativos cliente-servidor usando o NetLimiter, que é um software de controle de tráfego. Descobri que, quando o cliente está recebendo arquivos do servidor e eu uso o NetLimiter para definir a taxa de download para um valor como 50K / S clicando nos botões continuamente (para aumentar a taxa de 0K / s para 50K / s, cada clique aumenta taxa por 1), em seguida, a transferência irá parar e nunca retomar, parece que alguns pacotes de controle do servidor são perdidos.

O software de controle de tráfego interceptará os pacotes e os manterá sem enviar para nosso cliente devido a razões desconhecidas? O software de controle de tráfego deixará os pacotes tcp que devem ser enviados para o nosso cliente?

[Mais] O software de controle de tráfego interrompe a transferência porque nosso servidor enviará alguns pacotes de controle ao cliente para controlar a transferência, por exemplo, pare a transferência ou inicie a transferência. E durante os testes, descobrimos que o pacote de controle "Iniciar a transferência" chegou na placa de interface de rede, mas o pacote não foi recebido pelo nosso cliente (há um soquete TCP).

Obrigado

    
por Steve Peng 23.05.2013 / 01:16

1 resposta

4

Em suma, o software de controle de tráfego Yes pode, de fato, descartar pacotes ao moldar o tráfego. Tudo bem com os protocolos TCP, pois o TCP cuidará de garantir que os pacotes perdidos sejam reenviados.

O Wiki Traffic Shaping descreve alguns dos métodos usados para moldar o tráfego. Existem muitos algoritmos disponíveis, como RED , drop tail e outros.

Will the traffic control software intercept packets and hold them without sending to our client due to unkown reason?

Ele os manterá (enfileirados) por um tempo antes do envio, a fim de garantir que a taxa especificamente configurada seja atendida.

Will the traffic control software drop tcp packets which are supposed to send to our client?

Sim, por exemplo você pode estar roteando entre duas redes em que uma rede tem o formato de 50KB / se o outro lado pode ser de 100KB / s. Se 100KB / s de dados foram enviados continuamente para um host na rede de 50KB / s, então os pacotes precisam ser mantidos no roteador para atender à taxa de 50KB / s. Como a memória é limitada e os tamanhos das filas são frequentemente corrigidos, torna-se um ponto em que você pode ter que começar a eliminar pacotes. Deixar cair pacotes não é uma coisa ruim. O TCP foi projetado para se recuperar. Se você fizesse fila para tudo, isso poderia ser ruim, já que pode adicionar uma latência significativa. Então, descartar pacotes é sensato.

[More] The traffic control software does break the transfer because our server will send some control packets to the client to control the transfer, e.g. stop the transfer or start the transfer. And during the tests we found that the "Start the transfer" control packet has arrived at the Network Interface Card but the packet was not received by our client (there is a TCP socket).

Eu odeio dizer isso, mas parece que seu aplicativo de servidor do cliente é a coisa que está quebrada. Pacotes descartados pela Internet são comportamentos esperados normais.

O que está sendo perdido são seus comandos de controle. Parece que um bug de software os engoliu!

    
por 23.05.2013 / 01:38