Regra prática para requisitos de largura de banda TCP upstream

Regra prática para requisitos de largura de banda TCP upstream

No TCP, o receptor de vez em quando confirma o recebimento dos pacotes enviados. Portanto, para atingir uma largura de banda downstream específica, é sempre necessária uma largura de banda upstream mínima.

O que procuro é um fator para calcular o upstream necessário para uma determinada largura de banda downstream. Estou ciente do fato de que existem vários tamanhos de janelas e provavelmente outros fatores no TCP que tornam esse cálculo mais difícil. Mas talvez haja um cenário padrão do qual se possa obter pelo menos uma aproximação.

Responder1

Essa é uma pergunta difícil de responder porque depende de muitos outros fatores. Tentar obter uma resposta muito específica seria difícil e ainda mais difícil, pelo menos para mim, de tentar explicar.

Supondo que o link ponta a ponta seja estável o suficiente para que a janela seja dimensionada ao máximo, poderíamos dizer que precisamos de um ACK para cada tamanho máximo de janela. Um tamanho máximo típico de janela é 64 KB, pelo menos acho que é o padrão para Windows... é definido por uma chave de registro.

Sabendo disso, agora precisamos saber qual é o tempo de ida e volta porque você receberá apenas um tamanho máximo de janela de dados por cada RTT; uma maneira de os dados chegarem até você e uma maneira de ACK. Agora vamos jogar como se estivéssemos tentando calcular o upstream necessário para um soquete TCP em um satélite.

RTT = ~500ms
Tamanho máximo da janela = 64KB

(64 KB * 8)/0,5 = O download máximo seria de 1 Mbps. Os tempos 8 foram, é claro, para transformar nosso valor de bytes em bits.

Aliás, muitas vezes você vê o tamanho da janela referido como buffer e o cálculo da taxa de transferência do TCP fornecido como (RxBuffer/RTT = Througput). Agora precisamos calcular o upstream. Esperançosamente, com tudo o que foi dito acima, a resposta é óbvia, precisamos de dois ACKs por segundo para retornar ao remetente. Esses ACKs são 20Bs + 20Bs * 8 (cabeçalho IP + TCP), 320bps por peça. Portanto, para uma conexão com 500 ms de RTT e um RxBuffer máximo de 64 KB, não devemos esperar mais do que 1 Mbps de download e 640 bps de upload.

Espero que isso tenha colocado você no caminho certo. Lendo isso eu me confundi...

informação relacionada