CN111917637B - 数据报文发送方法及装置 - Google Patents
数据报文发送方法及装置 Download PDFInfo
- Publication number
- CN111917637B CN111917637B CN201910383610.7A CN201910383610A CN111917637B CN 111917637 B CN111917637 B CN 111917637B CN 201910383610 A CN201910383610 A CN 201910383610A CN 111917637 B CN111917637 B CN 111917637B
- Authority
- CN
- China
- Prior art keywords
- network node
- cost value
- node
- data message
- network
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/20—Hop count for routing purposes, e.g. TTL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种数据报文发送方法及装置,第一网络节点检测出无法按照路由表发送数据报文后,生成探测报文,即时根据探测报文探测下一跳网络节点,并向下一跳网络节点依次发送探测报文和数据报文,从而避免第一网络节点,即检测出无法按照路由表发送数据报文的网络节点丢失数据报文,提高数据报文的传输可靠性。同理,第二网络节点,即中间网络节点接收到探测报文后,即时根据探测报文探测下一跳网络节点,并向下一跳网络节点依次发送探测报文和数据报文,从而避免第二网络节点丢失数据报文,支持任意多链路、多网络节点故障情况下的完全路由保护,提高数据报文的传输可靠性。
Description
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种数据报文发送方法及装置。
背景技术
当互联网协议(internet protocol,IP)网络中网络节点间的链路发生故障时,发往故障链路的数据报文被丢失;同时,故障发生点的网络节点能够检测出链路故障,然后通过路由协议向全网广播通告故障情况,各网络节点收到故障广播后,需要花费一段时间完成路由表的重新计算和更新,该段时间称之为路由收敛时间,路由收敛时间内各网络节点执行的路由表的重新计算和更新等称之为路由收敛。完成路由收敛后,数据报文按照新的路由表转发。
通常情况下,由于全网路由收敛速度较慢,导致路由收敛过程中造成大量数据报文丢失,极大程度上影响了IP网络的可靠性和传输性能。为避免路由收敛过程中出现数据报文丢失现象,提出一种基于备份路径的快速重路由方法。该方法中,预先为每个要保护的链路或网络节点分别计算一条备份路径,每条备份路径不能经过要保护的链路或者网络节点。之后,将备份路径配置到相关网络节点中。当要保护的网络节点或链路发生故障时,检测到故障的网络节点可以将发往故障链路或网络节点的数据报文快速切换到备份路径,从而避免数据报文丢失。
上述基于备份路径的快速重路由方法中,只能针对单链路、单网络节点进行备份路径计算。然而,实际中,全网中往往会发生多链路、多网络节点故障的现象,此时,虽然检测出故障的网络节点能够将数据报文切换到备份路径,但是,当备份路径也发生故障时,路由保护失效,数据报文传输的可靠性降低。
发明内容
本申请实施例提供一种数据报文发送方法及装置,可以提高数据报文的传输可靠性。
第一方面,本申请实施例提供一种数据报文发送方法,该方法可以应用于第一网络节点、也可以应用于第一网络节点中的芯片。下面以应用于第一网络节点为例对该方法进行描述,该方法包括:第一网络节点判断是否能按照路由表转发数据报文,若无法按照路由表转发数据报文,则该第一网络节点生成探测报文,该探测报文用于指示第一网络节点探测下一跳网络节点,之后,第一网络节点探测下一跳网络节点,该下一跳网络节点是第一网络节点非故障的邻居网络节点中,代价值满足预设条件的网络节点,并向该下一跳网络节点依次发送探测报文和数据报文。采用该种方案,第一网络节点检测出无法按照路由表发送数据报文后,生成探测报文,即时根据探测报文探测下一跳网络节点,并向下一跳网络节点依次发送探测报文和数据报文,从而避免第一网络节点,即检测出无法按照路由表发送数据报文的网络节点丢失数据报文,支持任意多链路、多网络节点故障情况下的完全路由保护,提高数据报文的传输可靠性。而且,该过程中,无需预先进行任何备份路径的计算与配置,运算量少、步骤简单。
一种可行的设计中,上述的探测报文包含第一字段,第一网络节点向下一跳网络节点依次发送探测报文和数据报文之前,还判断自身是否为汇聚节点;若第一网络节点为汇聚节点,则第一网络节点将第一代价值、第一标识、第一代价值与第一标识的对应关系写入第一字段,第一标识为第一网络节点的标识,第一代价值与最大代价值的差值大于或等于预设阈值,最大代价值是第一网络节点非故障的邻居网络节点中代价值最大的邻居网络节点的代价值;若第一网络节点不是汇聚节点,则第一字段为空。采用该种方案,当第一网络节点为sink节点,将第一网络节点的标识、第一代价值以及第一网络节点的表示和第一代价值的对应关系写入第一字段,有助于后续下一跳网络节点快速判断自身是否为sink节点、探测下一个下一跳网络节点等,提高了数据报文发送速度。
一种可行的设计中,第一网络节点判断自身是否为汇聚节点时,若第一网络节点的代价值小于或等于最小代价值,则第一网络节点判断自身为汇聚节点,最小代价值是第一网络节点非故障的邻居网络节点中代价值最小的网络节点的代价值;或者,若第一网络节点的代价值大于最小代价值,则第一网络节点判断自身不为汇聚节点。采用该种方案,无论网络发生多少链路故障、网络节点故障,只要网络拓扑仍然保持连通,即网络上存在目的网络节点可达路径,则能够从该些可达路径中,不断探测出下一跳网络节点,直到数据报文到达目的网络节点。如此一来,在路由收敛期间,完成路由保护,减少数据报文的丢失,提高数据报文的传输可靠性。
一种可行的设计中,第一网络节点探测下一跳网络节点之后,还点针对下一跳网络节点生成指示信息,指示信息用于指示下一跳网络节点,第一网络节点根据指示信息,确定下一跳网络节点以发送后续到达的数据报文。采用该种方法,第一网络节点后续发送数据报文时,若本地存储指示信息,则根据指示信息确定出下一跳网络节点;若本地未存储指示信息,则探测下一跳网络节点,从而无需每次接收到探测报文都探测下一跳,提高发送数据报文的速度。
一种可行的设计中,第一网络节点根据下一跳网络节点生成指示信息之后,还判断第一网络节点所在的网络是否完成路由收敛;若第一网络节点所在的网络完成路由收敛,则第一网络节点删除指示信息。采用该种方案,第一网络节点在判断出路由收敛完毕后,删除指示信息,从而避免路由收敛完毕后,第一网络节点继续根据指示信息转发数据报文。
第二方面,本申请实施例提供一种数据报文发送方法,该方法可以应用于第二网络节点、也可以应用于第二网络节点中的芯片。下面以应用于第二网络节点为例对该方法进行描述,该方法包括:第二网络节点依次接收探测报文和数据报文,探测报文用于指示第二网络节点探测下一跳网络节点,第二网络节点探测下一跳网络节点,下一跳网络节点为第二网络节点非故障的邻居网络节点中,代价值满足预设条件的网络节点,第二网络节点向下一跳网络节点依次发送探测报文和数据报文。采用该种方案,第二网络节点接收到探测报文后,即时根据探测报文探测下一跳网络节点,并向下一跳网络节点依次发送探测报文和数据报文,从而避免第二网络节点,即检测出无法按照路由表发送数据报文的网络节点与目的网络节点之间的任意一个中间网络节点丢失数据报文,支持任意多链路、多网络节点故障情况下的完全路由保护,提高数据报文的传输可靠性。而且,该过程中,无需预先进行任何备份路径的计算与配置,运算量少、步骤简单。
一种可行的设计中,探测报文包含第一字段,第二网络节点探测下一跳网络节点时,第二网络节点判断第一字段是否为空,若第一字段不为空,则第二网络节点根据第一字段和第二网络节点非故障的邻居网络节点的代价值,探测下一跳网络节点,若第一字段为空,则第二网络节点确定第二网络节点非故障的邻居网络节点中,代价值小于第二网络节点的任意一个邻居网络节点为下一跳网络节点。采用该种方案,探测报文包含第一字段,该第一字段包含探测报文已经经过的sink节点的标识等信息,即该第一字段指示了网络是否执行过链路翻转,使得第二网络节点准确探测出下一跳,提高了数据报文发送可靠性和速度。
一种可行的设计中,第一字段不为空时,第一字段携带至少一个代价值、至少一个标识、至少一个对应关系,至少一个代价值中的代价值和至少一个标识中的标识一一对应,至少一个标识中的不同标识对应不同的汇聚节点。采用该种方案,通过将执行了链路翻转操作的sink节点的节点标识、增大后的代价值、以及sink节点与增大后的代价值的对应关系存储在第一字段中,使得探测报文随路携带新的代价值,中间节点基于本地存储和探测报文携带的代价值探测下一跳,可以低沉本的实现链路翻转操作,从而利用链路翻转图论原理实现了多故障情况下的完全路由保护。
一种可行的设计中,若第一字段不为空,则第二网络节点根据第一字段和第二网络节点非故障的邻居网络节点的代价值,探测下一跳网络节点时,第二网络节点判断至少一个标识对应的不同汇聚节点中,是否存在第三网络节点,该第三网络节点是第二网络节点非故障的邻居网络节点;若至少一个标识对应的不同汇聚节点中存在第三网络节点,则第二网络节点从至少一个代价值中,确定出第三网络节点对应的代价值;之后,第二网络节点根据从至少一个代价值中确定出的第三网络节点的代价值,以及第二网络节点除第三网络节点外的非故障邻居网络节点的代价值,探测下一跳网络节点。采用该种方案,基于链路翻转,最终能够将DAG转换为DDAG,即进行有限次的探测下一跳网络节点后,探测报文和数据报文一定能够到达目的网络节点,从而实现了多链路、多网络节点故障情况下的路由保护,避免数据报文丢失,提高数据报文的传输可靠性。
一种可行的设计中,若第一字段为空,则第二网络节点向下一跳网络节点依次发送探测报文和数据报文之前,还判断自身是否为汇聚节点,若第二网络节点是汇聚节点,则该第二网络节点在第一字段中写入第二代价值、第二标识、第二代价值与第二标识的对应关系,第二标识为第二网络节点的标识,第二代价值与第二最大代价值的差值大于或等于预设阈值,第二最大代价值是第二网络节点非故障的邻居网络节点中代价值最大的邻居网络节点的代价值。采用该种方案,当第二网络节点为sink节点,将第二网络节点的标识、第二代价值以及第二网络节点的标识和第二代价值的对应关系写入第二字段,有助于后续下一跳网络节点快速判断自身是否为sink节点、探测下一个下一跳网络节点等,提高了数据报文发送速度。
一种可行的设计中,第二网络节点判断自身是否为汇聚节点时,若第二网络节点的代价值小于或等于最小代价值,则第二网络节点判断自身为汇聚节点,最小代价值是第二网络节点非故障的邻居网络节点中代价值最小的网络节点的代价值;或者,若第二网络节点的代价值大于最小代价值,则第二网络节点判断自身不为汇聚节点。采用该种方案,第二网络节点通过比对根据自身的代价值及邻居网络节点的代价值判断自身是否为sink节点,实现第二网络节点快速判断出自身是否为sink节点的目的。
一种可行的设计中,若第一字段不为空,则述第二网络节点向下一跳网络节点依次发送探测报文和数据报文之前,还判断自身是否为汇聚节点,若第二网络节点是汇聚节点,则第二网络节点判断至少一个标识对应的不同汇聚节点中,是否存在第三网络节点,第三网络节点是第二网络节点非故障的邻居网络节点,若至少一个标识对应的不同汇聚节点中存在第三网络节点,则第二网络节点从至少一个代价值中,确定出第三网络节点对应的代价值,第二网络节点确定第三最大代价值,第三最大代价值是第三网络节点的代价值,以及第二网络节点除第三网络节点外的非故障邻居网络节点的代价值中的最大代价值,第二网络节点在第一字段中写入第三代价值、第二标识、第三代价值与第二标识的对应关系,第二标识为第二网络节点的标识,第三代价值与第三最大代价值的差值大于或等于预设阈值。采用该种方案,当第一字段不为空且第二网络节点为sink节点,则第二网络节点确定自身增大后的cost值,即第三代价值,并将第二网络节点的标识、第三代价值以及第二网络节点的标识和第三代价值的对应关系写入第二字段,有助于后续下一跳网络节点快速判断自身是否为sink节点、探测下一个下一跳网络节点等,提高了数据报文发送速度。
一种可行的设计中,若第一字段不为空,第二网络节点判断自身是否为汇聚节点时,判断至少一个标识对应的不同汇聚节点中,是否存在第三网络节点,第三网络节点是第二网络节点非故障的邻居网络节点,若至少一个标识对应的不同汇聚节点中存在第三网络节点,则第二网络节点从至少一个代价值中,确定出第三网络节点对应的代价值,若第一网络节点的代价值小于或等于最小代价值,则第二网络节点判断自身为汇聚节点,最小代价值是第三网络节点,以及第二网络节点除第三网络节点外的非故障邻居网络节点中代价值最小的网络节点的代价值,若第一网络节点的代价值大于最小代价值,则第二网络节点判断自身不为汇聚节点。采用该种方案,第二网络节点在第一字段不为空时,判断自身是否为sink节点时考虑了之前的链路翻转操作,使得第二网络节点能够准确判断出自身是否为sink节点。
一种可行的设计中,上述的方法还包括:第二网络节点针对下一跳网络节点生成指示信息,指示信息用于指示下一跳网络节点,第二网络节点根据指示信息,确定下一跳网络节点以发送后续到达的数据报文。采用该种方案,第二网络节点后续发送数据报文时,若本地存储指示信息,则根据指示信息确定出下一跳网络节点;若本地未存储指示信息,则探测下一跳网络节点,从而无需每次接收到探测报文都探测下一跳,提高发送数据报文的速度。
一种可行的设计中,第二网络节点针对下一跳网络节点生成指示信息之后,还判断第二网络节点所在的网络是否完成路由收敛,若第二网络节点所在的网络完成路由收敛,则第二网络节点删除指示信息。采用该种方案,第二网络节点在判断出路由收敛完毕后,删除指示信息,从而避免路由收敛完毕后,第二网络节点继续根据指示信息转发数据报文。
第三方面,本申请实施例提供一种数据报文发送装置,所述数据报文发送装置具有实再上述方法实施例中第一网络节点的行为功能。所述功能可以通过硬件实现,也可以通过硬件执行相应软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。所述模块可以是软件和/或硬件。
在一个可能的设计中,数据报文发送装置的结构中包括处理器与收发器,所述处理器被配置为判断是否能按照路由表转发数据报文,若无法按照路由表转发所述数据报文,则所述处理器生成探测报文,探测下一跳网络节点,并控制收发器向所述下一跳网络节点依次发送所述探测报文和所述数据报文。
第四方面,本申请实施例提供一种数据报文发送装置,该数据报文发送装置用于实现上述方法实际中第二网络节点的行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,数据报文发送装置的结构包括处理器与收发器,所述处理器被配置为控制收发器依次接收探测报文和数据报文,所述探测报文用于指示所述第二网络节点探测下一跳网络节点;处理器还探测所述下一跳网络节点,所述下一跳网络节点为所述第二网络节点非故障的邻居网络节点中,代价值满足预设条件的网络节点,并控制收发器向所述下一跳网络节点依次发送所述探测报文和所述数据报文。
第五方面,本申请实施例提供一种包含指令的计算机程序产品,当其在网络节点上运行时,使得网络节点执行上述第一方面或第一方面的各种可能的实现方式中的方法。
第六方面,本申请实施例提供一种包含指令的计算机程序产品,当其在网络节点上运行时,使得网络节点执行上述第二方面或第二方面的各种可能的实现方式中的方法。
第七方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在网络节点上运行时,使得网络节点执行上述第一方面或第一方面的各种可能的实现方式中的方法。
第八方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在网络节点上运行时,使得网络节点执行上述第二方面或第二方面的各种可能的实现方式中的方法。
第九方面,本申请实施例提供一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现上述第一方面或第一方面的各种可能的实现方式中的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
第十方面,本申请实施例提供一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现上述第二方面或第二方面的各种可能的实现方式中的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
本申请实施例提供的数据报文发送方法及装置,第一网络节点检测出无法按照路由表发送数据报文后,生成探测报文,即时根据探测报文探测下一跳网络节点,并向下一跳网络节点依次发送探测报文和数据报文,从而避免第一网络节点,即检测出无法按照路由表发送数据报文的网络节点丢失数据报文,支持任意多链路、多网络节点故障情况下的完全路由保护,提高数据报文的传输可靠性。而且,该过程中,无需预先进行任何备份路径的计算与配置,运算量少、步骤简单。
附图说明
图1是目前网络中丢失数据报文的示意图;
图2是目前基于备份路径发送数据报文的示意图;
图3是目前基于备份路径的快速重路由无法避免数据报文丢失的示意图;
图4是本申请实施例所述的数据报文发送方法所适用的链路翻转示意图;
图5是本申请实施例所述的数据报文发送方法所适用的网络架构示意图;
图6是本申请实施例提供的一种数据报文发送方法的流程图;
图7是本申请实施例提供的另一种数据报文发送方法的流程图;
图8A是本申请实施例提供的一种数据报文发送方法的场景示意图;
图8B是图8A所示场景对应的数据报文发送流程图;
图9为本申请实施例提供的一种数据报文发送装置的结构示意图;
图10为本申请实施例提供的另一种数据报文发送装置的结构示意图;
图11为本申请实施例提供的一种数据报文发送装置的结构示意图。
具体实施方式
IP网络中,路由协议通常为最短路径路由协议,如最短路径优先(open shortestpath first,OSPF)。基于该协议,网络中每个物理链路被赋予一个代价(cost)值,两个网络节点之间最短路径为连接这两个网络节点的所有路径中总代价值最最小的一条路径。其中,代价值例如为链路的带宽倒数、传播时延等。数据报文传输过程中,各网络节点基于最短路径路由协议计算出路由表,基于路由表发送数据报文。当链路发生故障或某个网络节点发生故障时,检测出故障的网络节点向全网广播故障情况。各网络节点接收到故障广播后,需要花费一段时间完成路由表的重新计算和更新,该段时间称之为路由收敛时间。当各网络节点执行完路由收敛后,根据收敛后的路径更新路由表,并按照新的路由表发送数据报文。若全网中各网络节点的路由收敛速度较慢,则路由收敛时间长,造成大量数据报文丢失,极大程度上影响了网络可靠性。示例性的,请可参照图1。
图1是目前网络中丢失数据报文的示意图。请参照图1,图中链路上注释的数字代表该链路的代价值,终端设备向服务器发送数据报文时,由于网络节点A到网络节点D的最短路径的代价值为5,则网络节点A至网络节点D的最短为网络节点A→网络节点B→网络节点C→网络节点D。当链路BC发生故障或网络节点C故障时,各网络节点执行路由收敛。路由收敛期间内,从网络节点B发往网络节点C的数据报文丢失。
为解决IP网络在路由收敛过程中数据报文丢失的问题,现提出一种基于备份路径的快速重路由(fast re-rout,FRR)方法。该方法中,预先为每个要保护的链路或网络节点分别计算一条备份路径,该备份路径不能经过要保护的链路或网络节点。之后,将备份路径配置到相关网络节点中。如此一来,当被保护的链路或网络节点发生故障时,则检测到故障的网络节点将发往故障链路的数据报文快速切换到备份路径,从而避免丢失数据报文。示例性的,可参见图2,图2是目前基于备份路径发送数据报文的示意图。
请参照图2,正常情况下,数据报文的路由路径为:网络节点A→网络节点B→网络节点C→网络节点D。基于备份路径的快速重路由,预先要保护的链路BC计算一条备份路径:网络节点A→网络节点B→网络节点E→网络节点F→网络节点D,并将该备份路径配置在相关网络节点,即网络节点A、网络节点B、网络节点E、网络节点F、网络节点C等网络节点中。数据报文发送过程中,当网络节点B检测到BC链路故障时,则将发往链路BC的数据报文切换到备份路径上,从而实现避免数据报文丢失的目的。
上述的基于备份路径的快速重路由方法,能针对单节点、单链路故障提供一定的路由保护。然而,由于多链路、多节点故障的可能性呈指数增长,数量过多,所以无法针对全网中所有的链路、网络节点都就进行备份路径。而且,若发生多链路、多节点故障,虽然可以基于备份路径的快速重路由方法将数据报文切换到备份路径上,但是,若备份路径上的链路或网络节点也发生了故障,则无法避免数据报文丢失。示例性的,可参照图3,图3是目前基于备份路径的快速重路由无法避免数据报文丢失的示意图。
请参照图3,链路BC和链路FD同时故障,此时,虽然网络节点B可以将数据报文切换到备份路径上,但是由于备份路径上的链路FD发生故障,因此无法避免丢失数据报文。
有鉴于此,本申请实施例提供一种报文发送方法及装置,当网络节点或链路发生故障时,探测出下一跳网络节点,由下一跳网络节点发送数据报文,直到将数据报文发送至目的网络节点,实现多链路、多节点故障时,成功发送数据报文的目的,提高了数据报文传输的可靠性。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。
下面,对本申请实施例所涉及的一些术语等进行详细解释。
首先,网络节点。
本申请实施例所述的网络节点,可以是路由器、交换机、无线通信节点等用于数据报文转发的设备。该网络节点可以是检测到链路故障的网络节点(以下称之为第一网络节点),也可以是中间节点(以下称之为第二网络节点),即检测到故障的网络节点与目的网络节点之间的任意一个邻居网络节点,中间节点是通过探测报文探测出的网络节点,也可以称之为下一跳网络节点。例如,检测到链路故障的网络节点生成探测报文,该探测报文用于指示探测下一跳,且该探测报文与数据报文具有相同的目的网络节点。检测到链路故障的网络节点探测下一跳网络节点,并向下一跳网络节点依次发送探测报文和数据报文,使得下一跳网络节点继续探测下一跳,并向下一个下一跳网络节点发送探测报文和数据报文……直到将数据报文发送至目的网络节点。由此可知:本申请实施例所述的第二网络节点,可以是第一网络节点和目的网络节点之间任意一个下一跳网络节点。需要说明的是,本申请实施例中,第一网络节点和第二网络节点是相对的,并不是绝对的,也就是说,同一个网络节点,在一种场景下,是第一网络节点,而在另外的场景下,是第二网络节点。
本申请实施例中,网络中的每个网络节点上预先存储路由表和该网络节点的代价值、该网络节点的邻居网络节点的代价值。未发生链路故障时,各网络节点按照各自存储的路由表转发数据报文;发生链路故障后,路由收敛期间,基于“链路翻转”图论原理探测下一跳网络节点;路由收敛完毕后,各网络节点按照各自新的路由表转发数据报文。
其次,“链路翻转”图论原理。
相关名词定义如下:
A、有向无环图(directed acyclic graph,DAG)。
一个图的每条边都有一个方向,且整个图上任意数量的有向边不会构成一个环路。
B、面向目的地的有向无环图(destination-oriented directed acyclic graph,DDAG)。
一个有向无环图中,对于某个目的节点d而言,任意非d节点均能沿有向边的方向到达目的节点d。
C、邻居网络节点。
即与一个网络节点直接连接的网络节点。
D、入边。
即一个网络节点与其邻居网络节点连接的所有有向边中,如果该边的方向是从邻居节点指向该网络节点,则称之为入边。
E、出边。
即一个网络节点与其邻居网络节点连接的所有有向边中,如果该边的方向是从该网络节点指向邻居网络节点,则称之为出边。
F、汇聚(sink)节点。
即没有任何出边的网络节点。
“链路翻转”图论定理:对于一个任意的DAG和某个目的网络节点d,定义一次“链路翻转”操作为:随机选择除了目的网络节点之外的sink节点并翻转其所有入边的方向,则进行有限次链路翻转操作后,一定能够将该DAG转变为DDAG。示例性的,可参见图4。
图4是本申请实施例所述的数据报文发送方法所适用的链路翻转示意图,该图中,有网络节点A、网络节点B、网络节点C、网络节点D四个网络节点。请参照图4中的(a),原拓扑中,四个网络节点通过有向边相连,没有任何环路,因此,图4中的(a)构成一个DAG。假设网络节点D为目的网络节点,则由于网络节点A、网络节点B、网络节点C三个网络节点均能够沿着有向边到达目的网络节点D,因此,图4中的(a)构成一个DDAG。
当图4中的(a)中的链路CD发生故障时,转变为图4中的(b),此时,由于网络节点A和网络节点C均无法沿着有向边到达目的网络节点D,则图4中的(b)是一个DAG,而不是一个DDAG。
根据“链路翻转”图论定理,为了将图4中的(b)从一个DAG转换为一个DDAG,则需要进行有限次链路翻转操作。首先,由于图4中的(b)中的网络节点C没有出边,所以网络节点C是一个sink节点,需要对其所有入边进行链路翻转操作,从而将图4中的(b)转换为图4中的(c),翻转的边如图中虚线所示。然后,由于图4中的(c)中的网络节点A没有任何出边,因此网络节点A为sink节点,需要对其所有的入边进行链路翻转操作,转变为图4中的(d),翻转的边如图中虚线所示。而图4中的(d)中,网络节点A、网络节点B和网络节点C均能够沿着有向边到达目的网络节点D,因此,图4中的(d)为一个DDAG,链路翻转操作完成。
最后,链路方向。
本申请实施例中,对于IP网络中的某个目的网络节点d,可以计算出每个网络节点到达该目的网络节点d的最短路径代价值。则链路的“方向”定义如下:对于网络中的任意一条链路两端的网络节点A1和网络节点A2,如果网络节点A1的最短路径代价值大于网络节点A2的最短路径代价值,则定义该链路的方向为从网络节点A1指向网络节点A2;否则,定义该链路的方向为从网络节点A2指向网络节点A1。也就是说,本申请实施例中,链路方向总是从高代价值的网络节点指向低代价值的网络节点。
本申请实施例中,当网络中发生多链路故障、多网络节点故障时,检测出链路故障的网络节点可以实时的找到到达目的网络节点的新的路径,从而避免数据报文丢失,有效提升了IP网络传输的可靠性。示例性的,可参见图5。
图5是本申请实施例所述的数据报文发送方法所适用的网络架构示意图。请参照图5,正常情况下,数据报文的路由路径为:网络节点A→网络节点B→网络节点C→网络节点D。当链路BC和链路FD均故障时,网络节点B生成探测报文,根据探测报文探测下一跳网络节点,即网络节点E,并向网络节点E发送探测报文和数据报文;之后,网络节点E根据探测报文,继续探测网络节点E的下一跳网络节点……。最终探测出的路径为网络节点B→网络节点E→网络节点F→网络节点C→网络节点D。后续数据报文到达网络节点B后,若该数据报文的目的网络节点为网络节点D,则数据报文沿着该路径转发,直到各网络节点完成路由收敛。
下面,基于上述术语的解释以及图5,从第一网络节点以及第二网络节点的角度,分别对本申请实施例所述的数据报文发送方法进行详细说明,示例性的,可参见图6和图7。
图6是本申请实施例提供的一种数据报文发送方法的流程图。本实施例是从第一网络节点,即检测出链路故障的网络节点的角度,对本申请实施例所述的数据报文发送方法进行详细说明的。本实施例包括:
101、第一网络节点判断是否能按照路由表转发数据报文,若无法按照路由表转发数据报文,则执行步骤102;若第一网络节点能够按照路由表转发数据报文,则执行步骤105。
示例性的,第一网络节点预先存储路由表、第一网络节点的代价值和第一网络节点的邻居网络节点的代价值。其中,路由表中存储根据路由协议计算出的转发网络节点,第一网络节点在接收到数据报文后,判断第一网络节点与路由表指示的转发网络节点之间的链路是否发生故障,若该链路发生故障,则说明第一网络节点无法按照路由表转发数据报文,此时,第一网络节点执行步骤102;若该链路没有发生故障,则说明第一网络节点可以按照路由表转发数据报文,此时,第一网络节点执行步骤。
需要说明的是,第一网络节点检测出第一网络节点与路由表指示的转发网络节点之间的链路发生故障,该故障可能是链路故障,也可能是路由表指示的转发网络节点故障。当故障为链路故障时,路由表指示的转发网络节点并没有发生故障。对于第一网络节点而言,无论是第一网络节点与路由表指示的转发网络节点之间的链路发生故障,还是路由表指示的转发网络节点发生故障,第一网络节点均认为发生链路故障,无法按照路由表转发数据报文。
102、所述第一网络节点生成探测报文,所述探测报文用于指示所述第一网络节点探测下一跳网络节点。
示例性的,第一网络节点在无法按照路由表转发数据报文时,自动生成探测报文,该探测报文用于指示第一网络节点探测下一跳网络节点。其中,该探测报文与数据报文具有相同的目的地址,该目的地址是目的网络节点的地址。
103、第一网络节点探测所述下一跳网络节点,所述下一跳网络节点是所述第一网络节点非故障的邻居网络节点中,代价值满足预设条件的网络节点。
示例性的,第一网络节点根据第一网络节点非故障的邻居网络节点的代价值,探测下一跳网络节点。例如,第一网络节点将自身非故障的邻居网络节点中代价值最小的网络节点作为下一跳网络节点;再如,第一网络节点按照代价值按照从大到小的顺序,对自身非故障的邻居网络节点进行排序,并选择排序倒数第2的网络节点作为下一跳网络节点。
104、所述第一网络节点向所述下一跳网络节点依次发送所述探测报文和所述数据报文。
示例性的,第一网络节点向步骤103中探测出的下一跳网络节点发送探测报文,之后,立即向下一跳网络节点发送数据报文。
105、第一网络节点按照路由表转发数据报文。
本申请实施例提供的数据报文发送方法,第一网络节点检测出无法按照路由表发送数据报文后,生成探测报文,即时根据探测报文探测下一跳网络节点,并向下一跳网络节点依次发送探测报文和数据报文,从而避免第一网络节点,即检测出无法按照路由表发送数据报文的网络节点丢失数据报文,支持任意多链路、多网络节点故障情况下的完全路由保护,提高数据报文的传输可靠性。而且,该过程中,无需预先进行任何备份路径的计算与配置,运算量少、步骤简单。
上述实施例中,第一网络节点可以是sink节点或不是sink节点,sink节点或和非sink节点对探测报文的处理是不同的。下面,对sink节点和非sink节点如何处理探测报文进行详细说明。
一种可行的实现方式中,所述第一网络节点向所述下一跳网络节点依次发送所述探测报文和所述数据报文之前,还判断自身是否为sink节点,若所述第一网络节点为sink节点,则所述第一网络节点将第一代价值、第一标识、所述第一代价值与所述第一标识的对应关系写入所述第一字段,所述第一标识为所述第一网络节点的标识,所述第一代价值与最大代价值的差值大于或等于预设阈值,所述最大代价值是所述第一网络节点非故障的邻居网络节点中代价值最大的邻居网络节点的代价值;若所述第一网络节点不是sink节点,则所述第一字段为空。
示例性的,探测报文包含第一字段,当第一网络节点检测到无法按照路由表转发数据报文时,临时生成探测报文。然后,第一网络节点确定出非故障的邻居网络节点,并根据自身的代价值和第一网络节点非故障的邻居网络节点的代价值,判断自身是否为sink网络节点。若第一网络节点判断出自身不是sink网络节点,则第一网络节不对探测报文的第一字段进行处理,使得第一字段为空;若第一网络节点判断出自身是sink节点,则将第一代价值、第一标识以及第一代价值和第一标识的对应关系写入第一字段,使得第一字段不为空。例如,第一网络节点设置一个键值(key value)对,其中,key为第一网络节点的标识,value为第一代价值。再请参照图5,第一网络节点为网络节点B,网络节点B的代价值为3,非故障的邻居网络节点包括网络节点A、网络节点E。网络节点A的代价值为5,网络节点E的代价值为4,则最大代价值为5,由于第一代价值与最大代价值之间的差值大于或等于预设阈值,该预设阈值大于0,若预设阈值为1,则第一代价值为6。因此,key为第一网络设备的标识,value为6,第一网络设备将该键值对写入第一字段。如此一来,第一网络节点发送给下一跳网络节点的探测报文的第一字段不为空,则下一跳网络节点在判断自身是否为sink节点、继续探测下一个下一跳网络节点时,需要考虑探测报文中第一字段的内容。
本实施例中,当第一网络节点为sink节点,将第一网络节点的标识、第一代价值以及第一网络节点的表示和第一代价值的对应关系写入第一字段,有助于后续下一跳网络节点快速判断自身是否为sink节点、探测下一个下一跳网络节点等,提高了数据报文发送速度。
下面,对第一网络节点如何判断出自身是否为sink节点进行详细说明。
一种可行的实现方式中,第一网络节点判断自身是否为sink节点时,判断自身的代价值是否小于或等于最小代价值,若第一网络节点的代价值小于或等于最小代价值,则第一网络节点判断自身为sink节点;若第一网络节点的代价值大于所述最小代价值,则第一网络节点判断自身不为sink节点。其中,所述最小代价值是所述第一网络节点非故障的邻居网络节点中代价值最小的网络节点的代价值。
示例性的,再请参照图5,第一网络节点为网络节点B,网络节点B的代价值为3,非故障的邻居网络节点包括网络节点A、网络节点E。网络节点A的代价值为5,网络节点E的代价值为4,则非故障的邻居网络节点中,代价值最小的邻居网络节点为网络节点E。也就是说,最小代价值为4。由于第一网络节点的代价值小于最小代价值,因此,第一网络节点为sink节点。
当第一网络节点不是sink节点时,上述第一网络节点探测下一跳网络节点时,按照预设规则从所有非故障的邻居网络节点中选择出下一跳网络节点,下一跳网络节点的代价值总是小于第一网络节点的代价值的。其中,预设规则例如为所有非故障的邻居网络节点中,代价最小的邻居网络节点。
当第一网络节点为sink节点时,上述第一网络节点探测下一跳网络节点的过程中,相当于是第一网络节点基于“链路翻转”图论原理,执行了一次链路翻转操作。该探测下一跳网络节点的具体过程包括:首先,从所有非故障的邻居网络节点中,按照预设规则选择出下一跳网络节点,该预设规则例如为所有非故障的邻居网络节点中,代价最小的邻居网络节点。其次,将第一网络节点的代价值增大为第一代价值,该第一代价值与非故障的邻居网络节点中代价值最大的网络节点的代价值的差值大于预设阈值。也就是说,由于执行了链路翻转,使得第一网络节点的代价值大于下一跳网络节点的代价值。
根据上述可知,本申请实施例中,第一、探测报文总是从高代价值的网络节点,向低代价值的网络节点发送,而网络节点的代价值越低,说明该网络节点距离目的网络节点越近,因此,第一网络节点可以快速找到到达目的网络节点的路径;第二、当第一网络节点为sink网络节点时,第一网络节点没有出边,将第一网络节点的代价值增大为第一代价值,此时,第一网络节点所有入边的方向都被翻转,等价于执行了一次对sink节点的链路翻转操作。根据前述的“链路翻转”图论原理可知:在网络连通的条件下,为了保障探测报文一定能找到一条到达目的网络节点的路径,需要执行上述的链路翻转操作,执行有限次链路翻转操作后,最终能够将DAG转换为DDAG,即进行有限次的探测下一跳网络节点后,探测报文和数据报文一定能够到达目的网络节点,从而实现了单链路、单网络节点、多链路、多网络节点故障情况下的路由保护,避免数据报文丢失,提高数据报文的传输可靠性。也就是说,本申请实施例中,无论网络发生多少链路故障、网络节点故障,只要网络拓扑仍然保持连通,即网络上存在目的网络节点可达路径,则本申请所述的数据报文发送方法可从该些可达路径中,不断探测出下一跳网络节点,直到数据报文到达目的网络节点。如此一来,在路由收敛期间,完成路由保护,减少数据报文的丢失,提高数据报文的传输可靠性。
上述实施例中,当第一网络节点探测下一跳网络节点之后,还针对所述下一跳网络节点生成指示信息,并根据该指示信息,确定下一跳网络节点以发送后续到达的数据报文。其中,指示信息用于指示下一跳网络节点。
本实施例中,第一网络节点探测出下一跳网络节点后,为了避免路由收敛期间,第一网络节点对后续到达的数据报文重新探测下一跳网络节点,则针对该下一跳网络节点,生成指示信息,该指示信息用于指示下一跳网络节点。如此一来,第一网络节点后续发送数据报文时,若本地存储指示信息,则根据指示信息确定出下一跳网络节点;若本地未存储指示信息,则探测下一跳网络节点,从而无需每次接收到探测报文都探测下一跳,提高发送数据报文的速度。
上述实施例中,第一网络节点根据所述下一跳网络节点生成指示信息之后,还判断所述第一网络节点所在的网络是否完成路由收敛,若所述第一网络节点所在的网络完成路由收敛,则所述第一网络节点删除所述指示信息;否则,继续根据指示信息确定下一跳网络设备以转发数据报文。
本实施例中,第一网络节点在判断出路由收敛完毕后,删除指示信息,从而避免路由收敛完毕后,第一网络节点继续根据指示信息转发数据报文。
图7是本申请实施例提供的另一种数据报文发送方法的流程图。本实施例是从第二网络节点,即中间网络节点的角度,对本申请实施例所述的数据报文发送方法进行详细说明的。本实施例包括:
201、第二网络节点依次接收探测报文和数据报文。
其中,所述探测报文用于指示所述第二网络节点探测下一跳网络节点。
示例性的,当第二网络节点是第一网络节点的下一跳网络节点时,第二网络节点依次接收来自第一网络节点的探测报文和数据报文;当第二网络节点不是第一网络节点的下一跳网络节点时,第二网络节点依次接收来自第二网络节点之前的网络节点发送的探测报文和数据报文。
本申请实施例中,探测报文用于指示网络节点,如第一网络节点、第二网络节点探测各自的下一跳网络节点。探测报文先于数据报文发送,如此一来,第二网络节点接收到探测报文后,即可确定需要探测下一跳网络节点,向探测出的下一跳网络节点发送数据报文,而不是按照路由表转发数据报文。这样做的好处在于:无需对数据报文进行修改,保障用户数据报文不被篡改。另外,通过探测报文进行实时寻路,而数据报文跟随探测报文的路径进行转发,当探测报文到达目的网络节点时,数据报文也跟随到达目的网络节点,整个过程中数据报文没有发生任何丢包,从而完成了路由保护。而且,由于探测报文中携带目的网络节点的地址,当探测报文到达目的网络节点后,目的网络节点发现自身的地址与探测报文中携带的地址相同,则删除探测报文,避免数据报文无限制发送。
当然,本申请实施例并不限制,在其他可行的实现方式中,第一网络节点也可以不生成探测报文,而是在数据报文中加入探测下一跳网络节点指示信息,第二网络节点接收到该添加了探测下一跳网络节点指示信息的数据报文后,解析数据报文,之后,探测下一跳网络节点。
202、所述第二网络节点探测所述下一跳网络节点,所述下一跳网络节点为所述第二网络节点非故障的邻居网络节点中,代价值满足预设条件的网络节点。
示例性的,第二网络节点根据第二网络节点非故障的邻居网络节点的代价值,探测下一跳网络节点。例如,第二网络节点将自身非故障的邻居网络节点中代价值最小的网络节点作为下一跳网络节点;再如,第二网络节点按照代价值按照从大到小的顺序,对自身非故障的邻居网络节点进行排序,并选择排序倒数第3的网络节点作为下一跳网络节点。
203、所述第二网络节点向所述下一跳网络节点依次发送所述探测报文和所述数据报文。
示例性的,第二网络节点向步骤202中探测出的下一跳网络节点发送探测报文,之后,立即向下一跳网络节点发送数据报文。
本申请实施例提供的数据报文发送方法,第二网络节点接收到探测报文后,即时根据探测报文探测下一跳网络节点,并向下一跳网络节点依次发送探测报文和数据报文,从而避免第二网络节点,即检测出无法按照路由表发送数据报文的网络节点与目的网络节点之间的任意一个中间网络节点丢失数据报文,支持任意多链路、多网络节点故障情况下的完全路由保护,提高数据报文的传输可靠性。而且,该过程中,无需预先进行任何备份路径的计算与配置,运算量少、步骤简单。
上述实施例中,探测报文包含第一字段,第二网络节点在探测下一跳网络节点时,需要考虑第一字段。下面,对第二网络节点如何探测下一跳网络节点进行详细说明。
一种可行的设计中,所述探测报文包含第一字段,所述第二网络节点探测所述下一跳网络节点时,判断所述第一字段是否为空;若所述第一字段不为空,则所述第二网络节点根据所述第一字段和所述第二网络节点非故障的邻居网络节点的代价值,探测所述下一跳网络节点;若所述第一字段为空,则所述第二网络节点确定所述第二网络节点非故障的邻居网络节点中,代价值最小的邻居网络节点为所述下一跳网络节点。
示例性的,本申请实施例中,sink节点需要增大自身的代价值,并将增大后的代价值、sink节点的标识以及增大后的代价值与sink节点的标识的对应关系,通过键值对等方式写入第一字段。也就是说,第一字段中包含的sink节点,其代价值等于第一字段中该sink节点对应的代价值,而非路由收敛之前预先存储在网络节点上的代价值。也就是说,探测报文到达当前的第二网络节点时,可能已经经过了多个sink节点,该些sink节点的代价值均基于“链路翻转”图论原理进行增大,该些sink节点可以是第一网络节点,也可以是除当前的第二网络节点外的其他中间网络节点,或者,也可以是第一网络节点和除当前的第二网络节点外的其他中间网络节点。因此,当前的第二网络节点在探测下一跳网络节点时,需要考虑探测报文中的第一字段。
当第一字段为空时,说明探测报文经过的网络节点中,不存在sink节点,此时,第二网络节点按照预设故障从第二网络节点非故障的邻居网络节点中,确定出第二网络节点的下一跳网络节点。其中,预设规则例如为非故障的邻居网络节点中代价值最小的网络节点;再如,第二网络节点按照代价值按照从大到小的顺序,对自身非故障的邻居网络节点进行排序,并选择倒数第2个网络节点作为下一跳网络节点。
当第一字段不为空时,说明探测报文经过的网络节点中,存在sink节点,此时,第二网络节点需要判断第二字段的至少一个标识对应的网络节点中,是否包含自身非故障的邻居网络节点,若自身非故障的邻居网络节点至少有一个包含于第二字段中,则第二网络节点根据第一字段和第二网络节点非故障的邻居网络节点的代价值,探测下一跳网络节点。
本实施例中,探测报文包含第一字段,该第一字段包含探测报文已经经过的sink节点的标识等信息,即该第一字段指示了网络是否执行过链路翻转,使得第二网络节点准确探测出下一跳,提高了数据报文发送可靠性和速度。
下面,对探测报文进行详细说明。
一种可行的实现方式中,所述第一字段不为空时,所述第一字段携带至少一个代价值、至少一个标识、至少一个对应关系,所述至少一个代价值中的代价值和所述至少一个标识中的标识一一对应,所述至少一个标识中的不同标识对应不同的sink节点。
示例性的,探测报文每经过一个sink节点,该sink节点都会将自身新的代价值、自身的标识以及新的代价值与标识的对应关系写入第一字段,例如,可以以键值对的方式写入字段,以表格的方式写入第一字段等。该些sink节点中的任意一个sink节点,以下称之为第一sink节点需要满足以下条件:第一sink节点对应的代价值与第一最大代价值的差值大于或等于预设阈值,第一最大代价值是第一sink节点非故障的邻居网络节点中代价值最大的邻居网络节点的代价值。由此可知,对于探测报文路径中的每一个sink节点,都需要基于“链路翻转”图论原理,执行一次链路翻转操作,具体执行过程可参加上述术语解释中的描述以及上述实施例一种的相关描述,此次不再赘述。
本实施例中,通过将执行了链路翻转操作的sink节点的节点标识、增大后的代价值、以及sink节点与增大后的代价值的对应关系存储在第一字段中,使得探测报文随路携带新的代价值,中间节点基于本地存储和探测报文携带的代价值探测下一跳,可以低沉本的实现链路翻转操作,从而利用链路翻转图论原理实现了多故障情况下的完全路由保护。
下面,对第一字段不为空时,第二网络节点如何根据所述第一字段和所述第二网络节点非故障的邻居网络节点的代价值,探测所述下一跳网络节点进行详细说明。
一种可行的实现方式中,所述若所述第一字段不为空,则第二网络节点根据第一字段和所述第二网络节点非故障的邻居网络节点的代价值,探测所述下一跳网络节点时,第二网络节点判断所述至少一个标识对应的不同sink节点中,是否存在第三网络节点,所述第三网络节点是所述第二网络节点非故障的邻居网络节点;若所述至少一个标识对应的不同sink节点中存在所述第三网络节点,则所述第二网络节点从所述至少一个代价值中,确定出所述第三网络节点对应的代价值;所述第二网络节点根据从所述至少一个代价值中确定出的所述第三网络节点的代价值,以及所述第二网络节点除所述第三网络节点外的非故障邻居网络节点的代价值,探测所述下一跳网络节点。
示例性的,当第一字段不为空时,说明探测报文经过的网络节点中,存在sink节点,此时,第二网络节点需要确定该些sink节点中,是否存在第三网络节点,该第三网络节点为第二网络节点非故障的邻居网络节点。若该些sink节点中,存在第三网络节点,则第二网络节点根据第一字段,确定出第三网络节点的代价值,然后,根据确定出的代价值,以及第二网络节点非故障的邻居网络节点中,除第三网络节点外的其他邻居网络节点的代价值,探测下一跳网络节点。再请参照图5,假设网络节点B与网络节点F之间存在有向边,该有向边从网络节点B指向网络节点F,链路BF的代价值为2。当第二网络节点为网络节点F时,假设探测报文的第一字段中,网络节点B的代价值为6,则网络节点F接收到来自网络节点E的探测报文后,探测网络节点F的下一跳时,发现自身的邻居网络节点包括网络节点B、网络节点E、网络节点C,由于网络节点B属于第一字段的至少一个标识指示的网络节点,则虽然网络节点F预先存储的网络节点B的代价值为3,但是基于探测报文,网络节点F认为网络节点B的代价值为6。由于网络节点B的代价值为6、网络节点E的代价值为4、网络节点C的代价值为1,探测规则为代价值最小的网络节点,则网络节点F将网络节点C作为下一跳网络节点。
本实施例中,基于链路翻转,最终能够将DAG转换为DDAG,即进行有限次的探测下一跳网络节点后,探测报文和数据报文一定能够到达目的网络节点,从而实现了多链路、多网络节点故障情况下的路由保护,避免数据报文丢失,提高数据报文的传输可靠性。
本申请实施例中,无论是第一网络节点还是第二网络节点,在判断出自身为sink网络节点后,向下一跳网络节点发送探测报文之前,均需要将自身执行链路翻转后的代价值,即增大的代价值和自身的标识,以及标识和增大的代价值写入第一字段。下面,分别从第一字段为空和第一字段不为空两种情况下,对第二网络节点如何将自身执行链路翻转后的代价值等写入探测报文中的第一字段、如何判断自身是否为sink节点进行详细说明。
首先,第一字段为空。
该种情况下,当第一字段为空时,第二网络节点在判断自身是否为sink节点时,无需考虑第一字段,所述第二网络节点判断自身是否为sink节点时,判断自身的代价值,是否小于或等于最下代价值,若第二网络节点的代价值小于或等于最小代价值,则第二网络节点判断自身为sink节点,若第二网络节点的代价值大于最小代价值,则第二网络节点判断自身不为sink节点。其中,最小代价值是第二网络节点非故障的邻居网络节点中代价值最小的网络节点的代价值。
示例性的,若第一字段为空,则说明探测报文经过的网络节点中,不存在sink节点,此时,第二网络节点仅根据自身的代价值及邻居网络节点的代价值,即可确定出自身是否为sink节点。
本实施例中,第二网络节点通过比对根据自身的代价值及邻居网络节点的代价值判断自身是否为sink节点,实现第二网络节点快速判断出自身是否为sink节点的目的。
另外,若第一字段为空,且第二网络节点为sink节点,则第二网络节点向所述下一跳网络节点依次发送所述探测报文和所述数据报文之前,还判断自身是否为sink节点;若所述第二网络节点是sink节点,则所述第二网络节点在所述第一字段中写入第二代价值、第二标识、所述第二代价值与所述第二标识的对应关系,所述第二标识为所述第二网络节点的标识,所述第二代价值与第二最大代价值的差值大于或等于预设阈值,所述第二最大代价值是所述第二网络节点非故障的邻居网络节点中代价值最大的邻居网络节点的代价值;若第二网络节点不是sink节点,则不在第一字段中加入代价值等。
示例性的,可参加上述第一网络节点向探测报文中写入第一网络节点的第一代价值、第一标识以及第一代价值和第一标识的对应关系的描述,此处不再赘述。
本实施例中,当第二网络节点为sink节点,将第二网络节点的标识、第二代价值以及第二网络节点的标识和第二代价值的对应关系写入第二字段,有助于后续下一跳网络节点快速判断自身是否为sink节点、探测下一个下一跳网络节点等,提高了数据报文发送速度。
其次,第一字段不为空。
若所述第一字段不为空,则第二网络节点判断自身是否为sink节点时,第二网络节点判断所述至少一个标识对应的不同sink节点中,是否存在第三网络节点,所述第三网络节点是所述第二网络节点非故障的邻居网络节点;若所述至少一个标识对应的不同sink节点中存在所述第三网络节点,则所述第二网络节点从所述至少一个代价值中,确定出所述第三网络节点对应的代价值;若所述第一网络节点的代价值小于或等于所述最小代价值,则所述第二网络节点判断自身为sink节点,所述最小代价值是所述第三网络节点,以及所述第二网络节点除所述第三网络节点外的非故障邻居网络节点中代价值最小的网络节点的代价值;若所述第一网络节点的代价值大于所述最小代价值,则所述第二网络节点判断自身不为sink节点。
示例性的,第二网络节点在判断自身是否为sink节点时,和第二网络节点探测下一跳网络节点的相同点是:都需要判断探测报文的第一字段中,是否包含第二网络节点非故障的邻居网络节点。也就是说,若第二网络节点非故障的邻居网络节点包含第三网络节点,即第二网络节点非故障的邻居网络节点属于第一字段指示的sink节点,则认为该第三网络节点的代价值为第一字段中该第三网络节点对应的代价值,而非第二网络节点预先针对该第三网络节点存储的代价值。
本实施例中,第二网络节点在第一字段不为空时,判断自身是否为sink节点时考虑了之前的链路翻转操作,使得第二网络节点能够准确判断出自身是否为sink节点。
另外,若第一字段不为空,且第二网络节点为汇聚节点,则所述第二网络节点判断所述至少一个标识对应的不同汇聚节点中,是否存在第三网络节点,所述第三网络节点是所述第二网络节点非故障的邻居网络节点;若所述至少一个标识对应的不同汇聚节点中存在所述第三网络节点,则所述第二网络节点从所述至少一个代价值中,确定出所述第三网络节点对应的代价值;所述第二网络节点确定第三最大代价值,所述第三最大代价值是所述第三网络节点的代价值,以及所述第二网络节点除所述第三网络节点外的非故障邻居网络节点的代价值中的最大代价值;所述第二网络节点在所述第一字段中写入第三代价值、第二标识、所述第三代价值与所述第二标识的对应关系,所述第二标识为所述第二网络节点的标识,所述第三代价值与第三最大代价值的差值大于或等于预设阈值。
本实施例中,当第一字段不为空且第二网络节点为sink节点,则第二网络节点确定自身增大后的cost值,即第三代价值,并将第二网络节点的标识、第三代价值以及第二网络节点的标识和第三代价值的对应关系写入第二字段,有助于后续下一跳网络节点快速判断自身是否为sink节点、探测下一个下一跳网络节点等,提高了数据报文发送速度。
上述实施例中,当第二网络节点探测下一跳网络节点之后,还针对所述下一跳网络节点生成指示信息,并根据该指示信息,确定下一跳网络节点以发送后续到达的数据报文。其中,指示信息用于指示下一跳网络节点。
本实施例中,第二网络节点探测出下一跳网络节点后,为了避免路由收敛期间,第二网络节点对后续到达的数据报文重新探测下一跳网络节点,则针对该下一跳网络节点,生成指示信息,该指示信息用于指示下一跳网络节点。如此一来,第二网络节点后续发送数据报文时,若本地存储指示信息,则根据指示信息确定出下一跳网络节点;若本地未存储指示信息,则探测下一跳网络节点,从而无需每次接收到探测报文都探测下一跳,提高发送数据报文的速度。
上述实施例中,第二网络节点根据所述下一跳网络节点生成指示信息之后,还判断所述第二网络节点所在的网络是否完成路由收敛,若所述第二网络节点所在的网络完成路由收敛,则所述第二网络节点删除所述指示信息;否则,继续根据指示信息确定下一跳网络设备以转发数据报文。
本实施例中,第二网络节点在判断出路由收敛完毕后,删除指示信息,从而避免路由收敛完毕后,第二网络节点继续根据指示信息转发数据报文。
下面,用一个例子对上述的数据报文发送方法进行详细说明。示例性的,可参见图8A和图8B,图8A是本申请实施例提供的一种数据报文发送方法的场景示意图,图8B是图8A所示场景对应的数据报文发送流程图。请参照图8A,本实施例中,网络中共存在网络节点A-网络节点F6个网络节点,各链路的代价值如图所示,如链路AB的代价值为2,各网络节点的有向边如图中方向箭头所示,各网络节点的代价值如图中括号内的值所示,例如,网络节点B的代价值为5。假设某用户通过该网络访问远端服务器,入口网络节点为网络节点A,出口网络节点为网络节点D,网络节点A到网络节点D的最短路径代价值为5。在没有任何故障发生的时候,网络节点A与网络节点D之间的最短路径为网络节点A→网络节点B→网络节点C→网络节点D。假设链路BC、链路FD同时发生故障,则图8B包括:
301、网络节点计算并存储自身的代价值以及自己的邻居网络节点的代价值。
其中,网络节点指网络节点A-网络节点F中的任意一个邻居网络节点。各网络节点在计算代价值时,可采用路由协议的最短路径算法等,如OSPF所使用的Dijkstra算法。
302、网络节点A向网络节点B发送数据报文。
示例性的,网络节点A预先存储的路由表指示下一跳网络节点为网络节点B,则当用户上网时,数据报文从用户的终端设备到达网络节点A,由于链路AB、网络节点B均没有故障,则网络节点A按照路由表将数据报文发送至网络节点B。
303、网络节点B检测出无法按照路由表转发数据报文,则生成探测报文。
示例性的,网络节点B预先存储的路由表指示下一跳网络节点为网络节点C,数据报文到达网络节点B后,由于链路BC故障,或网络节点C发生故障,网络节点B无法按照路由表转发数据报文。此时,网络节点B生成至少一个探测报文,该些探测报文相同,且该些探测报文的地址与目的网络节点的地址相同。
304、网络节点B探测下一跳网络节点。
示例性的,探测报文用于指示网络节点B探测下一跳网络节点,则网络节点B从非故障的邻居网络节点中,选择代价值最小的网络节点。由于网络节点B的非故障的邻居网络节点包括网络节点A、网络节点E,网络节点A的代价值为5,网络节点E的代价值为4,网络节点E的代价值最小,则网络节点B认为网络节点E为下一跳网络节点。
同时,由于网络节点B的非故障的网络节点的网络节点的代价值均大于网络节点B的代价值,说明网络节点B为sink节点。此时,网络节点B确定出非故障的邻居网络节点中,网络节点A的代价值5最大,假设预设阈值为1,则第一代价值为6,网络节点B,设置键值对中,key=网络节点B,value=6,并将该键值对写入探测报文。该过程中,由于网络节点B增大了自身的代价值,相当于执行了一次链路翻转操作。
同时,网络节点B针对网络节点E生成指示信息,并存储该指示信息,该指示信息用于指示网络节点E。该过程可以理解为保存“探测下一跳网络节点”。如此一来,路由收敛期间,后续再有数据报文到达时,网络节点B根据指示信息即可确定出下一跳网络节点,无需重新执行探测下一跳网络节点的动作。
305、网络节点B向网络节点E依次发送探测报文和数据报文。
306、网络节点E解析探测报文。
示例性的,探测报文到达网络节点E后,网络节点E解析探测报文,发现探测报文中的key=网络节点B、value=6,则认为网络节点B的代价值为6。而网络节点B是第三网络节点,即网络节点B是网络节点E的邻居网络节点,因此,网络节点E在判断自身是否为sink节点、探测下一跳网络节点时,需要考虑网络节点B。
307、网络节点E探测下一跳网络节点。
由于网络节点E非故障的邻居网络节点包括网络节点A、网络节点B和网络节点F,代价值分别为5、6、2,其中,网络节点B的代价值是探测报文中携带的代价值。因此,网络节点E选择网络节点F作为下一跳网络节点。同时,网络节点E针对网络节点F生成指示信息,该指示信息指示网络节点F为下一跳网络节点。
308、网络节点E向网络节点F依次发送探测报文和数据报文。
309、网络节点F解析探测报文。
示例性的,探测报文到达网络节点F后,网络节点F解析探测报文,发现探测报文中的key=网络节点B、value=6,则认为网络节点B的代价值为6。而网络节点B不是第三网络节点,即网络节点B不是网络节点F的邻居网络节点,因此,网络节点F在判断自身是否为sink节点、探测下一跳网络节点时,不考虑网络节点B。
310、网络节点F探测下一跳网络节点。
由于网络节点F非故障的邻居网络节点包括网络节点E和网络节点C,代价值分别为4、1。因此,网络节点F选择网络节点C作为下一跳网络节点。同时,网络节点F针对网络节点C生成指示信息,该指示信息指示网络节点C为下一跳网络节点。
311、网络节点F向网络节点C依次发送探测报文和数据报文。
示例性的,探测报文到达网络节点C后,网络节点C发现非故障的邻居网络节点中,网络节点D的代价值为0,即网络节点D的代价值最小且为目的网络节点,则向网络节点D依次发送探测报文和数据报文。同时,网络节点C针对网络节点D生成指示信息,该指示信息指示网络节点D为下一跳网络节点。
312、网络节点D丢弃探测报文。
示例性的,由于探测报文已经到达目的网络节点,因此,网络节点D丢弃探测报文。
之后,路由收敛完成之前,网络节点B接收到数据报文后,均按照指示信息指示的下一跳网络节点发送。
路由收敛完毕后,所有的网络节点清空存储的指示信息。例如,路由收敛完成后,网络节点A每次计算并下发新的路由表时更新时间戳为T1;网络节点生成指示信息时记录时间戳T2。当数据报文到达网络节点A时,如果T1早于T2,例如,T1是3:00分,而T2是3:01分,说明未完成路由收敛,需要按照指示信息指示的下一跳网络节点发送数据集报文;当数据报文到达网络节点A时,如果T1晚于T2,例如,T1是3:02分,而T2是3:01分,说明已完成路由收敛,需要按照路由收敛后的路由表发送数据集报文。
综合上述可知:数据报文最终的路径为网络节点A→网络节点B→网络节点E→网络节点F→网络节点C→网络节点D,其中,网络节点B为第一网络节点,网络节点B、网络节点E、网络节点F和网络节点C为第二网络节点,网络节点D为目的网络节点。
需要说明的是,上述实施例中,仅有网络节点B将自身链路翻转后的代价值、网络节点B的标识、翻转后的代价值与网络节点B的标识对应关系写入探测报文的第一字段中,而网络节点E、网络节点F、网络节点C均不是sink节点,因此,网络节点E、网络节点F、网络节点C无需执行链路翻转操作。
图9为本申请实施例提供的一种数据报文发送装置的结构示意图。本实施例所涉及的数据报文发送装置可以为第一网络节点,也可以为应用于第一网络节点的芯片。该数据报文发送装置可以用于执行上述方法实施例中第一网络节点的功能。如图9所示,该数据报文发送装置100可以包括:
处理单元11,用于判断是否能按照路由表转发数据报文,若无法按照路由表转发所述数据报文,则生成探测报文,所述探测报文用于指示第一网络节点探测下一跳网络节点,
所述处理单元11,还用于探测所述下一跳网络节点,所述下一跳网络节点是所述第一网络节点非故障的邻居网络节点中,代价值满足预设条件的网络节点;
发送单元12,用于向所述下一跳网络节点依次发送所述探测报文和所述数据报文。
一种可行的设计中,所述探测报文包含第一字段,在所述发送单元12向所述下一跳网络节点依次发送所述探测报文和所述数据报文之前,所述处理单元11还用于判断所述第一网络节点是否为汇聚节点,若所述第一网络节点为汇聚节点,则将第一代价值、第一标识、所述第一代价值与所述第一标识的对应关系写入所述第一字段,所述第一标识为所述第一网络节点的标识,所述第一代价值与最大代价值的差值大于或等于预设阈值,所述最大代价值是所述第一网络节点非故障的邻居网络节点中代价值最大的邻居网络节点的代价值;若所述第一网络节点不是汇聚节点,则所述第一字段为空。
一种可行的设计中,所述处理单元11,用于若所述第一网络节点的代价值小于或等于最小代价值,则判断所述第一网络节点为汇聚节点,所述最小代价值是所述第一网络节点非故障的邻居网络节点中代价值最小的网络节点的代价值;
或者,
所述处理单元11,用于若所述第一网络节点的代价值大于所述最小代价值,则判断所述第一网络节点不为汇聚节点。
一种可行的设计中,所述处理单元11,还用于针对所述下一跳网络节点生成指示信息,所述指示信息用于指示所述下一跳网络节点,根据所述指示信息,确定所述下一跳网络节点,以使得所述发送单元12向所述下一跳网络节点发送后续到达的数据报文。
一种可行的设计中,所述处理单元11,还用于判断所述第一网络节点所在的网络是否完成路由收敛,若所述第一网络节点所在的网络完成路由收敛,则删除所述指示信息。
本申请实施例提供的通信装置,可以执行上述方法实施例中第一网络节点的动作,其实现原理和技术效果类似,在此不再赘述。
图10为本申请实施例提供的另一种数据报文发送装置的结构示意图。本实施例所涉及的数据报文发送装置可以为第二网络节点,也可以为应用于第二网络节点的芯片。该数据报文发送装置可以用于执行上述方法实施例中第二网络节点的功能。如图10所示,该数据报文发送装置200可以包括:
接收单元21,用于依次接收探测报文和数据报文,所述探测报文用于指示第二网络节点探测下一跳网络节点;
处理单元22,用于探测所述下一跳网络节点,所述下一跳网络节点为所述第二网络节点非故障的邻居网络节点中,代价值满足预设条件的网络节点;
发送单元23,用于向所述下一跳网络节点依次发送所述探测报文和所述数据报文。
一种可行的设计中,所述探测报文包含第一字段,所述处理单元22,用于判断所述第一字段是否为空,若所述第一字段不为空,则根据所述第一字段和所述第二网络节点非故障的邻居网络节点的代价值,探测所述下一跳网络节点;若所述第一字段为空,则确定所述第二网络节点非故障的邻居网络节点中,代价值小于所述第二网络节点的任意一个所述邻居网络节点为所述下一跳网络节点。
一种可行的设计中,所述第一字段不为空时,所述第一字段携带至少一个代价值、至少一个标识、至少一个对应关系,所述至少一个代价值中的代价值和所述至少一个标识中的标识一一对应,所述至少一个标识中的不同标识对应不同的汇聚节点。
一种可行的设计中,所述处理单元22,在所述第一字段不为空时,用于判断所述至少一个标识对应的不同汇聚节点中,是否存在第三网络节点,所述第三网络节点是所述第二网络节点非故障的邻居网络节点,若所述至少一个标识对应的不同汇聚节点中存在所述第三网络节点,则从所述至少一个代价值中,确定出所述第三网络节点对应的代价值,根据从所述至少一个代价值中确定出的所述第三网络节点的代价值,以及所述第二网络节点除所述第三网络节点外的非故障邻居网络节点的代价值,探测所述下一跳网络节点。
一种可行的设计中,所述处理单元22,在所述第一字段为空时,还用于判断所述第二网络节点是否为汇聚节点,若所述第二网络节点是汇聚节点,则在所述第一字段中写入第二代价值、第二标识、所述第二代价值与所述第二标识的对应关系,所述第二标识为所述第二网络节点的标识,所述第二代价值与第二最大代价值的差值大于或等于预设阈值,所述第二最大代价值是所述第二网络节点非故障的邻居网络节点中代价值最大的邻居网络节点的代价值。
一种可行的设计中,所述处理单元22,用于若所述第二网络节点的代价值小于或等于所述最小代价值,则判断所述第二网络节点为汇聚节点,所述最小代价值是所述第二网络节点非故障的邻居网络节点中代价值最小的网络节点的代价值;或者,所述处理单元22,用于若所述第二网络节点的代价值大于所述最小代价值,则判断所述第二网络节点不为汇聚节点。
一种可行的设计中,若所述第一字段不为空,则所述处理单元22,还用于判断所述第二网络节点是否为汇聚节点,若所述第二网络节点是汇聚节点,则判断所述至少一个标识对应的不同汇聚节点中,是否存在第三网络节点,所述第三网络节点是所述第二网络节点非故障的邻居网络节点,若所述至少一个标识对应的不同汇聚节点中存在所述第三网络节点,则从所述至少一个代价值中,确定出所述第三网络节点对应的代价值,确定第三最大代价值,所述第三最大代价值是所述第三网络节点的代价值,以及所述第二网络节点除所述第三网络节点外的非故障邻居网络节点的代价值中的最大代价值,在所述第一字段中写入第三代价值、第二标识、所述第三代价值与所述第二标识的对应关系,所述第二标识为所述第二网络节点的标识,所述第三代价值与第三最大代价值的差值大于或等于预设阈值。
一种可行的设计中,若所述第一字段不为空,所述处理单元22,在判断所述第二网络节点是否为汇聚节点时,用于判断所述至少一个标识对应的不同汇聚节点中,是否存在第三网络节点,所述第三网络节点是所述第二网络节点非故障的邻居网络节点,若所述至少一个标识对应的不同汇聚节点中存在所述第三网络节点,则从所述至少一个代价值中,确定出所述第三网络节点对应的代价值,若所述第一网络节点的代价值小于或等于所述最小代价值,则判断所述第二网络节点为汇聚节点,所述最小代价值是所述第三网络节点,以及所述第二网络节点除所述第三网络节点外的非故障邻居网络节点中代价值最小的网络节点的代价值;若所述第一网络节点的代价值大于所述最小代价值,则判断所述第二网络节点不为汇聚节点。
一种可行的设计中,所述处理单元22,还用于针对所述下一跳网络节点生成指示信息,所述指示信息用于指示所述下一跳网络节点,根据所述指示信息,确定所述下一跳网络节点,以使所述发送单元23向所述下一跳网络节点发送后续到达的数据报文。
一种可行的设计中,所述处理单元22,还用于判断所述第二网络节点所在的网络是否完成路由收敛,若所述第二网络节点所在的网络完成路由收敛,则删除所述指示信息。
本申请实施例提供的通信装置,可以执行上述方法实施例中第二网络节点的动作,其实现原理和技术效果类似,在此不再赘述。
上述实施例中,第一网络节点和第二网络节点是相对的,并不是绝对的。因此,本申请实施例还提供一种网络节点,该网络节点包括上述图9或图9任意一种可能的实现方式实现的数据报文发送装置,和/或,上述图10或图10任意一种可能的实现方式实现的数据报文发送装置。
需要说明的是,应理解以上发送单元、接收单元实际实现时可以为收发器,而处理可以以软件通过处理元件调用的形式实现;也可以以硬件的形式实现。例如,处理单元可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上处理模块的功能。此外这些单元全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个专用集成电路(application specific integrated circuit,ASIC),或,一个或多个微处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)等。再如,当以上某个单元通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessing unit,CPU)或其它可以调用程序代码的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。
图11为本申请实施例提供的一种数据报文发送装置的结构示意图。如图11所示,该数据报文发送装置300可以包括:处理器31(例如CPU)、存储器32、收发器33;收发器33耦合至处理器31,处理器31控制收发器33的收发动作;存储器32可能包含高速随机存取存储器(random-access memory,RAM),也可能还包括非易失性存储器(non-volatile memory,NVM),例如至少一个磁盘存储器,存储器32中可以存储各种指令,以用于完成各种处理功能以及实现本申请的方法步骤。可选的,本申请涉及的数据报文发送装置还可以包括:通信总线34以及通信端口35。收发器33可以集成在数据报文发送装置的收发信机中,也可以为数据报文发送装置上独立的收发天线。通信总线34用于实现元件之间的通信连接。上述通信端口35用于实现数据报文发送装置与其他外设之间进行连接通信。
在本申请实施例中,上述存储器32用于存储计算机可执行程序代码,程序代码包括指令;当处理器31执行指令时,指令使数据报文发送装置的处理器31执行上述方法实施例中第一网络节点的处理动作,使收发器33执行上述实施例中第一网络节点的收发动作,其实现原理和技术效果类似,在此不再赘述;或者,上述存储器32用于存储计算机可执行程序代码,程序代码包括指令;或者,当处理器31执行指令时,指令使数据报文发送装置的处理器31执行上述方法实施例中第二网络节点的处理动作,使收发器33执行上述实施例中第二网络节点的收发动作,其实现原理和技术效果类似,在此不再赘述。
上述本申请提供的实施例中,主要从第一网络节点、第二网络节点的角度对本申请实施例提供的方法进行了介绍。可以理解的是,各个网络节点,例如第一网络节点、第二网络节点为了实现上述本申请实施例提供的方法中的各功能,第一网络节点和第二网络节点包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对第一网络节点、第二网络节点进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
本文中的术语“多个”是指两个或两个以上。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系;在公式中,字符“/”,表示前后关联对象是一种“相除”的关系。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。
可以理解的是,在本申请的实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。
可以理解的是,在本申请的实施例中,存储器可以是非易失性存储器,比如硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM)。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本申请实施例提供的方法中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、第二网络节点、终端或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机可以存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD))、或者半导体介质(例如,SSD)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (20)
1.一种数据报文发送方法,其特征在于,包括:
第一网络节点判断是否能按照路由表转发数据报文;
若无法按照路由表转发所述数据报文,则所述第一网络节点生成探测报文,所述探测报文用于指示所述第一网络节点探测下一跳网络节点;所述探测报文与所述数据报文具有相同的目的地址;所述探测报文包含第一字段;
所述第一网络节点判断自身是否为汇聚节点;若所述第一网络节点的代价值小于或等于所述第一网络节点非故障的邻居网络节点中的最小代价值,则所述第一网络节点判断自身为汇聚节点;所述第一网络节点将代价值增大为第一代价值,所述第一代价值与所述第一网络节点非故障的邻居网络节点中的最大代价值的差值大于或等于预设阈值;所述第一网络节点将第一代价值、第一标识、所述第一代价值与所述第一标识的对应关系写入所述第一字段;所述第一标识为所述第一网络节点的标识;
所述第一网络节点探测所述下一跳网络节点,所述下一跳网络节点是所述第一网络节点非故障的邻居网络节点中,代价值满足预设条件的网络节点;
所述第一网络节点向所述下一跳网络节点依次发送所述探测报文和所述数据报文。
2.根据权利要求1所述的方法,其特征在于,若所述第一网络节点不是汇聚节点,则所述第一字段为空。
3.根据权利要求2所述的方法,其特征在于,
若所述第一网络节点的代价值大于所述最小代价值,则所述第一网络节点判断自身不为汇聚节点。
4.根据权利要求1~3任一项所述的方法,其特征在于,所述第一网络节点探测所述下一跳网络节点之后,还包括:
所述第一网络节点针对所述下一跳网络节点生成指示信息,所述指示信息用于指示所述下一跳网络节点;
所述第一网络节点根据所述指示信息,确定所述下一跳网络节点以发送后续到达的数据报文。
5.根据权利要求4所述的方法,其特征在于,所述第一网络节点根据所述下一跳网络节点生成指示信息之后,还包括:
所述第一网络节点判断所述第一网络节点所在的网络是否完成路由收敛;
若所述第一网络节点所在的网络完成路由收敛,则所述第一网络节点删除所述指示信息。
6.一种数据报文发送方法,其特征在于,包括:
第二网络节点依次接收探测报文和数据报文,所述探测报文用于指示所述第二网络节点探测下一跳网络节点;所述探测报文与所述数据报文具有相同的目的地址;所述探测报文包含第一字段;所述第二网络节点判断所述第一字段是否为空;若所述第一字段不为空,则所述第一字段携带至少一个代价值、至少一个标识、至少一个对应关系,所述至少一个代价值中的代价值和所述至少一个标识中的标识一一对应,所述至少一个标识中的不同标识对应不同的汇聚节点,指示网络是否执行过链路翻转;则所述第二网络节点根据所述第一字段和所述第二网络节点非故障的邻居网络节点的代价值,探测所述下一跳网络节点;所述下一跳网络节点为所述第二网络节点非故障的邻居网络节点中,代价值满足预设条件的网络节点
所述第二网络节点向所述下一跳网络节点依次发送所述探测报文和所述数据报文。
7.根据权利要求6所述的方法,其特征在于,若所述第一字段为空,则所述第二网络节点确定所述第二网络节点非故障的邻居网络节点中,代价值小于所述第二网络节点的任意一个所述邻居网络节点为所述下一跳网络节点。
8.根据权利要求7所述的方法,其特征在于,所述若所述第一字段不为空,则所述第二网络节点根据所述第一字段和所述第二网络节点非故障的邻居网络节点的代价值,探测所述下一跳网络节点,包括:
所述第二网络节点判断所述至少一个标识对应的不同汇聚节点中,是否存在第三网络节点,所述第三网络节点是所述第二网络节点非故障的邻居网络节点;
若所述至少一个标识对应的不同汇聚节点中存在所述第三网络节点,则所述第二网络节点从所述至少一个代价值中,确定出所述第三网络节点对应的代价值;
所述第二网络节点根据从所述至少一个代价值中确定出的所述第三网络节点的代价值,以及所述第二网络节点除所述第三网络节点外的非故障邻居网络节点的代价值,探测所述下一跳网络节点。
9.根据权利要求6~8任一项所述的方法,其特征在于,还包括:
所述第二网络节点针对所述下一跳网络节点生成指示信息,所述指示信息用于指示所述下一跳网络节点;
所述第二网络节点根据所述指示信息,确定所述下一跳网络节点以发送后续到达的数据报文。
10.根据权利要求9所述的方法,其特征在于,所述第二网络节点针对所述下一跳网络节点生成指示信息之后,还包括:
所述第二网络节点判断所述第二网络节点所在的网络是否完成路由收敛;
若所述第二网络节点所在的网络完成路由收敛,则所述第二网络节点删除所述指示信息。
11.一种数据报文发送装置,其特征在于,包括:
处理单元,用于判断是否能按照路由表转发数据报文,若无法按照路由表转发所述数据报文,则生成探测报文,所述探测报文用于指示第一网络节点探测下一跳网络节点;所述探测报文与所述数据报文具有相同的目的地址;所述探测报文包含第一字段;
所述处理单元,还用于判断自身是否为汇聚节点;若所述第一网络节点的代价值小于或等于所述第一网络节点非故障的邻居网络节点中的最小代价值,则所述第一网络节点判断自身为汇聚节点;将第一网络节点的代价值增大为第一代价值,所述第一代价值与所述第一网络节点非故障的邻居网络节点中的最大代价值的差值大于或等于预设阈值;所述第一网络节点将第一代价值、第一标识、所述第一代价值与所述第一标识的对应关系写入所述第一字段;所述第一标识为所述第一网络节点的标识;
探测所述下一跳网络节点,所述下一跳网络节点是所述第一网络节点非故障的邻居网络节点中,代价值满足预设条件的网络节点;
发送单元,用于向所述下一跳网络节点依次发送所述探测报文和所述数据报文。
12.根据权利要求11所述的装置,其特征在于,若所述第一网络节点不是汇聚节点,则所述第一字段为空。
13.根据权利要求12所述的装置,其特征在于,
所述处理单元,用于若所述第一网络节点的代价值大于所述最小代价值,则判断所述第一网络节点不为汇聚节点。
14.根据权利要求11~13任一项所述的装置,其特征在于,
所述处理单元,还用于针对所述下一跳网络节点生成指示信息,所述指示信息用于指示所述下一跳网络节点,根据所述指示信息,确定所述下一跳网络节点,以使得所述发送单元向所述下一跳网络节点发送后续到达的数据报文。
15.根据权利要求14所述的装置,其特征在于,
所述处理单元,还用于判断所述第一网络节点所在的网络是否完成路由收敛,若所述第一网络节点所在的网络完成路由收敛,则删除所述指示信息。
16.一种数据报文发送装置,其特征在于,包括:
接收单元,用于依次接收探测报文和数据报文,所述探测报文用于指示第二网络节点探测下一跳网络节点;所述探测报文与所述数据报文具有相同的目的地址;所述探测报文包含第一字段;
处理单元,用于判断所述第一字段是否为空,若所述第一字段不为空,所述第一字段不为空时,则所述第一字段携带至少一个代价值、至少一个标识、至少一个对应关系,所述至少一个代价值中的代价值和所述至少一个标识中的标识一一对应,所述至少一个标识中的不同标识对应不同的汇聚节点,则根据所述第一字段和所述第二网络节点非故障的邻居网络节点的代价值,探测所述下一跳网络节点;所述下一跳网络节点为所述第二网络节点非故障的邻居网络节点中,代价值满足预设条件的网络节点;
发送单元,用于向所述下一跳网络节点依次发送所述探测报文和所述数据报文。
17.根据权利要求16所述的装置,其特征在于,所述探测报文包含第一字段,
所述处理单元,用于若所述第一字段为空,则确定所述第二网络节点非故障的邻居网络节点中,代价值小于所述第二网络节点的任意一个所述邻居网络节点为所述下一跳网络节点。
18.根据权利要求16所述的装置,其特征在于,
所述处理单元,在所述第一字段不为空时,用于判断所述至少一个标识对应的不同汇聚节点中,是否存在第三网络节点,所述第三网络节点是所述第二网络节点非故障的邻居网络节点,若所述至少一个标识对应的不同汇聚节点中存在所述第三网络节点,则从所述至少一个代价值中,确定出所述第三网络节点对应的代价值,根据从所述至少一个代价值中确定出的所述第三网络节点的代价值,以及所述第二网络节点除所述第三网络节点外的非故障邻居网络节点的代价值,探测所述下一跳网络节点。
19.根据权利要求16~18任一项所述的装置,其特征在于,
所述处理单元,还用于针对所述下一跳网络节点生成指示信息,所述指示信息用于指示所述下一跳网络节点,根据所述指示信息,确定所述下一跳网络节点,以使所述发送单元向所述下一跳网络节点发送后续到达的数据报文。
20.根据权利要求19所述的装置,其特征在于,
所述处理单元,还用于判断所述第二网络节点所在的网络是否完成路由收敛,若所述第二网络节点所在的网络完成路由收敛,则删除所述指示信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910383610.7A CN111917637B (zh) | 2019-05-09 | 2019-05-09 | 数据报文发送方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910383610.7A CN111917637B (zh) | 2019-05-09 | 2019-05-09 | 数据报文发送方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111917637A CN111917637A (zh) | 2020-11-10 |
CN111917637B true CN111917637B (zh) | 2022-05-17 |
Family
ID=73242036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910383610.7A Active CN111917637B (zh) | 2019-05-09 | 2019-05-09 | 数据报文发送方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111917637B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103262481A (zh) * | 2010-12-17 | 2013-08-21 | 思科技术公司 | 有向无环图(dag)中的动态重路由调度 |
CN103262467A (zh) * | 2010-12-17 | 2013-08-21 | 思科技术公司 | 与计算机网络中低接触节点的增加的通信机会 |
CN104106287A (zh) * | 2012-02-11 | 2014-10-15 | 三菱电机株式会社 | 为了分组的无环路路由避开智能测量仪网络中的破损链路 |
CN109547966A (zh) * | 2018-12-27 | 2019-03-29 | 国网江苏省电力有限公司南京供电分公司 | 输电线路无线传感器网络的路由规划及故障诊断备份方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8630291B2 (en) * | 2011-08-22 | 2014-01-14 | Cisco Technology, Inc. | Dynamic multi-path forwarding for shared-media communication networks |
US10178019B2 (en) * | 2015-07-30 | 2019-01-08 | Cisco Technology, Inc. | Low-overhead anchorless managing of producer mobility in information-centric networking |
-
2019
- 2019-05-09 CN CN201910383610.7A patent/CN111917637B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103262481A (zh) * | 2010-12-17 | 2013-08-21 | 思科技术公司 | 有向无环图(dag)中的动态重路由调度 |
CN103262467A (zh) * | 2010-12-17 | 2013-08-21 | 思科技术公司 | 与计算机网络中低接触节点的增加的通信机会 |
CN104106287A (zh) * | 2012-02-11 | 2014-10-15 | 三菱电机株式会社 | 为了分组的无环路路由避开智能测量仪网络中的破损链路 |
CN109547966A (zh) * | 2018-12-27 | 2019-03-29 | 国网江苏省电力有限公司南京供电分公司 | 输电线路无线传感器网络的路由规划及故障诊断备份方法 |
Non-Patent Citations (1)
Title |
---|
《Link Reversal and Reactive Routing in Low Power and Lossy Networks》;Chi-Anh La等;《IEEE》;20130911;参见第1节至第2节 * |
Also Published As
Publication number | Publication date |
---|---|
CN111917637A (zh) | 2020-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110113259B (zh) | 路径状态通知方法、路径切换方法、转发设备及系统 | |
US20150063094A1 (en) | Method, apparatus, and system for detecting connectivity | |
US11711243B2 (en) | Packet processing method and gateway device | |
US9942138B2 (en) | Method and device for policy based routing | |
JP6443864B2 (ja) | パケット紛失検出を実装するための方法、装置、およびシステム | |
EP3029883A1 (en) | Network protection method and apparatus, next-ring node, and system | |
CN111385194B (zh) | 一种网络路径收敛的方法以及相关设备 | |
US8121026B2 (en) | Systems and methods for routing data in a communications network | |
CN113992569A (zh) | Sdn网络中多路径业务收敛方法、装置及存储介质 | |
CN113615132A (zh) | 快速泛洪拓扑保护 | |
US20080130503A1 (en) | Method and system for forwarding ethernet frames over redundant networks with all links enabled | |
CN104717143A (zh) | 用于多归场景组播数据传输的方法及设备 | |
CN111917637B (zh) | 数据报文发送方法及装置 | |
US11552882B2 (en) | Efficient propagation of fault routing notifications | |
CN102801562B (zh) | 传输链路切换方法、装置及网络设备 | |
CN112637053B (zh) | 路由的备份转发路径的确定方法及装置 | |
CN114531396B (zh) | 一种以太网虚拟专用网络中的故障回切方法及装置 | |
CN115037670A (zh) | 一种网络收敛方法、装置、电子设备及存储介质 | |
US10666553B2 (en) | Method for quick reconfiguration of routing in the event of a fault in a port of a switch | |
CN114465942A (zh) | 一种同时支持二三层组播流量的转发方法及系统 | |
US20170012869A1 (en) | Forwarding table management in computer networks | |
US11750494B2 (en) | Modified graceful restart | |
US20240121177A1 (en) | Path determining method and apparatus | |
Nehnouh et al. | Collaborative Routing Algorithm for Fault Tolerance in Network on Chip CRAFT NoC | |
CN117914777A (zh) | 故障处理方法、装置、网络设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |