Mô tả giải pháp

Một phần của tài liệu đảm bảo chất lượng phục vụ cho truyền video streaming trong mạng không dây 802.11 (Trang 49 - 51)

Định nghĩa một số tham số :

- ∆t : khoảng thời gian sử dụng ñể xem xét ñường truyền. Ta sẽ tính các thông số

về thời gian backoff trung bình, cũng như tỉ lệ gói tin bị hủy trong khoảng thời gian này ñể ñánh giá môi trường.

- backoffTime[ AC] : Là giá trị trung bình backoff time của mỗi khung tính trong khoảng thời gian ∆t trên mỗi AC.

- dropRatio[AC] : Là tỷ lệ khung bị hủy trên mỗi AC trong khoảng thời gian ∆t. - backoffThresholdDown[AC] : là ngưỡng backoff time trên mỗi AC. Nếu giá trị

]

[ AC

e

backoffTim tăng vượt quá ngưỡng này thì ta phải thực hiện cơ chế chuyển các luồng dữ liệu video streaming xuống AC có ñộ ưu tiên thấp hơn AC hiện thời.

- backoffThresholdUp[AC] : Cũng là ngưỡng backoff time trên mỗi AC. Nếu giá trị backoffTime[ AC] giảm xuống quá ngưỡng này, thì ta sẽ thực hiện cơ chế chuyển các luồng dữ liệu video streaming từ AC có ñộ ưu tiên nhỏ hơn lên AC hiện thời.

- dropThresholdDown[AC] : Là ngưỡng của tỷ lệ hủy gói tin trên mỗi AC. Nếu giá trị ratioDrop tăng vượt ngưỡng này, ta phải thực hiện cơ chế chuyển các luồng dữ liệu video streaming xuống AC có ñộ ưu tiên thấp hơn AC hiện thời.

- dropThresholdUp[AC] : Cũng là ngưỡng của tỷ lệ hủy gói tin trên mỗi AC. Nếu giá trị ratioDrop giảm xuống quá ngưỡng này, thì ta sẽ thực hiện cơ chế chuyển các luồng dữ liệu video streaming từ AC có ñộ ưu tiên nhỏ hơn lên AC hiện thời.

- numberFlow[AC] : là số lượng luồng dữ liệu video streaming ñang có ñộ ưu tiên tương ứng với AC.

Trong phương pháp này. Ban ñầu vẫn giữ nguyên như trong chuẩn IEEE 802.11e, ứng dụng video streaming sẽ gán ñộ ưu tiên của tất cả các luồng ứng với các

40

tầng của nó cùng một giá trị (vì là video streaming nên ñộ ưu tiên là là ở mức cao prio=1).

Mỗi một AC ở các trạm, sẽ luôn luôn theo dõi giá trị backoff time trung bình của các khung dữ liệu và tỷ lệ gói tin bị hủy trong một khoảng ∆t và xem xét xem nếu như giá trị backoff time trung bình vượt quá ngưỡng backoff time cho phép, hoặc tỷ lệ hủy gói tin vượt quá ngưỡng cho phép của AC ñó, thì sẽ thực hiện cơ chế chuyển ñộ ưu tiên của các luồng dữ liệu. Cơ chế ñó ñược mô tả trong giải thuật sau

for (int i = 1; i < 3; i++){

if(backoffTime[i] > backoffThresholdDown[i] || dropRatio[i] < dropThresholdDown[i]) {

if( numberFlow[i] >1 || (numberFlow[i] == 1 && i != 1)){

Chuyển luồng ứng với tầng có mức ñộ quan trọng nhỏ nhất ñang còn tồn tại trong AC[i] xuống AC[i+1]

} }

}

Tức là sau mỗi thời gian ∆t, kiểm tra tất cả các AC xem nếu ở AC ñó có một hoặc nhiều hơn một luồng dữ liệu của dịch vụ video streaming chạy, và giá trị backoff time trung bình của AC vượt ngưỡng backoffThresholdDown[AC] của nó, hoặc tỷ lệ hủy khung dữ liệu vượt quá giá trị dropThresholdDown[AC], thì một luồng trong ñó sẽ ñược chọn ñể ñẩy xuống AC có ñộ ưu tiên thấp hơn. Tiêu chí ñể chọn là luồng có ñộ quan trọng thấp nhất với dịch vụ video streaming. Độ quan trọng này sắp theo thứ tự giảm dần theo thứ tự: luồng cơ bản, luồng mở rộng 1, luồng mở rộng 2… Nhưng nếu AC là AC có ñộ ưu tiên nhận giá trị là 1 (prio = 1) và nó chỉ có một luồng dữ liệu còn lại thì không ñược ñẩy luồng này xuống vì ñó là luồng cơ bản(tình trạng này chỉ gặp khi mạng quá bận, và dịch vụ video streaming không thể duy trì ñược với bất cứ cách thức nào).

Nhưng nếu chỉ có cơ chế chuyển các luồng xuống các AC có ñộ ưu tiên thấp hơn khi mạng ñược xác ñịnh là bận thì chưa ñủ. Bởi vì như kết luận ở phần 3.1 ta có: với trường hợp mạng rỗi nên gán ñộ ưu tiên của các luồng là bằng nhau và ở mức cao ñể có thể ñảm bảo cung cấp ñược dịch vụ video streaming với chất lượng tốt hơn. Như vậy song song với cơ chế ñẩy các luồng xuống các AC có ñộ ưu tiên thấp khi mạng

41

bận thì phải có cơ chế kéo các luồng lên các AC có ñộ ưu tiên cao hơn khi tình trạng mạng là rảnh rỗi hơn. Do ñó giải thuật trên cần viết lại như sau :

for (int i = 1 ; i < 3; i++){

if(backoffTime[i] > backoffThresholdDown[i] || dropRatio[i] < dropThresholdDown[i]) {

if( numberFlow[i] >1 || (numberFlow[i] == 1 && i != 1)){

Chuyển luồng ứng với tầng có mức ñộ quan trọng nhỏ nhất ñang còn tồn tại trong AC[i] xuống AC[i+1] (adsbygoogle = window.adsbygoogle || []).push({});

} }

if(backoffTime[i] < backoffThresholdUp[i] || dropRatio[i] < dropThresholdUp[i] ){

Chuyển luồng ứng với tầng có mức ñộ quan trọng cao nhất ñang còn tồn tại trong AC[i+1] lên AC[i]

} }

Việc chọn các ngưỡng ñể chuyển các luồng lên hay xuống các AC có ñộ ưu tiên cao hay thấp hơn AC hiện tại là khác nhau thay vì gán chung một ngưỡng ñể quy ñịnh luồng dữ liệu tụt xuống hay kéo lên giữa các AC. Bởi vì ñiều này làm giảm thiểu khả năng một luồng nào ñó cứ bị chuyển ñi chuyển lại liên tục giữa các AC do các thông các thông số ñánh giá tăng giảm quanh ngưỡng chung.

Mặt khác khi có thay ñổi thể hiện thông qua tham số ñánh giá ta không chuyển một cách ñột ngột và ồ ạt các luồng dữ liệu xuống các tầng thấp mà chuyển một cách từ từ từng luồng một ñể hợp lý dần sự phân bố các luồng ở các AC sao cho phù hợp nhất với ñộ thay ñổi của môi trường truyền.

Một phần của tài liệu đảm bảo chất lượng phục vụ cho truyền video streaming trong mạng không dây 802.11 (Trang 49 - 51)