GSO / TSO
Generic Segmentation Offload + TCP Segmentation Offload — recursos do Linux e da placa de rede em que um buffer grande de envio (64 KB) é fatiado em pacotes do tamanho do MTU o mais tarde possível no caminho (placa = TSO, kernel = GSO). Uma economia enorme de CPU a partir de 10 GbE.
Sem TSO, o kernel monta pacotes de 1500 bytes um a um: 7 quadros para cada envio de 10 KB, com 7 vezes o custo de syscalls. Com TSO, o kernel entrega um buffer de 64 KB e a placa faz a segmentação em hardware. No Linux: ethtool -K eth0 tso on gso on. O espelho é o LRO/GRO (Large/Generic Receive Offload), que agrupa quadros pequenos recebidos em blocos grandes. É uma otimização de caminho crítico hoje padrão. Clássico de depuração: NIC virtual (virtio) com GSO desligado e a vazão despenca. O recomendado é deixar ligado; desligar só em casos de borda (um firewall que faz DPI em cada pacote).