Nỗ lực đầu tiên của Linux kernel trong việc hỗ trợ QUIC, giao thức internet hiện đại cung cấp năng lượng cho phần lớn lưu lượng web ngày nay, đã khơi dậy cuộc tranh luận sôi nổi trong cộng đồng về sự đánh đổi hiệu suất và tiềm năng tương lai. Trong khi QUIC hứa hẹn kết nối nhanh hơn và trải nghiệm di động tốt hơn, kết quả benchmark ban đầu cho thấy những khoảng cách hiệu suất đáng kể khiến các nhà phát triển đặt câu hỏi liệu những lợi ích có đáng để chịu những chi phí này hay không.
Kiểm tra thực tế hiệu suất gây lo ngại
Triển khai kernel ban đầu cho thấy những con số hiệu suất đáng lo ngại đã thu hút sự chú ý của cộng đồng. Trong so sánh trực tiếp, triển khai QUIC mới chỉ đạt được khoảng một phần tư thông lượng của TCP truyền thống trong một số bài kiểm tra, với TLS trong kernel đạt hiệu suất tốt hơn gần ba lần. Thậm chí còn đáng lo ngại hơn, khi mã hóa bị vô hiệu hóa hoàn toàn, TCP thuần túy vẫn vượt trội hơn QUIC hơn bốn lần trong một số kịch bản nhất định.
Những kết quả này đã khơi dậy các cuộc thảo luận sôi nổi về việc liệu những ưu điểm của QUIC - như giảm thời gian thiết lập kết nối và xử lý mạng di động tốt hơn - có thể biện minh cho những hình phạt hiệu suất đáng kể như vậy hay không. Cộng đồng chỉ ra một số lý do kỹ thuật cho kết quả kém, bao gồm thiếu hỗ trợ tăng tốc phần cứng, sao chép dữ liệu bổ sung trong quá trình truyền tải, và chi phí phụ của việc mã hóa header QUIC.
Kết quả so sánh hiệu suất:
- TLS tích hợp kernel so với QUIC: TLS có thông lượng tốt hơn khoảng 3 lần
- TCP thuần so với QUIC (tắt mã hóa): TCP có thông lượng tốt hơn hơn 4 lần
- Triển khai QUIC hiện tại: khoảng 3-5 Gbps
- TCP kernel Linux: khoảng 4.5 Gbps (gói tin thông thường), khoảng 24 Gbps (với large segmentation offload)
- QUIC userspace tốt nhất ( msquic ): khoảng 7 Gbps
Mạng di động thúc đẩy việc áp dụng QUIC bất chấp chi phí máy chủ
Cuộc tranh luận về hiệu suất trở nên tinh tế hơn khi xem xét các mẫu sử dụng thực tế. Các thành viên cộng đồng nhấn mạnh rằng QUIC không được thiết kế chủ yếu cho các ứng dụng máy chủ thông lượng cao, mà là để giải quyết những vấn đề gây khó khăn cho người dùng di động trên các mạng không đáng tin cậy. Khi người dùng chuyển đổi giữa kết nối WiFi và cellular, các kết nối TCP truyền thống bị ngắt hoàn toàn, trong khi QUIC có thể duy trì phiên một cách liền mạch.
QUIC sẽ hoạt động ổn, nhưng không thực sự có nhiều ưu điểm cho lưu lượng máy-với-máy. Máy-với-máy bạn có xu hướng có các kết nối tồn tại lâu dài qua một mạng khá tốt.
Triết lý thiết kế ưu tiên di động này giải thích tại sao các công ty như Google sẵn sàng chấp nhận chi phí máy chủ cao hơn - theo báo cáo là 2-3 lần trong một số trường hợp - để mang lại trải nghiệm người dùng tốt hơn cho người dùng smartphone. Khả năng tránh tắc nghẽn head-of-line và xử lý mất gói tin một cách khéo léo hơn của giao thức khiến nó đặc biệt có giá trị đối với người dùng ở các nước đang phát triển, những người chủ yếu dựa vào truy cập internet di động.
Thống kê Áp dụng Hiện tại:
- QUIC xử lý phần lớn các kết nối đến máy chủ của Google
- 40% lưu lượng truy cập trình duyệt Chrome sử dụng QUIC
- Tăng trưởng khoảng 5% mỗi hai năm
- Được hỗ trợ bởi tất cả các trình duyệt web chính
- Được sử dụng để triển khai giao thức HTTP/3
Tăng tốc phần cứng nắm giữ chìa khóa cho hiệu suất tương lai
Cộng đồng vẫn lạc quan về triển vọng dài hạn của QUIC, chủ yếu dựa vào hỗ trợ phần cứng tương lai để thu hẹp khoảng cách hiệu suất. Các nhà cung cấp card giao diện mạng đang thể hiện sự quan tâm trong việc cung cấp các tính năng tăng tốc cụ thể cho QUIC, tương tự như cách TCP được hưởng lợi từ hàng thập kỷ tối ưu hóa phần cứng. Triển khai kernel đại diện cho bước đầu tiên quan trọng hướng tới việc kích hoạt hỗ trợ phần cứng như vậy, ngay cả khi hiệu suất phần mềm hiện tại còn tụt hậu so với kỳ vọng.
Các nhà phát triển cũng chỉ ra những cải tiến kỹ thuật cụ thể có thể tăng hiệu suất một cách đáng kể. Những cải tiến này bao gồm thêm hỗ trợ offload phân đoạn, loại bỏ các bản sao dữ liệu không cần thiết, và tối ưu hóa pipeline mã hóa. Sự đồng thuận cho rằng trong khi hiệu suất hiện tại đáng thất vọng, kiến trúc cơ bản cho phép những cải tiến đáng kể trong tương lai.
Thông số kỹ thuật QUIC:
- Tiêu chuẩn giao thức: RFC 9000 (với các cập nhật trong RFC 9369)
- Được xây dựng trên nền tảng giao thức UDP
- Loại socket mới: IPPROTO_QUIC
- Hỗ trợ nhiều luồng dữ liệu đồng thời
- Luôn sử dụng mã hóa đầu cuối
- Bao gồm connection ID để duy trì phiên kết nối khi thay đổi IP
Kết luận
Triển khai QUIC của Linux kernel đại diện cho một cột mốc quan trọng trong sự tiến hóa giao thức internet, bất chấp những hạn chế hiệu suất hiện tại. Trong khi các con số benchmark vẽ nên một bức tranh đáng lo ngại cho các ứng dụng thông lượng cao, những ưu điểm thiết kế của giao thức cho người dùng di động và mạng không đáng tin cậy tiếp tục thúc đẩy việc áp dụng. Thử thách thực sự sẽ là liệu tăng tốc phần cứng và tối ưu hóa phần mềm có thể thu hẹp khoảng cách hiệu suất đủ nhanh để làm cho QUIC trở thành sự thay thế khả thi cho TCP trong môi trường máy chủ hay không. Hiện tại, internet dường như định mệnh chạy trên một phương pháp tiếp cận lai, với QUIC phục vụ người dùng di động và TCP xử lý công việc nặng trong các trung tâm dữ liệu.
Tham khảo: QUIC for the kernel