无中心多路并发传输系统的组网方法与流程

文档序号:20211267发布日期:2020-03-31 11:03阅读:500来源:国知局
无中心多路并发传输系统的组网方法与流程

本发明涉及通信技术领域,特别涉及一种无中心多路并发传输系统的组网方法。



背景技术:

目前,在通信领域,常见的自组网算法通常使用aodv协议(无线自组网按需平面距离向量路由协议,adhocon-demanddistancevectorrouting),多路并发系统则采用aomdv协议(adhocon-demandmultipathdistancevector),即该协议融合了“按需”和“多路径”这两种路由技术。

但采用aomdv协议的多路并发系统存在如下问题:aomdv协议仅能从复数链路中在两点间构建出一条有效链路,当链路/节点失效时,通过改变部分链路的选择,从而保证数据的通路,而多路并发系统要求选择的所有链路都是独立的,不能存在链路复用的情况。因此,现有的aomdv协议只能选择一条有效链路的情况,显然是不能满足通信需求的。



技术实现要素:

本发明提供一种无中心多路并发传输系统的组网方法,旨在达到通过组网为无中心的多路并发系统同时选取多条通路的目的。

为实现上述目的,本发明提供了一种无中心多路并发传输系统的组网方法,所述组网方法包括:

无中心多路并发传输系统中当满足路由计算触发条件时,源节点在所述源节点对应的所有有效端口处发送路由请求,并记录路由请求的发送时间;

非目的节点接收到所述路由请求后,根据所述路由请求的来源,判断是否需要将本节点id添加至所述路由请求转发;

目的节点接收到第一包所述路由请求后,等待预设时长,在所述目的节点对应的每个网口找到一条req请求信息,构造rep数据包;并根据所述目标节点是否接收到recheck数据包,执行相应的操作;

中间节点接收到所述目的节点发送的所述rep数据包,根据所述中间节点保存的路由信息,执行相应的操作;

所述源节点记录每一条路由应答的接收时间,根据每一条路由的路径信息,选择符合预设路由选取规则的多径路由。

进一步地,所述非目的节点接收到所述路由请求后,根据所述路由请求的来源,判断是否需要将本节点id添加至所述路由请求转发,包括:

非目的节点收到所述路由请求后,识别所述路由请求的来源;

若所述路由请求为来自同一个节点上一跳的第一包路由请求,则所述非目的节点记录接收所述路由请求所使用的路由请求接收端口号及上一跳的节点id,并将所述非目的节点的本节点id添加到路由请求转发;

若所述路由请求不是来自同一个节点上一跳的第一包路由请求,则所述非目的节点仅在本地记录所述路由请求接收端口号及上一跳的节点id。

进一步地,所述根据所述目标节点是否接收到recheck数据包,执行相应的操作,包括:

所述目的节点若收到recheck数据包,则在接收到所述recheck数据包的网口重新查找req信息,若能够查找到req信息,则所述目标节点重新构造rep请求并发送。

进一步地,所述中间节点接收到所述目的节点发送的所述rep数据包,根据所述中间节点保存的路由信息,执行相应的操作,包括:

中间节点收到所述rep数据包后,根据所述中间节点保存的接收路由请求数据包的上一跳节点id及接收上一跳数据包的接收端口号,将所述中间节点接收所述rep数据包的接收端口号添加到反向路由,再从下一跳所有接收到路由请求数据包的端口转发所述rep应答数据包,并删除req信息;

若所述中间节点在重复网口收到相同信息标识id标记的rep应答数据包,或者所述中间节点已经没有可用的req请求信息来构造转发rep应答数据包,则所述中间节点向上一跳节点发送recheck数据包。

进一步地,所述源节点记录每一条路由应答的接收时间,根据每一条路由的路径信息,选择符合预设路由选取规则的多径路由,包括:

源节点记录每一条路由rep应答数据包的接收时间;

获取每一条路由的路径信息,得到各条路径的路径参数;

根据所述路径参数,计算每一条路由的路径权重;

根据所述路径权重值,按照所述路径权重值的由小到大,依次选择满足预设路由选取规则的预设数量的多径路由;

其中,所述路径参数包括:路径总负载、路径上节点的剩余电量以及传输时延。

进一步地,所述预设路由选取规则包括:

排除含有剩余电量低于门限值节点的路径;

排除含有节点负载超过门限值节点的路径;

