1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/Y52cm5pu
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
在AODV中,整个网络都是静止的除非有连接建立的需求。这就是说一个网络节点要建立连接时才广播一个连接建立的请求。其他的AODV节点转发这个请求消息,并记录源节点,和回到源节点的临时路由。当接收连接请求的节点知道到达目的节点的路由时,就把这个路由信息按照先前记录的回到源节点的临时路由发回源节点。于是源节点就开始使用这个经由其他节点并且有最短跳数的路由。 当链路断掉,路由错误就被回送给源节点,于是源节点就重新发起路由查找的过程。
4.部分源码
fprintf('此网络有 %d 个节点。\n',nodes_number);
fprintf('\n');
figure(1);
clf;
hold on;
title('无线自组网AODV路由机制仿真');
xlabel('空间横坐标 x 单位:m');
ylabel('空间纵坐标 y 单位:m');
for i = 1:nodes_number
plot(X(i), Y(i), '.');
text(X(i), Y(i), num2str(i));
for j = 1:nodes_number
distance = sqrt((X(i) - X(j))^2 + (Y(i) - Y(j))^2);
if distance <= R
nodes_link(i, j) = 1;
%line([X(i) X(j)], [Y(i) Y(j)], 'LineStyle', '-.');
grid on;
else
nodes_link(i, j) = inf;
end;
end;
end;
fprintf('\n');
if (s<=nodes_number&s>=1)&(d<=nodes_number&d>=1)
[path, hop] = path_discovery(nodes_number, nodes_link, s, d);
l=length(path);
if l==0&s~=d
fprintf('源节点 %d 到目的节点 %d 的路径为:空!\n',s,d);
fprintf('\n');
plot(X(s), Y(s), 'rp','markersize',15);
plot(X(d), Y(d), 'rp','markersize',15);
elseif l==0&s==d
fprintf('源节点 %d 与目的节点 %d 为同一节点。\n',s,d);
fprintf('跳数为 %d 。\n',hop);
fprintf('\n')
plot(X(d), Y(d), 'rp','markersize',15);
else fprintf('源节点 %d 到目的节点 %d 的路径为:',s,d);
i=2;
fprintf('%d', s);
while i~=l+1
fprintf(' -> %d', path(i));
i=i+1;
end;
fprintf('\n');
fprintf('跳数为 %d 。\n',hop);
fprintf('\n');
end;
if l ~= 0
for i = 1:(l-1)
line([X(path(i)) X(path(i+1))], [Y(path(i)) Y(path(i+1))], 'Color','r','LineWidth', 1.50);
end;
end;
hold off;
else fprintf('输入节点有误,请重新运行!\n');
fprintf('\n');
end;
A180