PHÂN TÍCH NGUYÊN NHÂN CỦA SỰ KHÔNG CÔNG BẰNG LUỒNG TRONG CÁC MẠNG AD HOC KHÔNG DÂY
2.2.1.2. Mô hình lập lịch gói tin
2.2.1.2.1. Mô hình fluid và đồ thị tranh chấp luồng
Trong mô hình fluid này, độ chi tiết của sự chia sẻ kênh là một bít, và mỗi luồng f được gán một trọng số rf. Mục đích là để gán một sự phân bố kênh tối thiểu tới mỗi luồng tương ứng với trọng số của nó, và tuỳ thuộc vào ràng buộc này, làm tăng tối đa sự sử dụng toàn bộ kênh.
Bước đầu tiên trong mô hình là để chuyển đổi các luồng trong một cấu trúc liên kết mạng chung thành ra một đồ thị tranh chấp luồng, mô tả quan hệ tranh chấp về khoảng thời gian trống giữa các luồng đang truyền. Trong một đồ thị tranh chấp luồng, mỗi đỉnh đại diện cho một luồng được dự trữ, và một cạnh giữa hai đỉnh biểu thị rằng hai luồng này là đang tranh chấp. Các đỉnh mà không được kết nối biểu thị các luồng có thể truyền đồng thời. Như vậy, một tập hợp độc lập trong đồ thị tranh chấp luồng biểu thị một tập hợp truyền không xung đột.
Việc xem xét đồ thị tranh chấp luồng cung cấp một sự hiểu biết sâu sắc về việc tại sao phải lập lịch công bằng trong miền đích là một vấn đề khó khăn duy nhất. Các đồ thị con không liên thông trong đồ thị tranh chấp luồng có thể được lập lịch độc lập. Trong một mạng có dây, các luồng tại tầng liên kết mà chia sẻ cùng liên kết đầu ra tạo thành một nhóm và mạng được biểu diễn bằng một tập hợp của các nhóm rời nhau, như vậy mỗi nhóm có thể được lập lịch độc lập và có nhiều hơn một nguồn gửi trong một nhóm tại một thời điểm. Trong một mạng không dây đa chặng có kênh được chia sẻ, nhiệm vụ là nhận ra một chuỗi thuộc các tập hợp độc lập (ví dụ các nguồn gửi đồng thời) tuỳ thuộc vào những ràng buộc cấu trúc liên kết của đồ thị, sao cho mỗi luồng nhận một sự đại diện tối thiểu trong chuỗi các tập hợp độc lập và tại cùng một thời điểm, toàn bộ các yếu tố của các tập hợp này được tăng tối đa.
Phương pháp để đạt được mô hình công bằng bằng việc lựa chọn một tập hợp các luồng để truyền trong một giai đoạn hàng đợi công bằng, và sau đó
tăng tối đa sử dụng kênh bằng việc lựa chọn các luồng thêm vào để truyền trong một giai đoạn tập hợp độc lập cực đại tuỳ thuộc vào việc lựa chọn các luồng trong một giai đoạn hàng đợi công bằng. Những chi tiết chính xác của thuật toán trong hai giai đoạn quyết định liệu mô hình công bằng có là toàn bộ hay cục bộ không.
2.2.1.2.2. Đạt được công bằng tối thiểu thông qua chia sẻ hàng đợi công bằng
Hàng đợi công bằng fluid bắt buộc rằng khi một tập hợp những luồng F
chia sẻ một kênh, một luồng i với trọng số ri nhận một sự phân phối kênh của
C jB(t) j i r r t
qua bất cứ cửa sổ thời gian nhỏt, ở đó C là dung lượng kênh và
B(t) là tập hợp của các luồng chưa thực hiện tại thời gian t. Một vài thuật toán lập lịch đóng gói khác nhau tồn tại gần giống với mô hình hàng đợi công bằng fluid.
Một biến thể lai của Start time Fair Queueing (STFQ) và Worst-case Fair Weighted Fair Queueing (WF2Q), sử dụng khi điểm xuất phát quy tắc lập lịch trong khung lập lịch lý tưởng hoá. Mỗi luồng có một hàng đợi với các gói tin của nó. Các gói tin trong một luồng thoả mãn theo thứ tự FIFO. Mỗi gói tin có hai thẻ, một thẻ bắt đầu và một thẻ kết thúc. Thẻ bắt đầu của nth
gói tin của luồng i được chỉ rõ như sau:
si,n=max{v(ti,n),fi,n-1}
và thẻ kết thúc của n th
gói tin của luồng i được chỉ rõ như sau:
fi,n=si,n + L/ri
ở đó si,n và fi,n biểu thị thẻ bắt đầu và thẻ kết thúc, v(t) là thời gian ảo tại thời điểm t, ti,n biểu thị thời gian đến của gói tin, và L là kích thước gói tin cố định. Thời gian ảo v(t) tại thời điểm t là tập hợp thẻ bắt đầu của gói tin hiện tại đang được truyền trên kênh.
Sau khi truyền một gói tin, gói tin tiếp theo truyền được lựa chọn theo thuật toán sau đây.
Trong số tất cả các gói tin mà có thẻ bắt đầu không lớn hơn v(t) + L,
Nếu như không có gói tin như vậy, thì gói tin với thẻ bắt đầu nhỏ nhất được lựa chọn.
Sự ràng buộc là không được thực hiện tuỳ tiện.
Bây giờ trình bày các thuật toán lập lịch gói tin lý tưởng để đạt được các mô hình công bằng toàn bộ và cục bộ tương ứng.
Nhắc lại trong mô hình công bằng toàn bộ, một luồng chưa thực hiện i nhận một sự phân phối kênh ít nhất C
jB(t) j
i r r
t
trong thời gian (t, t + t), ở đó B(t) là tập hợp của tất cả các luồng được dự trữ trong mạng. Thuộc tính công bằng này đồng nhất với một xấp xỉ bằng thuật toán hàng đợi công bằng đóng gói ở trên. Như vậy, sử dụng thuật toán này để cung cấp một sự phân phối “cơ sở”, và tuỳ thuộc vào sự phân phối này, tìm kiếm để tăng tối đa sử dụng lại toàn bộ kênh theo thuật toán sau đây:
1. Lựa chọn phần đầu dòng gói tin của luồng i* theo thuật toán hàng đợi công bằng đóng gói được mô tả ở trên.
2. Lựa chọn tập hợp độc lập cực đại Si* trong G – N[i*], ở đó N[i] biểu thị miền lân cận đóng của nút i trong đồ thị tranh chấp luồng.
3. Lập lịch các gói tin để truyền trong {i* } U Si*. Gia tăng thẻ bắt đầu và thẻ kết thúc của luồng i*, nhưng không thay cho bất cứ luồng nào trong Si.
Thực tế rằng các thẻ không được gia tăng đối với các luồng trong Si* cho phép bộ lập lịch đạt được sử dụng lại kênh bổ sung tối đa có thể dành để phân phối cho i*“độc lập”, ví dụ các luồng mà nhận phân phối kênh bổ sung không chịu tải cho nó bằng việc tăng dần các thẻ của chúng.
Nhắc lại rằng trong mô hình công bằng cục bộ, một luồng được dự trữ i nhận một sự phân phối kênh ít nhất C
jB(t) j
i r r
t
trong thời gian (t, t + t), ở đó B(t) là tập hợp của tất cả các luồng được dự trữ trong miền lân cận đóng của nó. Ngược lại trong mô hình công bằng toàn bộ, đạt được công bằng cục bộ sử dụng thuật toán hàng đợi công bằng đóng gói là ít thay đổi hơn, và yêu
cầu sự thay đổi sau đây:
Giả sử D là một tập hợp “cơ sở” của các luồng được định nghĩa ở dưới; thời gian ảo v(t) là tập hợp tối đa các thẻ bắt đầu của phần đầu các gói tin thuộc các luồng trong D. Với thay đổi thuật toán hàng đợi công bằng đóng gói này, bây giờ định nghĩa thuật toán để đạt được mô hình công bằng cục bộ như sau. Sau khi truyền một gói tin
1. Thiết lập D tiến tới NULL. Đối với mỗi luồng, nếu như thẻ bắt đầu của phần đầu gói tin trong một luồng không lớn hơn v(t)+L, thì thiết lập trạng thái của luồng là tranh chấp, nếu không thiết lập trạng thái của luồng là không tranh chấp.
2. Nếu không có luồng nào trong trạng thái tranh chấp, thì thêm vào một luồng với thẻ bắt đầu cực tiểu tiến tới D và bỏ qua bước tiếp theo. Mặt khác, khi có các luồng trong trạng thái tranh chấp, lựa chọn một luồng f với thẻ kết thúc cực tiểu của phần đầu dòng gói tin và thêm vào f
để thiết lập D. Thiết lập tất cả các luồng trong miền lân cận đóng của f, N[f], tiến tới không tranh chấp.
3. Cập nhật thời gian ảo v(t) để thẻ bắt đầu tăng tối đa của phần đầu dòng các gói tin giữa các luồng trong D. Cập nhật thẻ bắt đầu và thẻ kết thúc của các luồng trong D.
4. Lựa chọn tập hợp độc lập cực đại S trong đồ thị G - N[D].
5. Lập lịch các luồng trong S D để truyền. Không làm gia tăng
các thẻ bắt đầu và thẻ kết thúc của các luồng trong S.
Tập hợp D bao gồm các luồng mà nhận sự phân bố kênh như một kết quả của thuộc tính công bằng cục bộ, khi tập hợp S bao gồm các luồng mà nhận sự phân bố kênh bổ sung để tăng tối đa sử dụng toàn bộ kênh.
2.2.1.2.3 Các hàng đợi khe và các hàng đợi gói tin
Trong các thuật toán lập lịch được lý tưởng hoá, các thẻ bắt đầu và kết thúc được cập nhật khi một luồng nhận sự phân bố kênh như một phần “chia sẻ công bằng” của nó, nhưng không là một phần của sự phân bố kênh được thêm vào để làm tăng tối đa sử dụng. Để phù hợp với lựa chọn cập nhật các
thẻ này, “các khe” được tách riêng ra, là đơn vị của sự phân bố kênh, từ “các gói tin”, đơn vị của quá trình truyền. Một luồng bao gồm hai hàng đợi, một hàng đợi khe và một hàng đợi gói tin. Các thẻ bắt đầu và kết thúc được liên kết với các khe nhưng không phải với các gói tin.
Khi một gói tin đến với một luồng, nó được thêm vào hàng đợi gói tin, và một khe mới được thêm vào hàng đợi khe. Tương ứng các thẻ bắt đầu và kết thúc được gán cho một khe mới. Nếu một luồng nhận dịch vụ thông qua giai đoạn hàng đợi đang công bằng, thì nó truyền phần đầu dòng gói tin từ hàng đợi gói tin và xoá phần đầu dòng khe từ hàng đợi khe. Nếu nó nhận dịch vụ thông qua giai đoạn tập hợp độc lập cực đại, nó truyền một gói tin từ hàng đợi gói tin, nhưng cho phép hàng đợi khe không bị thay đổi. Khi tất cả các gói tin đều có kích thước cố định, việc tách hàng đợi khe và hàng đợi gói tin dễ dàng được hoàn thành. Đối với các gói tin có độ dài thay đổi, nguyên tắc tách làm việc cũng như vậy, nhưng phức tạp hơn.