排除传输时延大于预设门限值的路径;

且选取的多径路由满足链路不相交的原则。

进一步地,所述源节点记录每一条路由应答的接收时间,根据每一条路由的路径信息,选择符合预设路由选取规则的多径路由,包括:

所述源节点记录每一条路由应答的接收时间,利用路径总负载、路径上节点的剩余电量以及传输时延三个参数来描述路径特性,作为流量分配的依据,定义链路特性函数δ(i,q):

其中,ψ代表剩余电量,ξ代表节点负载,ρ代表传输时延;

利用蚁群算法获取最短路径,则对于网络流k的选取有:

当λ≤α时,

k=argmax{[β(i,q)]ω·[δ(i,q)]τ};

当λ>α时,

其中,i表示现在位于节点i进行路径选择,q表示可选取的端点,iq构成路径中的通路;λ是范围为[0,1]的随机数,α是预先给定的在取值范围内的参数;β(i,q)是iq路径上对应的信息素变量的值;δ(i,q)是根据所述链路特性函数得到的iq路径特征描述值;ω是一常数,代表信息数的总数目,取值越大,该路径被选择的几率越高;τ是变量,代表的是期望权值的常数,其值越大,小范围较短的路径就容易被选择;

在迭代过程中,利用下式进行更新:

其中,∈代表链路信息损耗值,·δβk代表算法迭代过程中最优路径k上的当前残留的信息素的值,np代表最优链路上的节点总数;

根据上述计算结果,即可选择得到满足需求的多径路由。

进一步地,所述路由计算触发条件包括:

有待发送的业务且源节点当前到目的节点没有多径路由;

以及,拓扑更新识别出当前有效多径路由小于预设路径门限值;

所述源节点发送路由请求的发送方式包括:

按照泛洪算法,进行六跳路由请求的发送。

进一步地,所述无中心多路并发传输系统中各节点的req请求信息的发送规则包括:

每个节点第一次收到req请求信息时在所有其他网口转发,并将第一次接收到的所述req请求信息的记录保存在所述节点对应的本地记录中;

当所述节点接收到后面到达的req请求信息时,后面到达的req请求信息的接收跳数不能超过第一次接收的跳数。

进一步地,所述无中心多路并发传输系统中各节点的rep应答数据包的发送规则包括:

所述rep应答数据包由目标节点产生,且所述目标节点对应的每个网口只能产生一个rep应答数据包;当所述目标节点收到recheck数据包时,可再次发送rep应答数据包;

所述无中心多路并发传输系统中的所有节点使用记录的req请求信息构造rep应答数据包,且当所述rep应答数据包构造完成后,删除使用过的所述rep应答数据包对应的rep信息。

进一步地,所述组网方法还包括:

所述中间节点收到rep应答数据包后,记录已经收到rep应答数据包的网口;

若所述中间节点对应的网口没有收到rep应答数据包,则尝试构建转发rep应答数据包;

若所述中间节点对应的网口已经收到rep应答数据包,则在同一网口向上一节点反向发送recheck数据包;

若所述中间节点的req请求信息耗尽,无法构造转发的rep数据包,则所述中间节点使用相应的网口发送recheck数据包。

本发明一种无中心多路并发传输系统的组网方法可以达到如下有益效果:

无中心多路并发传输系统中当满足路由计算触发条件时,源节点在所述源节点对应的所有有效端口处发送路由请求,并记录路由请求的发送时间;非目的节点接收到所述路由请求后,根据所述路由请求的来源,判断是否需要将本节点id添加至所述路由请求转发;目的节点接收到第一包所述路由请求后,等待预设时长,在所述目的节点对应的每个网口找到一条req请求信息,构造rep数据包;并根据所述目标节点是否接收到recheck数据包,执行相应的操作;中间节点接收到所述目的节点发送的所述rep数据包,根据所述中间节点保存的路由信息,执行相应的操作;所述源节点记录每一条路由应答的接收时间,根据每一条路由的路径信息,选择符合预设路由选取规则的多径路由;达到了通过组网为无中心的多路并发系统同时选取了多条通路的目的,保证了链路探测可以最大限度地找到可行的通信链路,提高了通信质量。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所指出的内容来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1是本发明无中心多路并发传输系统的组网方法的一种实施方式的流程示意图;

