2011-02-03 62 views
0

我试图在Matlab中对Ad Hoc按需距离矢量(AODV)路由协议进行编码。我将简要描述协议的工作原理:按需路由协议

该协议可用于移动自组织网络。源发起一条路由到IP已知的目的地。源节点向其第一跳广播路由请求(RREQ)。如果第一跳(TTL)内的任何节点知道目的地或到达目的地的路由,则将路由应答(RRP)转发给源。如果发现任何路由中断,则会向目标生成路由错误(RERR)消息。源选择到目的地的最短(最短跳)路径来传递数据包。如果源在指定时间内没有得到任何RREP,则TTL增加并且发送新的RREQ。维基链接这里是为了详细说明:[AODV_Wiki] [1]

编辑编码完全依赖于节点之间的连接,如提示中所述。我正在敲定代码。我想,我很快就会上传。

+0

这里U能够获得的协议代码 http://www.mathworks.com/matlabcentral/newsreader/view_thread/247556 – Mostafa 2013-09-21 15:43:54

回答

2

提示:距离向量算法通过在每个网络节点中维护距离向量来工作。 distane矢量测量从当前节点到网络中每个其他节点的距离。该算法通过迭代更新这个向量来工作。

将所有这些距离向量组合到一个矩阵中,得到一个矩阵,其中元素i,j测量节点i和j之间的距离。

因此,我将开始与计算连接矩阵a[i,j]=1如果i可直接与j0否则沟通 - 并从那里继续。

+0

@ nimrodm如果(距离<= R) M(I,J)= 1; ([X(i)X(j)],[Y(i)Y(j)],'LineStyle',':','MarkerSize',25)。 (j)=距离(j); %#ok disp('RREQ') else M(i,j)= 0; 显示('找不到路线') 结束 结束**请您详细说明一下吗?尽管如此,我有连接矩阵,它只在源内,节点第一跳。因此,从第一跳开始,如何到达目的地? – Tinglin 2011-02-03 05:28:15