Eu tenho um FPGA conectado a um Linux x86 através de um switch Arista. O link FPGA para Arista é Ethernet de 10 Gb e o link Arista para x86 é Ethernet de 1 Gb.
Por algum motivo, quando enviei um “burst” de 10 pacotes o mais rápido possível do FPGA, eles chegaram fora de ordem ao x86. Eu uso o tcpdump em um processo isolado para determinar a ordem dos pacotes recebidos.
É possível que o kernel Linux seja responsável pelo embaralhamento dos pacotes ou o kernel Linux respeita a ordem fornecida pela interface de 1 Gb?
Responder1
A ordem dos quadros depende do protocolo e, portanto, faz parte da camada de transporte TCP/IP. Por exemplo,TCPgarante o pedido enquantoUDPnão. Se você examinar oestrutura de quadro Ethernetvocê verá que não há disposições para pedidos.