图2是本发明无中心多路并发传输系统的组网方法中路由计算交互流程示意图;

图3是本发明无中心多路并发传输系统的组网方法中网络节点的一种实施方式的多径路由选取示意图;

图4是本发明无中心多路并发传输系统的组网方法中在四个网络设备之间进行多路径路由的一种实施方式的网口示意图;

图5是本发明无中心多路并发传输系统的组网方法中一个网络设备的不同网口进行信息发送的一种实施方式的信号收发流示意图;

图6是本发明无中心多路并发传输系统的组网方法中选择符合路由选取规则的多径路由的一种实施方式的节点示意图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

本发明提供了一种无中心多路并发传输系统的组网方法,通过组网为无中心的多路并发系统同时选取了多条通路,从而保证了链路探测可以最大限度地找到可行的通信链路,提高了通信质量。

如图1所示,图1是本发明无中心多路并发传输系统的组网方法的一种实施方式的流程示意图;本发明一种无中心多路并发传输系统的组网方法可以实施为如下描述的步骤s10-s50:

s10、无中心多路并发传输系统中当满足路由计算触发条件时,源节点在所述源节点对应的所有有效端口处发送路由请求,并记录路由请求的发送时间;

本发明实施例中,在无中心多路并发传输系统中,当满足路由计算触发条件时,该无中心多路并发传输系统的源节点在本节点对应的所有有效端口处发送路由请求,并记录路由请求的发送时间。其中,所述源节点发送包含req请求信息的路由请求时,可以按照泛洪算法,进行六跳路由请求的发送。

另外,在一个实施例中,所述路由计算触发条件包括但不限于:

有待发送的业务且源节点当前到目的节点没有多径路由;

以及,拓扑更新识别出当前有效多径路由小于预设路径门限值。

s20、非目的节点接收到所述路由请求后,根据所述路由请求的来源,判断是否需要将本节点id添加至所述路由请求转发;

所述无中心多路并发传输系统对应的网络中,非目的节点接收到所述路由请求后,根据所述路由请求的来源,判断是否需要将本节点id添加至所述路由请求转发。

比如,非目的节点收到所述路由请求后,识别所述路由请求的来源;若所述路由请求为来自同一个节点上一跳的第一包路由请求,则所述非目的节点记录接收所述路由请求所使用的路由请求接收端口号及上一跳的节点id,并将所述非目的节点的本节点id添加到路由请求转发;若所述路由请求不是来自同一个节点上一跳的第一包路由请求,则所述非目的节点仅在本地记录所述路由请求接收端口号及上一跳的节点id。

s30、目的节点接收到第一包所述路由请求后,等待预设时长,在所述目的节点对应的每个网口找到一条req请求信息,构造rep数据包;并根据所述目标节点是否接收到recheck数据包,执行相应的操作;

目的节点接收到第一包所述路由请求后,等待预设时长(比如200ms),在所述目的节点对应的每个网口找到一条req请求信息,构造rep数据包;所述目的节点若收到recheck数据包,则在接收到所述recheck数据包的网口重新查找req信息,若能够查找到req信息,则所述目标节点重新构造rep请求并发送。

s40、中间节点接收到所述目的节点发送的所述rep数据包,根据所述中间节点保存的路由信息,执行相应的操作;

中间节点收到所述rep数据包后,根据所述中间节点保存的接收路由请求数据包的上一跳节点id及接收上一跳数据包的接收端口号,将所述中间节点接收所述rep数据包的接收端口号添加到反向路由,再从下一跳所有接收到路由请求数据包的端口转发所述rep应答数据包,并删除req信息;

若所述中间节点在重复网口收到相同信息标识id标记的rep应答数据包(比如相同的msg_id等标记的rep应答数据包),或者所述中间节点已经没有可用的req请求信息来构造转发rep应答数据包,则所述中间节点向上一跳节点发送recheck数据包。

s50、所述源节点记录每一条路由应答的接收时间,根据每一条路由的路径信息,选择符合预设路由选取规则的多径路由。

比如,源节点记录每一条路由rep应答数据包的接收时间,通过综合考量各条路由分别对应的路径总负载、路径上节点的剩余电量、传输时延等路径信息,选择满足预设路由选取规则的六条多径路由。

在一个实施例中,所述源节点记录每一条路由应答的接收时间,根据每一条路由的路径信息,选择符合预设路由选取规则的多径路由,可以按照如下方式实施:

