BBR Control trong QUIC và HTTP/3

Webserver LiteSpeed ​ phát hành từ phiên bản 5.4.2, Web ADC 2.6.0 và OpenLiteSpeed ​​1.6.1 sử dụng bộ điều khiển Congestion-Based cho các kết nối QUIC. BBR (viết tắt của Bottleneck Bandwidth và RTT ) là một thuật toán kiểm soát tắc nghẽn mới được Google phát triển trong vài năm qua. Nó có một số tính chất rất hữu ích.

RTT là gì

Round-trip time (RTT) là khoảng thời gian tính từ lúc client bắt đầu gửi request tới lúc nó nhận gói dữ liệu đầu tiên trả về, không bao gồm thời gian nhận đầy đủ dữ liệu.
Trình duyệt kết nối với một web server lần đầu tiên sẽ trải qua tối thiểu 3 RTT: một RTT để phân giải tên miền (DNS), một RTT để khởi tạo kết nối TCP, một RTT cho HTTP request và những byte đầu tiên của HTTP response.

Trong những trường hợp xấu nhất, RTT có thể tới vài giây, nhất là trong trường hợp request tới những file kích thước nhỏ, RTT chiếm hầu hết thời gian trao đổi dữ liệu. Vì thế, một trong những chiến thuật quan trọng để tăng tốc website là tối thiểu hóa số lượng các request client tạo ra hoặc song song chúng hết mức có thể.

Chống mất gói tin

Ý tưởng chính đằng sau BBR là mất gói có thể không có nghĩa là có tắc nghẽn trong mạng. Ví dụ, một gói có thể bị mất do nhiễu sóng vô tuyến . Thuật toán dựa trên Cubic(  là thuật toán hình khối ) và congestion-based khác không phân biệt giữa mất gói giả và tắc nghẽn thực sự, làm giảm tốc độ gửi của chúng trong cả hai trường hợp. Đối với BBR sẽ không bị lỗi như trên

Kết quả là, BBR có thể cung cấp hiệu suất thông lượng bền vững ngay cả khi đối mặt với các điều kiện mạng dưới mức tối ưu.

Độ trễ tối thiểu

Kể từ khi vấn đề được xác định và có  các cảnh báo về vấn đề mất gói tin trên hạ tần mạng người dùng, đã có những thay đổi đối với thiết bị cơ sở hạ tầng mạng để tránh buffering ( tạo bộ đệm) quá nhiều dữ liệu. Tuy nhiên, thực tế vẫn còn: thuật toán Cubic sẽ cố gắng lấp đầy bộ đệm cổ chai trên đường dẫn mạng, tăng độ trễ kết nối. Một nghiên cứu về mạng 4G LTE cho thấy để che giấu việc mất gói, bộ đệm được sử dụng rộng rãi, do đó làm tăng RTT.

BBR theo dõi băng thông tắc nghẽn và kiểm tra định kỳ trong thời gian khứ hồi tối thiểu của gói tin. Những ước tính này được người gửi sử dụng để tránh làm đầy bộ đệm cổ chai. Với BBR, một ứng dụng web tương tác có  khả năng đáp ứng tốt hơn trước đây.

Hạn chế

Mặc dù có những ưu điểm tuyệt vời, BBR không phải không có vấn đề. Nó hoạt động kém khi có bộ đệm ít trên đường dẫn và nó có thể không công bằng với các luồng khác, yêu cầu hầu hết băng thông có sẵn. Những vấn đề này sẽ được giải quyết trong BBRv2, đang được tích cực phát triển tại Google.

Kết quả kiểm tra

Kiêm tra  thông lượng mất gói tin

Để so sánh BBR với Cubic, ta thiết lập bản dựng trước khi phát hành LSWS 5.4.2 và tiến hành một vài thử nghiệm tải xuống tệp tĩnh từ máy chủ web bằng ứng dụng khách LiteSpeed ​​QUIC . Nút cổ chai được thiết lập ở phía máy khách bằng cách sử dụng netem và ifb .

Tốc độ (MBit / giây)Trì hoãn (ms)Mất (%)Cubic (giây)BBR (giây)
202504,54,5
20250,56,74.6
202518,64.6
2025214.34,7
2025317,64,7

Thời gian để chuyển tệp 10 MB, tính bằng giây

Rõ ràng là Cubic rất nhạy cảm với việc mất gói, trong khi BBR thì không.

Độ trễ

Để kiểm tra sự khác biệt về độ trễ giữa Cubic và BBR, ta thiết lập một trang web đơn giản với ba tài nguyên: một trang HTML có liên kết đến hai tệp: một lớn và một nhỏ. Nút cổ chai được thiết lập để có băng thông 20 MBit / giây và độ trễ 25 ms với bộ đệm lớn. Người dùng nhấp vào tệp lớn và nó bắt đầu tải xuống. Người dùng sau đó nhấp vào tệp nhỏ. Khi khối được sử dụng, phải mất một đến hai giây để tải xuống tệp nhỏ:


Hình 1: Tải xuống tệp nhỏ khi máy chủ sử dụng Cubic

Điều này là do thuật toán Cubic cố gắng lấp đầy bộ đệm trung gian. Mặt khác, BBR giữ cho bộ đệm thắt cổ chai được điền đầy đủ vào đúng cách để việc tải xuống một tệp nhỏ theo thứ tự RTT:


Hình 2: Tải xuống tệp nhỏ khi người dùng máy chủ BBR

Kiểm soát tắc nghẽn BBR trong QUIC và HTTP/3

BBR là một công nghệ kiểm soát tắc nghẽn mới. Nó có hai ưu điểm so với kiểm soát tắc nghẽn Cubic được triển khai rộng rãi: không nhạy cảm với mất gói ngẫu nhiên và độ trễ thấp. Với Litespeed hosting tại TinoHost, bạn có thể tận dụng công nghệ này ngay hôm nay để cung cấp tốc độ cho các kết nối Google QUIC và HTTP / 3 của máy chủ.

Related Articles