Giải pháp phân bổ tài nguyên theo nhóm

Một phần của tài liệu Tìm hiểu phương pháp nâng cao tính công bằng luồng trên mạng chuyển mạch chùm quang (Trang 32)

Phương pháp phân bổ tài nguyên theo nhóm được đề xuất bởi Oguchi trong [4] phân loại các chùm thành một số nhóm theo tổng số hop hành trình của chúng. Mỗi nhóm có các kênh dành riêng và một chùm chỉ có thể sử dụng các bước sóng thuộc về nhóm đó. Các tác giả đã giải quyết vấn đề công bằng bằng cách gán nhiều bước sóng cho nhóm có hành trình dài.

Một ví dụ minh họa được mô tả trong hình 2.4, với tổng số bước sóng ra khả dụng trên liên kết WDM là W. Ogushi chia W bước sóng thành S nhóm (trong hình vẽ, S=2). Khi có một yêu cầu truyền chùm tại nút nguồn, một nhóm sẽ được lựa chọn. Sau đó, giải thuật cố gắng đặt trước bước sóng trong nhóm đã chọn. Bằng cách này, số lượng các bước sóng được xem xét đặt trước, thay vì là W, nay bị giới hạn thành M, (M < W).

Hình 2.4.Tổng số bước sóng ra khả dụng trên liên kết WDM là W [4]

Thuật toán được đề xuất bởi Ogushi bao gồm các bước sau:

Bước 1. Khi có một yêu cầu đặt trước bước sóng tại nút nguồn, các bước sóng

khả dụng (không được đặt trước bởi các chùm khác) trên liên kết ra đầu tiên là được tìm kiếm.

- Nếu có một hoặc nhiều bước sóng là khả dụng, đặt các bước sóng vào danh sách t0 = {λi, ..., λj}. Sau đó, một tín hiệu PROBE với danh sách t0 được gửi đi đến nút tiếp theo.

- Nếu không có bước sóng nào khả dụng trên liên kết ra (ví dụ, t0 =), một thông báo về truyền chùm thất bại được gửi lại nút nguồn.

Bước 2. Đặt nhóm bước sóng thứ j là Wj (1≤j≤S). Các bước sóng từ λj×(M-1)+1 đến λj×M thuộc về nhóm Wj. Khi có yêu cầu truyền chùm tại nút nguồn, một nhóm bước sóng được chọn. Sau đó, việc sử dụng những bước sóng trong nhóm được chọn trên liên kết ra được kết nối với nút nguồn được kiểm tra, và thông tin kết quả được thiết lập trong danh sách t0.

- Nếu có một hoặc nhiều bước sóng là khả dụng trong danh sách (ví dụ, t0≠), danh sách này được đưa vào tín hiệu PROBE.

- Nếu không, một thông báo về truyền chùm thất bại được gửi về nút nguồn.

Bước 3. Khi tín hiệu PROBE cuối cùng được nhận tại nút đích, nút thứ n từ nút

nguồn, danh sách tn-1 trong tín hiệu PROBE được kiểm tra để cập nhật danh sách các bước sóng khả dụng tn.

- Nếu tn ≠, một bước sóng được chọn (ví dụ, λu), và nó được ghi vào tín hiệu RES mà sẽ được gửi trở lại nút nguồn.

- Nếu không, một tín hiệu NACK được gửi trở lại nút nguồn.

Bước 4. Khi nút trung gian nhận được tín hiệu RES từ nút hạ lưu, bước sóng λu

được ghi trong tín hiệu RES được kiểm tra. Nếu nó vẫn khả dụng, thì bước sóng λu

thực sự được đặt trước, và tín hiệu RES được chuyển tiếp đến nút thượng lưu. Nếu không, tín hiệu NACK được gửi đến nút nguồn. Ngoài ra, tín hiệu REL được gửi đến các nút hạ lưu để giải phóng các bước sóng λu đã đặt trước.

Bước 5. Nếu tín hiệu RES là cuối cùng nhận được tại nút nguồn, thiết lập kết nối

thành công, và chùm được gửi từ nguồn bằng cách sử dụng bước sóng λu. Khi kết thúc truyền chùm, bước sóng dành riêng được giải phóng.

Bước 6. Nếu tín hiệu NACK nhận được từ nút trung gian hoặc nút đích, thiết lập

kết nối thất bại.

Một giải thuật dựa trên giải pháp Ogushi được đơn giản hoá chỉ đối với 2 nhóm là được mô tả như sau (và cũng được làm rỏ bởi sơ đồ khối ở hình 2.5)

Giải thuật CPS (Cluster-based Preemptive Scheduling)

Input: - Tập các chùm đến: S

- Tập các kênh ra và ngưỡng phân nhóm: M1, M2, thres

Begin B 

While S ≠ 

b  gói đầu tiên từ S; S = S \ {b}; // trong đó mỗi chùm b là một bộ 4 b(sBHP, sb, lb, pb), bao gồm: thời gian đến của gói điều khiển, thời gian đến của chùm, độ dài chùm và độ dài hành trình (số hop)

if pb > thres // nếu chùm đến có hành trình dài

If LAUC(b,M1) = false // nếu lập lịch chùm b lên M1 kênh không thành công OTb = sb – sBHP; // offset time của chùm b (adsbygoogle = window.adsbygoogle || []).push({});

If OTb > OTcontending Replace(bcontending, b);

B  B + bcontending // lưu lại chùm bị rơi Else

B  B + b // lưu lại chùm bị rơi End if

End if Else

If LAUC(b,M1) = false // nếu lập lịch chùm b lên M1 kênh không thành công OTb = sb – sBHP; // offset time của chùm b

If OTb > OTcontending Replace(bcontending, b);

B  B + bcontending // lưu lại chùm bị rơi Else

B  B + b // lưu lại chùm bị rơi End if

End if End if End while

Hình 2.5. Sơ đồ khối của giải thuật CPS

B 

S ≠ 

b  gói đầu tiên từ S; S = S \ {b}; OTb = sb – sBHP; OTb > OTcontending Replace(bcontending, b); B  B + bcontending B  B + b Tru e false false false True True LAUC(b,M1) = false Begin End OTb = sb – sBHP; OTb > OTcontending Replace(bcontending, b); B  B + bcontending B  B + b Tru e false false True LAUC(b,M2) = false pb > thres True false

Giải thuật đề xuất bởi Ogushi là đơn giản, nhưng điểm quan trọng của phương pháp này là làm thế nào để thiết kế một phương pháp phân vùng bước sóng thích hợp. Thực tế một số bước sóng có thể gần như bị bỏ không trong khi một số khác được sử dụng hầu như hoàn toàn. Bởi vì việc phân vùng bước sóng là có liên quan chặc chẻ đến topo mạng và mô hình traffic, nên không dễ dàng để thiết kế một mô hình phân vùng đơn giản và mềm dẻo.

Một phần của tài liệu Tìm hiểu phương pháp nâng cao tính công bằng luồng trên mạng chuyển mạch chùm quang (Trang 32)