X là biến ngẫu nhiên thể hiện số lượng các gói đến sau một gói được đánh dấu cho tớ
3.5.5 Phát hiện sớm ngẫu nhiên cân bằng FRED
RED không chắc chắn rằng lưu lượng cùng được chia sẻ băng tần công bằng. Trên thực hiện tế, RED không đối xử công bằng với các luồng TCP tốc đọ thấp bởi RED ngẫu nhiên loại bỏ các gói khi vượt quá mức ngưỡng max, do đó mỗi gói trong số các gói đó có băng thông nhỏ hơn băng thông được chia sẻ công bằng. Khi các luồng TCP có quá nhiều gói bị mất thì chúng cũng yêu cầu nhiều hơn các chức năng cửa sổ điều khiển tắc nghẽn,do đó tốc độ sẽ càng thấp hơn. FRED là một biến thể của RED để giảm tính không công bằng trong phân bố băng thông.
FRED hoạt động giống như RED nhưng có thêm một số chức năng mới: FRED đưa ra thêm hai tham số maxq và minq là số lượng các gói lớn nhất và nhỏ nhất trong mỗi luồng được phép đưa vào hàng đợi. Ngoài ra FRED còn có thêm biến toàn cục avgcq, đánh giá kết quả đếm bộ đệm trên mỗi luồng trung bình. Khi một luồng có số lượng các gói trong hàng đợi nhỏ hơn avgcq thì chúng sẽ được ưu tiên hơn. FRED sẽ duy trì số đếm qlen của các gói được đệm cho mỗi luồng mà đã có bất kì gói nào đó trong bộ đệm. FRED duy trì biến strike để đếm thời gian mà một luồng trượt đáp ứng với các thông báo tắc nghẽn. FRED cho phép mỗi kết nối được đưa vào bộ đệm số lượng các gói có giá trị minq mà không bị loại bỏ. Tất cả các gói thêm vào đều bị loại bỏ bởi RED. Các gói đến được chấp nhận nếu kết nối có ít hơn minq được đệm và kích
thước hàng đợi trung bình nhỏ hơn maxth. Thông thường một kết nối TCP gửi ít hơn 3 gói ngược trở lại: hai gói cho trễ ACK, một gói để điều khiển tăng kích thước cửa sổ. Do đó minq được thiết lập từ 2 đến 4 gói tin.
Khi số lượng các kết nối tích cực nhỏ(N<< minth/minq), FRED cho phép mỗi kết nối được đệm minq các gói mà không bị loại bỏ. Nó cũng tăng từ giá trị minq tới kích thước hàng đợi trung bình trên một kết nối (avgcq). Một cách đơn giản, nó tính toán giá trị này bằng cách phân chia kích thước hàng đợi trung bình bằng việc sử dụng số lượng các kết nối tích cực. Một kết nối là tích cực khi nó có các gói được đưa vào trong bộ đệm và kết nối thu động trong trường hợp ngược lại.
FRED không bao giờ để các luồng tới bộ đệm có số lượng các gói lớn hơn maxq gói tron bộ đệm, và đếm thời gian mỗi luồng để cố gắng vượt quá giá trị maxq trong biến strike của mỗi luồng. Các luồng có giá trị strike cao đều không được cho phép tới hàng đợi có nhiều hơn avgcq gói. Vì vậy chúng không cho phép sử dụng nhiều gói hơn luồng trung bình. Điều này cho phép thích ứng các luồng để gửi các bó gói. RED ban đầu định giá kích thước hàng đợi trung bình tại mỗi gói đến. Trong FRED trung bình được thực hiện tại các gói đến và đi. Do đó tần số lấy mẫu là giá trị lớn nhất của tốc độ đầu vào và tốc độ đầu ra. FRED không chỉnh sửa độ trung bình nếu gói tới bị loại bỏ trừ khi kích thước hàng đợi tạm thời bằng 0.