Quản lý hàng đợi tích cực là một trong các giải pháp cho điều khiển tránh tắc nghẽn trên Internet.. Tư tưởng thuật toán: - Nếu số lượng gói tin trong hàng đợi nằm giữa các giá trị minth
Trang 1CHOKe – SỰ CẢI TIẾN CƠ CHẾ QUẢN LÝ HÀNG ĐỢI CỦA RED
1. Mở đầu
Ngày nay internet phải đối mặt với sự bùng nổ về số lượng máy tính kết nối
và sự đa dạng của các lớp ứng dụng triển khai trên nó Quản lý hàng đợi tích cực là một trong các giải pháp cho điều khiển tránh tắc nghẽn trên Internet Trong những năm gần đây, các nhà nghiên cứu về mạng đã đề xuất nhiều cơ chế quản lý hàng đợi tích cực Sự phát triển của Internet ngày nay phụ thuộc rất nhiều vào cơ chế điều khiển tắc nghẽn TCP, tuy nhiên, ngày càng có nhiều ứng dụng UDP (ví dụ như gói tin âm thanh / video) được truyền đi trên Internet, người
ta không thể dựa vào nhu cầu của người dùng đầu cuối để điều khiển tắc nghẽn thích hợp Cơ chế định tuyến phải được cung cấp để bảo vệ luồng thông tin được đáp ứng từ những người dùng và ngăn chặn bùng nổ lưu lượng Một số phương pháp đã được đề xuất cho việc quản lý tài nguyên chia sẻ trên Internet, quản lý hàng đợi tích cực là một trong những phương pháp chính
Thông lượng trên Internet có xu hướng biến động theo chiều hướng tham lam Lý tưởng nhất là một thuật toán quản lý hàng đợi mà router sẽ cho phép lưu lượng bùng phát tạm thời, và loại bỏ các luồng có xu hướng liên tục tăng băng thông, sử dụng quá nhiều băng thông Ngoài ra, các thuật toán nên có độ phức tạp nhỏ bằng cách hạn chế chiều dài hàng đợi, giảm tỉ lệ mất mát gói tin bằng cách cho phép xếp hàng tạm thời, và việc phân bổ tài nguyên hàng đợi một cách công bằng giữa các loại giao thức truyền tin Trong thực tế, hầu hết các thiết bị định tuyến đang được triển khai sử dụng thuật toán đơn giản DropTail, vì nó đơn giản để thực hiện với chi phí tính toán tối thiểu, nhưng cung cấp hiệu suất không đạt yêu cầu
Để cải tiến vấn đề này, nhiều thuật toán quản lý hàng đợi được đề xuất, chẳng hạn như RED (Random Early Drop), FRED (Flow Random Early Drop), BLUE , SFB (Stochastic Fair BLUE) Hầu hết các thuật toán cho đều có thể cung cấp chia sẻ công bằng giữa các gói khác nhau mà không áp đặt quá nhiều việc triển khai phức tạp Các đề xuất tập trung vào một khía cạnh của vấn đề (sự công bằng, phức tạp khi triển khai, hoặc chi phí tính toán), hoặc sửa chữa các khiếm khuyết của các thuật toán trước đó và mô phỏng nó theo những cách thiết lập khác
Nội dung tiểu luận này chỉ giới thiệu cơ chế tránh tắc nghẽn RED, CHOKe
và so sánh kết quả giữa hai cơ chế quản lý hàng đơi RED và CHOKe để đánh giá
Trang 2hiệu hiệu suất bằng phần mềm mô phỏng mạng NS-2 và phần mềm phân tích kết quả TraceGraph
2. Cơ chế quản lý hàng đợi RED
RED (Random Ealy Detection) là cơ chế kiểm soát hàng đợi dưới dạng gửi
thông báo về trạm nguồn về tình trạng tắc nghẽn bằng cách cho rơi gói tin sớm và trạm nguồn nhận biết qua “time out” hoặc “duplicate ACK” để trạm nguồn giảm tốc độ phát Xác suất rơi gói tin sớm phụ thuộc độ dài trung bình của hàng đợi và
hai giá trị ngưỡng min th và max th
Tư tưởng thuật toán:
- Nếu số lượng gói tin trong hàng đợi nằm giữa các giá trị minth và max th thì hủy bỏ gói tin một cách ngẫu nhiên tùy theo một hàm xác suất p
- Nếu hàng đợi chứa ít hơn min th gói tin thì thêm gói tin mới vào hàng đợi và xác suất hủy bỏ là 0
- Nếu hàng đợi chứa nhiều hơn maxth gói tin thì hủy bỏ những gói tin mới
và xác suất hủy bỏ là 1
Các tham số vào:
maxth: là giới hạn của ngưỡng kích thước hàng đợi cực đại,
minth:là giới hạn của ngưỡng kích thước hàng đợi cực tiểu
maxp: xác suất rơi cực đại
ω
: là trọng số hàng đợi trong đoạn [0,1], 0≤ω ≤
1
Khi các gói tin bị mất ở hàng đợi tức là có dấu hiệu bộ đệm bị tràn Vì vậy ECN có thể nhận ra tắc nghẽn thông qua việc mất gói tin, giúp ích cho việc nâng cao hiệu năng mạng
3. Cơ chế quản lý hàng đợi CHOKe
Để cải thiện khả năng RED một cải tiến của RED đã được đề xuất Cụ thể, chúng ta thể hiện một thuật toán quản lý hàng đợi hoạt động tương tự RED chỉ
Trang 3khác nhau về thuật toán khi chọn những gói tin để cho rơi đó là CHOKe, đơn giản
là thực hiện sự khác biệt gây bất lợi cho luồng hỏng bằng cách cho rơi các gói tin của luồng đó
Ý tưởng cơ bản của CHOKe là từ bộ đệm FIFO sẽ xử lý các luồng lưu lượng hỏng Khi một gói tin đến một bộ định tuyến xảy ra tắc nghẽn, CHOKe rút ra một gói tin ngẫu nhiên từ bộ đệm FIFO và so sánh nó với các gói tin đến Nếu cả hai đều thuộc về cùng một luồng lưu lượng thì đánh rớt cả hai gói Ngược lại, các gói tin được lựa chọn ngẫu nhiên sẽ được giữ nguyên vẹn, các gói tin đến được nhận vào bộ đệm với một xác suất mà phụ thuộc vào mức độ tắc nghẽn Do đó, các gói tin của các luồng lưu lượng hỏng được giảm nhiều hơn so với các gói tin của luồng lưu lượng đáp ứng
Mô hình thuật toán:
AvgQsize : Chiều dài hàng đợi trung bình maxth: là giới hạn của ngưỡng kích thước hàng đợi cực đại minth : là giới hạn của ngưỡng kích thước hàng đợi cực tiểu
Ý tưởng:
CHOKe tính toán lấp đầy trung bình của bộ đệm FIFO bằng cách sử dụng trung bình chuyển động theo cấp số nhân tương tự như RED Nó cũng đánh dấu hai ngưỡng trên bộ đệm, một ngưỡng tối thiểu min và một ngưỡng tối đa max
Trang 4Nếu kích thước hàng đợi trung bình bé hơn minth, thì mỗi gói tin đến được chấp nhận xếp hàng đợi vào bộ đệm FIFO và kết thúc
Ngược lại, các gói tin được rút ra ngẫu nhiên từ hàng đợi Nếu cả hai gói tin đều đến từ một luồng thì tiến hành đánh rớt hai gói tin và kết thúc
Ngược lại nếu gói tin từ 2 luồng khác nhau mà kích thước hàng đợi trung bình bé hơn maxth thì gói tin được gán một xác suất p
Nếu kích thước hàng đợi trung bình đạt cực đại maxth thì đánh rớt gói mới và kết thúc
4. Mô phỏng
Để thấy được sự cải tiến cơ chế quản lý hàng đợi CHOKe trong tiểu luận này tôi sử dụng phần mềm mô phỏng mạng NS2 để mô phỏng các cơ chế quản lý hàng đợi RED và CHOKe
Sơ đồ mô phỏng
Sơ đồ gồm 36 nút, trong đó:
+ 17 nút gửi (8 nút TCP, 9 nút UDP);
+ 17 Nút nhận (8 nút TCPShink, 9 nút NUL);
+ 2 nút trung gian;
Thắt nút cổ chai tạo tắc nghẽn giữa đường tryền hai nút trung gian với
Bandwidth = 1Mb/sec và Delay = 2 ms
Các đường truyền giữa các nút khác có Bandwitdh=1Mb/sec và Delay=5ms
Trang 6Với mô hình như nhau và cùng thông số như nhau đối với RED và CHOKe:
limit_ 20 (giới hạn kích thước cửa sổ)
thresh_ 5 (giới hạn nhỏ nhất của của kích thước hàng đợi TB)
maxthresh_ 20.000000 (giới hạn lớn nhất của của kích thước hàng đợi TB)
mean_pktsize_ 500 (ước lượng kích thước gói tin trung bình tính bằng byte)
q_weight_ 0.002000 (trọng số hàng đợi)
linterm_ 15.000000 (Giá trị nghịch đảo của Max p )
Kết quả mô phỏng RED trên NS-2 và được phân tích bằng TraceGraph
Thông lượng của các gói tin gửi đi, các gói tin nhận và các gói tin rơi trong
20 giây được thể hiện qua đồ thị sau:
Trang 7Các kết quả có được sau khi chạy mô phỏng RED
Kết quả mô phỏng cơ chế quản lý hàng đợi RED
Số gói tin gửi: 92799
Số gói tin nhận: 12030
Số gói tin mất: 80769
Số gói tin bị rơi: 80607
Trang 8Kết quả mô phỏng CHOKe trên NS-2 và được phân tích bằng TraceGraph
Thông lượng của các gói tin gửi đi, các gói tin nhận và các gói tin rơi trong thời gian 20 giây được thể hiện qua đồ thị sau:
Trang 9Các kết quả có được sau khi chạy mô phỏng CHOKe
Kết quả mô phỏng cơ chế quản lý hàng đợi
Số gói tin gửi: 93115
Số gói tin nhận: 21131
Số gói tin mất: 80984
Số gói tin bị rơi: 80850
Bảng so sánh các kết quả giữa cơ chế RED và CHOKe
Trang 105. Kết luận
Khi có sự tắc nghẽn thì:
+ Các luồng lưu lượng đáp ứng khi nhận được thông báo nghẽn sẽ giảm tốc
độ gửi dữ liệu;
+ Các luồng lưu lượng không đáp ứng vẫn tiếp tục gửi dữ liệu như bình thường;
Dẫn đến các luồng không đáp ứng chiếm băng thông nhiều hơn
Đối với RED chỉ cho rơi gói tin khi đến khi số gói tin trong hàng đợi vượt quá maxth còn đối với CHOKe nếu gói tin đến cùng luồng với một gói tin nào đó
đó được lấy ra ngẫu nhiên trong hàng đợi thì cả hai gói đều bị cho rơi còn khi số gói tin trong hàng đợi vượt quá maxth thì cơ chế cho rơi gói tin hoàn toàn giống RED
Tỷ lệ gói tin mất của CHOKe (86.97%) ít hơn đáng kể so với RED (87.04%)
Tỷ lệ gói tin rơi của CHOKe (86.83%) ít hơn đáng kể so với RED (86.86%) Như vậy sự cho rơi sớm gói tin của CHOKe tránh cho hàng đợi nhanh đầy hơn RED dẫn đến sự tắc nghẽn xảy ra đối với CHOKe chậm hơn RED làm cho hiệu suất của CHOKe (13.03%) lớn hơn đáng kể so với RED (12.96%)
6. Tài liệu tham khảo
[1] Nguyễn Kim Quốc, Võ Thanh Tú - ĐÁNH GIÁ HIỆU NĂNG CỦA MỘT SỐ
CƠ CHẾ QUẢN LÝ HÀNG ĐỢI TÍCH CỰC DỰA TRÊN KÍCH THƯỚC HÀNG ĐỢI VÀ TẢI NẠP
[2] Rong Pan, Balaji Prabhakar, Konstantinos Psounis - A stateless active queue management scheme for approximating fair bandwidth allocation
[3] Ao Tang, Student Member, IEEE, Jiantao Wang, and Steven H Low, Senior Member, IEEE - Understanding CHOKe: Throughput and Spatial Characteristics