Compreender os Limites de Débito do TCP
O desempenho real de uma única ligação TCP não depende apenas da velocidade nominal contratada. Na prática, a velocidade de transferência é ditada pelo menor de três limites independentes que atuam sobre o caminho de rede:
- A capacidade da ligação: O limite físico ou contratado do salto mais lento no caminho, deduzido dos custos adicionais de protocolo.
- A janela de receção: A quantidade de dados que o recetor consegue armazenar em buffer.
- A perda de pacotes: A probabilidade de perda que força o TCP a reduzir a sua taxa de envio para evitar o congestionamento.
A ferramenta calcula o impacto de cada um destes fatores em tempo real para determinar o Débito TCP esperado, identificando de forma dinâmica qual o estrangulamento ativo através da mensagem "limitado por ‹constraint›".
O Produto Largura de Banda-Atraso (BDP)
O produto largura de banda-atraso (BDP) representa o volume total de dados que podem estar em trânsito na linha física a qualquer momento. Matematicamente, é expresso pela fórmula:
BDP = velocidade × RTT
Para que uma ligação TCP consiga preencher totalmente a capacidade da ligação, a janela de receção configurada deve ser, no mínimo, igual ao BDP. Se a janela de receção for inferior a este valor, o emissor será obrigado a interromper o envio de novos pacotes enquanto aguarda pela confirmação (ACK) dos pacotes anteriores, deixando o canal temporariamente inativo.
Escala de Janela TCP (RFC 7323)
O protocolo TCP original foi concebido com um campo de janela de receção limitado a 16 bits, o que permite um tamanho máximo de janela não escalado de 65,535 bytes. Em caminhos de rede modernos com elevada largura de banda e latência (conhecidos como Long Fat Networks ou LFN), este limite é insuficiente.
Para contornar esta limitação, a norma RFC 7323 define a escala de janela TCP, permitindo que ambas as extremidades negociem um fator de escala para expandir a janela de receção até ao limite absoluto de 1,073,725,440 bytes.
- Se o caminho exigir uma janela superior a 65,535 bytes para ser totalmente preenchido, a ferramenta exibe o aviso.
- Se a janela necessária ultrapassar o limite máximo absoluto de 1,073,725,440 bytes, é exibido o aviso, indicando que um único fluxo nunca poderá exceder o valor calculado.
O Impacto da Perda de Pacotes (Modelo de Mathis)
A perda de pacotes é interpretada pelo TCP como um sinal de congestionamento na rede. O modelo de Mathis estima o limite máximo de débito sob perda constante através da fórmula:
Limite por perda (Mathis) = MSS ÷ RTT ÷ √p
Onde p representa a probabilidade de perda de pacotes. Este modelo assume que as perdas ocorrem de forma uniforme e independente. O modelo de Mathis é fiável para taxas de perda inferiores a aproximadamente 1%. Caso a perda de pacotes introduzida seja superior a 1%, a ferramenta apresenta o aviso, alertando que o limite calculado deve ser tratado como otimista.
Custos Adicionais de Protocolo e Eficiência
A transmissão de dados através de redes Ethernet envolve custos adicionais de encapsulamento. Cada pacote adiciona 78 bytes de sobrecarga física na linha (composta por 40 bytes de cabeçalhos TCP/IP e 38 bytes de sobrecarga da camada física Ethernet).
A eficiência do protocolo é calculada da seguinte forma:
Eficiência do protocolo = MSS ÷ (MSS + 78 B)
Com um MSS padrão de 1,460 bytes, a eficiência máxima da ligação física é de aproximadamente 94,9%. O limite real da ligação após custos adicionais é determinado multiplicando a velocidade da ligação por esta taxa de eficiência.
Unidades Decimais vs. Binárias
Existe uma diferença convencional entre as unidades de medida utilizadas em redes e as utilizadas por sistemas de ficheiros:
- Unidades de Rede: São estritamente decimais (base 10). Por exemplo, 1 kbit = 1,000 bits e 1 MB = 1,000,000 bytes.
- Unidades de Armazenamento: Os gestores de ficheiros utilizam frequentemente unidades binárias (base 1024), onde 1 MiB equivale a 1,048,576 bytes. Um ficheiro rotulado como "100 MB" num sistema operativo corresponde, na verdade, a cerca de 104,86 MB decimais.
Fórmulas e Substituição
Os cálculos efetuados pela ferramenta baseiam-se nas seguintes fórmulas matemáticas:
-
Fórmula Geral:
débito = min(velocidade × ef, janela ÷ RTT, MSS ÷ RTT ÷ √p) · BDP = velocidade × RTT -
Eficiência do Protocolo:
Eficiência do protocolo = MSS ÷ (MSS + 78 B) = ‹mss› ÷ ‹frame› = ‹eff› (cabeçalhos de pacote de 40 B + 38 B na linha física) -
Limite da Ligação:
Limite da ligação = velocidade × eficiência = ‹rate› × ‹eff› = ‹value› -
BDP:
BDP = velocidade × RTT = ‹rate› × ‹rtt› = ‹bdp› = ‹bytes› -
Janela Necessária:
Janela para preencher o caminho = BDP ÷ 8 = ‹bdp› → ‹window› -
Limite da Janela:
Limite da janela = janela ÷ RTT = ‹window› ÷ ‹rtt› = ‹value› -
Limite por Perda:
Limite por perda (Mathis) = MSS ÷ RTT ÷ √p = ‹mss› ÷ ‹rtt› ÷ √‹p› = ‹value› -
Débito Esperado:
Débito esperado = o menor destes limites máximos = ‹value› → limitado por ‹constraint› -
Tempo de Transferência:
Tempo de transferência = RTT + 8 × tamanho ÷ débito = ‹rtt› + 8 × ‹size› ÷ ‹throughput› = ‹time›
Privacidade e Processamento Local
A segurança dos dados introduzidos é garantida pelo método de processamento da ferramenta. Cada valor introduzido é calculado neste navegador — nada é enviado para lado nenhum. O processamento ocorre inteiramente no dispositivo do utilizador, sem qualquer comunicação com servidores externos.
Perguntas Frequentes (FAQ)
Por que razão a minha transferência é mais lenta do que a velocidade de ligação que pago?
Um único fluxo TCP enfrenta três limites máximos independentes, e o mais baixo vence. Os custos adicionais do protocolo reduzem a própria ligação em cerca de 5% — uma trama Ethernet padrão transporta 1,460 bytes de carga útil de um total de 1,538 na linha física. A janela de receção limita o débito a janela ÷ RTT, pelo que a clássica janela de 65,535 bytes limita um caminho de 50 ms a cerca de 10.5 Mbit/s, independentemente da velocidade da ligação. E a perda limita-o a (MSS ÷ RTT) ÷ √perda. O resultado acima indica qual é o limite restritivo para os seus números.
O que é o produto largura de banda-atraso e por que razão define o tamanho da janela?
O BDP — velocidade da ligação × tempo de ida e volta — é a quantidade de dados em trânsito a qualquer momento. O TCP só pode ter no máximo uma janela não confirmada pendente, pelo que uma janela menor do que o BDP deixa a linha parcialmente vazia: a 100 Mbit/s com um RTT de 50 ms, a linha comporta 625 kB, e uma janela de 65,535 bytes preenche mal um décimo dela. É por isso que caminhos rápidos e longos precisam da escala de janela TCP (RFC 7323), que eleva o máximo negociável de 65,535 bytes para cerca de 1 GB.
De que forma a perda de pacotes limita o débito do TCP?
O TCP trata a perda como congestionamento e reduz para metade a sua taxa de envio a cada evento de perda, pelo que mesmo taxas de perda minúsculas importam em caminhos rápidos. O modelo de Mathis estima o limite máximo como (MSS ÷ RTT) ÷ √p — com 0.01% de perda num caminho de 50 ms com um MSS de 1,460 bytes, isto equivale a cerca de 23 Mbit/s, independentemente da velocidade da ligação. O modelo assume eventos de perda distribuídos uniformemente e independentes; abaixo de aproximadamente 1% acompanha bem a realidade, e para perdas em rajadas é otimista.
Os megabytes aqui são os mesmos que aparecem no meu gestor de ficheiros?
Não exatamente. Esta página utiliza unidades decimais, a convenção de redes: 1 kbit = 1,000 bits e 1 MB = 1,000,000 bytes. A maioria dos gestores de ficheiros conta em unidades de base 1024, muitas vezes incorretamente rotuladas como MB — um ficheiro de “100 MB” aí é normalmente 100 MiB ≈ 104.86 MB decimais, pelo que demora cerca de 5% mais tempo a mover-se do que o valor decimal sugere. Introduza 104.86 MB aqui para corresponder exatamente.