Η Microsoft άνοιξε την εφαρμογή του πρωτοκόλλου QUIC που χρησιμοποιείται στο HTTP/3

Microsoft ανακοινώθηκε σχετικά με το άνοιγμα του κώδικα της βιβλιοθήκης msquic με την εφαρμογή του πρωτοκόλλου δικτύου QUIC. Ο κώδικας είναι γραμμένος σε C και διανέμονται από με άδεια MIT. Η βιβλιοθήκη είναι cross-platform και μπορεί να χρησιμοποιηθεί όχι μόνο σε Windows, αλλά και σε Linux Σανέλ ή OpenSSL για TLS 1.3. Στο μέλλον σχεδιάζεται η υποστήριξη και άλλων πλατφορμών.

Η βιβλιοθήκη βασίζεται στον κώδικα προγράμματος οδήγησης msquic.sys που παρέχεται στον πυρήνα των Windows 10 (Insider Preview) για να ενεργοποιήσει το HTTP και SMB πάνω από το QUIC. Ο κώδικας χρησιμοποιείται επίσης για την υλοποίηση του HTTP/3 στην εσωτερική στοίβα των Windows και στο .NET Core. Η ανάπτυξη της βιβλιοθήκης MsQuic θα πραγματοποιηθεί εξ ολοκλήρου στο GitHub χρησιμοποιώντας δημόσια αξιολόγηση από ομοτίμους, αιτήματα έλξης και ζητήματα GitHub. Έχει ετοιμαστεί μια υποδομή που ελέγχει κάθε αίτημα δέσμευσης και έλξης σε ένα σύνολο περισσότερων από 4000 δοκιμών. Μετά τη σταθεροποίηση του περιβάλλοντος ανάπτυξης, προγραμματίζεται η αποδοχή αλλαγών από τρίτους προγραμματιστές.

Το MsQuic μπορεί ήδη να χρησιμοποιηθεί για τη δημιουργία διακομιστών και πελατών, αλλά δεν είναι προς το παρόν διαθέσιμη όλη η λειτουργικότητα που ορίζεται στην προδιαγραφή IETF. Για παράδειγμα, δεν υπάρχει υποστήριξη για έλεγχο 0-RTT, μετεγκατάσταση πελάτη, Ανακάλυψη διαδρομής MTU ή Προτιμώμενη διεύθυνση διακομιστή. Μεταξύ των εφαρμοζόμενων λειτουργιών, σημειώνεται η βελτιστοποίηση για την επίτευξη μέγιστης απόδοσης και ελάχιστες καθυστερήσεις, υποστήριξη για ασύγχρονη είσοδο/έξοδο, RSS (Receive Side Scaling) και δυνατότητα συνδυασμού ροών UDP εισόδου και εξόδου. Η υλοποίηση MsQuic έχει δοκιμαστεί για συμβατότητα με πειραματικές εκδόσεις των προγραμμάτων περιήγησης Chrome και Edge.

Θυμηθείτε ότι το HTTP/3 τυποποιεί τη χρήση του πρωτοκόλλου QUIC ως μεταφορά για το HTTP/2. Πρωτόκολλο QUIC Το (Quick UDP Internet Connections) αναπτύχθηκε από την Google από το 2013 ως εναλλακτική λύση στον συνδυασμό TCP+TLS για τον Ιστό, επιλύοντας προβλήματα με μεγάλους χρόνους εγκατάστασης και διαπραγμάτευσης για συνδέσεις στο TCP και εξαλείφοντας τις καθυστερήσεις όταν χάνονται πακέτα κατά τη μεταφορά δεδομένων. Το QUIC είναι μια επέκταση του πρωτοκόλλου UDP που υποστηρίζει πολυπλεξία πολλαπλών συνδέσεων και παρέχει μεθόδους κρυπτογράφησης ισοδύναμες με TLS/SSL.

Ο κύριος χαρακτηριστικά QUIC:

  • Υψηλή ασφάλεια παρόμοια με το TLS (ουσιαστικά το QUIC παρέχει τη δυνατότητα χρήσης του TLS 1.3 μέσω UDP).
  • Έλεγχος ακεραιότητας ροής, αποτροπή απώλειας πακέτων.
  • Δυνατότητα άμεσης δημιουργίας σύνδεσης (0-RTT, περίπου στο 75% των περιπτώσεων τα δεδομένα μπορούν να μεταδοθούν αμέσως μετά την αποστολή του πακέτου ρύθμισης σύνδεσης) και να παρέχει ελάχιστες καθυστερήσεις μεταξύ της αποστολής ενός αιτήματος και της λήψης απάντησης (RTT, Round Trip Time).
    Η Microsoft άνοιξε την εφαρμογή του πρωτοκόλλου QUIC που χρησιμοποιείται στο HTTP/3

  • Μη χρήση του ίδιου αριθμού σειράς κατά την αναμετάδοση ενός πακέτου, γεγονός που αποφεύγει την ασάφεια στον εντοπισμό των ληφθέντων πακέτων και απαλλαγεί από τα χρονικά όρια.
  • Η απώλεια ενός πακέτου επηρεάζει μόνο την παράδοση της ροής που σχετίζεται με αυτό και δεν σταματά την παράδοση δεδομένων σε παράλληλες ροές που μεταδίδονται μέσω της τρέχουσας σύνδεσης.
  • Λειτουργίες διόρθωσης σφαλμάτων που ελαχιστοποιούν τις καθυστερήσεις λόγω αναμετάδοσης χαμένων πακέτων. Χρήση ειδικών κωδικών διόρθωσης σφαλμάτων σε επίπεδο πακέτου για τη μείωση καταστάσεων που απαιτούν αναμετάδοση χαμένων δεδομένων πακέτων.
  • Τα κρυπτογραφικά όρια μπλοκ ευθυγραμμίζονται με τα όρια πακέτων QUIC, γεγονός που μειώνει τον αντίκτυπο των απωλειών πακέτων στην αποκωδικοποίηση των περιεχομένων των επόμενων πακέτων.
  • Κανένα πρόβλημα με τον αποκλεισμό ουράς TCP.
  • Υποστήριξη για το αναγνωριστικό σύνδεσης, το οποίο μειώνει τον χρόνο που απαιτείται για τη δημιουργία μιας επανασύνδεσης για πελάτες κινητής τηλεφωνίας.
  • Δυνατότητα σύνδεσης προηγμένων μηχανισμών ελέγχου συμφόρησης σύνδεσης.
  • Χρησιμοποιεί τεχνικές πρόβλεψης απόδοσης ανά κατεύθυνση για να διασφαλίσει ότι τα πακέτα αποστέλλονται με βέλτιστους ρυθμούς, αποτρέποντας τη συμφόρηση και την απώλεια πακέτων.
  • Αντιληπτός ανάπτυξη απόδοση και απόδοση σε σύγκριση με το TCP. Για υπηρεσίες βίντεο όπως το YouTube, το QUIC έχει αποδειχθεί ότι μειώνει τις λειτουργίες rebuffering κατά την παρακολούθηση βίντεο κατά 30%.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο