Veröffentlicht am 01-05-2019

QUIC, Quinn & Crust: ein Update

Foto von Robin Pierre auf Unsplash

Quinn quic-p2p. Möglicherweise haben Sie diese beiden Wörter in unseren wöchentlichen Dev-Updates für die letzten paar Wochen auftauchen sehen. Daher dachten wir, es sei an der Zeit, dass wir Ihnen etwas ausführlicher erklärten, was los ist.

Wir beginnen mit einem superschnellen Glossar.

  • QUIC (Quick UDP Internet Connections) ist eine Spezifikation. QUIC ist die Lösung für eine Reihe von Transport- und Anwendungsschichtproblemen. Während es TCP und TLS sehr ähnlich ist, wurde es zusätzlich zu UDP implementiert.
  • Quinn ist die Kiste, aus der wir QUIC übernehmen.

QUIC: Eine kurze Geschichte

Woher kam QUIC? Wir sind zwar nicht mit ihren kapitalistischen Überwachungspraktiken einverstanden, QUIC hat seinen Ursprung bei Google - bleiben aber bei uns. Es war ein experimentelles Netzwerkprotokoll, das von Jim Roskind entworfen wurde, der zu dieser Zeit bei Google arbeitete. Sie haben es für Chrome, YouTube und Search sowie andere Dienste bereitgestellt, damit sie das Protokoll in Aktion beobachten können. Die von Google entwickelte Version unterscheidet sich jedoch stark von der heutigen Erscheinung. Durch die offene Zusammenarbeit und ein gemeinsames Ziel vieler Entwickler, das Internet schneller und sicherer zu machen, wuchs QUIC vom Drahtformat der Pakete über das Handshake bis hin zum HTTP-Mapping organisch.

Wie das SAFE-Netzwerk QUIC verwendet

Ursprünglich hatte MaidSafe nicht die Absicht, eine Netzwerkbibliothek zu erstellen. Wir haben Crust entwickelt, eine Open-Source-Bibliothek, die es Computern ermöglicht, sich in einem Peer-to-Peer-Netzwerk miteinander zu verbinden, da die benötigten Funktionen nicht vorhanden waren. Wir haben uns nie mit dem Stillstand zufrieden gegeben. Wir haben uns andere Bibliotheken (wie uTP) angesehen, aber festgestellt, dass ihnen alle unsere Vision einer vollständig gesicherten Netzwerkbibliothek fehlte.

Wir haben dann festgestellt, dass wir die gleichen Ziele erreichen können, indem wir Open Source-Code basierend auf den QUIC-Spezifikationen verwenden. Die Quinn-Kiste ist eine Open-Source-Implementierung von QUIC, die in Rust (der bevorzugten Programmiersprache für das Backend des SAFE-Netzwerks) entwickelt wurde. Wir haben uns entschieden, Crust durch QUIC zu ersetzen. Wir haben unsere Bibliothek quic-p2p genannt, weil wir wollten, dass der Name selbsterklärend ist (wir verwenden das QUIC-Protokoll zum Codieren unserer p2p-Bibliothek). Und es ist ziemlich eingängig, findest du nicht?

Warum haben wir uns von Crust zu quic-p2p entwickelt?

Crust wurde auf TCP aufgebaut und bildete die Grundlage für das gesamte zusätzliche Protokoll-Engineering. QUIC ist anders. Es ist ein vollständig gebildetes, einzelnes Protokoll, so dass kein zusätzliches Protokoll-Engineering erforderlich ist. Zweitens ist es fast fertig. Es wurde von der ITEF übernommen, und auch wenn sich dieser Standard im Laufe der Zeit weiterentwickeln wird, wirken sich zukünftige Änderungen nicht auf die Funktionalität aus, auf die wir uns heute bereits verlassen. Außerdem ist es unser Ziel, den schnellsten Start so schnell wie möglich zu erreichen, was bedeutet, dass wir vorhandene Lösungen gerne verwenden. Dies ist offene Entwicklung und Open Source vom Feinsten. QUIC ist auch schnell, kann Verbindungen billiger als TCP aufbauen und akzeptiert Lochsockel (UDP). Und nicht zuletzt verfügt QUIC bereits über Funktionen, die wir in Crust eingebaut haben. Warum sollten wir also nicht die Gelegenheit nutzen, auf Arbeit aufzubauen, die unsere Probleme löst?