源节点记录每一条路由rep应答数据包的接收时间;

获取每一条路由的路径信息,得到各条路径的路径参数;其中,所述路径参数包括:路径总负载、路径上节点的剩余电量以及传输时延;

根据所述路径参数,计算每一条路由的路径权重;

根据所述路径权重值,按照所述路径权重值的由小到大,依次选择满足预设路由选取规则的预设数量的多径路由。比如,按照所述路径权重值的由小到大,依次选择满足预设路由选取规则的6条多径路由。

在一个具体的应用场景中,可以配置如下规则作为所述预设路由选取规则:

排除含有剩余电量低于门限值节点的路径;

排除含有节点负载超过门限值节点的路径;

排除传输时延大于预设门限值的路径;

且选取的多径路由满足链路不相交的原则。

图1实施例对应的该无中心多路并发传输系统的组网方法中,各节点对应的路由计算交互流程可以参照图2,图2是本发明无中心多路并发传输系统的组网方法中路由计算交互流程示意图。

基于图1实施例的描述,在一具体的应用场景中,结合具体的代码实例比如route_calc.c,再次描述本发明无中心多路并发传输系统的组网方法。如图2所示,当有待发送的业务且当前到目的节点没有多径路由,则满足路由计算触发条件。触发流程:函数get_route,检查g_route_calc_flag,如果返回值为0,说明没有路由或者没有正在计算的路由,此时调用calc_route开启一次到特定目标的路由探测。

源节点在本节点所有有效端口发送六跳泛洪路由请求,记录路由请求发送时间:比如,调用了calc_route后,进入此环节,首先在所有端口构造目标为特定地址的路由req请求信息,跳数为第一跳;此后在所有端口以广播形式发送。所有端口发送的packet_num作为一次路由请求的唯一标识,在发送时保持一致,例如有3个网口发送请求,其内部的packet_num是同一个数字。

调用函数save_route_req_send_time记录发送特定目标请求的时间。

开启特定目标路由请求定时器。一定时间后,关闭特定请求目标的定时器,使g_route_calc_flag变为0,表示没有正在运行的请求,从而能够再次触发路由计算;其中,所述定时器到期的回调函数为route_req_timer_handler。

无中心多路并发传输系统对应网络内,非目的节点收到路由请求后,如果为来自同一上一跳的第一包路由请求,则记录接收端口号及上一跳id,并将本节点id添加到路由请求转发,否则,仅本地记录该路由请求接收端口号及上一跳id。在具体应用场景中,本功能的处理函数为recv_route_req,非目的节点收到请求后,首先调用get_route_req_cnt,如果是已有请求,则该函数返回请求条数,如果是过期请求,则该函数返回0并清除此前的记录。为了防止出现回环,在记录不为0的情况下,新请求记录的条数只有小于等于第一条记录的情况下才对其保存,否则直接返回。记录req请求信息,则此时调用函数save_route_req_record,该函数会根据是否已有对应信息决定向后添加还是修改条目。如果是请求最终目的是本地,且为第一条请求,则开启收集特定src设备发送req的定时器;如果定时器超时,则发起应答;如果目标不是本地设备,请求跳数没有超过6跳且为第一次收到,则在所有网口转发。

目的节点收到第一包路由请求后等待一段时间后(比如200ms),分别根据各条路由的反向路由,在接收端口单播发送路由应答,此时采用的处理函数为get_route_req调用的计时器及其回调函数。

构造应答的函数为send_route_rep,注意这里是单播应答,不是广播。首先从已知请求表中查找对应的记录,找到后调用send_route_rep_opt在相应网口发送rep应答。

目标节点会轮询所有保存的req信息,并努力在每个网口各找到一条,只要找到一条,则构造相应的rep包,并发送,此后删除对应req记录,不再在此网口上寻找。

中间节点收到路由应答后,根据本节点保存的路由请求的上一跳id及接收端口号,判断是否已经在对应网口收到过同样的信息,若没有收到过,则将本节点路由应答的接收端口号添加到反向路由,查找本地记录的req信息,如果查找到,则再次构造rep包,并转发,若找不到req信息(req请求信息已用光)或者对应网口已经收到过同类信息,则构造recheck包发送给前一个发送此rep包的节点。

