Trong đó, tác tử FA (Forward Agent) và BA (Back Agent) sẽ được khởi tạo cùng với gói RREQ, RREP khi yêu cầu khởi tạo khám phá lộ trình, sẽ được truyền từ nút hiện tại (khởi tạo) đến nút láng giềng (gọi là quá trình di trú). Tùy theo chức năng của FA, BA sẽ có tiến trình thực thi khác nhau (FA chỉ gửi thông tin về yêu cầu khám phá lộ trình còn BA thực hiện xử lý tính toán giá trị hàm trọng số và trả về giá trị cho thuật toán định tuyến để chọn đường đi). Với tác tử BA, nếu nút hiện tại (vừa thực thi xong các kết quả) chưa phải là nút nguồn, thì BA sẽ được cập nhật thông tin trạng thái mới và tiếp tục yêu cầu di trú đến nút láng giềng tiếp theo. Quá trình này tiếp tục thực hiện cho đến khi đến được nút nguồn. Ngược lại, khi BA đã đến nút nguồn thì quá trình thực thi (cập nhật trạng thái) đã hoàn tất và BA hủy theo gói RREP. Như vậy, quá trình yêu cầu khám phá lộ trình thì khởi tạo một tác tử FA và một tác tử BA thực hiện cùng với gói tin cùng với gói RREQ và RREP tương ứng.
Với cơ chế hoạt động này, tác tử sẽ thực hiện lấy thông tin, di trú và xử lý tính toán độc lập với các gói dữ liệu hoặc điều khiển để có thể tác động theo các yêu cầu đầu vào. Một yếu tố khác là với phương châm làm việc của tác tử là mang xử lý tới nơi chứa dữ liệu hơn là mang dữ liệu tới đến nơi xử l trong trường hợp này là phù hợp và sẽ giảm được các gói tin điều khiển và dữ liệu truyền trên mạng. Tuy nhiên khi sử dụng tác tử sẽ phát sinh thêm phụ tải nhưng do số lượng tác tử ít (trong trường hợp này thì mỗi lần cần phám khá lộ trình mới thì phát sinh một tác tử FA và một tác tử BA) cùng với việc lợi hơn về mặt xử lý và chọn đường đi với khả năng thành công cao hơn do đó sẽ giảm phụ tải trong quá trình truyền do đó xét về mặt trung bình chung thì phụ tải không tăng đáng kể. Chi tiết hoạt động của tác tử được áp dụng trong từng bài toán cụ thể, phương thức xử lý tính toán và tưởng của đề xuất được trình bày cụ thể hơn trong mục 3.2.2 của Chương 3.
Khởi tạo (FA, BA) Di trú (FA, BA) Thực thi (FA, BA) Yêu cầu di trú (FA, BA) Hủy (FA, BA)
Khi đã hoàn thành quá trình khám phá lộ trình
Khi chưa hoàn thành quá trình khám phá lộ trình
26
1.5 Kết luận Chƣơng 1
Qua trình bày và phân tích ở trên, hiện nay việc nghiên cứu về định tuyến mạng MANET là một hướng nghiên cứu lớn và được sự quan tâm của nhiều trường đại học, nhóm nghiên cứu khác nhau để cải tiến các giao thức định tuyến cho mạng MANET. Các hướng nghiên cứu này tập trung vào cải tiến các giao thức định tuyến góp phần cải thiện hiệu năng của các giao thức định tuyến cho mạng MANET với các đặc tính về công nghệ, truyền thông và ứng dụng như đã trình bày ở các phần trong chương này. Qua đó thấy rằng hướng nghiên cứu này là khả thi và có tính thực tiễn cao góp phần trong việc cải tiến hiệu năng của mạng MANET đang phát triển hiện nay.
Một hướng tiếp cận ứng dụng công nghệ tác tử cũng được trình bày tổng quan trong chương này để có các khái niệm cơ bản về công nghệ tác tử và các hướng ứng dụng của nó. Tác giả cũng đã trình bày đề xuất mô hình tác tử để ứng dụng trong điều khiển định tuyến của mạng MANET. Phương pháp đánh giá hiệu năng mạng và so sánh phương pháp được chọn lựa cũng được trình bày cơ bản về các cánh thức thực hiện đánh giá các cải tiến đề xuất trong luận án. Như vậy, trong chương này đã trình bày cơ bản và tổng quan liên quan đến đề tài luận án và các nội dung cụ thể mà luận án tập trung nghiên cứu.
27
CHƢƠNG 2. ĐỊNH TUYẾN TRONG MẠNG MANET
Theo nội dung đã phân tích, đánh giá trong mục 1.3.1 Chương 1, định tuyến là một vấn đề quan trọng của mạng MANET, để có được các đề xuất cải tiến giao thức định tuyến, chương này trình bày các nội dung về định tuyến cho mạng MANET trong đó trình bày về các thuật toán cơ bản áp dụng trong định tuyến; phân loại giao thức định tuyến và mô tả một số giao thức định tuyến. Trong đó, tập trung vào hai giao thức định tuyến theo yêu cầu DSR và AODV. Một phần quan trọng khác trong chương này là tổng hợp, đánh giá tình hình nghiên cứu trong nước và ngoài nước về vấn đề định tuyến và các cải tiến định tuyến cho mạng MANET để từ đó đánh giá, chọn lựa nội dung, phương pháp và ý tưởng cải tiến các giao thức định tuyến của mạng MANET của đề tài luận án.
2.1 Tổng quan về định tuyến trong mạng MANET
Như chúng ta đã biết, với đặc điểm thay đổi thường xuyên của tô pô mạng MANET làm cho tính động của mạng cao nên việc định tuyến giữa các nút mạng trở nên khó khăn và phức tạp. Vấn đề này cùng với tính quan trọng của các giao thức định tuyến trong việc thiết lập truyền tin đối với các mạng có các nút di động khiến vấn đề định tuyến được nhiều người quan tâm, nghiên cứu cho mạng MANET. Đặc biệt thời gian gần đây, nhiều nghiên cứu đề xuất cải tiến giao thức định tuyến được đưa ra để tăng hiệu quả hơn trong các môi trường mạng và điều kiện mật độ lưu lượng khác nhau, nhằm đạt được kết quả cung cấp các giao thức định tuyến tốt hơn, hiệu quả hơn cho các hệ thống mạng MANET có thể ứng dụng trong thực tế hiện nay [12]. Mục đích của giao thức định tuyến là thiết lập đường đi chính xác và hiệu quả giữa các nút với nhau để các thông tin có thể được phát đi tin cậy và kịp thời trong điều kiện sử dụng với chi phí thấp nhất và băng thông nhỏ nhất. Do các nút trong mạng MANET luôn di động và có nhiều đặc tính khác nhau nên không thể áp dụng các giao thức định tuyến thông thường là véc tơ khoảng cách và trạng thái liên kết như trình bày ở mục 1.3.2 của Chương 1. Một vấn đề thách thức trong việc thiết kế các giao thức định tuyến là khả năng cập nhật theo mức độ di động của nút mạng để cập nhật lộ trình định tuyến kịp thời. Chính mức độ di động này là nguyên nhân làm thay đổi toàn bộ cấu trúc tô pô của mạng và thay đổi lộ trình định tuyến đã được khám phá trước đó. Một vấn đề nữa là các nút thường bị giới hạn bởi khả năng xử lý của CPU, dung lượng lưu trữ, công suất nguồn (của nút mạng đó) và băng thông mạng. Đây cũng chính là vấn đề luận án nghiên cứu để thực hiện việc cải tiến giao thức định tuyến cho mạng MANET.
2.1.1 Các thuật toán định tuyến cơ bản 2.1.1.1 Thuật toán Véc tơ khoảng cách 2.1.1.1 Thuật toán Véc tơ khoảng cách
Phương pháp này được thực hiện bằng cách truyền định kỳ các bản sao của bảng định tuyến từ nút này sang nút khác. Mỗi nút nhận được bảng định tuyến của những nút láng giềng kết nối trực tiếp với nó. Dựa vào thông tin cung cấp bởi các nút láng giềng, thuật toán véc tơ khoảng cách sẽ lựa chọn đường đi tốt nhất. Việc tính toán đường đi trong thuật toán định tuyến theo véc tơ khoảng cách dựa vào thuật toán Bellman-Ford. Thuật
28
toán Bellman-Ford được áp dụng trong giao thức định tuyến tĩnh để xây dựng bảng định tuyến. Thuật toán này cũng tương tự như thuật toán Dijkstra nhưng không áp dụng phương pháp tham lam trong việc chọn ra đỉnh v có trọng số nhỏ nhất láng giềng với đỉnh u đang xét.
Thuật toán Bellman-Ford tính toán đường đi ngắn nhất từ nguồn đến đích, với đồ thị G=(V,E) trong đó nguồn s và hàm trọng số w: E→R, trong đó tập cạnh E thuộc số thực, thuật toán được mô tả như sau [87](pp. 643-655):
Input: Đồ thị (G, w, s);
Bellman-Ford (G, w, s)
Bước 1: Khởi tạo nút nguồn (G, s) Bước 2: for i = 1 to V[G] –1 do
for mỗi cạnh (u, v) E[G] do
if d(v) > d(u) + w then {d(u), d(v) là chi phí được tính từ nút gốc đến các đỉnh u,
v}
d(v) = d(u) + w;
Bước 3: for mỗi cạnh (u,v) E[G] do
if d[u] + w(u,v) < d[v] then return False;
else
return True;
Output: Cây đường đi ngắn nhất từ nút s đến các nút khác, kết quả hàm là True nếu không có đỉnh nào mà đường đi đến nó có giá trị lớn hơn tổng đường đi đến nút láng giềng đứng trước nó với trọng số trên cạnh nối hai đỉnh u và v, ngược lại hàm trả về giá trị là False.
Sử dụng các giao thức định tuyến theo véc tơ khoảng cách thường tốn ít tài nguyên của hệ thống. Tuy nhiên, tốc độ đồng bộ giữa các bộ định tuyến lại chậm và thông số được sử dụng để chọn đường đi có thể không phù hợp với những hệ thống mạng lớn.
2.1.1.2 Thuật toán Trạng thái liên kết
Trạng thái liên kết là một mô tả đặc điểm các liên kết từ một nút đến các nút láng giềng. Các đặc điểm này bao gồm: địa chỉ của nút, mạng con (subnet), kiểu mạng kết nối, và các nút kết nối mạng đó, các thông tin này được lưu trên bảng thông tin trạng thái. Thuật toán trạng thái liên kết được thực hiện dựa trên các bảng thông báo trạng thái liên kết (LSA: Link State Advertisment), mỗi nút xây dựng cho mình một cơ sở dữ liệu trạng thái riêng dựa vào nội dung của các gói tin này. Do đó các nút biết rõ và chính xác thông tin tô pô mạng và thực hiện truyền dẫn các gói tin từ nút nguồn đến nút đích trong mạng dễ dàng. Khi một đường đi hay một kết nối thay đổi, nút phát hiện ra sự thay đổi này sẽ tạo ra một LSA để cập nhật đến kết nối này. Sau đó LSA được gửi đi cho tất cả các nút láng giềng. Mỗi nút thực hiện một bản sao bảng thông báo LSA. Sự phát tràn LSA này được yêu cầu đảm bảo cho tất cả các nút tạo ra cơ sở dữ liệu phản ánh một cách chính xác tô pô mạng trước khi cập nhật bảng định tuyến của chúng.
29
Thuật toán trạng thái liên kết được dùng để xây dựng và tính toán đường đi ngắn nhất từ nút nguồn đến tất cả các nút đích trong mạng. Thuật toán Dijkstra được áp dụng trong thuật toán định tuyến trạng thái liên kết theo mô tả cho đồ thị G = (V, E) với các giá trị cạnh không âm, trong trường hợp này giả sử w(u,v) ≥ 0 cho mỗi cạnh (u,v) E, được thực hiện qua các bước sau [87](pp. 658-664):
Input: Đồ thị (G, w, s);
Dijkstra (G, w, s)
Bước 1: Khởi tạo nút nguồn (G, s); Bước 2: S: = {};
Bước 3: Khởi tạo hàng đợi ưu tiên Q = V[G] {Q chứa các đỉnh trong đồ thị G} Bước 4: While Q <> {} do
u = EXTRACT-MIN(Q) {Chọn ra đỉnh v trong Q láng giềng của đỉnh u có trọng số cạnh (u,v) nhỏ nhất gán cho u}
Bước 5: S = S {u} ; Q = Q \ {u}
Bước 6: for mỗi đỉnh v Adj[u] do {v các đỉnh láng giềng với u}
if d( v) > d(u) + w then {d(u), d(v) là chi phí được tính từ nút nguồn đến các
đỉnh u, v}
d(v) = d(u) + w; {quay lại Bước 4}
Output: Cây đường đi ngắn nhất từ đỉnh s đến các nút trong mạng.
Sử dụng thuật toán định tuyến trạng thái liên kết sẽ dẫn đến một số nhược điểm: Nút sử dụng định tuyến theo trạng thái kết nối sẽ phải cần nhiều bộ nhớ hơn và hoạt động xử lý nhiều hơn là sử dụng định tuyến theo véc tơ khoảng cách.
Nút phải có đủ bộ nhớ để lưu cơ sở dữ liệu về tô pô mạng, bảng định tuyến. Khi khởi động việc định tuyến, tất cả các nút phải gửi gói tin LSA cho tất cả các nút khác, khi đó băng thông đường truyền sẽ bị chiếm dụng làm cho băng thông dành cho đường truyền dữ liệu của người dùng bị giảm xuống. Tuy nhiên, sau khi các nút đã thu thập đủ thông tin để xây dựng cơ sở dữ liệu về cấu trúc mạng thì băng thông đường truyền không bị chiếm dụng nữa.
2.1.1.3 Định tuyến nguồn
Định tuyến nguồn (source routing) là phương pháp trong mỗi gói tin gửi đi mang theo thông tin đầy đủ đường đi đến đích của gói tin được chứa trong phần thông tin điều khiển (header) của gói tin đó, khi đó các nút trung gian chỉ việc chuyển tiếp các gói tin theo đường dẫn đó [9](pp.362-391). Như vậy, việc xác định đường đi đầy đủ (định tuyến) được thực hiện tại nút nguồn. Ưu điểm của phương pháp này là loại bỏ yêu cầu quảng bá đường đi định kỳ, các gói tin phát hiện láng giềng và nó rất dễ dàng tránh các vòng lặp định tuyến. Tuy nhiên, vấn đề lớn nhất của định tuyến nguồn là khi mạng lớn và đường đi dài, việc đặt toàn bộ đường trong phần đầu gói tin sẽ làm lãng phí băng thông, làm cho hiệu năng của hệ thống mạng bị giảm.
30
2.1.2 Các kỹ thuật định tuyến cho mạng MANET
Định tuyến là vấn đề quan trọng trong mạng MANET, có rất nhiều tiêu chí khác nhau cho việc thiết kế và phân loại các giao thức định tuyến mạng MANET như thông tin định tuyến nào được truyền, khi nào và làm thế nào để truyền các thông tin định tuyến; tính toán các trọng số để chọn đường đi ngắn nhất (theo các tiêu chí đưa ra) trong giao thức định tuyến như thế nào là những vấn đề mà giao thức định tuyến phải thực hiện. Các giao thức định tuyến trong mạng Ad hoc được chia thành 3 loại theo cơ chế định tuyến: Giao thức định tuyến theo bản ghi (Table-Driven Routing Protocol), Giao thức định tuyến điều khiển theo yêu cầu (On-Demand Routing Protocol) và Giao thức định tuyến kết hợp (Hybrid Routing Protocol). Qua phân tích, tổng hợp các kỹ thuật định tuyến sử dụng thuật toán véc tơ khoảng cách hoặc thuật toán tình trạng liên kết, tác giả đưa ra phân loại phân loại cơ bản theo Hình 2.1 bên dưới để thấy rõ hơn một số giao thức định tuyến được sử dụng phổ biến cho mạng MANET theo [19][27][49][81](pp.81-126).