Ist Quin also besser für das SAFE-Netzwerk als Crust?

In einem Wort - ja. Es gibt drei Hauptvorteile.

  1. Verschlüsselung: QUIC basiert auf dem UDP-Protokoll und ist standardmäßig verschlüsselt. Crust hätte sich zuvor mit dem Verschlüsseln befasst, bevor etwas über TCP gesendet wurde (da TCP selbst nicht verschlüsselt wird). In der neuen Welt verfügt QUIC jedoch über eine Verschlüsselung mit integrierten TLS-Zertifikaten. Die Verschlüsselung ist also kostenlos.
  2. Multi-Streaming: Ein weiteres Problem bei TCP ist das Sperren von Warteschlangen. Mit anderen Worten, was zuerst in der Warteschlange ankommt, wird zuerst geliefert. Eine Anwendung behandelt einen Bytestrom, der über eine TCP-Verbindung gesendet wird, im Wesentlichen als FIFO. Wenn Sie zum Beispiel 1 GB Daten und dann 1 KB Daten senden, werden diese nacheinander empfangen, wobei die größte zuerst ist. Dies bedeutet, dass nachfolgende kleinere Daten in den Pipes verbleiben können, bis das erste Paket empfangen wird. QUIC macht die Sache anders. In derselben Pipe können Sie einen Stream öffnen und verschiedene Daten gleichzeitig auf verschiedenen Kanälen senden, so dass keine Blockade des Kopfes der Warteschlange auftritt. In Crust haben wir dies mit unserem Chunking-Algorithmus und Priority-Queues nachgeahmt. Durch die Übernahme von Quinn brauchen wir diese Dinge nicht mehr.
  3. ITEF-Zulassung: Obwohl QUIC ein Lebensstandard ist (in dem Sinne, dass es nicht abgeschlossen ist), wurde es 2016 von der IETF angenommen. Während Crust auf TCP aufgebaut war (was natürlich ein IETF-Standard ist), wurden die Erweiterungen, die wir oben aufgebaut haben, nicht speziell von der IETF berücksichtigt.

Zusammenfassung

QUIC bringt viele weitere Vorteile mit sich (z. B. Verhinderung von IP-Spoofing, zustandslose Neuversuche usw.). Da es sich um ein modernes Protokoll handelt, wurden in der Spezifikation die Defizite der über Jahrzehnte untersuchten vorhandenen Mechanismen berücksichtigt und diese Fragen in QUIC behandelt. Und noch besser, wir sind einer der ersten, die dieses Protokoll aktiv nutzen.

Also haben wir es. Während Crust bis jetzt die richtige Lösung für uns war, sind wir hungrig genug, um zu verstehen, dass wir bessere Möglichkeiten haben, das Netzwerk schneller und kompromissloser für Sie bereit zu stellen, sollten wir diese Gelegenheit nutzen und mit beiden greifen Hände. Der Schritt hin zu einer vollständig verschlüsselten, sicheren privaten Kommunikation, die auf den Bemühungen einer globalen Gemeinschaft basiert, gibt uns eine solide Grundlage für den Aufbau des SAFE-Netzwerks.

Siehe auch

In einem Diagramm: Der FAANG-ShuffleLaden Sie ein Telefon mit einer ALTOID CANRichteranalytik: Ein genauerer Blick auf unsere meistbesuchten RichterZinwaves Slavko Djukic über das Millimeterwellenspektrum bei 5G-HerausforderungenDie Kamera als App-LayerRegina Daniels ist das größte Yahoo-Mädchen aller Zeiten - Comedian King Bright