Hàng đợi RED trong module DiffServ

Một phần của tài liệu LUẬN VĂN: ĐÁNH GIÁ HIỆU QUẢ ĐẢM BẢO QoS CHO TRUYỀN THÔNG ĐA PHƯƠNG TIỆN CỦA CHIẾN LƯỢC QUẢN LÝ HÀNG ĐỢI WRED pot (Trang 55 - 56)

Hàng đợi RED trong DiffServ khác với hàng đợi RED sẵn có của NS2 trong REDQueue, nó được định nghĩa trong lớp dsREDQueue, thừa kế từ lớp Queue, nó có những chức năng như sau:

- Triển khai nhiều hàng đợi vật lý RED qua cùng 1 liên kết đơn

- Triển khai nhiều hàng đợi ảo trong 1 hàng đợi vật lý, với những tham số riêng biệt cho mỗi hàng đợi ảo

- Xác định 1 packet thuộc hàng đợi vật lý và hàng đợi ảo nào dựa vào giá trị Code Point của nó

Lớp dsREDQueue bao gồm tối đa 4 hàng đợi RED vật lý, mỗi cái lại chứa tối đa 4 hàng đợi ảo. Số hàng đợi vật lý và ảo được sử dụng có thể được thiết lập thông qua biến numPrec và numQueues_.

Hàng đợi vật lý được định nghĩa trong lớp redQueue, nó khả năng phân biệt các traffic thông qua việc định nghĩa các hàng đợi ảo với các cấu hình độc lập, chi tiết về việc này có tại file dsredq.h và dsredq.cc trong bộ cài NS2.

Lớp dsREDQueue còn chứa một kiến trúc dữ liệu là bảng Per Hop Behavior (PHB), các router biên đánh dấu packet bằng Code Point và core router xử lý packet dựa trên giá trị Code Point đó, và cả 2 loại router đều sử dụng bảng PHB để ánh xạ Code Point tới hàng đợi vật lý và ảo.

Bảng PHB được định nghĩa như là 1 mảng với 3 trường như sau: struct phbParam {

int codePt_; // giá trị Code Point int queue_; // số hiệu hàng đợi vật lý int prec_; // số hiệu hàng đợi ảo

Một phần của tài liệu LUẬN VĂN: ĐÁNH GIÁ HIỆU QUẢ ĐẢM BẢO QoS CHO TRUYỀN THÔNG ĐA PHƯƠNG TIỆN CỦA CHIẾN LƯỢC QUẢN LÝ HÀNG ĐỢI WRED pot (Trang 55 - 56)