Estou tentando construir um canal Ethernet de 10 Gbps entre um FPGA e um PC com Windows 7. Para uma estimativa aproximada, medi o uso de largura de banda do link usando a guia Rede do Gerenciador de Tarefas do Windows. Mais tarde, medi o throughput usando o Wireshark. Eu faço um pequeno cálculo dividindo o número total de bytes pelo tempo gasto (N bytes/T)*8 bits per second
.
Em taxas de linha mais baixas, (<= 5Gbps)
, ambas as medidas foram combinadas de perto. No entanto, conforme aumentei a taxa de dados, digamos acima de 5 Gbps, o gráfico no gerenciador de tarefas aumenta de acordo, mas a taxa de dados obtida pelo Wireshark reduziu para cerca de 2,5 a 3 Gbps.
Eu só posso adivinhar que este é um problema no nível do sistema operacional. Eu entendo que taxa de linha e taxa de dados são duas coisas diferentes. Por favor, corrija-me se estiver errado.
Minhas perguntas são:
Eu li este post e entendo que o Wireshark captura pacotes entre o driver da NIC e as camadas superiores (minha suposição, camada de transporte), mas não tenho certeza.
Eu tentei verificar com o monitor de recursos. Ele mostra o número de bytes sendo transferidos para um aplicativo específico (se não estiver errado). Quando eu estou transferindo dados do FPGA a uma taxa de 10Gbps, o monitor de Recursos mostra uma taxa de transferência de 1,26 gigabytes por segundo (10.001 Gigabits por segundo!). Isso está me confundindo mais agora!
Por que o Wireshark está perdendo esses pacotes?
Mais informações e parâmetros de NIC:
Estou usando o protocolo UDP. Esse poderia ser um possível motivo para perda de pacotes a velocidades > 5Gbps. Os pacotes do FPGA têm 16060 bytes de comprimento (16000 bytes de carga útil e 60 bytes de cabeçalhos).
Eu sou novo na área de redes. Qualquer ajuda será muito apreciada.