Với sự phát triển và ứng dụng ngày càng nhiều của tác tử, hiện nay có một số mô hình, sản phẩm thương mại của hệ thống tác tử, đa tác tử hoặc tác tử di động như Voyager, Agent Tcl hoặc Aglets [62][70][82] và được ứng dụng trong nhiều lĩnh vực khác như như bài toán tối ưu, các lĩnh vực tính toán thông minh và đặc biệt là ứng dụng trong lĩnh vực mạng như trình bày ở phần trên. Để hiểu rõ hơn về cách thức hoạt động của tác tử, hệ thống tác tử, chúng ta có thể mô tả cấu trúc một Agent theo cấu trúc cơ bản như sau:
Agent=< State, Input, Output, Process >; Trong đó:
- State: trạng thái của tác tử nó bao gồm các thuộc tính của tác tử (vị trí, giá trị); - Input, Output: là tập các trạng thái dữ liệu đầu vào, đầu ra được thay đổi gắn với môi trường (bao gồm việc nhận dữ liệu, yêu cầu di trú, trả kết quả);
- Process: là một tiến trình thực thi một cách tự quản để thay đổi trạng thái của Agent;
Tương tự, cấu trúc của hệ thống Agent có thể được mô tả như sau: Agent System=<Agent, Environment, Coupling>; Trong đó:
- Environment=<State, Process>: là tiến trình riêng của môi trường tác tử thực hiện, để có thể thay thế trạng thái của nó, độc lập với các hành động của các tác tử quanh nó;
- Coupling là một sự ánh xạ Input và Output của một tác tử đến trạng thái của môi trường và ngược lại từ trạng thái của môi trường đến tác tử;
Hình 1.2 dưới đây mô tả mô hình hoạt động của hệ thống tác tử:
Agent
Input Output
Môi trường và Agent khác
Process
Hình 1.2. Mô hình hoạt động của tác tử và môi trường xử lý
Với mô hình này, nguyên tắc hoạt động của tác tử là một chu trình lặp lại trong đó yếu tố quan trọng là Agent để xử lý các nội dung với thông tin vào ra là Input, Output thông qua tiến trình thực hiện Process. Tiến trình Process thực hiện xử lý của tác tử, mô tả các hành động của nó, và triệu gọi tác tử (hoặc yêu cầu di trú). Quá trình này được thực hiện để hoàn thành các tác vụ theo yêu cầu, được gọi là vòng đời của tác tử hay tác tử di động.
Như phân tích ở trên, chưa có một ứng dụng nào gọi là ứng dụng đặc trưng dành cho tác tử, tác tử di động áp dụng như một tiêu chuẩn thống nhất mà tùy vào mục đích của bài toán giải quyết để đưa ra ứng dụng hoặc phương thức áp dụng phù hợp. Với những kết quả
24
nghiên cứu đạt được hiện nay bằng cách sử dụng công nghệ tác tử thì cũng có thể sử dụng với những công nghệ hoặc giải pháp khác để đạt kết quả tương tự. Tuy nhiên, trong một vài trường hợp cụ thể, tác tử (hoặc tác tử di động) có thể là giải pháp hiệu quả hơn như đã phân tích ở trên, ví dụ một số ứng dụng trong lĩnh vực mạng như sau:
+ Thu thập thông tin phân tán: Trong trường hợp có nhu cầu truy vấn phức tạp, chuyên biệt và liên quan đến nhiều nguồn dữ liệu phân tán, không đồng nhất, việc gửi các tác tử di động di chuyển đến các nguồn tin để khai thác tại chỗ và cuối cùng là mang về những thông tin cần thiết sẽ cho phép giảm tải mạng và giải quyết tốt hơn bài toán tương thích [62].
+ Quản trị hệ thống mạng: Đối với những hệ thống mạng lớn, việc chẩn đoán lỗi, duy trì sự ổn định của hệ thống là các công việc rất khó khăn. Việc ứng dụng tác tử vào việc quản trị mạng sẽ giúp cho các công việc chẩn đoán lỗi và duy trì từ xa sự ổn định của hệ thống được dễ dàng hơn bằng cách gửi tác tử đến các các nút mạng lấy và xử lý thông tin và trả về kết quả cho hệ thống [5][36].
+ Hỗ trợ các thiết bị di động: Do đặc điểm tài nguyên hạn chế và không kết nối thường xuyên, việc xây dựng các ứng dụng dựa trên tác tử di động với khả năng di chuyển đến các máy tính có cấu hình mạnh hơn để hoạt động (truy vấn cơ sở dữ liệu, tìm thông tin) rồi trả kết quả về sẽ là một giải pháp tốt cho người dùng các thiết bị di động [70].
1.4.2.2 Mô hình đề xuất sử dụng tác tử trong điều khiển định tuyến mạng MANET
Trong mạng MANET, đã có một số nghiên cứu ứng dụng công nghệ tác tử trong đó một số hướng nghiên cứu điển hình liên quan như nghiên cứu tích hợp hệ thống tác tử cho mạng MANET [17][18][44], tích hợp tác tử di động trong điều khiển tắc nghẽn giao thức AODV [30], tích hợp tác tử trong việc chọn đường đi dựa trên các tham số về năng lượng, phán đoán đường đi, mức độ tắc nghẽn của nút [50], ứng dụng tác tử di động đưa vào giao thức định tuyến để giải quyết cân bằng tải và duy trì mạng [54], cải tiến giao thức định tuyến thông qua xử lý tại các nút của mạng [18][55].
Chúng ta đánh giá một số nguyên lý hoạt động của tác tử trong các nghiên cứu đã trình bày ở trên như sau; dựa vào nguyên lý hoạt động và nguyên tắc làm việc của tác tử, các đề xuất sử dụng tác tử để cải tiến các giao thức, tập trung vào việc điều khiển vào giao thức. Theo nghiên cứu [50], với tưởng sử dụng tác tử để lấy thông tin của việc chọn đường trong giao thức định tuyến DSR dựa vào hai tham số là năng lượng của nút (độ mạnh tín hiệu) kết hợp với thuật toán đường đi ngắn nhất để đưa vào việc chọn đường đi bằng cách dự đoán đường đi có khả năng bị ngắt kết nối trước khi chọn đường đi thực sự dựa trên hai tham số đã nêu trên. Như vậy tác tử trong giao thức cải tiến này chính là thực hiện lấy các thông số tại nút (năng lượng, và các tham số khác) và tính toán để chọn đường đi theo thuật toán đường đi ngắn nhất. Một nghiên cứu khác sử dụng tác tử như thuật toán Ant-AODV [55] để cập nhật liên tục trạng thái kết nối của mạng tránh trình trạng mất kết nối. Với việc sử dụng tác tử di động như những con kiến chạy qua từng nút mạng và lấy thông tin thông qua RREQ để liên tục truy vấn liên tục các kết nối từ chặng đến chặng và
25
để đảm bảo các kết nối sẵn sàng và giảm được tình trạng khi phát lệnh gửi thì bị mất kết nối do chưa cập nhật kịp các kết nối trên.
Qua phân tích một số hướng nghiên cứu áp dụng tác tử cho mạng MANET, trong quá trình nghiên cứu của đề tài luận án, tác giả đưa ra mô hình tác tử dựa trên tưởng và phương thức làm việc của tác tử và cài đặt kèm theo giao thức định tuyến, không sử dụng một mô hình cụ thể hoặc dựa trên phần mềm nền tảng nào đã sử dụng, tác giả đề xuất ý tưởng và phương thức hoạt động của tác tử được mô tả ở Hình 1.3 dưới đây:
Hình 1.3. Cơ chế hoạt động của tác tử trong điều khiển định tuyến MANET 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,