CN104702503A - 网络路由方法和系统 - Google Patents
网络路由方法和系统 Download PDFInfo
- Publication number
- CN104702503A CN104702503A CN201510136413.7A CN201510136413A CN104702503A CN 104702503 A CN104702503 A CN 104702503A CN 201510136413 A CN201510136413 A CN 201510136413A CN 104702503 A CN104702503 A CN 104702503A
- Authority
- CN
- China
- Prior art keywords
- route
- message
- node
- network
- local node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
本发明公开了一种网络路由方法和系统,所述方法包括:接收网络节点在网络中广播的报文,其中,所述报文包括报文校验码和所述网络节点的节点信息,所述报文校验码为通过预设校验算法对所述网络节点的子网路由和外网路由计算所得的校验码;通过所述预设校验算法,对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成本地校验码;比较所述本地校验码与所述报文校验码是否一致;若不一致,则在网络中广播全同步请求报文,以请求所述网络节点广播包括所述网络节点的路由信息的全同步报文。实施本发明,本地校验码与报文校验码不一致时,在网络中广播全同步请求报文,可快速实现全网信息同步和达到全网收敛。
Description
【技术领域】
本发明涉及网络技术领域,特别是涉及一种网络路由方法和系统。
【背景技术】
目前的动态路由协议进行邻居路由交互主要通过单播确认机制,邻居间采用组播(广播)hello报文建立对等体后,每对邻居对等体间通过单播方式交换拓扑路由报文,需要回执、重发等确保邻居收到自己的报文,实现本节点和邻居节点的路由信息的同步,网络稳定后,只周期性发送组播(广播)hello报文。
Mesh网络的无线信道是广播信道,上述单播确认机制报文采用回执确认方式,确认包会增加路由开销,此外在网络拥塞情况下,若不能及时返回确认包,会引起大量重传,增加信道冲突几率,导致网络瘫痪,降低了链路通信质量。
【发明内容】
基于此,有必要针对现有的路由协议会增加路由开销和降低链路通信质量问题,提供一种网络路由方法和系统。
一种网络路由方法,包括以下步骤:
接收网络节点在网络中广播的报文,其中,所述报文包括报文校验码和所述网络节点的节点信息,所述报文校验码为通过预设校验算法对所述网络节点的子网路由和外网路由计算所得的校验码;
通过所述预设校验算法,对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成本地校验码;
比较所述本地校验码与所述报文校验码是否一致;
若不一致,则在网络中广播包括所述本地校验码、所述本地节点的节点信息和所述网络节点的节点信息的全同步请求报文,以请求所述网络节点广播包括所述网络节点的路由信息的全同步报文。
一种网络路由系统,包括:
报文接收模块,用于接收网络节点在网络中广播的报文,其中,所述报文包括报文校验码和所述网络节点的节点信息,所述报文校验码为通过预设校验算法对所述网络节点的子网路由和外网路由计算所得的校验码;
校验码模块,用于通过所述预设校验算法,对本地所存储的本地节点的外网路由和本地所存储的所述网络节点的子网路由进行校验计算,生成本地校验码;
比较模块,用于比较所述本地校验码与所述报文校验码是否一致;
同步请求模块,用于在所述本地校验码与所述报文校验码不一致时,在网络中广播包括所述本地校验码、所述本地节点的节点信息和所述网络节点的节点信息的全同步请求报文,以请求所述网络节点广播包括所述网络节点的路由信息的全同步报文。
上述网络路由方法和系统,接收网络节点在网络中广播的报文,通过预设校验算法对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成本地校验码;比较本地校验码与报文校验码是否一致;若不一致,在网络中广播包括所述本地校验码、所述本地节点的节点信息和所述网络节点的节点信息的全同步请求报文,以请求所述网络节点广播包括所述网络节点的路由信息的全同步报文,无需回执可快速实现全网路由同步和达到全网快速路由收敛。
一种网络路由方法,包括以下步骤:
若满足预设类型报文的发送条件,则通过预设校验算法对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成报文校验码;
获取所述本地节点的节点信息和与所述预设类型报文对应的报文信息;
生成包括所述报文校验码、所述本地节点的节点信息和所述报文信息的报文,并在网络中广播生成的报文,以使接收节点在根据接收节点的子网路由和外网路由计算出的校验码与所述报文校验码不一致时,在网络中广播全同步请求报文。
一种网络路由系统,包括:
校验码生成模块,用于在满足预设类型报文的发送条件时,通过预设校验算法对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成报文校验码;
信息获取模块,用于获取所述本地节点的节点信息和与所述预设类型报文对应的报文信息;
报文发送模块,用于生成包括所述报文校验码、所述本地节点的节点信息和所述报文信息的报文,并在网络中广播生成的报文,以使接收节点在根据接收节点的子网路由和外网路由计算出的校验码与所述报文校验码不一致时,在网络中广播全同步请求报文。
上述网络路由方法和系统,对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成报文校验码,获取所述本地节点的节点信息和与所述预设类型报文对应的报文信息,生成包括所述报文校验码、所述本地节点的节点信息和所述报文信息的报文,并在网络中广播生成的报文,以使接收节点在根据接收节点的子网路由和外网路由计算出的校验码与所述报文校验码不一致时,在网络中广播全同步请求报文,无需回执可快速实现全网路由同步和达到全网快速路由收敛。
【附图说明】
图1是本发明网络路由方法第一实施方式的流程示意图;
图2是本发明网络路由方法第二实施方式的流程示意图;
图3是本发明网络路由方法第三实施方式的流程示意图;
图4是本发明网络路由系统第一实施方式的结构示意图;
图5是本发明网络路由系统第二实施方式的结构示意图;
图6是本发明网络路由系统第三实施方式的结构示意图;
图7是本发明网络路由方法第四实施方式的流程示意图;
图8是本发明网络路由系统第四实施方式的结构示意图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
请参阅图1,图1是本发明的网络路由方法第一实施方式的流程示意图。
本实施方式的所述网络路由方法,可包括以下步骤:
步骤S101,接收网络节点在网络中广播的报文,其中,所述报文包括报文校验码和所述网络节点的节点信息,所述报文校验码为通过预设校验算法对所述网络节点的子网路由和外网路由计算所得的校验码。
步骤S102,通过所述预设校验算法,对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成本地校验码。
步骤S103,比较所述本地校验码与所述报文校验码是否一致。
步骤S104,若不一致,则在网络中广播包括所述本地校验码、所述本地节点的节点信息和所述网络节点的节点信息的全同步请求报文,以请求所述网络节点广播包括所述网络节点的路由信息的全同步报文。
本实施方式,接收网络节点在网络中广播的报文,通过预设校验算法对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成本地校验码;比较本地校验码与报文校验码是否一致;若不一致,在网络中广播包括所述本地校验码、所述本地节点的节点信息和所述网络节点的节点信息的全同步请求报文,以请求所述网络节点广播包括所述网络节点的路由信息的全同步报文,无需回执可快速实现全网路由同步和达到全网快速路由收敛。
其中,对于步骤S101,优选地,所述报文包括握手报文、全同步请求报文、全同步报文、子网更新报文和外网更新报文中的至少一种报文。所述网络可为有线网络或无线网络。
优选地,当所述网络为无线网络时,所述报文还可包括所述网络节点的邻居信息。所述邻居信息包括所述网络节点的邻居的节点标识和/或所述邻居的路由信息。
优选地,若所述网络节点没有邻居节点,则所述报文中所述网络节点的邻居信息为空白。所述报文校验码为通过预设校验算法对所述网络节点的自身信息计算所得的校验码。
进一步地,所述网络可为Mesh网络(无线网格网络)。所述网络节点为网络中的任意一个节点。网络节点在网络中广播的报文时,可将报文发送到无线接口,通过无线接口向网络中广播。
在一个实施例中,在接收网络节点在网络中广播的报文的步骤之后,还包括以下步骤:
根据所述网络节点的节点信息和本地所存储的所述本地节点的节点信息,判断所述网络节点与所述本地节点间是否为双向通道。
若是双向通道,则通过所述预设校验算法对本地所存储的所述本地节点的外网路由和本地所存储的所述网络节点的子网路由进行校验计算,生成本地校验码。
若不是双向通道,则生成用于触发所述本地节点在网络中广播握手报文的触发信息,其中,所述握手报文包括所述本地校验码、所述本地节点的节点信息以及所述本地节点的邻居信息。
本实施例,通过判断所述网络节点与所述本地节点间是否是双向通道,可更灵活快速的实现节点间的路由扩散,实现全网路由同步和达到全网快速路由收敛。
本实施例所述的处理步骤与握手报文的处理步骤一致。
优选地,所述本地节点的节点信息可为所述本地节点的节点标识。当所述本地节点与所述网络节点相互存在于对方的邻居列表中时,所述本地节点与所述网络节点间为双向通道(双向链路)。
在另一个实施例中,根据所述网络节点的节点信息和本地所存储的所述本地节点的节点信息,判断所述网络节点与所述本地节点间是否为双向通道的步骤包括以下步骤:
从本地所存储的所述本地节点的邻居信息中查找所述网络节点的节点信息;
若查找到所述网络节点的节点信息,则判断所述报文中是否包括所述网络节点的邻居信息;
若包括所述网络节点的邻居信息,则从所述网络节点的邻居信息中查找本地节点的节点信息;
若查找到所述本地节点的节点信息,则判定所述网络节点与所述本地节点间为双向通道。
在其他实施例中,在根据所述网络节点的节点信息和本地所存储的所述本地节点的节点信息,判断所述网络节点与所述本地节点间是否为双向通道的步骤之后,还包括以下步骤:
若所述网络节点与所述本地节点间为双向通道,则查找用于标识所述网络节点与所述本地节点间为首次建立双向通道的首次双通道标识。
若查找到,则生成用于触发所述本地节点在网络中广播全同步报文的触发信息,其中,所述本地节点广播的全同步报文包括所述本地校验码、所述本地节点的节点信息、所述本地节点的邻居信息以及所述本地节点的所有路由。
进一步地,可预设本地节点的各邻居的定时器,定时检测每个邻居的定时器,如果发现该定时器的数值大于3倍的报文接收间隔,则进行邻居丢失处理,执行函数WIR_Nei_Lost(port,NeiID)
WIR_Nei_Lost(port,NeiID)函数执行以下步骤:
清除该邻居的邻居表(neiNei),和该邻居的路由表(neiRoute)。
删除本地节点的子网路由表(routeTbl)中以该邻居ID(NeiID)为下一跳的目标ID(DstID),并将这些丢失的路由记录下来(保存在结构体lostDstRoute中)。
定时器置为0,标志位Need_ReNew_RouteTbl_flag置为1;
Need_ReNew_RouteTbl_flag:该标志位表示,需要进行子网路由的重新计算。
time_ReNew_RouteTbl_timer:该定时器表示,邻居丢失后,不是立即就计算路由,而是等待该定时器超时后,才再进行路由的计算。该定时器为5秒。
定时处理中,判断标志位Need_ReNew_RouteTbl_flag是否为1,并查看定时器time_ReNew_RouteTbl_timer是否超时,若超时,则需要进行丢失路由的重新计算过程。
依次在lostDstRoute搜索丢失的目标id;
与子网内路由计算一致,搜索所有邻居的邻居表(neiRoute),查找是否存在到达目标id的无环路的路由;
如果能找到,则将找到的路由加入到RouteTbl子网路由表中;也是搜索跳数最小的,跳数也可能等于0xff,意味着不可达的节点。将该条路由标志为需要扩散更新的状态,并准备发送标识为2的子网路由报文。标识为2的子网路由报文是增量的子网路由报文,即只会在子网路由报文中发送本节点刚更新过的路由信息;
如果没有找到,则需要将该id加入到Lost_St_Update全局变量中,待后续步骤6中需要统一将保存在Lost_St_Update中的丢失路由信息扩散告知给邻居。
循环执行上述步骤,直到完成对lostDstRoute全局变量中所有丢失节点的路由重计算。
发送标识为3的子网更新报文,标识为3的子网更新报文包括lostDstRoute中的所有节点,子网更新报文中的信息包括{dstid,addr,mask,hopcnt,lastid},lostDstRoute中保存的只是id信息,此时将addr默认置为0,mask置为0,lastid置为0,hopcnt置为0xff;标识为3的子网更新报文还包括RouteTbl中标识为需要更新的路由条目。即标识为3的子网更新报文,包括增量的子网路由信息和丢失的路由信息,丢失的路由信息只有dstid,和hopcnt(0xff)这两个关键信息;
将标志位Need_ReNew_RouteTbl_flag和定时器置为0,结束。
其中,标识为1的子网路由报文表示全部的子网路由;标识为2的子网路由报文表示增量的子网路由;标识为3的子网路由报文表示增量的子网路由+丢失的路由。
对于步骤S102,所述预设校验算法可为码距校验算法、奇偶检验算法、海明校验算法或循环冗余校验算法。
优选地,通过所述预设校验算法,对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成本地校验码的步骤包括以下步骤:
获取所述本地节点的外网路由的第一身份标识和所述网络节点的子网路由的第二身份标识。
根据所述第一身份标识的数值大小,将所述本地节点的外网路由进行排序,生成第一路由序列。
根据所述第二身份标识的数值大小,将所述网络节点的子网路由进行排序,生成第二路由序列。
通过所述预设校验算法,对所述第一路由序列和所述第二路由序列进行校验计算,生成所述本地校验码。
在其他实施方式中,还可通过本领域惯用的其他技术手段对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成本地校验码。
优选地,子网路由信息可包括子网路由表。
在一个实施例中,若所述报文为子网更新报文,所述报文还包括所述网络节点的子网路由信息,在通过所述预设校验算法,对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成本地校验码的步骤之前,还包括以下步骤:
分别对应所述报文的各子网路由信息读取目标设备的掩码、目标设备的身份标识、目标设备的主IP、路由总跳数以及路由倒数第二跳。
分别判断对应各子网路由信息读取的路由总跳数是否等于预设最大跳数。
若对应任一子网路由信息读取的路由总跳数不等于预设最大跳数,则将所述任一子网路由信息更新到本地所述存储的所述网络节点的子网路由。
若对应任一子网路由信息读取的路由总跳数等于预设最大跳数,则从本地所存储的所述网络节点的子网路由和本地所存储的所述本地节点的子网路由中删除所述任一子网路由信息对应的路由。
通过预设的路由算法对本地所存储的本地节点的邻居的子网路由进行路由计算,生成目的地为所述目标设备的最优路径。
缓存对应所述任一子网路由信息读取的目标设备的掩码、目标设备的身份标识和目标设备的主IP。
分别以缓存的目标设备的掩码、目标设备的身份标识和目标设备的主IP对应的各目标设备为目的地,通过所述预设的路由算法对本地所存储的本地节点的邻居的子网路由进行路由计算,生成目的地为各目标设备的最优路径。
本实施例,可在接收到子网更新报文后,快速更新本地节点的路由,实现全网路由同步和达到全网快速路由收敛。
优选地,在对应任一子网路由信息读取的路由总跳数等于预设最大跳数时,若本地所存储的本地节点的邻居信息中不包括到达对应任一子网路由信息读取的目标设备的路由,则将所述任一子网路由信息保存到所述邻居信息中,轮询所有邻居的邻居表,查找到达所述目标设备的无环路且跳数最小的最优路径。若查找到,则查询本地节点的子网路由中是否已存在到达所述目标设备的路由,若存在,则在子网路由中的该条路由有效时,比较该条路由与最优路由的跳数,若最优路由的跳数小于该条路由的跳数或本地节点的子网路由中不存在到达所述目标设备的路由时,则将最优路由替换该条路由,并生成用于触发所述本地节点在网络中广播子网更新报文的触发信息,其中,所述本地节点广播的子网更新报文包括所述本地校验码、所述本地节点的节点信息、所述本地节点的邻居信息以及所述最优路由。
优选地,通过预设的路由算法对本地所存储的本地节点的邻居的子网路由进行路由计算,生成目的地为所述目标设备的最优路径的步骤包括以下步骤:
根据所述目标设备的身份标识,遍历各邻居的子网路由,获取各邻居到达所述目标设备的路由,并从获取到的路由中选取跳数最少且无环路的路由;
若选取到,则将选取到的路由作为到达所述目标设备的最优路由;
判断所述最优路由的跳数是否等于预设最大跳数;
若否,则将所述最优路由添加到所述本地节点的路由中,并生成用于触发所述本地节点在网络中广播子网更新报文的触发信息,其中,所述本地节点广播的子网更新报文包括所述本地校验码、所述本地节点的节点信息、所述本地节点的邻居信息以及所述最优路由。
进一步地,通过所述预设的路由算法对本地所存储的本地节点的邻居的子网路由进行路由计算,生成目的地为各目标设备的最优路径的步骤包括以下步骤:
根据每个目标设备的身份标识,遍历各邻居的子网路由,获取各邻居到达所述每个目标设备的路由,并从获取到的路由中选取跳数最少且无环路的路由;
若未选取到,则从本地所存储的本地节点的子网路由中删除到达所述每个目标设备的路由;
若选取到,则将选取到的路由作为到达所述目标设备的最优路由;
从本地所存储的本地节点的路由中查找到达所述目标设备的路由;
若查找到,则比较查找到的路由与所述最优路由是否一致;
若不一致,则将所述最优路由添加到所述本地节点的路由中,并生成用于触发所述本地节点在网络中广播子网更新报文的触发信息,其中,所述本地节点广播的子网更新报文包括所述本地校验码、所述本地节点的节点信息、所述本地节点的邻居信息以及所述最优路由。
更进一步地,可通过递归环路消除算法,根据每个路由条目中都携带的倒数第二跳信息,获取无环路的路由。
所述从获取到的路由中选取跳数最少且无环路的路由的步骤包括如下步骤:
步骤1:从获取到的任意一条路由route={dstid、hopcnt、lastid、dstaddr、mask}中选取跳数(hopcnt)。
步骤2:将跳数(hopcnt)减1,并找出该条路由的倒数第二跳的(lastid)倒数第二跳节点信息lastid_tmp;将lastid和lastid_tmp保存在路径轨迹参量中。
步骤3:查看路径轨迹参量,是否有相同的节点出现,如果有,则该路由有环路;如果没有,则该条路由没有环路。
步骤4:重复步骤2、3,直到跳数为0且没有环路。则认为该条路由为到达目标的可选路径。
步骤5:搜索完获取到的所有路由的路由条目,选择出一条跳数最小的无环路的路由作为到达目标设备的最优路径保存到子网路由表(RouteTbl)中。
在另一个实施例中,若所述报文为外网更新报文,所述报文还包括所述网络节点的外网路由信息,在通过所述预设校验算法,对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成本地校验码的步骤之前,还包括以下步骤:
分别对应所述报文的各外网路由信息读取目标设备的掩码、目标设备的身份标识、目标设备的地址、路由开销、注入节点、路由总跳数以及路由倒数第二跳。
分别从本地所存储的所述本地节点的外网路由查找对应所述报文的各外网路由信息读取的注入节点。
若查找到对应任一外网路由信息读取的注入节点,则判断所述本地节点的外网路由中所述注入节点对应的网络与对应所述任一外网路由信息读取的目标设备的掩码和目标设备的地址是否一致。
若一致,则生成用于触发所述本地节点在网络中广播外网更新报文的触发信息,其中,所述本地节点广播的外网更新报文包括所述本地校验码、所述本地节点的节点信息、所述本地节点的邻居信息以及所述任一外网路由信息。
若未查找到,判断对应所述任一外网路由信息读取的路由开销是否为预设的最大路由开销。
若否,则缓存所述任一外网路由信息,生成用于触发所述本地节点在网络中广播外网更新报文的触发信息,其中,所述本地节点广播的外网更新报文包括所述本地校验码、所述本地节点的节点信息、所述本地节点的邻居信息以及所述任一外网路由信息。
若是,则放弃所述任一外网路由信息。
本实施例,可在接收到外网更新报文后,快速更新本地节点的路由,实现全网路由同步和达到全网快速路由收敛。
优选地,通过子网更新报文收集到本地节点的邻居的路由信息(NeiRoute),通过外网更新报文获得了本地节点所在子网其它节点可达的外网路由信息(ExRoute);对于本地节点,一跳可达的双向邻居被直接加入到子网路由表(RouteTbl);对于本子网其它节点的路由获得,则是通过经典的距离矢量路径算法并辅以递归无环路来获得到达多跳节点的路由;在得到了邻居的路由信息后(NeiRoute),本地节点通过邻居也可达邻居的所有目标路由,只需根据递归环路消除算法判断是否有环路。有环路,则忽略该目标路由;无环路,则将该路由加入到子网路由表(RouteTbl)中。
在其他实施例中,接收到的报文为全同步路由报文时,所述报文还包括所述网络节点的子网路由信息和外网路由信息,在通过所述预设校验算法,对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成本地校验码的步骤之前,还包括以下步骤:
将本地所存储的本地节点的邻居(neiID)的路由表(neiRoute)中所有的路由条目的状态都置为删除DEL态;
对所述报文中的子网路由信息按照以上所述的子网更新报文的处理方式,进行处理;查找该邻居(neiID)的路由表(neiRoute)中状态仍然为DEL态的路由,将这些DEL状态的路由条目的跳数置为0xff,依次再按照子网路由报文的处理方式,进行处理;
对外网路由信息的处理如下:
步骤11,如果datalen=0,即全同步报文中没有携带任何的外网路由信息,则将以neiID为注入点的外网路由置为删除状态;所有到达注入点的下一跳为neiID的外网路由也置为DEL删除状态。其它为UN_DEAL态;继续步骤12。如果datalen!=0,则转到步骤13。
步骤12,搜索本节点所有exRoute的外网路由信息,如果该条外网路由标识为DEL状态,则将该条目的metric值记录为0xffffffff,将所有的DEL状态外网路由条目逐一根据以上所述的外网更新报文的处理流程处理;跳转到步骤15;
步骤13,Datalen!=0,则将以neiID为注入点的外部路由置为删除状态;所有到达注入点的下一跳为neiID的外部路由也置为DEL删除状态。若该条外网路由的注入节点为neiID,则根据以上所述的外网更新报文的处理流程处理,若该条外网路由的注入节点不是neiID,则在本节节点与注入节点不是双向通道,且本地节点到注入节点的路由的下一跳是neiID时,根据以上所述的外网更新报文的处理流程处理。跳转到步骤14;
步骤14,搜索本节点所有exRoute的外网路由信息,如果该条外网路由标识为DEL状态,则将该外网路由的metric值记录为0xffffffff,将所有的DEL状态外网路由条目逐一根据以上所述外网更新报文的处理流程处理步骤15,结束。
对于步骤S103,优选地,若所述本地校验码与所述报文校验码相同,则判定所述本地校验码与所述报文校验码一致。
对于步骤S104,可预设同步请求定时器,在同步请求定时器到期时则满足预设的同步请求发送时间。可在所述同步请求的报文信息中添加所述网络节点(需要广播全同步报文的节点)的标识,以使网络中的各节点判断自身是否需要广播全同步报文。
本实施方式中,所述触发信息可为与各报文对应的定时条件,各报文的功用如下:
握手报文可随时感知邻居的存在或者消失,可以将一跳可达的双向邻居直接加入子网路由表中RouteTbl;邻居消失后,等待预设时间后重新对以邻居为下一跳的目标id进行路由的重新计算;如果发现有丢失的路由,则将该丢失路由保存下来,待定时到达后,发送子网路由报文时,将丢失的路由以跳数为0xff的特殊标记扩散出去;
子网更新报文,本节点在加入或删除路由时都会发送子网路由报文告知给周围的邻居,以供邻居进行目标id路由的重新计算;
外部更新报文,在综合路由模块计算出最优路由(该最优路由来源为port)后,该最优路由会告知给其它开启的端口作为本地外部路由保存到localExRoute,随后该本地外部路由条目会通过外部路由报文发送给本子网的其它邻居节点,达到扩散给全部子网节点的目的,这些子网节点会将收到的该外部路由报文保存在ExRoute中。若综合路由模块通过计算删除了某条路由,也会扩散给其它端口的localExRoute,metric值会被标记为0xffffffff;
全同步报文,包括了全部的子网路由报文和外部路由报文。
请参阅图2,图2是本发明的网络路由方法的第二实施方式的流程示意图。
本实施方式的所述网络路由方法与第一实施方式的区别在于:若所述报文为全同步请求报文,所述报文还包括需要广播全同步报文的网络节点的节点信息,在通过所述预设校验算法,对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成本地校验码的步骤之前,还包括以下步骤:
步骤S201,查询所述需要广播全同步报文的网络节点的节点信息中是否包括所述本地节点的节点信息。
步骤S202,若包括,则生成用于触发所述本地节点在网络中广播全同步报文的触发信息,所述本地节点广播的全同步报文包括所述本地校验码、所述本地节点的节点信息、所述本地节点的邻居信息以及所述本地节点的路由信息。
本实施方式,可快速判定本节点是否需要发送全同步报文,实现全网路由同步和达到全网快速路由收敛。
请参阅图3,图3是本发明的网络路由方法的第三实施方式的流程示意图。
本实施方式的所述网络路由方法与第一实施方式的区别在于:所述在网络中广播全同步请求报文的步骤之后,还包括以下步骤:
步骤S301,从本地所存储的所述本地节点的子网路由中分别读取各可达路由为第一路由,其中,所述第一路由包括目标设备的第一掩码、目标设备的第一身份标识、目标设备的第一地址、第一路由开销、下一跳身份标识、第一路由总跳数以及第一路由倒数第二跳。
步骤S302,从本地所存储的所述本地节点的外网路由中查找与所述目标设备的地址和所述目标设备的掩码一致的可达路由为第二路由,所述第二路由包括目标设备的第二掩码、目标设备的第二身份标识、目标设备的第二地址、第二路由开销、第二注入节点、第二路由总跳数以及第二路由倒数第二跳。
步骤S303,判断所述第二注入节点是否为所述本地节点所在子网的可达节点。
步骤S304,若是,则计算所述本地节点到达所述第二注入节点的开销为内网开销,并对所述内网开销与所述第二路由开销求和,生成所述注入节点到达与所述目标设备的地址和所述目标设备的掩码一致的目标网段的路径开销。
步骤S305,若所述路径开销大于或等于所述第一路由开销,则将所述第一路由存储为备选最优路由,若所述路径开销小于所述第一路由开销,则将所述第二路由存储为备选最优路由。
步骤S306,将存储的各备选最优路由向路由综合端发送,以使路由综合端从接收的各备选最优路由中选取开销最小的为最终的最优路由,并在网络中广播包括所述最终的最优路由的报文。
本实施方式,可快速获取本地节点所在子网到达目标设备的最优路由,实现全网路由同步和达到全网快速路由收敛。
优选地,所述开销、所述内网开销、所述路径开销、所属第一路由开销和所述第二路由开销可为跳数与单位路由开销的乘积,单位路由开销为108除以本地节点所在子网的带宽。
优选地,若所述第二注入节点不是所述子网的可达节点,则不处理所述第二路由,选取一个第二路由,返回步骤S303。
本实施方式所述的综合端可从各个网络节点发送的备选最优路由中选取出最终的最优路由,并将所述最终的最优路由扩散到除所述最终的最优路由所在子网外的其他子网的网络节点,并使各网络节点通过外网更新报文在网络中广播所述最终的最优路由,实现全网路由同步和达到全网快速路由收敛。
请参阅图4,图4是本发明的网络路由系统第一实施方式的结构示意图。
本实施方式的所述网络路由系统,可包括报文接收模块1010、校验码模块1020、比较模块1030和同步请求模块1040,其中:
报文接收模块1010,用于接收网络节点在网络中广播的报文,其中,所述报文包括报文校验码和所述网络节点的节点信息,所述报文校验码为通过预设校验算法对所述网络节点的子网路由和外网路由计算所得的校验码。
校验码模块1020,用于通过所述预设校验算法,对本地所存储的本地节点的外网路由和本地所存储的所述网络节点的子网路由进行校验计算,生成本地校验码。
比较模块1030,用于比较所述本地校验码与所述报文校验码是否一致。
同步请求模块1040,用于在所述本地校验码与所述报文校验码不一致时,在网络中广播包括所述本地校验码、所述本地节点的节点信息和所述网络节点的节点信息的全同步请求报文,以请求所述网络节点广播包括所述网络节点的路由信息的全同步报文。
本实施方式,接收网络节点在网络中广播的报文,通过预设校验算法对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成本地校验码;比较本地校验码与报文校验码是否一致;若不一致,在网络中广播包括所述本地校验码、所述本地节点的节点信息和所述网络节点的节点信息的全同步请求报文,以请求所述网络节点广播包括所述网络节点的路由信息的全同步报文,无需回执可快速实现全网路由同步和达到全网快速路由收敛。
本实施方式所述网络路由系统与图1至3所述的网络路由方法一一对应,各技术特征一致,在此不再赘述。
请参阅图5,图5是本发明的网络路由系统的第二实施方式的结构示意图。
本实施方式的所述网络路由系统与第一实施方式的区别在于:还包括全同步请求报文处理模块1050,用于:
查询所述需要广播全同步报文的网络节点的节点信息中是否包括所述本地节点的节点信息。
若包括,则生成用于触发所述本地节点在网络中广播全同步报文的触发信息,所述本地节点广播的全同步报文包括所述本地校验码、所述本地节点的节点信息、所述本地节点的邻居信息以及所述本地节点的路由信息。
本实施方式,可快速判定本节点是否需要发送全同步报文,实现全网路由同步和达到全网快速路由收敛。
请参阅图6,图6是本发明的网络路由系统的第三实施方式的结构示意图。
本实施方式的所述网络路由系统与第一实施方式的区别在于:子网最优路由处理模块1060,子网最优处理模块1060还包括第一路由读取模块1061、第二路由查找模块1062、注入节点判断模块1063、路径开销生成模块1064、备选最优路由模块1065和最终最优路由模块1066,其中:
第一路由读取模块1061,用于从本地所存储的所述本地节点的子网路由中分别读取各可达路由为第一路由,其中,所述第一路由包括目标设备的第一掩码、目标设备的第一身份标识、目标设备的第一地址、第一路由开销、下一跳身份标识、第一路由总跳数以及第一路由倒数第二跳。
第二路由查找模块1062,用于从本地所存储的所述本地节点的外网路由中查找与所述目标设备的地址和所述目标设备的掩码一致的可达路由为第二路由,所述第二路由包括目标设备的第二掩码、目标设备的第二身份标识、目标设备的第二地址、第二路由开销、第二注入节点、第二路由总跳数以及第二路由倒数第二跳。
注入节点判断模块1063,用于判断所述第二注入节点是否为所述本地节点所在子网的可达节点。
路径开销生成模块10644,用于在所述第二注入节点为所述子网的可达节点时,计算所述本地节点到达所述第二注入节点的开销为内网开销,并对所述内网开销与所述第二路由开销求和,生成所述注入节点到达与所述目标设备的地址和所述目标设备的掩码一致的目标网段的路径开销。
备选最优路由模块1065,用于若所述路径开销大于或等于所述第一路由开销,则将所述第一路由存储为备选最优路由,若所述路径开销小于所述第一路由开销,则将所述第二路由存储为备选最优路由。
最终最优路由模块1066,用于将存储的各备选最优路由向路由综合端发送,以使路由综合端从接收的各备选最优路由中选取开销最小的为最终的最优路由,并在网络中广播包括所述最终的最优路由的报文。
本实施方式,可快速获取本地节点所在子网到达目标设备的最优路由,实现全网路由同步和达到全网快速路由收敛。
优选地,所述开销、所述内网开销、所述路径开销、所属第一路由开销和所述第二路由开销可为跳数与单位路由开销的乘积,单位路由开销为108除以本地节点所在子网的带宽。
请参阅图7,图7是本发明的网络路由方法第四实施方式的流程示意图。
本实施方式的所述网络路由方法,可包括以下步骤:
步骤S701,若满足预设类型报文的发送条件,则通过预设校验算法对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成报文校验码。
步骤S702,获取所述本地节点的节点信息和与所述预设类型报文对应的报文信息。
步骤S703,生成包括所述报文校验码、所述本地节点的节点信息和所述报文信息的报文,并在网络中广播生成的报文,以使接收节点在根据接收节点的子网路由和外网路由计算出的校验码与所述报文校验码不一致时,在网络中广播全同步请求报文。
本实施方式,对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成报文校验码,获取所述本地节点的节点信息和与所述预设类型报文对应的报文信息,生成包括所述报文校验码、所述本地节点的节点信息和所述报文信息的报文,并在网络中广播生成的报文,以使接收节点在根据接收节点的子网路由和外网路由计算出的校验码与所述报文校验码不一致时,在网络中广播全同步请求报文,无需回执可快速实现全网路由同步和达到全网快速路由收敛。
本实施方式所述网络路由方法与图1至图3所述的网络路由方法相应,为报文发送端的网络节点的运行步骤。
对于步骤S701,优选地,所述预设类型报文包括握手报文、全同步报文、全同步请求报文、子网更新报文和外网更新报文。
在一个实施例中,在通过预设校验算法对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成报文校验码的步骤之前,还包括以下步骤:
检测用于触发本地节点在网络中广播全同步报文的第一触发信息。
若检测到所述第一触发信息,则检测用于触发所述本地节点在网络中广播子网更新报文的第二触发信息和用于触发所述本地节点在网络中广播外网更新报文的第三触发信息。
若检测到所述第二触发信息,则判定满足所述子网更新报文的发送条件。
若检测到所述第三触发信息,则判定满足所述外网更新报文的发送条件。
若未检测到所述第二触发信息和所述第三触发信息,则判定满足所述全同步报文的发送条件。
优选地,以上触发信息可为与所述预设类型报文对应定时器和报文发送标识(如flag为1)。若检测到本地节点的路由信息发生变化或接收到相应的请求报文,即可生成相应的触发信息。
进一步地,在检测到第三触发信息或第二触发信息后,还需检测外网更新报文的定时器或子网更新报文的定时器是否到期,若到期,判定满足所述外网更新报文的发送条件或满足所述外网更新报文的发送条件。
更进一步地,在通过预设校验算法对本地邻居信息以及本地邻居的路由信息进行计算,生成校验码的步骤之前包括以下步骤:
检测所述预设类型报文的定时器是否到达预设时间。
若是,则检测用于触发所述预设类型报文的触发信息,若检测到,则通过预设校验算法对本地节点的邻居信息以及所述本地节点的邻居的路由信息进行计算,生成校验码。
更进一步地,可通过检测信道带宽或子网内节点个数或者邻居的变化规律(节点运行速录等),调节报文的定时器(发送时间),具体计算如以下公式:
Tinternal=Tbase(1+Y/4);
其中,Y为子网内节点个数,Tinternal为路由报文发送间隔时间,Thellbase为初始基础发送间隔时间。
对于步骤S702,当所述网络为无线网络时,所述报文信息还可包括所述网络节点的邻居信息。所述邻居信息包括所述网络节点的邻居的节点标识和/或所述邻居的路由信息。还可包括子网更新报文中的子网路由信息、外网更新报文中的外网路由信息、全同步报文中的子网路由信息和外网路由信息或全同步请求报文中的需要广播全同步报文的网络节点的节点信息。
优选地,若所述网络节点没有邻居节点,则所述报文中所述网络节点的邻居信息为空白。所述报文校验码为通过预设校验算法对所述网络节点的自身信息计算所得的校验码。
对于步骤S703,本地节点若处于网络初始化状态,检测到相应的触发信息(flag为1)后,生成所述预设类型的报文,只能在所述预设类型报文的定时器到时后才能发送所述预设类型报文。本地节点若处于网络稳定状态,检测到相应的触发信息(flag为1)后,生成所述预设类型的报文,可立即发送所述预设类型报文。
若所述网络节点与所述本地节点间首次建立双向通道,则所述网络节点广播的全同步报文的报文信息包括所述网络节点的全部路由信息。若所述网络节点与所述本地节点间为双向通道,但不是首次建立双向通道,则所述网络节点以增量更新方式广播全同步报文,所广播的全同步报文的报文信息包括所述网络节点的变化的路由信息。
优选地,本地节点处于网络初始化状态时,握手报文的发送时间间隔为15s,本地节点处于网络稳定状态时,握手报文的发送时间间隔为30s。
请参阅图8,图8是本发明的网络路由系统第四实施方式的结构示意图。
本实施方式的所述网络路由系统,可包括校验码生成模块2010、信息获取模块2020和报文发送模块2030,其中:
校验码生成模块2110,用于在满足预设类型报文的发送条件时,通过预设校验算法对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成报文校验码。
信息获取模块2020,用于获取所述本地节点的节点信息和与所述预设类型报文对应的报文信息。
报文发送模块2030,用于生成包括所述报文校验码、所述本地节点的节点信息和所述报文信息的报文,并在网络中广播生成的报文,以使接收节点在根据接收节点的子网路由和外网路由计算出的校验码与所述报文校验码不一致时,在网络中广播全同步请求报文。
本实施方式,对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成报文校验码,获取所述本地节点的节点信息和与所述预设类型报文对应的报文信息,生成包括所述报文校验码、所述本地节点的节点信息和所述报文信息的报文,并在网络中广播生成的报文,以使接收节点在根据接收节点的子网路由和外网路由计算出的校验码与所述报文校验码不一致时,在网络中广播全同步请求报文,无需回执可快速实现全网路由同步和达到全网快速路由收敛。
本实施方式所述的网络路由系统与图7所示的网络路由方法一一对应,技术特征一致,在此不再赘述。
本发明的网络中每个网络节点即可为报文发送端也可为报文接收端,每个网络节点都可运行图1、图2、图3、图7中任意一项所述的网络路由方法,每个网络节点也均可部署图4、图5、图6、图8中任意一项所述的网络路由系统。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (16)
1.一种网络路由方法,其特征在于,包括以下步骤:
接收网络节点在网络中广播的报文,其中,所述报文包括报文校验码和所述网络节点的节点信息,所述报文校验码为通过预设校验算法对所述网络节点的子网路由和外网路由计算所得的校验码;
通过所述预设校验算法,对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成本地校验码;
比较所述本地校验码与所述报文校验码是否一致;
若不一致,则在网络中广播包括所述本地校验码、所述本地节点的节点信息和所述网络节点的节点信息的全同步请求报文,以请求所述网络节点广播包括所述网络节点的路由信息的全同步报文。
2.根据权利要求1所述的网络路由方法,其特征在于,在接收网络节点在网络中广播的报文的步骤之后,还包括以下步骤:
根据所述网络节点的节点信息和本地所存储的所述本地节点的节点信息,判断所述网络节点与所述本地节点间是否为双向通道;
若是双向通道,则通过所述预设校验算法对本地所存储的所述本地节点的外网路由和本地所存储的所述网络节点的子网路由进行校验计算,生成本地校验码;
若不是双向通道,则生成用于触发所述本地节点在网络中广播握手报文的触发信息,其中,所述握手报文包括所述本地校验码、所述本地节点的节点信息以及所述本地节点的邻居信息。
3.根据权利要求2所述的网络路由方法,其特征在于,根据所述网络节点的节点信息和本地所存储的所述本地节点的节点信息,判断所述网络节点与所述本地节点间是否为双向通道的步骤包括以下步骤:
从本地所存储的所述本地节点的邻居信息中查找所述网络节点的节点信息;
若查找到所述网络节点的节点信息,则判断所述报文中是否包括所述网络节点的邻居信息;
若包括所述网络节点的邻居信息,则从所述网络节点的邻居信息中查找本地节点的节点信息;
若查找到所述本地节点的节点信息,则判定所述网络节点与所述本地节点间为双向通道。
4.根据权利要求2所述的网络路由方法,其特征在于,在根据所述网络节点的节点信息和本地所存储的所述本地节点的节点信息,判断所述网络节点与所述本地节点间是否为双向通道的步骤之后,还包括以下步骤:
若所述网络节点与所述本地节点间为双向通道,则查找用于标识所述网络节点与所述本地节点间为首次建立双向通道的首次双通道标识;
若查找到,则生成用于触发所述本地节点在网络中广播全同步报文的触发信息,其中,所述本地节点广播的全同步报文包括所述本地校验码、所述本地节点的节点信息、所述本地节点的邻居信息以及所述本地节点的所有路由。
5.根据权利要求1所述的网络路由方法,其特征在于,通过所述预设校验算法,对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成本地校验码的步骤包括以下步骤:
获取所述本地节点的外网路由的第一身份标识和所述网络节点的子网路由的第二身份标识;
根据所述第一身份标识的数值大小,将所述本地节点的外网路由进行排序,生成第一路由序列;
根据所述第二身份标识的数值大小,将所述网络节点的子网路由进行排序,生成第二路由序列;
通过所述预设校验算法,对所述第一路由序列和所述第二路由序列进行校验计算,生成所述本地校验码。
6.根据权利要求1所述的网络路由方法,其特征在于,若所述报文为子网更新报文,所述报文还包括所述网络节点的子网路由信息,在通过所述预设校验算法,对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成本地校验码的步骤之前,还包括以下步骤:
分别对应所述报文的各子网路由信息读取目标设备的掩码、目标设备的身份标识、目标设备的主IP、路由总跳数以及路由倒数第二跳;
分别判断对应各子网路由信息读取的路由总跳数是否等于预设最大跳数;
若对应任一子网路由信息读取的路由总跳数不等于预设最大跳数,则将所述任一子网路由信息更新到本地所述存储的所述网络节点的子网路由;
若对应任一子网路由信息读取的路由总跳数等于预设最大跳数,则从本地所存储的所述网络节点的子网路由和本地所存储的所述本地节点的子网路由中删除所述任一子网路由信息对应的路由;
通过预设的路由算法对本地所存储的本地节点的邻居的子网路由进行路由计算,生成目的地为所述目标设备的最优路径;
缓存对应所述任一子网路由信息读取的目标设备的掩码、目标设备的身份标识和目标设备的主IP;
分别以缓存的目标设备的掩码、目标设备的身份标识和目标设备的主IP对应的各目标设备为目的地,通过所述预设的路由算法对本地所存储的本地节点的邻居的子网路由进行路由计算,生成目的地为各目标设备的最优路径。
7.根据权利要求6所述的网络路由方法,其特征在于,通过预设的路由算法对本地所存储的本地节点的邻居的子网路由进行路由计算,生成目的地为所述目标设备的最优路径的步骤包括以下步骤:
根据所述目标设备的身份标识,遍历各邻居的子网路由,获取各邻居到达所述目标设备的路由,并从获取到的路由中选取跳数最少且无环路的路由;
若选取到,则将选取到的路由作为到达所述目标设备的最优路由;
判断所述最优路由的跳数是否等于预设最大跳数;
若否,则将所述最优路由添加到所述本地节点的路由中,并生成用于触发所述本地节点在网络中广播子网更新报文的触发信息,其中,所述本地节点广播的子网更新报文包括所述本地校验码、所述本地节点的节点信息、所述本地节点的邻居信息以及所述最优路由。
8.根据权利要求6所述的网络路由方法,其特征在于,通过所述预设的路由算法对本地所存储的本地节点的邻居的子网路由进行路由计算,生成目的地为各目标设备的最优路径的步骤包括以下步骤:
根据每个目标设备的身份标识,遍历各邻居的子网路由,获取各邻居到达所述每个目标设备的路由,并从获取到的路由中选取跳数最少且无环路的路由;
若未选取到,则从本地所存储的本地节点的子网路由中删除到达所述每个目标设备的路由;
若选取到,则将选取到的路由作为到达所述目标设备的最优路由;
从本地所存储的本地节点的路由中查找到达所述目标设备的路由;
若查找到,则比较查找到的路由与所述最优路由是否一致;
若不一致,则将所述最优路由添加到所述本地节点的路由中,并生成用于触发所述本地节点在网络中广播子网更新报文的触发信息,其中,所述本地节点广播的子网更新报文包括所述本地校验码、所述本地节点的节点信息、所述本地节点的邻居信息以及所述最优路由。
9.根据权利要求1所述的网络路由方法,其特征在于,若所述报文为外网更新报文,所述报文还包括所述网络节点的外网路由信息,在通过所述预设校验算法,对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成本地校验码的步骤之前,还包括以下步骤:
分别对应所述报文的各外网路由信息读取目标设备的掩码、目标设备的身份标识、目标设备的地址、路由开销、注入节点、路由总跳数以及路由倒数第二跳;
分别从本地所存储的所述本地节点的外网路由查找对应所述报文的各外网路由信息读取的注入节点;
若查找到对应任一外网路由信息读取的注入节点,则判断所述本地节点的外网路由中所述注入节点对应的网络与对应所述任一外网路由信息读取的目标设备的掩码和目标设备的地址是否一致;
若一致,则生成用于触发所述本地节点在网络中广播外网更新报文的触发信息,其中,所述本地节点广播的外网更新报文包括所述本地校验码、所述本地节点的节点信息、所述本地节点的邻居信息以及所述任一外网路由信息;
若未查找到,判断对应所述任一外网路由信息读取的路由开销是否为预设的最大路由开销;
若否,则缓存所述任一外网路由信息,生成用于触发所述本地节点在网络中广播外网更新报文的触发信息,其中,所述本地节点广播的外网更新报文包括所述本地校验码、所述本地节点的节点信息、所述本地节点的邻居信息以及所述任一外网路由信息;
若是,则放弃所述任一外网路由信息。
10.根据权利要求1所述的网络路由方法,其特征在于,若所述报文为全同步请求报文,所述报文还包括需要广播全同步报文的网络节点的节点信息,在通过所述预设校验算法,对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成本地校验码的步骤之前,还包括以下步骤:
查询所述需要广播全同步报文的网络节点的节点信息中是否包括所述本地节点的节点信息;
若包括,则生成用于触发所述本地节点在网络中广播全同步报文的触发信息,所述本地节点广播的全同步报文包括所述本地校验码、所述本地节点的节点信息、所述本地节点的邻居信息以及所述本地节点的路由信息。
11.根据权利要求1至10中任意一项所述的网络路由方法,其特征在于,所述在网络中广播全同步请求报文的步骤之后,还包括以下步骤:
从本地所存储的所述本地节点的子网路由中分别读取各可达路由为第一路由,其中,所述第一路由包括目标设备的第一掩码、目标设备的第一身份标识、目标设备的第一地址、第一路由开销、下一跳身份标识、第一路由总跳数以及第一路由倒数第二跳;
从本地所存储的所述本地节点的外网路由中查找与所述目标设备的地址和所述目标设备的掩码一致的可达路由为第二路由,所述第二路由包括目标设备的第二掩码、目标设备的第二身份标识、目标设备的第二地址、第二路由开销、第二注入节点、第二路由总跳数以及第二路由倒数第二跳;
判断所述第二注入节点是否为所述本地节点所在子网的可达节点;
若是,则计算所述本地节点到达所述第二注入节点的开销为内网开销,并对所述内网开销与所述第二路由开销求和,生成所述注入节点到达与所述目标设备的地址和所述目标设备的掩码一致的目标网段的路径开销;
若所述路径开销大于或等于所述第一路由开销,则将所述第一路由存储为备选最优路由,若所述路径开销小于所述第一路由开销,则将所述第二路由存储为备选最优路由;
将存储的各备选最优路由向路由综合端发送,以使路由综合端从接收的各备选最优路由中选取开销最小的为最终的最优路由,并在网络中广播包括所述最终的最优路由的报文。
12.一种网络路由系统,其特征在于,包括:
报文接收模块,用于接收网络节点在网络中广播的报文,其中,所述报文包括报文校验码和所述网络节点的节点信息,所述报文校验码为通过预设校验算法对所述网络节点的子网路由和外网路由计算所得的校验码;
校验码模块,用于通过所述预设校验算法,对本地所存储的本地节点的外网路由和本地所存储的所述网络节点的子网路由进行校验计算,生成本地校验码;
比较模块,用于比较所述本地校验码与所述报文校验码是否一致;
同步请求模块,用于在所述本地校验码与所述报文校验码不一致时,在网络中广播包括所述本地校验码、所述本地节点的节点信息和所述网络节点的节点信息的全同步请求报文,以请求所述网络节点广播包括所述网络节点的路由信息的全同步报文。
13.一种网络路由方法,其特征在于,包括以下步骤:
若满足预设类型报文的发送条件,则通过预设校验算法对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成报文校验码;
获取所述本地节点的节点信息和与所述预设类型报文对应的报文信息;
生成包括所述报文校验码、所述本地节点的节点信息和所述报文信息的报文,并在网络中广播生成的报文,以使接收节点在根据接收节点的子网路由和外网路由计算出的校验码与所述报文校验码不一致时,在网络中广播全同步请求报文。
14.根据权利要求13所述的网络路由方法,其特征在于,所述预设类型报文包括握手报文、全同步报文、全同步请求报文、子网更新报文和外网更新报文。
15.根据权利要求13或14所述的网络路由方法,其特征在于,在通过预设校验算法对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成报文校验码的步骤之前,还包括以下步骤:
检测用于触发本地节点在网络中广播全同步报文的第一触发信息;
若检测到所述第一触发信息,则检测用于触发所述本地节点在网络中广播子网更新报文的第二触发信息和用于触发所述本地节点在网络中广播外网更新报文的第三触发信息;
若检测到所述第二触发信息,则判定满足所述子网更新报文的发送条件;
若检测到所述第三触发信息,则判定满足所述外网更新报文的发送条件;
若未检测到所述第二触发信息和所述第三触发信息,则判定满足所述全同步报文的发送条件。
16.一种网络路由系统,其特征在于,包括:
校验码生成模块,用于在满足预设类型报文的发送条件时,通过预设校验算法对本地所存储的本地节点的外网路由和子网路由进行校验计算,生成报文校验码;
信息获取模块,用于获取所述本地节点的节点信息和与所述预设类型报文对应的报文信息;
报文发送模块,用于生成包括所述报文校验码、所述本地节点的节点信息和所述报文信息的报文,并在网络中广播生成的报文,以使接收节点在根据接收节点的子网路由和外网路由计算出的校验码与所述报文校验码不一致时,在网络中广播全同步请求报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510136413.7A CN104702503B (zh) | 2015-03-26 | 2015-03-26 | 网络路由方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510136413.7A CN104702503B (zh) | 2015-03-26 | 2015-03-26 | 网络路由方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104702503A true CN104702503A (zh) | 2015-06-10 |
CN104702503B CN104702503B (zh) | 2018-05-18 |
Family
ID=53349287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510136413.7A Active CN104702503B (zh) | 2015-03-26 | 2015-03-26 | 网络路由方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104702503B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116055184A (zh) * | 2023-01-28 | 2023-05-02 | 鹏城实验室 | 基于网络协议的通道连接方法、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2058778A1 (en) * | 2007-11-09 | 2009-05-13 | Research In Motion Limited | System and method for providing dynamic route information to users of wireless communications devices |
CN101547139A (zh) * | 2008-03-28 | 2009-09-30 | 华为技术有限公司 | 网络拓扑变化的通告方法及装置 |
CN101710895A (zh) * | 2009-11-30 | 2010-05-19 | 中国人民解放军信息工程大学 | 一种获取多下一跳路由的方法、装置和路由器 |
CN103139081A (zh) * | 2011-11-28 | 2013-06-05 | 中兴通讯股份有限公司 | 分布式哈希表路由表更新方法及节点 |
-
2015
- 2015-03-26 CN CN201510136413.7A patent/CN104702503B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2058778A1 (en) * | 2007-11-09 | 2009-05-13 | Research In Motion Limited | System and method for providing dynamic route information to users of wireless communications devices |
CN101547139A (zh) * | 2008-03-28 | 2009-09-30 | 华为技术有限公司 | 网络拓扑变化的通告方法及装置 |
CN101710895A (zh) * | 2009-11-30 | 2010-05-19 | 中国人民解放军信息工程大学 | 一种获取多下一跳路由的方法、装置和路由器 |
CN103139081A (zh) * | 2011-11-28 | 2013-06-05 | 中兴通讯股份有限公司 | 分布式哈希表路由表更新方法及节点 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116055184A (zh) * | 2023-01-28 | 2023-05-02 | 鹏城实验室 | 基于网络协议的通道连接方法、设备及介质 |
CN116055184B (zh) * | 2023-01-28 | 2023-06-13 | 鹏城实验室 | 基于网络协议的通道连接方法、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104702503B (zh) | 2018-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100433556B1 (ko) | 애드혹 네트워크상의 링크 상태 동기화 방법, 장치 및데이터구조 | |
US9276845B2 (en) | Dynamic multi-path forwarding for shared-media communication networks | |
RU2550151C2 (ru) | Выбор маршрута в беспроводных сетях | |
KR100898681B1 (ko) | 무선 네트워크의 상이한 유형들의 노드들 사이에서데이터를 라우팅하기 위한 시스템 및 방법 | |
EP1898574A1 (en) | Method and system for loop-free ad-hoc routing | |
RU2010141754A (ru) | Способ и устройство для квитирования состояния линии связи для предотвращения зацикливания | |
CN112383478B (zh) | 报文广播方法及设备 | |
CN110831104B (zh) | 一种线型拓扑无线自组网网络路由方法 | |
Karthikeyan et al. | Analysis of reactive AODV routing protocol for MANET | |
WO2009030693A1 (en) | A method for misbehaviour detection in secure wireless mesh networks | |
CN102143164B (zh) | 报文中继方法、装置及基站 | |
CN106789673B (zh) | 一种链路状态同步方法及装置 | |
CN103906163A (zh) | 一种基于鱼眼域的安全点对点路由方法 | |
Hnatyshin et al. | Design and Implementation of an OPNET model for simulating GeoAODV MANET routing protocol | |
CN110661550B (zh) | 一种hplc通信链路中转发报文的方法、装置、存储介质和电子设备 | |
CN102420766B (zh) | 一种路由确定方法及路由设备 | |
CN104702503A (zh) | 网络路由方法和系统 | |
US20190036807A1 (en) | Network system, communication device, and communication method | |
US9226219B2 (en) | System and method for route learning and auto-configuration | |
KR101762696B1 (ko) | 이동 애드혹 네트워크에서 목적지 개시 기반 플러딩을 이용한 경로 유지관리 프로토콜 | |
JP7326230B2 (ja) | 通信システム、ノード、通信方法及びプログラム | |
KR100754279B1 (ko) | 무선 네트워크상의 애드혹 온-디맨드 거리벡터 라우팅을위한 라우팅 메트릭 방법 | |
KR101083055B1 (ko) | 애드혹 네트워크에서 노드의 라우팅 테이블 갱신 방법 및, 애드혹 네트워크에서의 라우팅 방법 | |
Ghasemi et al. | Level-based on-demand multicast routing protocol for mobile ad hoc networks | |
RU2405282C2 (ru) | Выбор маршрута в беспроводных сетях |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |