Το Cloudflare έχει εφαρμόσει μια ενότητα για την υποστήριξη HTTP/3 στο NGINX

Εταιρεία Cloudflare έτοιμος μονάδα για την παροχή υποστήριξης για το πρωτόκολλο HTTP/3 στο NGINX. Η ενότητα έχει σχεδιαστεί ως πρόσθετο στη βιβλιοθήκη που αναπτύχθηκε από το Cloudflare quiche με την εφαρμογή του πρωτοκόλλου μεταφοράς QUIC και HTTP/3. Ο κώδικας quiche είναι γραμμένος σε Rust, αλλά η ίδια η μονάδα NGINX είναι γραμμένη σε C και έχει πρόσβαση στη βιβλιοθήκη χρησιμοποιώντας δυναμική σύνδεση. Εξελίξεις Άνοιξε υπό την άδεια BSD.

Για τη συναρμολόγηση, απλώς κατεβάστε patch στο nginx 1.16 και κώδικας βιβλιοθήκες quiche και, στη συνέχεια, δημιουργήστε ξανά το nginx με τις επιλογές "—with-http_v3_module —with-quiche=../quiche". Κατά τη δημιουργία, η υποστήριξη TLS θα πρέπει να βασίζεται στη βιβλιοθήκη BoringSSL (“--with-openssl=../quiche/deps/boringssl”), η χρήση του OpenSSL δεν υποστηρίζεται ακόμη. Για να αποδεχτείτε συνδέσεις, πρέπει να προσθέσετε την οδηγία ακρόασης με τη σημαία "quic" στις ρυθμίσεις (για παράδειγμα, "ακρόαση 443 quic reuseport").

Στο λογισμικό πελάτη, η υποστήριξη HTTP/3 έχει ήδη προστεθεί σε πειραματικές εκδόσεις του Chrome Canary και στο βοηθητικό πρόγραμμα curl. Από την πλευρά του διακομιστή, μέχρι τώρα ήταν απαραίτητο να χρησιμοποιήσετε ξεχωριστό, περιορισμένο δοκιμαστικές υλοποιήσεις. Η δυνατότητα επεξεργασίας HTTP/3 στο nginx θα απλοποιήσει σημαντικά την ανάπτυξη διακομιστών με υποστήριξη HTTP/3 και θα κάνει πιο προσιτή τη δοκιμαστική εφαρμογή του νέου πρωτοκόλλου. Η εμφάνιση της τυπικής υποστήριξης για το HTTP/3 στο nginx αναμένεται να στον κλάδο 1.17.x για 6-12 μήνες.

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

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

  • Υψηλή ασφάλεια παρόμοια με το TLS (ουσιαστικά το QUIC παρέχει τη δυνατότητα χρήσης TLS μέσω UDP).
  • Έλεγχος ακεραιότητας ροής, αποτροπή απώλειας πακέτων.
  • Δυνατότητα άμεσης δημιουργίας σύνδεσης (0-RTT, περίπου στο 75% των περιπτώσεων τα δεδομένα μπορούν να μεταδοθούν αμέσως μετά την αποστολή του πακέτου ρύθμισης σύνδεσης) και να παρέχει ελάχιστες καθυστερήσεις μεταξύ της αποστολής ενός αιτήματος και της λήψης απάντησης (RTT, Round Trip Time).
  • Μη χρήση του ίδιου αριθμού σειράς κατά την αναμετάδοση ενός πακέτου, γεγονός που αποφεύγει την ασάφεια στον εντοπισμό των ληφθέντων πακέτων και απαλλαγεί από τα χρονικά όρια.
  • Η απώλεια ενός πακέτου επηρεάζει μόνο την παράδοση της ροής που σχετίζεται με αυτό και δεν σταματά την παράδοση δεδομένων σε παράλληλες ροές που μεταδίδονται μέσω της τρέχουσας σύνδεσης.
  • Λειτουργίες διόρθωσης σφαλμάτων που ελαχιστοποιούν τις καθυστερήσεις λόγω αναμετάδοσης χαμένων πακέτων. Χρήση ειδικών κωδικών διόρθωσης σφαλμάτων σε επίπεδο πακέτου για τη μείωση καταστάσεων που απαιτούν αναμετάδοση χαμένων δεδομένων πακέτων.
  • Τα κρυπτογραφικά όρια μπλοκ ευθυγραμμίζονται με τα όρια πακέτων QUIC, γεγονός που μειώνει τον αντίκτυπο των απωλειών πακέτων στην αποκωδικοποίηση των περιεχομένων των επόμενων πακέτων.
  • Κανένα πρόβλημα με τον αποκλεισμό ουράς TCP.
  • Υποστήριξη για το αναγνωριστικό σύνδεσης, το οποίο μειώνει τον χρόνο που απαιτείται για τη δημιουργία μιας επανασύνδεσης για πελάτες κινητής τηλεφωνίας.
  • Δυνατότητα σύνδεσης προηγμένων μηχανισμών ελέγχου συμφόρησης σύνδεσης.
  • Χρησιμοποιεί τεχνικές πρόβλεψης απόδοσης ανά κατεύθυνση για να διασφαλίσει ότι τα πακέτα αποστέλλονται με βέλτιστους ρυθμούς, αποτρέποντας τη συμφόρηση και την απώλεια πακέτων.
  • Αντιληπτός ανάπτυξη απόδοση και απόδοση σε σύγκριση με το TCP. Για υπηρεσίες βίντεο όπως το YouTube, το QUIC έχει αποδειχθεί ότι μειώνει τις λειτουργίες rebuffering κατά την παρακολούθηση βίντεο κατά 30%.
  • Πηγή: opennet.ru

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