QUIC : l’avenir des couches réseau

Les serveurs en production tournant sous 4D les plus imposants acceptent plus d’un millier de connexions simultanées, et ce nombre ne cesse de croître. Par conséquent, la performance devient un objectif de plus en plus important pour nos équipes. Le protocole QUIC, utilisé par la nouvelle version du standard HTTP, a été spécialement conçu pour accroître la vitesse et la fiabilité. Comme nous sommes toujours à la recherche de technologies intéressantes, nous travaillons au remplacement de notre protocole réseau de bas niveau par le protocole QUIC.

Pour la v20, vous pouvez passer à cette couche réseau et vérifier si cela améliore vos performances. Il s’agit encore d’un bêta test, car nous avons besoin de vos retours avant de l’utiliser comme couche réseau par défaut. Vous ne pourrez donc l’utiliser que sur les versions bêta de 4D.

QUIC, qui signifie Quick UDP Internet Connections, a été lancé par Google il y a une dizaine d’années. Il a été officiellement normalisé par l’IETF en mai 2021 et adopté comme protocole pour les connexions HTTP/3.

 

Au fil du temps, 4D a utilisé plusieurs couches réseau différentes. La première, que nous appelons généralement « Legacy », utilisait trop de CPU lorsqu’elle était inactive. La couche ServerNet a résolu ce problème mineur et apporté des fonctionnalités telles que la prise en charge de la mise en veille de l’ordinateur, mais elle demande toujours une connexion constante, ce qui n’est pas idéal sur les réseaux instables. Avec ces deux couches, nous avons atteint un plafond ; il n’y a plus beaucoup de place pour l’amélioration.

Contrairement aux couches précédentes fonctionnant sur TCP, QUIC utilise le protocole UDP pour transmettre les paquets. Cela permet une récupération plus rapide en cas de perte de paquets, de congestion et de divers problèmes de réseau. Nos tests préliminaires montrent que QUIC tient ses promesses : lorsque le ping est élevé, QUIC parvient à être plus rapide que nos autres couches réseau, et en cas de perte de paquets, le gain de vitesse est incroyable. Nous avons été positivement surpris par la stabilité globale du protocole et nous voulons faire de cette couche réseau la plus stable que vous ayez jamais connue.

Pendant le bêta test de la v20, vous pouvez activer cette couche via la page Compatibilité des Paramètres de la base. N’oubliez pas que, comme QUIC fonctionne sur UDP, vos routeurs et pare-feu doivent accepter les connexions UDP. Un deuxième point important est que le serveur d’application et le serveur de base de données écouteront désormais sur le même port (19813 par défaut), grâce au fait que QUIC regroupe toutes les communications réseau sur un seul socket au lieu d’ouvrir un socket par processus comme auparavant. De plus, les communications QUIC sont nécessairement cryptées avec TLS. N’hésitez pas à tester cette couche réseau sur votre infrastructure. Nous utiliserons vos commentaires pour l’améliorer.

En attendant, si vous avez des questions ou des commentaires, n’hésitez pas à les porter sur les forums 4D.

Nicolas Brachfogel
- Product Owner & Senior Developer - Nicolas Brachfogel a rejoint 4D en 2017 en tant que développeur senior (4D Server et networking) et en tant que Product Owner pour gérer la mise en production d'Apple Silicon. Il est chargé de rédiger les user stories et de les traduire en spécifications fonctionnelles, ainsi que de s'assurer que les implémentations des fonctionnalités répondent aux besoins des clients. Diplômé de l'Institut Supérieur d'Informatique Appliquée (INSIA), Nicolas a commencé sa carrière en tant que développeur de logiciels en 2001. Après plusieurs années de programmation en Java et C++, il s'est spécialisé dans le développement client-serveur pour des sociétés de jeux vidéo. En tant que développeur/architecte serveur, il a travaillé avec succès sur les architectures serveur de nombreux jeux (Dofus Arena, Drakerz, Trivial Pursuit Go !).