收到recheck的设备若为中间节点,则以与收到rep包同样的流程进行处理,若为目标节点,则根据recheck包收到的网口,再次在本地查找对应网口的req,重新构造rep包并发送。

如果目标是本地设备,则直接保存入g_possible_route中。

否则此函数recv_route_rep检查截至上一条目的路由记录,如果里面已经有本地id的记录了,则不再转发,说明是回环。

此后如果同一网口接收的rep数据已经转过,中间节点设备会向上一个转发设备发送recheck指令,将rep数据原封不动的发送回去,上一个节点收到后,如果有其他req的信息,则重新构造数据,发送往req相关的节点,如果没有则再向上一个节点发送recheck。最终保证有一个req指向的节点接收了数据,或者存储的req数据消耗干净。此后保存rep记录,并且根据本地req信息,重新计算转发rep,此后删除本地保存的相应req信息。

源节点记录每一条路由应答的接收时间,综合考虑各条路由的路径总负载、路径上节点的剩余电量、传输时延依次选择最多6条符合条件的多径路由。

在一个实施例中,所述无中心多路并发传输系统中各节点的req请求信息的发送规则包括:

每个节点第一次收到req请求信息时在所有其他网口转发,并将第一次接收到的所述req请求信息的记录保存在所述节点对应的本地记录中;当所述节点接收到后面到达的req请求信息时,后面到达的req请求信息的接收跳数不能超过第一次接收的跳数。

本发明无中心多路并发传输系统中使用的req各节点的rep应答数据包的发送规则包括:

所述rep应答数据包由目标节点产生,且所述目标节点对应的每个网口只能产生一个rep应答数据包;当所述目标节点收到recheck数据包时,可再次发送rep应答数据包;所述无中心多路并发传输系统中的所有节点使用记录的req请求信息构造rep应答数据包,且当所述rep应答数据包构造完成后,删除使用过的所述rep应答数据包对应的rep信息。

另外,所述中间节点收到rep应答数据包后,记录已经收到rep应答数据包的网口;若所述中间节点对应的网口没有收到rep应答数据包,则尝试构建转发rep应答数据包;若所述中间节点对应的网口已经收到rep应答数据包,则在同一网口向上一节点反向发送recheck数据包;若所述中间节点的req请求信息耗尽,无法构造转发的rep数据包,则所述中间节点使用相应的网口发送recheck数据包。

比如,中间节点收到rep包后要进行简单记录,要求知道某个网口是否已经收到过rep包,如果对应网口没有收到rep包,则尝试构建转发rep包,如果已经收到rep包,则在同网口向上一节点反向发送recheck包。如果中间节点req信息耗尽,无法构造转发的rep包,也要发送recheck包。recheck包的实际内容与rep包一致,实际处理流程与rep包基本一致,中转节点可以按照rep包标准流程处理,根据req记录自行构造下一转发rep包及使用网口。目标节点要求只能在同一网口寻找req记录,并在同一网口发送rep包,如果没有,则不发送,此条链路建立失败。

在一个具体的应用场景中,如图3所示,图3是本发明无中心多路并发传输系统的组网方法中网络节点的一种实施方式的多径路由选取示意图;图3中,b有1条req请求记录a1-b1,c有2条req请求记录a1-c1、a2-c2,d有3条req请求记录b2-d2、b3-d3、c3-d3。

当定时器到期,d可能会产生2种应答:

1:repd2-b2、d3-b3;

2:repd2-b2、d3-c3;

第一种情况下,d2-b2先到达b,则构造d2-b2-a1的路由,d3-b3后到达,此时b没有req请求记录了,则向d3发送recheck,d3重新向c3发送rep,c挑选c1转发,由于a1已经建立了通路,a1向c1发送recheck,c重新挑选c2转发,则建立d3-c3-a2的链路,最终构建成功2条链路。

若第一种情况下,d3-b3先到达b,最终成功构建d3-b3-a1链路,d2-b2后到达,由于b没有req请求记录,则发送recheck给d,此时d2没有额外req请求记录,则最终构建1条链路。

第二种情况下,无论d哪个口先发送rep,最终均会构建成功2条链路。

进一步地,在一个实施例中,本发明无中心多路并发传输系统的组网方法中所有的req请求在转发时都会额外增加上一跳节点id的信息,如果到达的请求其上上跳设备为接收设备的邻居,则接收设备转发时将跳数-1,因为上上跳的请求迟早会到达该接收设备。

