Uma interface de rede ATM.
Intel 82574L Gigabit Ethernet NIC, uma placa PCI Express × 1, que fornece duas filas de recebimento de hardware
Os NICs multiqueue fornecem várias filas de transmissão e recepção, permitindo que os pacotes recebidos pelo NIC sejam atribuídos a uma de suas filas de recebimento. O NIC pode distribuir o tráfego de entrada entre as filas de recebimento usando uma função hash. Cada fila de recebimento é atribuída a uma interrupção separada; ao rotear cada uma dessas interrupções para diferentes CPUs ou núcleos de CPU, o processamento das solicitações de interrupção acionadas pelo tráfego de rede recebido por um único NIC pode ser distribuído, melhorando o desempenho.
A distribuição baseada em hardware das interrupções, descrito acima, é referido como escalonamento do lado do recebimento (RSS): 82 Implementações puramente de software também existem, como o direcionamento do pacote de recepção (RPS) e direcionamento do fluxo de recepção (RFS). Melhorias de desempenho adicionais podem ser alcançadas roteando as solicitações de interrupção para as CPUs ou núcleos que executam os aplicativos que são os destinos finais para os pacotes de rede que geraram as interrupções. Essa técnica melhora a localidade de referência e resulta em melhor desempenho geral, latência reduzida e melhor utilização de hardware devido à maior utilização de caches de CPU e menos trocas de contexto necessárias. Exemplos de tais implementações são o RFS e o Intel Flow Director.:98,99
Com NICs de várias filas, melhorias de desempenho adicionais podem ser obtidas distribuindo o tráfego de saída entre diferentes filas de transmissão. Ao atribuir diferentes filas de transmissão a diferentes CPUs ou núcleos de CPU, contenções internas do sistema operacional podem ser evitadas. Essa abordagem é geralmente conhecida como transmissão de direcionamento de pacote (XPS).
Alguns produtos apresentam particionamento NIC (NPAR, também conhecido como particionamento de porta) que usa virtualização SR-IOV para dividir um único NIC Ethernet de 10 Gigabit em vários NICs virtuais discretos com largura de banda dedicada, que são apresentados ao firmware e ao sistema operacional como funções de dispositivo PCI separadas.
O mecanismo de descarregamento de TCP é uma tecnologia usada em alguns NICs para descarregar o processamento de toda a pilha TCP / IP para o controlador de rede. É usado principalmente com interfaces de rede de alta velocidade, como Gigabit Ethernet e 10 Gigabit Ethernet, para as quais a sobrecarga de processamento da pilha de rede se torna significativa.
Algumas placas de rede oferecem matrizes de portas programáveis em campo integradas (FPGAs ) para processamento programável pelo usuário do tráfego de rede antes que ele alcance o computador host, permitindo latências significativamente reduzidas em cargas de trabalho sensíveis ao tempo. Além disso, alguns NICs oferecem pilhas TCP / IP de baixa latência completas rodando em FPGAs integrados em combinação com bibliotecas de espaço de usuário que interceptam operações de rede normalmente executadas pelo kernel do sistema operacional; A pilha de rede OpenOnload de código aberto da Solarflare que é executada no Linux é um exemplo. Esse tipo de funcionalidade é geralmente conhecido como rede em nível de usuário.