路由选择的方法、装置和系统 【技术领域】
本发明涉及通信领域,尤其涉及一种路由选择的方法、装置和系统。
背景技术
Ad Hoc网络是一种自治的无线多跳网络。网络中的节点都是移动的,并且可以以任意拓扑结构与其他节点保持通信。在网络进行数据传输时,网络中的部分节点会离开或加入网络。此时,当前节点在转发报文过程中,对邻居节点进行路由选择,从所述邻居节点中选取转发报文的下一跳节点。根据选取结果,所述当前节点向所述下一跳节点转发报文。如果所述下一跳节点已离开网络,会造成向所述下一跳节点的报文丢失。因此,现有的路由方法不稳定,影响报文传输的可靠性。
【发明内容】
本发明实施例提供的一种路由选择的方法、装置和系统,提高了路由的稳定性。
一种路由选择的方法,包括:
获取邻居节点的移动信息;
根据所述邻居节点的移动信息,进行路由选择。
一种路由选择的装置,包括:
移动信息获取模块,用于获取邻居节点的移动信息;
路由选择模块,用于根据所述移动信息获取模块获取的邻居节点的移动信息,进行路由选择。
另外,本发明实施例还提供了一种通信系统,包括:至少两个节点,每个节点用于获取本节点的移动信息,并向邻居节点发送本节点的移动信息;每个节点还用于获取邻居节点的移动信息,根据所述邻居节点的移动信息进行路由选择。
本发明实施例提供的路由选择的方法、装置和系统,通过获取邻居节点的移动信息,选择稳定的邻居节点转发报文,减少报文的丢失,提高了AD hoc网络报文传输的可靠性。
【附图说明】
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的路由选择的方法的流程图;
图2为本发明另一实施例提供的路由选择的方法的流程图;
图3为本发明另一实施例提供的路由选择的方法的流程图;
图4为本发明另一实施例提供的路由选择的方法的流程图;
图5为本发明实施例提供的路由选择的装置的结构示意图;
图6为本发明另一实施例提供的路由选择的装置的结构示意图;
图7为图5中移动信息获取模块的结构示意图;
图8为图5中路由选择模块的结构示意图;
图9为图5中路由选择模块的结构示意图;
图10为图5中路由选择模块的结构示意图;
图11为图6中移动信息发送模块的结构示意图。
【具体实施方式】
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合具体实施例和附图对本发明作进一步解释。
如图1所示,本发明实施例提供一种路由选择地方法,包括:
S101、获取邻居节点的移动信息;
S102、根据所述邻居节点的移动信息,进行路由选择。
本发明实施例提供的路由选择的方法,通过获取邻居节点的移动信息,选择稳定的邻居节点转发报文,减少报文的丢失,提高了AD hoc网络报文传输的可靠性。
如图2所示,本发明另一实施例提供的一种路由选择的方法,本发明实施例以移动信息为邻居更新率为例进行说明。该方法具体包括:
S201、向邻居节点广播本节点的邻居更新率;
所述邻居更新率N_Ratio=N/N_total,其中N为当前时刻邻居列表中变化的邻居总数,N_total为当前时刻和上一时刻的邻居列表中邻居总数。
具体的,本节点获取当前时刻和上一时刻的邻居列表,根据所述邻居列表中记录的邻居,计算本节点的邻居更新率。
例如,从本节点保存的邻居列表中,获取当前时刻和上一时刻的邻居列表。其中所述当前时刻的本节点邻居列表中邻居节点a1、邻居节点a3、邻居节点a4、邻居节点a5、邻居节点a8;所述上一时刻的本节点邻居列表中包括邻居节点a1、邻居节点a2、邻居节点a3、邻居节点a4、邻居节点a5、邻居节点a6、邻居节点a7。
将当前时刻邻居列表与上一时刻的邻居列表进行比较,得到当前时刻,本节点的邻居节点a2、邻居节点a6、邻居节点a7离开网络;本节点的邻居节点a8加入网络,则当前时刻邻居列表中变化的邻居节点为邻居节点a2、邻居节点a6、邻居节点a7、邻居节点a8,变化的邻居总数N为4个;
当前时刻和上一时刻的邻居列表中邻居节点为邻居节点a1、邻居节点a2、邻居节点a3、邻居节点a4、邻居节点a5、邻居节点a6、邻居节点a7、邻居节点a8,当前时刻和上一时刻的邻居列表中邻居总数N_total为8个;
根据上述获取的变化的邻居总数和邻居总数,获取当前时刻的邻居更新率为N_Ratio=N/N_total=4/8×100%=50%。
而本节点发送本节点的邻居更新率的条件可以是进行路由选择之前或者是接收到邻居节点发送的本节点更新率之后。
本节点发送邻居更新率可以有多种形式,例如直接发送邻居更新率或者通过在报文中携带邻居更新率的形式发送出去。以通过在报文中携带邻居更新率的形式发送出有多种方式,比如可以在待发报文的保留字段添加本节点的邻居更新率,发送携带邻居更新率的待发报文至邻居节点,所述待发报文可以为转发的数据报文、Hello消息;或者,也可以在路由广播消息中增加一条报文,在增加的报文添加所述本节点的邻居更新率,直接发送所述携带邻居更新率的添加的报文至邻居节点。
S202、获取邻居节点的邻居更新率;
具体的,邻居节点具体如何发送邻居更新率与S201相似,此处不再赘述。根据邻居节点发送的报文,获取所述邻居节点的邻居更新率。
S203、判断所述邻居节点是否稳定;
具体的,将所述邻居节点的邻居更新率与更新率阈值进行比较,如果所述邻居节点的邻居更新率大于更新率阈值时,则所述邻居节点的路由变化速度较快,表示所述邻居节点不稳定;反之,如果小于所述更新率阈值时,则所述邻居节点的路由变化速度较慢,表示所述邻居节点稳定。
其中所述更新率阈值可以通过对网络运行情况的仿真结果获取或者通过统计数据得到,当然,在实际应用时,还也可以根据网络的实际运行情况,自行调整更新率阈值的大小。
根据所述比较结果,执行S204。
S204、从稳定的邻居节点中选择一个邻居节点作为下一跳节点。
具体的,根据所述比较结果,获取所述邻居节点中稳定的邻居节点,从稳定的邻居节点中选择一个邻居节点作为下一跳节点。
本发明实施例提供的路由选择的方法,通过获取邻居节点的移动信息,选择稳定的邻居节点转发报文,减少报文的丢失,提高了AD hoc网络报文传输的可靠性。
如图3所示,本发明另一实施例提供的一种路由选择的方法,本发明实施例以移动信息为生存时间为例进行说明。具体过程包括:
S301、获取邻居节点的生存时间;
其中,所述生存生存时间为邻居节点与本节点的连接时间。
具体的,在固定时间间隔内,获取所述邻居节点发送的协商报文hello报文,如果获取到所述邻居节点的Hello报文,则表示所述邻居节点与本节点处于通信连接状态,本节点记录所述邻居节点发送Hello报文的次数;如果没有获取到所述邻居节点的协商报文,则表示所述邻居节点与本节点处于通信断开状态,本节点记录所述邻居节点已离开网络,并将所述邻居节点发送的次数设置为初值。
例如,在固定时间间隔t,本节点记录邻居节点a2发送Hello报文的次数为N2,邻居节点a3发送Hello报文的次数为N3。在固定时间间隔t+1,本节点获取到所述邻居节点a2发送Hello报文,则增加所述邻居节点a2发送Hello报文的次数为N2+1,如果本节点没有获取到邻居节点a3发送Hello报文,则将所述邻居节点a3发送的次数设置为初值。
本发明实施例以记录Hello报文的次数为例进行说明,但并不限于此,还可以根据是否获取到邻居节点的Hello报文,记录生存时间的时长。
S302、判断所述邻居节点是否稳定;
具体的,如果所述邻居节点的生存时间大于时间阈值时,表示所述邻居节点与本节点通信连接时间较长,所述邻居节点与本节点之间的通信连接较稳定;反之,如果小于所述时间阈值时,表示所述邻居节点与本节点通信时间较短,所述邻居节点与本节点之间的通信连接不稳定。
其中所述时间阈值可以通过对网络运行情况的仿真结果获取或者通过统计数据得到,当然,在实际应用时,还也可以根据网络的实际运行情况,自行调整时间阈值的大小。
根据比较结果,执行S303。
S303、与上述方法中的S204相同,此处不再赘述。
本发明实施例提供的路由选择的方法,通过获取邻居节点的移动信息,选择稳定的邻居节点转发报文,减少报文的丢失,提高了AD hoc网络报文传输的可靠性。通过本节点记录邻居节点的生存时间,节省了节点间传输移动信息的网络资源,且实现简单。
如图4所示,本发明另一实施例提供的一种路由选择的方法,本发明实施例以移动信息为邻居更新率和生存时间为例进行说明。具体过程包括:
S401、获取邻居节点的移动信息;
其中所述移动信息为邻居更新率和生存时间。
具体如何获取邻居节点的移动信息可参考上述方法中S202、S301相同,此处不再赘述。
S402、根据所述邻居节点的移动信息,设置所述邻居节点的优先级;
具体的,根据更新率阈值,从所述邻居节点选取小于所述更新率阈值的邻居节点。按照邻居更新率从小到大的顺序,为选取的小于更新率阈值的邻居节点设置由高到低的优先级顺序,得到邻居更新率优先级列表;根据时间阈值,从所述邻居节点选取大于所述时间阈值的邻居节点。按照生存时间从大到小的顺序,为选取的大于所述时间阈值的邻居接待设置由高到低的优先级顺序,得到生存时间优先级列表。
其中确定所述更新率阈值和时间阈值的方法可参照上述方法中S203和S302的描述,此处不再赘述。
S403、根据设置后的邻居节点的优先级,进行路由选择。
具体的,根据所述生存时间优先级列表,选取生存时间优先级较高的至少两个邻居节点,再根据所述邻居更新率优先级列表以及现有技术中路由选择的方法,从所述选取的邻居节点中选择一个邻居节点作为下一跳节点。或者,选取邻居更新率优先级较高的至少两个邻居节点,再根据所述生存时间优先级列表以及现有技术中路由选择的方法,从所述选取的邻居节点中选择一个邻居节点作为下一跳节点。
本发明实施例提供的路由选择的方法,通过获取邻居节点的移动信息,选择稳定的邻居节点转发报文,减少报文的丢失,提高了AD hoc网络报文传输的可靠性。通过本节点记录邻居节点的生存时间,减少了节点间传输移动信息的网络资源,且实现简单。
本发明实施例以移动信息为邻居更新率、生存时间为例,但不限于此,对于其他用于指示邻居路由器移动状态的信息同样适用,因方法和流程相似,此处不再赘述。
如图5所示,本发明实施例提一种路由选择的装置,包括:
移动信息获取模块501,用于获取邻居节点的移动信息;
路由选择模块502,用于根据所述移动信息获取模块获取的邻居节点的移动信息,进行路由选择。
如图6所示,所述路由选择的装置,还包括:
移动信息发送模块503,用于向邻居节点发送移动信息。
下面对本发明实施例提供的路由选择的装置中的各个模块进行详细介绍:
如图7所示,所述移动信息获取模块501包括:
消息获取子模块701,用于在固定时间间隔内,获取所述邻居节点上报的消息;
时间获取子模块702,用于根据所述消息获取子模块获取的邻居节点上报的消息,获取所述邻居节点的生存时间。
如图8所示,可选的,所述路由选择模块502可以进一步包括:
更新率比较子模块801,用于在所述移动信息为邻居更新率时,如果所述邻居节点的邻居更新率大于更新率阈值时,表示所述邻居节点不稳定;反之,如果小于所述更新率阈值时,表示所述邻居节点稳定;
路由选择子模块802,用于根据所述更新率比较子模块801的比较结果,从稳定的邻居节点中选择一个邻居节点作为下一跳节点。
如图9所示,可选的,所述路由选择模块502可以进一步包括:
时间比较子模块901,用于在所述移动信息为生存时间时,如果所述邻居节点的生存时间大于时间阈值时,表示所述邻居节点稳定;反之,如果小于所述时间阈值时,表示所述邻居节点不稳定;
路由选择子模块902,用于根据所述时间比较模块901的比较结果,从稳定的邻居节点中选择一个邻居节点作为下一跳节点。
如图10所示,可选的,所述路由选择模块502可以进一步包括:
优先级设置子模块1001,用于在所述移动信息为邻居更新率和生存时间时,根据更新率阈值和时间阈值,设置每个邻居节点的优先级;
路由选择子模块1002,用于根据所述优先级设置子模块1001设置后的优先级,对所述邻居节点进行路由选择。
如图11所示,可选的,所述移动信息发送模块503包括:
更新率获取子模块1101,用于根据当前时刻和上一时刻邻居列表,获取本节点的邻居更新率;
更新率发送子模块1102,用于将所述更新率获取子模块1101获取的邻居要新率发送至邻居节点。
结合本发明实施例提供的方法,对本发明实施例提供的路由选择的装置进行详细介绍:
移动信息获取模块501获取邻居节点的移动信息;
具体的,在固定时间间隔内,消息获取子模块701获取所述邻居节点上报的消息;根据所述消息获取子模块获取的邻居节点上报的消息,时间获取子模块702获取所述邻居节点的生存时间。
根据所述移动信息获取模块获取的邻居节点的移动信息,路由选择模块502进行路由选择的具体过程如下:
在所述移动信息为邻居更新率时,如果所述邻居节点的邻居更新率大于更新率阈值时,表示所述邻居节点的路由变化较慢,更新率比较子模块801确定所述邻居节点不稳定;反之,如果小于所述更新率阈值时,表示所述邻居节点的路由变化较快,更新率比较子模块801确定所述邻居节点稳定;根据所述更新率比较子模块801的比较结果,路由选择子模块802从稳定的邻居节点中选择一个邻居节点作为下一跳节点。
可选的,在所述移动信息为生存时间时,如果所述邻居节点的生存时间大于时间阈值时,表示所述邻居节点与本节点的通信连接时间较长,时间比较子模块801确定所述邻居节点稳定;反之,如果小于所述时间阈值时,表示所述邻居节点与本节点的通信连接时间较短,时间比较子模块901确定所述邻居节点不稳定;根据所述时间比较模块901的比较结果,路由选择子模块902从稳定的邻居节点中选择一个邻居节点作为下一跳节点。
可选的,在所述移动信息为邻居更新率和生存时间时,根据更新率阈值和时间阈值,优先级设置子模块1001将所述邻居节点的邻居更新率和生存时间分别与所述更新率阈值和时间阈值进行比较;根据比较结果,优先级设置子模块1001从所述邻居节点中选取小于更新率阈值或大于时间阈值的邻居节点,对选取的小于更新率阈值的邻居节点,按照邻居更新率从小到大的顺序,设置从高到低的优先级顺序;对选取的大于生存时间的邻居节点,按照生存时间从大到小的顺序,设置从高到低的优先级顺序;得到更新率优先级列表和生存时间优先级列表。根据所述优先级设置子模块1001得到的优先级列表,路由选择子模块1002对所述邻居节点进行路由选择。
所述路由选择的装置中的所述移动信息发送模块503向邻居节点发送移动信息的具体过程如下:
根据当前时刻和上一时刻邻居列表,通过获取上述两个邻居列表中变化的邻居节点总数以及邻居总数,更新率获取子模块1101获取本节点的邻居更新率;更新率发送子模块1102将所述更新率获取子模块1101获取的邻居更新率发送至邻居节点,使邻居节点根据本节点的移动信息进行路由选择。
本发明实施例提供的路由选择的装置,可以是AD HOC网络中的节点,该节点可以是任何具有通信功能的设备,例如无线终端、路由器、网关、服务器等。通过获取邻居节点的移动信息,进行路由选择,避免使用不稳定的邻居节点转发报文,克服现有技术中选取已离开网络的邻居节点转发报文,造成报文丢失的问题,保证了报文的可靠传输。
本发明实施例还提供了一种通信系统,包括至少两个节点,每个节点用于获取本节点的移动信息,并向邻居节点发送本节点的移动信息;每个节点还用于接收邻居节点的移动信息,根据所述邻居节点的移动信息进行路由选择。
本发明实施例提供的通信系统,通过获取邻居节点的移动信息,选择稳定的邻居节点转发报文,减少报文的丢失,提高了AD hoc网络报文传输的可靠性。
本领域普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。