如图4所示,图4是本发明无中心多路并发传输系统的组网方法中在四个网络设备之间进行多路径路由的一种实施方式的网口示意图;假设有四个设备,当不采用“如果到达的请求其上上跳设备为接收设备的邻居,则接收设备转发时将跳数-1”的规则时,a寻找到达d的路由,其中1,3,4号链路速度比较快,当发送req信息时,b收到a发送的req并转发,c首先收到3链路转来的req,也开始转发,d首先收到b从4发送的req,记录条数为2,此后收到c从5发送的req,此请求跳数为3,被拒绝,因此最终只有一条有效链路被选择。因此,规则“如果到达的请求其上上跳设备为接收设备的邻居,则接收设备转发时将跳数-1”是必要的。

而本发明实施例中,由于采用了“如果到达的请求其上上跳设备为接收设备的邻居,则接收设备转发时将跳数-1”的规则,因此,与邻居信息节点结合,每条req信息中包含上两跳的节点id,当上两跳节点为本地设备的邻居时,可以预测其链路探测信息迟早会到达本地,因此转发req的时候,跳数自动修正-1。结合图4来看,c收到b从链路3发送的请求时,知道其前两跳为a,而a为c的邻居,因此c转发req的时候,将跳数-1(原来为3,修正后为2),d收到后,bc发送的请求均为2跳,均被记录。寻路时,优先选择先到达的请求,即回复b的请求,此后才轮到c的请求,c会首先转发rep到b,由于b无法增加额外链路,发送recheck给c,c此时应早已收到过a发送的req并记录,因此c选择链路2转发rep应答信息到a,最终成功建立2条链路。

进一步地,本发明无中心多路并发传输系统的组网方法中,存储req请求信息时,增加了sendmask,send_mask用于确保收到req请求转发时,不会在收到的端口转发,同时掩码预留空位,如果还能在别的端口收到同一req请求,则在没发过的网口转发一次。

如图4所示,假设b收到a从链路1发送的req请求,且此时b有且仅有收到此一条req请求,如果b在同一端口转发req请求被其他设备收到并存储(链路1转发的req),此后反向构造rep应答时,会出现从链路1到来的rep应答,由b只能从链路1再次转发rep,实际上这么做毫无意义。因此,所有req请求不能在收到req请求的网口进行转发,如果在别的链路能够收到同一个req请求,则允许额外在此前没有转发的这个端口转发一次。

本发明实施例中,所有用于构造转发rep包所用到的req记录,一旦被挑选使用,则应带将对应记录删除,因为此后无论此链路构造成功还是收到recheck表示构造失败,此req都不能够再次被使用,否则会产生重复链路的情况。如果无法选择合适的req构造转发rep,则应发送recheck。

另外,本发明实施例中,目标节点在产生rep前,会轮询所有收到过req的网口,此后在只每个网口构造一个rep发送。中间节点记录接收到rep的网口编号,要根据本地的req记录构造转发新的rep,并添加下一跳信息。如果收到重复的或者无法构造转发新的rep,则向上一跳节点发送recheck。收到recheck的节点应根据本地req记录继续尝试新的转发,如无合适req记录则构造recheck发送到再上一跳。目标节点收到recheck,仅能在同一网口尝试重新构造rep包,中间节点不存在此限制。

另外,本发明实施例中,无中心多路并发传输系统组网时,增加rep_mask掩码,rep_mask用于确保已经向外转发过rep的端口不会被再次选择,除非收到recheck后此掩码再次清零,同时接收此条rep的网口,也不能用于转发rep,因为已经有设备选择此网络建立了通路,如果还用于别的rep转发,则会出现两条链路使用同一网口的情形。如果转发的rep收到别的设备发回的recheck,同时本地无法再重新构造转发rep,则也需要向上级发送recheck,此时可以将接收此条recheck的网口掩码清零,允许其为其他rep请求发送转发。

接收到rep的设备,在查找req信息时,要注意接收rep的网口与查找到的req设备对应网口是否为邻居节点,如果是邻居节点,则不能选择此条req,否则会出现重复使用一种网络的情况。

