A ordenação de quadros depende do protocolo e, portanto, faz parte da camada de transporte TCP / IP. Por exemplo, TCP garante a encomenda enquanto UDP não. Se você examinar a estrutura de quadros Ethernet , verá que não há provisões para pedidos.
Eu tenho um FPGA conectado a um Linux x86 através de um switch Arista. O link do FPGA para o Arista é Ethernet de 10 Gb e o link do Arista para o x86 é de 1 Gb Ethernet.
Por alguma razão, quando eu enviei um "burst" de 10 pacotes o mais rápido possível do FPGA, eles chegam 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 do Linux seja responsável pelo embaralhamento dos pacotes, ou o kernel do Linux respeita a ordem fornecida pela interface de 1Gb?
A ordenação de quadros depende do protocolo e, portanto, faz parte da camada de transporte TCP / IP. Por exemplo, TCP garante a encomenda enquanto UDP não. Se você examinar a estrutura de quadros Ethernet , verá que não há provisões para pedidos.
Tags networking ethernet linux