Cloudflare đã triển khai một mô-đun hỗ trợ HTTP/3 trong NGINX

Công ty Cloudflare chuẩn bị mô-đun để cung cấp hỗ trợ cho giao thức HTTP/3 trong NGINX. Mô-đun này được thiết kế như một tiện ích bổ sung cho thư viện do Cloudflare phát triển Quiche với việc triển khai giao thức truyền tải QUIC và HTTP/3. Mã quiche được viết bằng Rust, nhưng bản thân mô-đun NGINX được viết bằng C và truy cập thư viện bằng liên kết động. Sự phát triển mở theo giấy phép BSD.

Để lắp ráp, chỉ cần tải xuống đến nginx 1.16 và thư viện quiche, sau đó xây dựng lại nginx với các tùy chọn “—with-http_v3_module —with-quiche=../quiche”. Khi xây dựng, hỗ trợ TLS phải dựa trên thư viện BoringSSL (“--with-openssl=../quiche/deps/boringssl”), việc sử dụng OpenSSL chưa được hỗ trợ. Để chấp nhận kết nối, bạn cần thêm lệnh listen với cờ “quic” vào cài đặt (ví dụ: “listen 443 quic tái sử dụng”).

Trong phần mềm máy khách, hỗ trợ HTTP/3 đã được thêm vào các bản dựng thử nghiệm của Chrome Canary và tiện ích cuộn tròn. Về phía máy chủ, cho đến nay vẫn cần sử dụng riêng biệt, có giới hạn triển khai thử nghiệm. Khả năng xử lý HTTP/3 trong nginx sẽ đơn giản hóa đáng kể việc triển khai các máy chủ có hỗ trợ HTTP/3 và sẽ giúp việc triển khai thử nghiệm giao thức mới dễ tiếp cận hơn. Sự xuất hiện của hỗ trợ tiêu chuẩn cho HTTP/3 trong nginx dự kiến trong nhánh 1.17.x trong 6-12 tháng.

Hãy nhớ lại rằng HTTP/3 tiêu chuẩn hóa việc sử dụng giao thức QUIC làm phương tiện truyền tải cho HTTP/2. Giao thức QUIC (Kết nối Internet UDP nhanh) được Google phát triển từ năm 2013 như một giải pháp thay thế cho kết hợp TCP+TLS cho Web, giải quyết các vấn đề về thời gian thiết lập và đàm phán lâu cho các kết nối trong TCP và loại bỏ sự chậm trễ khi gói bị mất trong quá trình truyền dữ liệu. QUIC là phần mở rộng của giao thức UDP hỗ trợ ghép kênh nhiều kết nối và cung cấp các phương thức mã hóa tương đương với TLS/SSL.

Chính tính năng NHANH:

  • Bảo mật cao tương tự TLS (về cơ bản QUIC cung cấp khả năng sử dụng TLS qua UDP);
  • Kiểm soát tính toàn vẹn luồng, ngăn ngừa mất gói;
  • Khả năng thiết lập kết nối ngay lập tức (0-RTT, trong khoảng 75% trường hợp, dữ liệu có thể được truyền ngay sau khi gửi gói thiết lập kết nối) và cung cấp độ trễ tối thiểu giữa việc gửi yêu cầu và nhận phản hồi (RTT, Thời gian khứ hồi);
  • Không sử dụng cùng số thứ tự khi truyền lại gói, điều này tránh sự mơ hồ trong việc xác định các gói đã nhận và loại bỏ tình trạng hết thời gian chờ;
  • Việc mất gói chỉ ảnh hưởng đến việc phân phối luồng liên kết với nó và không dừng việc phân phối dữ liệu trong các luồng song song được truyền qua kết nối hiện tại;
  • Tính năng sửa lỗi giúp giảm thiểu độ trễ do truyền lại các gói bị mất. Sử dụng mã sửa lỗi đặc biệt ở cấp độ gói để giảm tình huống yêu cầu truyền lại dữ liệu gói bị mất.
  • Ranh giới khối mật mã được căn chỉnh với ranh giới gói QUIC, giúp giảm tác động của việc mất gói trong việc giải mã nội dung của các gói tiếp theo;
  • Không có vấn đề với việc chặn hàng đợi TCP;
  • Hỗ trợ mã định danh kết nối, giúp giảm thời gian cần thiết để thiết lập kết nối lại cho máy khách di động;
  • Khả năng kết nối các cơ chế kiểm soát tắc nghẽn kết nối tiên tiến;
  • Sử dụng các kỹ thuật dự đoán thông lượng theo hướng để đảm bảo tốc độ chuyển tiếp gói tối ưu, ngăn ngừa tắc nghẽn và mất gói;
  • Có thể cảm nhận được sự phát triển hiệu suất và thông lượng so với TCP. Đối với các dịch vụ video như YouTube, QUIC đã được chứng minh là giúp giảm 30% hoạt động lưu vào bộ đệm khi xem video.
  • Nguồn: opennet.ru

Thêm một lời nhận xét