1.一种拥塞避免的编码感知无线mesh网络多路径路由方法,其特征在于:在运行时包括路由、数据传输两个阶段的操作,分别采用“拥塞感知机制”和“多路径动态流量分配机制”两种新机制;
在路由发现过程中,将节点缓存占用率超过阈值的节点作为高负载节点,所述高负载节点无需转发新收到的路由请求消息RREQ,同时也减少了所述高负载节点的邻居节点对RREQ的转发,并将源节点到目的节点的多条路径中存在的所述高负载节点的路径提前排除;
在数据传输过程中,源节点可根据各路径上节点的负载情况对流量分配比例进行调整;
所述“拥塞感知机制”包括如下步骤:
S1:如果网络中的所述源节点需要发送数据包,则所述源节点广播RREQ,广播RREQ的目的在于探测路径中所有节点存在的编码机会,所述RREQ中包括邻居节点地址域,其中,所述邻居节点地址域用于存储所述源节点的邻居节点ID;
S2:如果所述邻居节点收到所述RREQ,首先判断先前是否收到过所述RREQ,若未收到,则计算自身的缓存占用率;否则,丢弃所述RREQ;
S3:如果缓存占用率低于阈值Tmax,则更新所述RREQ,将所述邻居节点的邻居节点ID添加到RREQ中的邻居节点地址域;否则放弃转发新收到的所述RREQ,直接将其丢弃;
S4:如果所述邻居节点需要发送更新后的RREQ,则根据RREQ添加的所有邻居节点ID判断是否存在编码机会,计算编码增益并将可编码的数据流以及编码增益进行记录并发送更新后的RREQ;其中,所述邻居节点的编码增益具体计算为:判断所述邻居节点是否存在编码机会,若无编码机会,则编码增益G为0;否则,计算所述邻居节点的编码增益G,具体计算公式如下:其中,Gc表示在节点c的编码增益,ρc,i为节点c到节点i的链路lc,i的双向投递率;
所述“多路径动态流量分配机制”包括如下步骤:
S1:如果所述目的节点接收到所述RREQ,则开始沿所述RREQ的传输路径反向单播路由回复消息RREP,所述RREP中包含Metric域,所述Metric域的初始值设为0,用于存储路径的路由度量值,从而使得所述源节点能够成功计算各条路径的路由度量值;其中,所述路由度量值的计算公式为:其中,GC为编码增益;ETT为期望传输时间,是在链路上成功传输一个数据分组所需要的时间;
S3:如果源节点接收到M个RREP,首先分别计算出各条路径的路由度量值,从中选择最优的m条路径;其次;根据流量分配公式计算出各路径的原始流量分配比例,开始发送数据分组;
其中,m条最优路径的选择具体方法为:首先,分别计算M条路径中每条路径的路由度量值CACMp,所述CACMp的计算公式为:其中,所述CACMP为每条路径上所有节点处的CACM之和;
其次,从M条路径中选择出最优的m条路径,优先选择路由度量值CACM更小的路径;
最后,计算各条路径的原始流量分配比例,并按原始流量分配比例发送数据分组,第k条路径的原始流量分配比例为:其中, 为第k条路径的路由度量值;
S4:如果所述目的节点收到所述源节点发送的数据分组,则向所述源节点发送ACK,在所述ACK中添加标志位flag字段,若路径中出现高负载节点,则高负载节点将flag字段值改为1,向源节点反馈路径上节点的负载情况;
S5:如果中间节点收到ACK,检查ACK中flag字段的值,若ACK中flag字段的值为1,直接转发所述ACK;否则,根据缓存占用率判断负载情况;如果所述缓存占用率超出阈值,则更改所述ACK中的flag字段的值,继续转发所述ACK;否则,直接转发所述ACK;
S6:如果源节点接收到所述ACK,检查flag字段的值;根据所述ACK的flag字段的值判断是否需要调整流量分配比例,若需要调整,则根据调整策略进行重新分配;否则,继续按原比例发送数据;
所述调整策略具体为:
将该路径剩余的流量按比例分配给其余m-1条路径,分配比例的计算公式如下:其中,m-1为源节点选取的m条发送数据的路径中去除存在拥塞概率最高的节点的路径后的其余路径。