Trên cơ sở việc phân tích nguyên lý hoạt động của các thuật toán định tuyến theo yêu cầu cho mạng MANET, tác giả nhận thấy rằng cơ sở để khám phá và lựa chọn lộ trình là dựa vào thông tin về tình trạng kết nối của các nút. Để nâng cao hiệu quả của các giao thức định tuyến cho mạng MANET, chúng ta có thể sử dụng thêm thông tin trạng thái nút mạng như mật độ lưu lượng đi qua nút đó, trạng thái tắc nghẽn của nút, số nút láng giềng của mỗi nút để việc chọn lựa đường đi hiệu quả hơn. Một vấn đề chúng ta thấy rằng việc đưa thêm việc tính toán và đưa dữ liệu vào các nút thì gặp phải tình trạng tăng thời gian xử lý do phải tính toán và không gian lưu trữ tăng lên. Một trong những cách thực hiện để giảm thiểu các vấn đề này là sử dụng tác tử. Các thông tin này có thể được cập nhật bằng tác tử và thực hiện tính toán để thay thế thông tin chọn đường bằng các hàm trọng số phù hợp hơn.
65
Trong phần này tác giả tập trung nghiên cứu tích hợp tác tử vào hai thuật toán định tuyến của giao thức định tuyến điều khiển theo yêu cầu DSR và AODV, trong đó tác tử thực hiện hai chức năng cơ bản sau đây:
- Xác định trạng thái của mỗi nút mạng để cập nhật thông tin cho giai đoạn khám phá lộ trình. Trạng thái của nút mạng được xác định qua nhiều tham số, như xác suất tắc nghẽn, mật độ lưu lượng phân phối đến mỗi nút, số nút láng giềng của mỗi nút. Các tham số này được cập nhật bởi tác tử tác động lên hàm trọng số làm cơ sở cho việc chọn đường đi thay vì sử dụng thông tin chọn đường đi theo giao thức định tuyến DSR là ”khoảng cách” hoặc Hop count trong giao thức định tuyến AODV.
- Dựa trên tham số về trạng thái nút mạng thông qua tác tử, thuật toán định tuyến sẽ quyết định lựa chọn lộ trình trong Route cache hay thực hiện khám phá lại lộ trình. Để thực hiện điều này, các tác tử FA, BA sẽ được gửi kèm theo gói điều khiển RREQ và RREP tương ứng để cập nhật trạng thái của nút mạng mỗi khi có yêu cầu khám phá lộ trình.
Giải pháp cải tiến này được thực hiện dựa trên nguyên tắc giữ các thành phần ưu điểm của DSR cũng như AODV và điều chỉnh theo hướng cải tiến tăng khả năng chọn lựa, phán đoán đường đi phù hợp theo hàm trọng số Wsd (Wsd được định nghĩa là trọng số từ nút s đến nút d). Qua nghiên cứu hai giao thức định tuyến DSR và AODV, ngoài tham số chọn đường theo khoảng cách nhỏ nhất của giao thức định tuyến DSR (dựa vào mức độ tín hiệu) hoặc Hop count ít nhất của giao thức định tuyến AODV (gọi chung là L: khoảng cách giữ hai nút); tác giả nhận thấy rằng một tham số quan trọng ảnh hưởng đến việc chọn đường đi là mức độ tắc nghẽn CP (Congestion Probability) tại mỗi nút. Trong đó, giá trị của CP nằm trong khoảng [0,1], khi CP = 0 thì mạng không tắc nghẽn và khi CP = 1 thì mạng tắc nghẽn hoàn toàn. Chúng ta phải thiết lập hàm Wsd theo khoảng cách L và theo tham số CP phù hợp để khi mức độ tắc nghẽn vượt qua ngưỡng cho phép thì giao thức định tuyến không chọn đường đi qua nút đó. Như vậy, chúng ta phải thiết lập hàm tính trọng số Wsd như sau:
Wsd = Lsd + WCP (3.3)
Trong đó, Lsd là khoảng cách giữa nút s đến nút d. WCP là trọng số tắc nghẽn phụ thuộc vào giá trị CP, vì giá trị CP trong khoảng [0,1], do đó để giá trị WCP tăng đột biến khi CP tiến đến 1 thì hàm WCP phải được thiết lập theo dạng hàm mũ dưới dạng tổng quát như sau:
( ) (3.4)
Trong đó n là bậc của hàm (3.4) có giá trị nguyên.
Từ hàm Wsd được thiết lập theo (3.3) và WCP được thiết lập theo (3.4), ta có hàm Wsd như sau:
66
( ) (3.5)
Để xác định bậc n phù hợp theo ngưỡng CP cho trước, tác giả sử dụng mô phỏng trên MATLAB và chọn giá trị n từ 1 đến 5 để đánh giá như Hình 3.7.
Hình 3.7. So sánh giá trị ngưỡng CP theo giá trị của bậc n của hàm (3.5) Theo kết quả trên Hình 3.7, tác giả đánh giá như sau:
Khi n=1, giá trị WCP tăng đột biến khi CP gần bằng 1, đây là trường hợp không thực tế vì CP gần bằng 1 thì mạng gần như tắc nghẽn hoàn toàn.
Khi n=2, giá trị WCP tăng đột biến khi CP lớn hơn 0,85, đây cũng là trường hợp không thực tế do mức độ tắc nghẽn tại ngưỡng này là rất cao.
Khi n=3, giá trị WCP tăng đột biết khi CP lớn hơn 0,75, đây là mức độ phù hợp trong thực tế.
Khi n=4, giá trị WCP tăng đột biết khi CP lớn hơn 0,65, đây là mức độ phù hợp tuy nhiên ngưỡng CP hơi thấp.
Khi n=5, ngưỡng CP để WCP tăng đột biến tiếp tục giảm dưới 0,55, đây là mức độ xem như chưa tắc nghẽn.
Theo nguyên lý ở trên, với các giá trị n cao hơn, thì CP tiếp tục giảm do vậy tác giả không mô phỏng các trường hợp này.
67
Như vậy, trong luận án này, tác giả chọn ngưỡng tắc nghẽn CP của mỗi nút (ký hiệu CPd là mức độ tắc nghẽn tại nút d) là 0,75, do đó bậc của n được chọn là 3. Như vậy, hàm trọng số của các thuật toán cải tiến được đề xuất là:
( ) (3.6)
3.2.2 Mô hình tác tử trong đề xuất cải tiến
Theo mô hình hoạt động của tác tử đã được trình bày mục 1.4.2.2 Chương 1, tác giả áp dụng tác tử cụ thể vào mô hình thuật toán định tuyến DSR và AODV trên nguyên tắc tác động vào quá trình khám phá lộ trình và duy trì lộ trình. Khi thực hiện việc đưa tác tử vào quá trình khám phá lộ trình thì sẽ đưa được các thông tin chúng ta cần tính toán kèm theo với các gói yêu cầu đường đi RREQ để chọn đường đi phù hợp trong đó những tham số cần đưa vào sẽ được đưa vào thông qua hàm trọng số đã được đề xuất ở mục 3.2.1.
Mô hình tác tử để điều khiển khám phá lộ trình trong định tuyến điều khiển theo yêu cầu cho mạng MANET được mô tả như Hình 3.8. Giải pháp này sử dụng hai tác tử FA và BA để điều khiển quá trình khám phá lộ trình của giao thức định tuyến. Trong đó, tác tử FA được gửi kèm theo gói yêu cầu khám phá lộ trình RREQ, tác tử BA được gửi kèm theo gói phản hồi RREP để xác định lộ trình. Chức năng chính của hai tác tử này là cập nhật thông tin trạng thái mạng (thông tin đường đi) khi đi qua mỗi nút trung gian và tính toán giá trị hàm trọng số để cho thuật toán định tuyến chọn đường đi phù hợp.
Hình 3.8. Mô hình hoạt động của FA, BA trong điều khiển giao thức định tuyến theo yêu cầu
Cấu trúc các tác tử được định nghĩa bao gồm các trường sau: Tác tử FA: FA<Request (ID, Src_ID, Dest_ID)>, Với:
ID là số thứ tự của yêu cầu khám phá lộ trình,
Src_ID là địa chỉ nút nguồn của lộ trình cần khám phá, Dest_ID là địa chỉ nút đích của lộ trình cần khám phá.
Nút nguồn Nút đích
Nút trung gian Nút trung gian
RREQ, FA RREQ, FA RREQ, FA RREP, BA RREP, BA RREP, BA RREP, BA …… …… …… …… …… ……
68
Tác tử BA: BA< LinkStatus (ID, Intermediate_ID, CP); Wsd >, Với: ID là Số thứ tự của yêu cầu khám phá lộ trình,
Intermediate_ID là địa chỉ của các nút trung gian trên lộ trình cần khám phá, CP là mức độ tắc nghẽn của nút trung gian đang xét,
Wsd là trọng số đường đi từ nút s đến d.
Nguyên tắc hoạt động của FA, BA: Khi có yêu cầu khám phá lộ trình, thuật toán điều khiển định tuyến sẽ gửi gói RREQ, RREP và tác tử FA, BA tương ứng cùng theo gói điều khiển trên và thực thi các nhiệm vụ như sau:
Đối với tác tử FA, đây là tác tử yêu cầu khám phá lộ trình với nhiệm vụ là lấy thông tin yêu cầu phám phá lộ trình, để xác nhận được vị trí nút nguồn, vị trí nút đích để giúp cho quá trình thực hiện khám phá lộ trình. Việc thực thi của FA chỉ yêu cầu thông tin từ nút hiện tại đến nút láng giềng là thông tin nút nguồn và nút đích.
Đối với tác tử BA, đây là tác tử lấy thông tin và tính toán trọng số làm cơ sở cho việc chọn đường thông qua các hàm trọng số để tính toán Wsd theo các thuật toán cải tiến đề xuất được định nghĩa theo hàm (3.6). Nhiệm vụ của BA gửi theo cùng gói RREP sẽ thực thi việc tính toán trọng số Wsd dựa trên các hàm đề xuất trong từng bài toán cụ thể theo tham số CP trong đó mỗi thuật toán cải tiến được đề xuất một hàm cụ thể với hàm tính mức độ tắc nghẽn CP khác nhau như thuật toán cải tiến DSR thì hàm tính toán CP là (3.7), thuật toán cải tiến AODV là (3.8) và (3.9). Với phương thức hoạt động BA từ nút hiện tại (nút trung gian) thực thi việc tính toán tình trạng nút láng giềng từ phía đích trả về phía nguồn cho đến khi hoàn thành tác vụ, lúc này BA sẽ được hủy cùng với RREP. Khác với RREP, tác tử BA được khởi tạo tại nút đích và nó được yêu cầu di trú lần lượt đến các nút trung gian theo lộ trình đã gửi RREQ, tại các nút trung gian thông tin của các trường trong tác tử BA được cập nhật mới sau khi đã cập nhật thông tin trạng thái của nút. Vì vậy, số tác tử phát sinh trong mỗi lần khám phá lộ trình ít hơn nhiều so với số gói RREP, chỉ ứng với số đường đi được khám phá trong thuật toán định tuyến. Với nguyên lý hoạt động như đã mô tả, tác tử BA là một tác tử thực hiện việc xử lý tính toán trọng số lộ trình cho cho thuật toán điều khiển định tuyến, như được trình bày trong mục 1.4.2.2 Chương 1.
3.2.3 Thiết kế, cài đặt tác tử FA, BA trên OMNeT++
Theo phần trình bày ở mục 3.2.2 về cấu trúc của tác tử FA, BA. Để thực hiện cài đặt trong phần mềm mô phỏng để thực hiện theo chức năng được mô tả, tác giả thực hiện việc thiết lập các thông số cho các tác tử như sau:
Cấu trúc của FA: gồm 3 trường và kích thước của các trường được chọn như Hình 3.9, trong đó trường Src_ID và Dest_ID được thiết lập độ dài 8 bit để mô hình có thể mô phỏng tối đa 28=256 nút. Ngoài ra, có thể tăng kích thước của các trường nếu cần mô phỏng với tổng số nút hớn hơn.
69
Hình 3.9. Cấu trúc tác tử FA
Đoạn chương trình mô tả cấu trúc của tác tử FA viết trên C++, thực thi trong OMNeT++ như sau:
Cấu trúc của BA: Gồm 4 trường như mô tả trong Hình 3.10, với chức năng của các trường tương ứng ID, Src_ID, Intermediate_ID, CP. Trong đó trường Src_ID, Intermediate_ID được thiết lập độ dài 8 bit tương tự như FA, trường CP được thiết lập theo double (độ dài là 8 byte), đây là tham số để sử dụng tính toán mức độ tắc nghẽn. Tùy theo từng thuật toán đề xuất cụ thể được trình bày cụ thể trong các phần tiếp theo, tham số này sẽ thay đổi tương ứng với các hàm tính trọng số phù hợp với từng bài toán với giá trị CP được tính theo các hàm tương ứng.
70
Đoạn chương trình mô tả cấu trúc của tác tử BA viết trên C++, thực thi trong OMNeT++ như sau:
3.3 Đề xuất các thuật toán cải tiến giao thức định tuyến DSR, AODV 3.3.1 Thuật toán MAR-DSR 3.3.1 Thuật toán MAR-DSR
3.3.1.1 Ý tƣởng của thuật toán
Như đã phân tích ở mục 3.2, quá trình định tuyến của thuật toán DSR được chia thành hai giai đoạn: khám phá lộ trình định tuyến và duy trì lộ trình. Cơ sở để khám phá và lựa chọn lộ trình là dựa vào thông tin về tình trạng kết nối của các nút. Để nâng cao hiệu quả của giao thức định tuyến DSR, chúng ta có thể sử dụng thêm thông tin trạng thái nút mạng như mật độ lưu lượng đi qua nút đó, trạng thái tắc nghẽn của nút.
Trong phần này tác giả tập trung nghiên cứu tích hợp tác tử vào điều khiển định tuyến thuật toán DSR. Thuật toán cải tiến có tên là MAR-DSR sử dụng tác tử và được thực hiện theo nguyên l như trình bày ở mục 3.2.2, với mô hình tác tử hoạt động theo Hình 3.8.
Những thay đổi, cải tiến này đều thực hiện dựa trên nguyên tắc giữ các ưu điểm của DSR và điều chỉnh theo hướng cải tiến tăng khả năng chọn lựa, phán đoán để đảm bảo
71
chọn được các đường đi phù hợp; giảm xác suất tắc nghẽn để cân bằng băng thông của toàn mạng.
3.3.1.2 Mô tả thuật toán
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.