如图5所示,图5是本发明无中心多路并发传输系统的组网方法中一个网络设备的不同网口进行信息发送的一种实施方式的信号收发流示意图。假设c设备在123链路上均有保存对应的1条req信息,rep从1口传入c设备,此时c设备在选取转发网口时,不能使用1口进行转发,1口的掩码为1,需从2,3口选择一个,假设c3转发了rep,3口掩码变为1,此后c如果再次需要转发rep,则1,3口均不能被使用,此后3口由对端设备发送recheck表示寻路失败,c收到后rep_mask中将3口的掩码清零,同时由于c设备仅剩12口的req请求记录,而1口掩码为1,则c挑选2口转发rep,2口掩码为1。如果2口对端设备仍发送了recheck回来,则2口掩码清零,此后由于没有可用的req请求,则从1口向上一设备构造recheck发送,1口的掩码清零。

基于上述实施例的描述,在一个实施例中,所述源节点记录每一条路由应答的接收时间,根据每一条路由的路径信息,选择符合预设路由选取规则的多径路由,可以按照如下方式实施:

所述源节点记录每一条路由应答的接收时间,根据实际,利用路径总负载、路径上节点的剩余电量以及传输时延三个参数来描述路径特性,作为流量分配的依据,定义链路特性函数δ(i,q):

其中,ψ代表剩余电量,ξ代表节点负载,ρ代表传输时延;

利用蚁群算法获取最短路径,则对于网络流k的选取有:

当λ≤α时,

k=argmax{[β(i,q)]ω·[δ(i,q)]τ};

当λ>α时,

其中,i表示现在位于节点i进行路径选择,q表示可选取的端点,iq构成路径中的通路;λ是范围为[0,1]的随机数,α是预先给定的在取值范围内的参数;β(i,q)是iq路径上对应的信息素变量的值;δ(i,q)是根据所述链路特性函数得到的iq路径特征描述值;ω是一常数,代表信息数的总数目,取值越大,该路径被选择的几率越高;τ是变量,代表的是期望权值的常数,其值越大,小范围较短的路径就容易被选择;

在迭代过程中,利用下式进行更新:

其中,∈代表链路信息损耗值,·δβk代表算法迭代过程中最优路径k上的当前残留的信息素的值,np代表最优链路上的节点总数;

根据上述计算结果,即可选择得到满足需求的多径路由。

比如,在一个具体的应用场景中,如图6所示,图6是本发明无中心多路并发传输系统的组网方法中选择符合路由选取规则的多径路由的一种实施方式的节点示意图;在图6所示的应用场景中,该无中心多路并发传输系统中包含了7个客户主机,8个节点的网路,9条通路,3个服务主机,路由稳定后节点发送数据的次数是1500次。

下表表示传输时延ρ的设置,其中,变量ψ,ξ为动态参数,在此不进行一一列举式列出:

其中,本发明实施例中,参数的取值如下:ω=0.2,τ=23.2,且认为25%的节点死亡时,停止迭代,所得的动态网络分配方案中,服务器主机使用率平均值为40%,网络平均吞吐量为80mbit/s,丢包率为23.2%

通过利用上述算法可以更为有效的平衡网路之间的均衡,实现网流更有效的传输。通过其具有的全局视图的三个方面:剩余电量、节点负载、传输时延为网路找出最优路径,使得网络负载得到分担,网络能承担更大的吞吐量,并且丢包率也大大的降低,使得整个网络架构得到了优化,传输效率得到了提高。另外,异构网络多决策性质的构建使得网络的鲁棒性得到了加强,网络寿命得到了有效的延缓。

本发明无中心多路并发传输系统的组网方法,无中心多路并发传输系统中当满足路由计算触发条件时,源节点在所述源节点对应的所有有效端口处发送路由请求,并记录路由请求的发送时间;非目的节点接收到所述路由请求后,根据所述路由请求的来源,判断是否需要将本节点id添加至所述路由请求转发;目的节点接收到第一包所述路由请求后,等待预设时长,在所述目的节点对应的每个网口找到一条req请求信息,构造rep数据包;并根据所述目标节点是否接收到recheck数据包,执行相应的操作;中间节点接收到所述目的节点发送的所述rep数据包,根据所述中间节点保存的路由信息,执行相应的操作;所述源节点记录每一条路由应答的接收时间,根据每一条路由的路径信息,选择符合预设路由选取规则的多径路由;达到了通过组网为无中心的多路并发系统同时选取了多条通路的目的,保证了链路探测可以最大限度地找到可行的通信链路,提高了通信质量。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1