Cálculo da largura de banda UDP com base no tamanho do pacote, na taxa de pedidos e na latência [closed]

1

Eu preciso estimar a largura de banda para um aplicativo de medição a ser escrito que usa o UDP. Eu tenho um bom senso dos números, mas não tenho certeza de como colocá-los juntos. Verifiquei algumas calculadoras de rendimento, como este , mas a maioria é para TCP, portanto, não é totalmente aplicável.

  • Solicitação UDP: < 100 bytes (o pacote completo, como seria visto no tcpdump)
  • Resposta do UDP: <200 bytes
  • latência entre solicitação-resposta: 80ms em média
  • haverá N (digamos, 80) threads paralelos acontecendo continuamente. Há algum tempo gasto com o processamento das respostas, mas para o propósito desta questão, vamos ignorar isso e assumir o caso ideal em que uma solicitação é imediata após a resposta.
por wishihadabettername 24.05.2014 / 15:57

1 resposta

1

A pergunta que você deve fazer é quantos pedidos você precisa processar por segundo. Esse número está faltando em sua pergunta e, como tal, a pergunta original não pode ser respondida adequadamente.

Existem, no entanto, alguns números na sua pergunta que eu posso dar uma resposta.

Antes de tudo, você menciona um tamanho de solicitação de 100 bytes e um tamanho de resposta de 200 bytes. Um serviço UDP em que as respostas são maiores que as solicitações podem ser potencialmente usadas para ataques de reflexão. Isso é algo que deve ser levado em consideração ao projetar protocolos baseados em UDP.

Outra consideração importante é a possibilidade de um pacote perdido ser equivocadamente interpretado como uma solicitação.

Você mencionou a possibilidade de usar 80 segmentos. Os serviços baseados em TCP usam principalmente um grande número de encadeamentos porque eles geralmente são projetados para que cada conexão exija um encadeamento, e esse encadeamento pode gastar muito tempo simplesmente aguardando o cliente.

Tais períodos de espera não acontecerão em um serviço baseado em UDP. Isso significa que você deve estar usando apenas 80 encadeamentos, se você espera que todos os 80 encadeamentos estejam fazendo o processamento real em paralelo. Isso requer uma máquina bastante poderosa para ter 80 threads fazendo o processamento real em paralelo.

Se você estiver fazendo um processamento pesado sem antes fazer sua própria verificação do endereço IP do cliente, será um alvo fácil para ataques DoS.

Se você estiver implementando um protocolo baseado em UDP e estiver usando vários encadeamentos, provavelmente está fazendo errado.

    
por 24.05.2014 / 16:19