Thuật toán MAR-DSR cũng được thực hiện qua 2 giai đoạn là khám phá lộ trình và duy trì lộ trình như các thuật toán DSR. Tuy nhiên, mỗi giai đoạn đều được điều khiển bởi tác tử chứa thông tin trạng thái mỗi nút mạng để chọn đường đi theo giá trị của hàm trọng số.
Khi nút nguồn muốn gửi dữ liệu đến một nút đích nào đó, đầu tiên nó phải xem trong bộ nhớ đệm định tuyến đã có lộ trình cần tìm hay chưa. Nếu không tìm thấy đường đi đến nút đích, nó bắt đầu thực hiện khám phá lộ trình. Nếu lộ trình đã tìm thấy trong bộ nhớ đệm nhưng mức độ tắc nghẽn tại các nút trung gian vượt quá ngưỡng cho phép thì cũng thì cũng phải thực hiện khám phá lại lộ trình.
Giai đoạn đầu của khám phá định tuyến được bắt đầu bằng cách gửi một số gói yêu cầu RREQ đến các nút láng giềng, công việc này đồng thời cũng thực hiện bằng việc phát quảng bá các tác tử FA.
Cơ chế lựa chọn lộ trình: Để lựa chọn lộ trình phù hợp, tác giả thiết lập một hàm trọng số cho các kết nối dựa trên 2 tham số xác suất tắc nghẽn tại mỗi nút và khoảng cách giới hạn về công suất thu (theo mức độ của tín hiệu hay còn gọi là “khoảng cách” giữ các nút) hàm trọng số được thiết lập theo (3.6). Trong đó, Lsd là khoảng cách giới hạn về công suất thu, nghĩa là khoảng cách giới hạn để nút nguồn s nhận được tín hiệu của nút đích d. CPd là xác suất nghẽn tại nút d được xác định như sau:
(3.7)
Trong đó là tổng số gói nghẽn tại nút d, là tổng số gói đi qua nút d.
Thuật toán MAR-DSR sẽ lựa chọn lộ trình phù hợp sao cho trọng số Wsd nhỏ nhất. Ta thấy rằng, với trọng số xác suất tắc nghẽn CPd được thiết lập như hàm (3.7), trong đó CPd được tính bằng tổng số gói tin nghẽn tại nút trên tổng số gói đi qua nút đó, khi mức độ tắc nghẽn của nút lớn thì trọng số của kết nối tăng theo hàm (3.6), do vậy xác suất lựa chọn lộ trình đi qua nút đó giảm, như vậy thuật toán sẽ lựa chọn lộ trình phù hợp hơn với mức độ tắc nghẽn nhỏ hơn.
Với mục tiêu sử dụng hàm (3.6) để thay đổi trọng số Wsd từ nút s đến mút d theo
khoảng cách Lsd và mức độ tắc nghẽn CPd của nút d. Trong đó, CPd được tính toán bởi tác tử BA. Giả thiết ta thiết lập giá trị của Lsd=150, kết quả thay đổi của giá trị trọng số Wsd theo Lsd và CPd như ở Hình 3.11.
72
Hình 3.11 Sự thay đổi của Wsd theo mức độ tắc nghẽn CPd của nút
Từ kết quả trên Hình 3.11 ta thấy rằng, khi mức độ tắc nghẽn của nút (CPd) nhỏ hơn 0,75 thì trọng số giữa các nút phụ thuộc chủ yếu vào khoảng cách giữa các nút đó. Còn khi CPd lớn hơn 0,75 thì trọng số Wsd sẽ tăng lên rất lớn, do vậy nút sẽ bị loại bỏ ra khỏi lộ trình để truyền dữ liệu. Vì vậy, trong mô hình đề xuất này, ngưỡng CPd được thiết lập là 0,75, điều này cũng phù hợp với việc chọn giá trị ngưỡng của CPd ở mục 3.2.1.
Chi tiết về các bước của thuật toán khám phá lộ trình được mô tả như sau:
Bƣớc 1: Phân tích trường Request ID, kiểm tra xem đã nhận gói RREQ hay chưa?
Nếu gói đã được nhận thì nó sẽ loại bỏ gói đó và dừng. Ngược lại thì qua bước 2; Bƣớc 2: Kiểm tra trong Route Cache của nó có đường đi đến nút đích mà còn hiệu
lực hay không? Nếu có đường đi đến đích thì nó sẽ phản hồi lại cho nút nguồn bằng gói RREP (đồng thời gửi tác tử BA kèm theo để thực hiện lấy thông tin trạng thái) chứa thông tin về đường đi đến đích và kết thúc tiến trình khám phá lộ trình. Ngược lại thì qua bước 3;
Bƣớc 3: Kiểm tra giá trị CP tại vị trí láng giềng kế tiếp; tính toán giá trị CP tại nút
kế tiếp theo các đường đi được cập nhật (BA thực hiện tính toán); Nếu gặp tình trạng không kết nối; trở lại bước 1; ngược lại thì qua bước 4;
Bƣớc 4: Kiểm tra địa chỉ đích cần tìm có trùng với địa chỉ của nó hay không? Nếu
trùng thì nó gửi lại cho nút nguồn gói RREP bằng cách thực hiện bởi gói BA kèm theo chứa thông tin về đường đi (vào Route Cache) đến đích và kết thúc tiến trình. Ngược lại thì nó sẽ phát quảng bá gói RREQ đến các nút láng giềng của nó. Các nút láng giềng sau khi nhận gói RREQ sẽ thực hiện việc kiểm tra thông tin. Xác
73
định giá trị của CP tại nút đang xử lý, cập nhật CP mới và lưu trong bộ đệm Route cache.
Như vậy, việc chọn lựa lộ trình dựa vào xác suất tắc nghẽn và khoảng cách giới hạn (bước 2) thông qua giá trị kết quả của trọng số Wsd. Đối với thuật toán cải tiến MAR-DSR, các gói RREP và RREQ được giữ nguyên như trong thuật toán DSR.
Để thấy rõ việc cập nhật trọng số của các kết nối theo hàm (3.6) được thực hiện bởi tác tử FA và BA. Tác giả xét một ví dụ như ở Hình 3.12, giả sử có một yêu cầu khám phá lộ trình để truyền dữ liệu từ nút 1 đến nút 6, và đây là yêu cầu thứ 50. Tình trạng tắc nghẽn của các nút ở thời điểm hiện tại là các giá trị được ghi tại các nút mạng. Cơ chế cập nhật thông tin trạng thái của các nút mạng bằng tác tử được thực hiện như sau:
- Đầu tiên, nút nguồn (nút 1) gửi các tác tử FA đến các nút láng giềng của nó với cấu trúc FA(50, 1, 6), nghĩa là khám phá lộ trình cho yêu cầu thứ 50 từ nút 1 đến nút 6;
- Các nút láng giềng sau khi nhận được tác tử FA sẽ phân tích thông tin để xem có phải là nút đích hay không, nếu không, tiếp tục gửi FA đến các nút láng giềng tiếp theo. Việc này lặp lại cho đến khi gửi đến nút đích (Hình 3.12a);
- Sau khi tác tử FA được gửi đến đích, nút đích sẽ thực hiện gửi về nút nguồn các tác tử BA theo các lộ trình đã chọn để cập nhật thông tin về tình trạng tắc nghẽn tại mỗi nút thông qua trọng số CP tại thời điểm hiện tại (Hình 3.12b);
- Dựa trên kết quả tính toán các trọng số CP của tác tử BA, thuật toán MAR-DSR sẽ thực hiện tính toán lại trọng số của các kết nối theo hàm (3.6), sau đó lựa chọn lộ trình có trọng số Wsd nhỏ nhất.
74
(b) Gửi tác tử BA kèm theo gói RREP
Hình 3.12. Minh họa nguyên lý hoạt động của thuật toán MAR-DSR
Trong trường hợp như ở Hình 3.12, trọng số của các kết nối sẽ được cập nhật lại sau khi nút nguồn nhận được tác tử BA như sau:
Bảng 3.2. Giá trị trọng số của các kết nối được cập nhật theo tác tử BA
Lộ trình Trọng số các kết nối theo hàm (3.6) Tổng trọng số 1 2 6 1 2 2 6 823,62 315,62 508,00 1 2 3 6 1 2 2 3 3 6 1873,62 315,62 1400,00 158,00 1 5 3 6 1 5 5 3 3 6 1609,95 251,95 1200,00 158,00 1 4 7 6 1 4 4 7 7 6 1015,55 354,63 402,92 258,00
Từ kết quả trên, lộ trình được chọn là 1 2 6.
Ta thấy rằng, nếu không sử dụng tác tử BA để tính toán trọng số Wsd để cập nhật thông tin về trạng thái tắc nghẽn tại các nút thì lộ trình được chọn sẽ là 1 5 3 6 (vì khoảng cách nhỏ nhất). Nếu chọn lộ trình này thì khả năng nghẽn tại nút 3 là rất lớn. Với
75
thuật toán MAR-DSR, chọn lộ trình phù hợp là 1 2 6 sẽ hạn chế được xác suất gói tin rơi.
Trong thuật toán MAR-DSR ở trên, cơ chế duy trì đường đi được thực hiện tương tự như DSR và dựa trên thông tin xác suất tắc nghẽn (CP) của mỗi nút. Nếu CP vượt quá giới hạn cho phép thì thực hiện lại quá trình khám phá lộ trình, như trình bày ở phần trên ngưỡng CP trong trường hợp này được chọn là 0,75.