taap.digitalferramentas para engenharia de redes

Qual o BDP de um link de 1 Gbps com 600 ms de RTT?

Resposta
71,5 MiB em trânsito no enlace

1 Gbps × 600 ms ÷ 8 = 75.000.000 bytes, ou 71,5 MiB. Para um único fluxo TCP usar o link inteiro, a janela precisa ter pelo menos esse tamanho; com a janela clássica de 64 KiB, o fluxo fica em 0,874 Mbps. Satélite geoestacionário: o RTT de cerca de 600 ms vem da distância de 36.000 km até o satélite.

tcp-bdp · ajuste os valores
ms
KiB
%
B

A conta

BDP = 1.000.000.000 bit/s × 0,600 s ÷ 8 = 75.000.000 bytes ≈ 71,5 MiB
vazão com janela de 64 KiB = 65.536 × 8 ÷ 0,600 s = 0,874 Mbps

Window scaling necessário

O campo de janela do TCP vai até 65.535 bytes. Para chegar a 75.000.000 bytes, o fator de escala da RFC 7323 precisa ser de pelo menos 211 (shift 11). Os sistemas atuais negociam isso sozinhos, desde que nenhum firewall remova a opção do SYN.

Buffers no Linux

Como regra, deixe o buffer máximo em cerca de 2 × BDP, arredondado para potência de 2: aqui, 268.435.456 bytes.

sysctl -w net.core.rmem_max=268435456
sysctl -w net.core.wmem_max=268435456
sysctl -w net.ipv4.tcp_rmem="4096 131072 268435456"
sysctl -w net.ipv4.tcp_wmem="4096 16384 268435456"

Mais perguntas como esta

Perguntas frequentes

O que acontece se a janela TCP for menor que o BDP?

O transmissor esgota a janela antes de receber os ACKs e fica parado esperando. Com 64 KiB e 600 ms de RTT, o fluxo não passa de 0,874 Mbps, por mais rápido que seja o link.

Vários fluxos paralelos resolvem?

Sim, em boa parte: cada fluxo tem sua própria janela, e a vazão total se soma. Por isso ferramentas de transferência e o iperf3 com -P chegam mais perto da banda do link.