Hình 2.41 cho thấy thuật toán SFB cơ bản. SFB là một thuật toán hàng đợi FIFO nó nhận biết và hạn chế tốc độ các luồng không đáp ứng dựa trên cơ chế tính toán tương tự như được sử dụng với BLUE. SFB duy trì N×L ngăn nhớ (bins) đã tính toán. Các ngăn nhớ được tổ chức thành L cấp với N ngăn nhớ trong mỗi cấp. Ngoài ra, SFB duy trì (L) hàm hash độc lập, tương ứng với mỗi mức của các ngăn nhớ tính toán. Mỗi hàm hash sắp xếp (maps) một luồng vào một trong N ngăn nhớ tính toán ở mức đó. Các ngăn nhớ tính toán được sử dụng để theo dõi các số liệu thống kê sự chiếm dụng hàng đợi của các gói tin thuộc một ngăn nhớ cụ thể.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Hình 2.40 Thuật toán SFB
Điều này trái ngược với Stochastic Fair Queueing (SFQ) [73] ở đây các hàm hash sắp xếp các luồng vào các hàng đợi riêng biệt. Mỗi ngăn nhớ trong SFB giữ một xác suất mất gói/đánh dấu pm giống như BLUE, chúng được cập nhật dựa trên sự chiếm dụng ngăn nhớ. Khi một gói tin đến tại hàng đợi, nó được đặt ngẫu nhiên vào 1 trong N ngăn nhớ trong mỗi L cấp. Nếu số lượng các gói dữ liệu đã sắp xếp vào một ngăn nhớ trên một ngưỡng nhất định (ví dụ, kích thước của ngăn nhớ), pm của ngăn nhớ tăng lên. Nếu số lượng các gói dữ liệu giảm về không, pm giảm xuống.
Các quan sát có cài đặt SFB là một luồng không đáp ứng điều khiển nhanh pm đến 1 trong tất cả L ngăn nhớ đã được sắp xếp ngẫu nhiên. Các luồng đáp ứng có thể chia sẻ một hoặc hai ngăn nhớ với các luồng không đáp ứng, tuy nhiên, trừ khi số lượng các luồng không đáp ứng là rất lớn so với số lượng các ngăn nhớ, một luồng đáp ứng có khả năng được sắp xếp vào ít nhất một ngăn nhớ mà không ảnh hưởng tới các luồng không đáp ứng và do đó có giá trị pm bình thường. Quyết định đánh dấu một gói tin dựa trên pmin, giá trị pm tối thiểu của tất cả các ngăn nhớ mà luồng được sắp xếp vào. Nếu pmin là 1, gói tin được xác định thuộc luồng không đáp
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
ứng và sau đó hạn chế tốc độ. Tại thời điểm này, một số tùy chọn cho phép giới hạn tốc độ truyền của luồng. Khi hoạt động, các luồng được xác định là không đáp ứng chỉ đơn giản là giới hạn lượng băng thông cố định. Chính sách này được thi hành bằng cách hạn chế tốc độ các gói xếp hàng vào các luồng với giá trị pmin là 1. Hình 2.41 cho thấy một ví dụ về cách thức hoạt động của SFB.
Hình 2.41 Ví dụ về SFB
Như hình vẽ cho thấy, luồng không đáp ứng điều khiển tăng xác suất đánh dấu của tất cả các ngăn nhớ được sắp xếp vào. Trong khi các luồng TCP thể hiện trong hình có thể sắp xếp vào cùng ngăn nhớ như luồng không đáp ứng ở cấp cụ thể, nó sắp xếp vào các ngăn nhớ bình thường ở các cấp khác. Vì điều này, xác suất đánh dấu tối thiểu của luồng TCP dưới 1.0 và do đó, nó không được xác định là không đáp ứng. Mặt khác, vì xác suất đánh dấu tối thiểu của luồng không đáp ứng là 1.0, nó được xác định là không đáp ứng và bị giới hạn tốc độ.
Lưu ý rằng cũng giống như xác suất đánh dấu của BLUE có thể được sử dụng trong SFB để cung cấp bảo vệ chống lại các luồng không đáp ứng, nó cũng có thể áp dụng tham số maxp của ARED để làm được như vậy. Trong trường hợp này, giá trị maxp cho mỗi ngăn nhớ được lưu giữ và cập nhật theo hành vi của các luồng được sắp xếp vào ngăn nhớ. Tuy nhiên, với RED, có hai vấn đề làm cho phương pháp này không hiệu quả. Thứ nhất là thực tế một lượng lớn không gian đệm được yêu cầu để RED có thể hoạt động tốt. Thứ hai là việc thực hiện đề xuất dựa trên RED bị hạn chế vì ngay cả một lượng vừa phải tắc nghẽn đòi hỏi maxp thiết lập là 1. Như vậy, RED, sử dụng theo cách này, có một thời điểm vô cùng khó khăn để phân biệt giữa một luồng không đáp ứng và mức trung bình của tắc nghẽn.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
2.3.4.2 Sự đánh giá
Sử dụng NS, thuật toán SFB đã được mô phỏng trong cùng một mạng như trong hình 2.31 với trễ truyền dẫn là 10ms trên tất cả các kết nối. Các hàng đợi SFB được cấu hình với 200KB không gian đệm và duy trì hai hàm hash cho mỗi sắp xếp vào 23 ngăn nhớ. Kích thước của mỗi ngăn nhớ được thiết lập là 13 khoảng 50% nhiều hơn 1/23 không gian đệm cho phép. Lưu ý rằng bằng cách phân bổ nhiều hơn 1/23 không gian đệm cho mỗi ngăn nhớ, SFB thực sự đăng ký trước quá nhiều ("overbooks") bộ đệm để cố gắng cải thiện ghép kênh thống kê. Chú ý rằng ngay cả với overbooking, kích thước của mỗi ngăn nhớ là khá nhỏ. Vì Blue hoạt động rất tốt với tài nguyên bộ nhớ hạn chế, SFB có thể vẫn thực sự tối đa hóa hiệu quả mạng. Hàng đợi cũng được cấu hình để giới hạn tốc độ các luồng không đáp ứng tới 0.16Mbs.
Trong thí nghiệm, 400 nguồn TCP và một không đáp ứng, nguồn tốc độ không đổi được chạy trong 100 giây từ các nút lựa chọn ngẫu nhiên (n0, n1, n2, n3, n4) tới các nút lựa chọn ngẫu nhiên (n5, n6, n7, n8 , n9). Trong thí nghiệm 1, luồng không đáp ứng truyền tại tốc độ 2Mbs trong khi ở các thí nghiệm khác, nó truyền với tốc độ 45Mbs. Bảng 2.1 cho thấy sự mất gói quan sát được trong cả hai thí nghiệm cho SFB. Như trong bảng đã cho thấy, với cả hai thí nghiệm, SFB hoạt động rất tốt. Luồng không đáp ứng thấy gần như tất cả các gói mất vì nó giới hạn tốc độ để cố định lượng băng thông kết nối. Ngoài ra, bảng cho thấy rằng trong cả hai trường hợp, một lượng rất nhỏ các gói tin từ các luồng TCP bị mất.
Bảng 2.1 Tỷ lệ mất gói của SFB theo Mbs (1 luồng không đáp ứng)
Gói mất (Mbs)
Luồng không đáp ứng 2Mbs
Luồng không đáp ứng 45Mbs
SFB RED SFQ+RED SFB RED SFQ+RED
Tổng số 1.856 1.787 3.599 44.850 13.393 46.467
Luồng không đáp ứng 1.846 0.034 1.034 44.841 10.324 43.940
Tất cả các luồng TCP 0.010 1.753 0.966 0.009 3.069 2.527
Bảng 2.1 cũng cho thấy hiệu suất của RED. Trái ngược với SFB, RED cho phép lưu lượng không đáp ứng duy trì thông lượng tương đối gần với tốc độ gửi ban đầu. Kết quả là, nguồn TCP còn lại thấy một lượng gói mất đáng kể dẫn đến hiệu suất của chúng kém đi. Cuối cùng, các thí nghiệm được lặp đi lặp lại sử dụng SFQ với số lượng ngăn nhớ tương đương (nghĩa là 46 hàng đợi riêng biệt) và một bộ đệm có kích thước nhiều hơn gấp đôi (414KB), làm cho mỗi hàng đợi có kích thước bằng nhau bằng 9KB. Đối với mỗi ngăn nhớ trong SFQ, thuật toán RED đã được áp
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
dụng với các giá trị minth và maxth tương ứng là 2KB và 8KB. Như bảng cho thấy, SFQ kết hợp với RED thực hiện công việc thích hợp để việc bảo vệ các luồng TCP từ luồng không đáp ứng. Tuy nhiên, trong trường hợp này, phân vùng đệm vào kích cỡ nhỏ như vậy dẫn đến một lượng mất gói đáng kể xảy ra. Các thí nghiệm bổ sung cho thấy, nếu như khoảng không gian đệm là giảm hơn nữa, vấn đề càng trầm trọng hơn và số lượng gói tin mất tăng đáng kể.
Hình 2.42 Băng thông của các luồng TCP với SFB (luồng 45Mbs)
Để kiểm tra chất lượng tác động của luồng không đáp ứng tới hiệu suất TCP, hình 2.42 biểu thị thông lượng của tất cả 400 luồng TCP sử dụng SFB khi luồng không đáp ứng gửi ở tốc độ 45Mbs. Như hình cho thấy, SFB cho phép mỗi luồng TCP duy trì gần chia sẻ công bằng băng thông của kết nối cổ chai trong khi luồng không đáp ứng được giới hạn tốc độ dưới tốc độ truyền của nó. Ngược lại, hình 2.43(a) cho thấy cùng một thí nghiệm bằng cách sử dụng quản lý hàng đợi RED bình thường. Hình này cho thấy thông lượng của tất cả các luồng TCP giảm chất lượng đáng kể như luồng không đáp ứng cho phép chiếm phần lớn băng thông kết nối cổ chai. Cuối cùng, hình 2.43(b) chỉ ra rằng trong khi SFQ với RED có thể có hiệu quả giới hạn tốc độ luồng không đáp ứng, thì phân vùng không gian đệm làm cho sự công bằng giữa các luồng bị hỏng (deteriorate) là khá tốt. Số lượng lớn gói tin mất gây ra một lượng lớn timeouts phải truyền lại qua một tập hợp con của các luồng dẫn đến một lượng đáng kể bất công (unfairness) [74]. Vì vậy, thông qua quá trình thí nghiệm, một vài luồng TCP có thể chiếm một lượng băng thông không cân đối trong khi rất nhiều luồng nhận được ít hơn đáng kể so với sự chia sẻ công bằng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
của băng thông kết nối. Hơn nữa, SFQ với RED cho phép 1/46 của 400 luồng được sắp xếp vào cùng một hàng đợi như luồng không đáp ứng. Các luồng không may mắn, đủ để sắp xếp vào ngăn nhớ này nhận được một lượng rất nhỏ băng thông kết nối. Ngược lại SFB có thể bảo vệ tất cả các luồng TCP trong thí nghiệm này.
(a) RED (b) SFQ + RED
Hình 2.43 Băng thông của các luồng dùng RED và SFQ (luồng 45Mbs)