Je suis intéressé par des réponses particulières:
- La carte réseau avec GRO édite / crée TCP ACK ou tout autre paquet (ou cette fonctionnalité est-elle transparente pour les piles TCP du récepteur / expéditeur)?
- Il devrait y avoir un délai d'expiration / événement lorsque la carte réseau devrait transmettre les «segments collés» à la pile TCP? Que sont-ils?
- Dans la configuration de transfert de paquets - la fonction GRO essaie-t-elle également de lire les accusés de réception du récepteur (voir ci-dessous pourquoi je pose cette question)?
- Toute source expliquant GRO et également d'autres fonctionnalités de déchargement de carte réseau (TSO, LSO ...) mieux que les pages de manuel wikipedia et linux serait vraiment appréciée.
Plus de détails:
Je dépanne un problème de performances avec une implémentation IPSec. Le problème est que la bande passante disponible n'est pas répartie uniformément sur les 4 tunnels VPN (répartis approximativement sous la forme de 200 Mbps / 200 Mbps / 1 Mbps / 1 Mbps; chaque tunnel VPN encapsule une seule connexion TCP). Dans PCAP de temps en temps, je vois que le serveur Web reste inactif pendant environ 2 secondes (en attendant ACK). Le téléchargement reprend lorsque le serveur Web retransmet des segments non reconnus.
Mon impression intérieure de PCAP est que la fonctionnalité NIC GRO colle les paquets ensemble mais parfois ne les transmet pas à la pile TCP en temps opportun et cela cause les problèmes.
Comme ce serveur VPN n'a pas d'interfaces qui mettent fin aux connexions TCP, mais transfère uniquement les paquets. Ensuite, j'ai essayé de désactiver GRO et après cela, j'ai observé que le trafic était réparti uniformément sur tous les tunnels. De plus, lorsque la mise à l'échelle de la fenêtre TCP est désactivée sur le serveur Web, la bande passante est également distribuée même avec GRO activé (c'est pourquoi j'avais la question n ° 3).
J'utilise 2.6.32-27 linux sur le serveur Ubuntu 10.04 (64 bits). La carte réseau est Intel 82571EB. Toutes les interfaces (client HTTP, client VPN, serveur VPN, serveur Web) sont connectées directement en chaîne avec des câbles Ethernet 1 Gbit.