Excellentes performances UDP vs faibles performances TCP dans un tunnel IPsec

Bonjour à tous -

J’ai un tunnel IPsec entre un colocation et ma maison. La colocation est 2.4.5, la maison est 2.5.2. Ce tunnel va passer 900 Mbps de trafic UDP lors des tests avec iperf3 réglé sur une cible de bande passante de 900 Mbps, mais il ne passe qu’environ 80 Mbps de manière cohérente en utilisant TCP dans iperf3, avec des performances similaires pour le transfert de fichiers CIFS/SMB (l’usage prévu du tunnel).

MSS est réglé à 1360 car j’utilise IPv6 pour IPsec côté maison vers d’autres emplacements. Les captures de paquets semblent bonnes - pas d’erreurs ni de pertes, ni côté WAN ni au sein des réseaux.

Des idées sur ce que je pourrais manquer pour obtenir de meilleures performances avec TCP ? J’aimerais atteindre au moins 125 Mbps en TCP, car cela saturerait la downstream d’un autre emplacement que je souhaite connecter à cette configuration.

Merci d’avance.

EDIT - Il semble que le problème soit que FreeBSD 12/Truenas n’est pas optimisé pour une utilisation WAN dès l’installation. Après l’optimisation, il a été possible d’atteindre rapidement plus de 100 Mbps. Les tests avec Ubuntu ont commencé à environ 160 Mbps dès la sortie de l’installation.

Votre fenêtre de réception pourrait être trop petite, ce qui empêche l’expéditeur d’envoyer suffisamment de paquets pour exploiter toute votre bande passante disponible, car ils sont encore en vol et pas encore accusés réception. Bandwidth-delay product - Wikipedia

Utilisez soit plus de flux TCP en parallèle, soit agrandissez la fenêtre de réception.

Les valeurs MTU et MSS sont-elles correctes ?

Essayez de vérifier cette option - Désactivation du Segmentation Offloading matérielle TCP.

Dans un tunnel privé où il n’y a pas de collision ni de trafic, UDP et TCP devraient être assez proches. Effectuez-vous les deux tests avec un seul flux en utilisant les mêmes outils ? Rappelez-vous que UDP ne peut gérer qu’une seule session à pleine vitesse (principalement). TCP peut faire de la congestion contrôlée, donc il peut gérer plusieurs sessions, mais elles seront terminées plus rapidement à une vitesse globale inférieure.

Les chiffres que vous partagez indiquent qu’il y a une erreur de configuration ou de paramétrage majeure.

Mesurez-vous entre pfsenses ? Ou derrière eux, serveurs compris ?