QUIC-Layer: die Zukunft der Netzwerkkommunikation

Die größten Produktionsserver, die mit 4D betrieben werden, akzeptieren mehr als tausend gleichzeitige Verbindungen, und diese Zahl steigt ständig. Infolgedessen wird die Leistung zu einem immer wichtigeren Thema für unsere Teams. Das QUIC-Protokoll, das von der neuen Version des HTTP-Standards verwendet wird, wurde speziell entwickelt, um die Geschwindigkeit und Zuverlässigkeit zu erhöhen. Da wir immer auf der Suche nach spannenden Technologien sind, arbeiten wir daran, unser Low-Level-Netzwerkprotokoll durch das QUIC-Protokoll zu ersetzen.

Für v20 können Sie zu dieser Netzwerkschicht wechseln und prüfen, ob sich Ihre Leistung dadurch verbessert. Diese Technologie befindet sich noch in der Betaphase, da wir Ihr Feedback benötigen, bevor wir sie als Standard-Netzwerkschicht einsetzen. Daher können Sie es nur in Beta-Versionen von 4D verwenden.

QUIC steht für Quick UDP Internet Connections und wurde vor einem Jahrzehnt von Google initiiert. Im Mai 2021 wurde es offiziell von der IETF standardisiert und als Protokoll für HTTP/3-Verbindungen übernommen.

 

Im Laufe der Zeit hat 4D mehrere verschiedene Netzwerkschichten verwendet. Die erste, die wir allgemein als „Legacy“ bezeichnen, verbrauchte im Leerlauf zu viel CPU. Die ServerNet-Schicht löste dieses kleine Problem und brachte Funktionen wie die Unterstützung des Ruhezustands des Computers, aber sie verlangt immer noch eine konstante Verbindung, was in instabilen Netzwerken nicht ideal ist. Mit diesen beiden Schichten haben wir die Obergrenze erreicht; es gibt nicht mehr viel Raum für Verbesserungen.

Im Gegensatz zu früheren Schichten, die über TCP arbeiten, verwendet QUIC das UDP-Protokoll, um seine Pakete zu übertragen. Dies ermöglicht eine schnellere Wiederherstellung im Falle von Paketverlusten, Überlastung und verschiedenen Netzwerkproblemen. Und unsere vorläufigen Tests zeigen, dass QUIC hält, was es verspricht: Wenn der Ping hoch ist, schafft es QUIC, schneller zu sein als unsere anderen Netzwerkschichten, und bei Paketverlusten ist der Geschwindigkeitsgewinn unglaublich. Wir sind von der allgemeinen Stabilität des Protokolls positiv überrascht und wollen diese Netzwerkschicht zur stabilsten machen, die Sie je kannten.

Während des Betatests von v20 können Sie diese Schicht über die Kompatibilitätsseite der Struktureinstellungen aktivieren. Vergessen Sie nicht, dass Ihre Router und Firewalls UDP-Verbindungen akzeptieren müssen, da QUIC mit UDP arbeitet. Ein zweiter wichtiger Punkt ist, dass sowohl der Anwendungsserver als auch der Datenbankserver jetzt auf denselben Port hören (standardmäßig 19813), da QUIC die gesamte Netzwerkkommunikation auf einem Socket bündelt, anstatt wie bisher einen Socket pro Prozess zu öffnen. Außerdem ist die QUIC-Kommunikation notwendigerweise mit TLS verschlüsselt. Zögern Sie nicht, es in Ihrer Infrastruktur zu testen. Wir werden Ihr Feedback nutzen, um es zu verbessern.

Wenn Sie in der Zwischenzeit Fragen oder Kommentare haben, zögern Sie nicht, diese in den 4D Foren zu stellen.

Nicolas Brachfogel
Product Owner & Senior Developer - Nicolas Brachfogel kam 2017 als Senior Developer (4D Server und Netzwerke) zu 4D. Als Product Owner, der die Freigabe von Apple Silicon verwaltet, ist er für das Schreiben von User Stories und deren Umsetzung in funktionale Spezifikationen zuständig und stellt sicher, dass die Implementierungen der Funktionen den Kundenanforderungen entsprechen. Nicolas ist Absolvent des Institut Supérieur d'Informatique Appliquée (INSIA) und begann seine Karriere als Softwareentwickler im Jahr 2001. Nachdem er mehrere Jahre in Java und C++ programmiert hatte, spezialisierte er sich auf die Client-Server-Entwicklung für Videospielunternehmen. Als Server-Entwickler/Architekt arbeitete er erfolgreich an den Server-Architekturen vieler Spiele (Dofus Arena, Drakerz, Trivial Pursuit Go!).