Os gráficos de desempenho do Monitor de desempenho do Windows mostram que:
Para todas as conexões de Internet testadas somente, exceto a página de teste de velocidade do meu ISP, o número de segmentos enviados (nsend) ≈ o número de segmentos recebidos (nrecv) para o tráfego de entrada (downloads). Para a página de teste de velocidade do ISP, nsend ≈ nrecv / 2 para downloads.
Para todas as conexões LAN testadas, nsend ≈ nrecv / (o valor de TcpAckFrequency definido no registro) para downloads.
Gráficos: Página de teste de velocidade do ISP Tráfego na Internet 1 Tráfego na Internet 2 tráfego de LAN 1 Tráfego da LAN 2
Isso significa que:
O SACK nunca foi usado.
O DelAck ajustado para minha preferência é usado somente na LAN.
Cada pacote é aceito para downloads da Internet, exceto para a página do ISP.
O que eu espero é, para TODAS as conexões de rede, independentemente de ser Internet ou LAN:
nsend ≤ nrecv / TcpAckFrequency para downloads.
Idealmente, um e somente um ACK deve ser enviado quando e somente quando um RWIN completo tiver sido preenchido, no qual o receptor informa ao remetente que todos os segmentos foram recebidos com êxito.
Acredito que ativar o SACK e o DelAck reduz os overheads do TCP e, portanto, melhora a taxa de transferência, pois apenas um pequeno número de pacotes ACK precisa ser enviado e a energia de processamento é salva da análise de todos os ACKs estranhos.
Configuração do sistema operacional:
Win7 64bit PC, versão 6.1.7601
NIC PCIe Realtek
Assinatura FTTH de 200 Mbit / s com variação de velocidade de conexão periódica e dramática (512kbps a 20 Mbps) no tráfego internacional
HKLM \ SYSTEM \ CurrentControlSet \ serviços \ Tcpip \ Parâmetros \ SackOpts = 1
HKLM \ SYSTEM \ CurrentControlSet \ serviços \ Tcpip \ Parameters \ Tcp1323Opts = 2
HKLM \ SYSTEM \ CurrentControlSet \ services \ Tcpip \ Parâmetros \ Interfaces \ GUID \ TcpAckFrequency = 4 // também tentou 2 e 6
HKLM \ SYSTEM \ CurrentControlSet \ services \ Tcpip \ Parâmetros \ Interfaces \ GUID \ TcpDelAckTicks = 3 // RTT normalmente é de 70 a 150ms para tráfego da Internet, então adicionei 100ms ao SO padrão para que o atraso no ack funcione melhor sem comprometer muito os RWINs iniciais
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ Tcpip \ Parâmetros \ Interfaces \ GUID \ TcpNoDelay = 1
A recepção de escala lateral e o ajuste automático RWIN também são ativados usando o utilitário NETSH.
Tags networking windows-7 tcp throughput