CN112422428B - 链路状态获取方法、装置、电子设备及可读存储介质 - Google Patents
链路状态获取方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN112422428B CN112422428B CN202011243100.9A CN202011243100A CN112422428B CN 112422428 B CN112422428 B CN 112422428B CN 202011243100 A CN202011243100 A CN 202011243100A CN 112422428 B CN112422428 B CN 112422428B
- Authority
- CN
- China
- Prior art keywords
- link
- routing node
- state information
- link state
- adjacent
- 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/12—Shortest path evaluation
- H04L45/123—Evaluation of link metrics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/106—Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
-
- 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/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种链路状态获取方法、装置、电子设备及可读存储介质,包括:向SDN中相邻的第二路由节点发送第一链路状态信息,第一链路状态信息包括不与第二路由节点相邻的链路的状态信息;以及接收第二路由节点发送的第二链路状态信息,第二链路状态信息包括不与第一路由节点相邻的链路的状态信息;将不与第一路由节点相邻的链路的状态信息存储在本地。第一路由节点接收相邻的第二路由节点发送的第二链路状态信息,第二链路状态信息中包括不与第一路由节点相邻的链路的状态信息;第一路由节点将不与第二路由节点相邻的链路的状态信息发送给第二路由节点,从而使得路由节点可以获取到不与自身相连的链路的状态信息,扩大对链路状态获取的范围。
Description
技术领域
本申请涉及数据传输领域,具体而言,涉及一种链路状态获取方法、装置、电子设备及可读存储介质。
背景技术
在软件定义网络(Software Defined Network,简称SDN)中,控制器通过感知网络设备的各种探测手段获取到SDN的实际运行状态,并为通信报文动态规划合适的传输路径,使通信报文在最合适的传输路径上转发。
在SDN中的各个作为节点的设备也具有针对设备之间的直连链路的探测方法,用于提高应对突发故障的速度。探测方法包括:利用双向转发检测(BidirectionalForwarding Detection,简称BFD)感知链路的中断情况;利用服务级别协议(ServiceLevel Agreement,简称SLA)感知链路的时延、抖动、丢包率等质量情况。然而,现有的链路状态的探测只能对与设备直连的链路进行探测,对于节点来说,对链路状态获取的范围较小。
发明内容
本申请实施例的目的在于提供一种链路状态获取方法、装置、电子设备及可读存储介质,用以改善现有技术中节点对链路状态获取的范围小的问题。
第一方面,本申请实施例提供了一种链路状态获取方法,应用于软件定义网络SDN中的第一路由节点,所述方法包括:向SDN中相邻的第二路由节点发送第一链路状态信息,所述第一链路状态信息包括由所述第一路由节点获取的不与所述第二路由节点相邻的链路的状态信息;以及接收所述第二路由节点发送的第二链路状态信息,所述第二链路状态信息包括由所述第二路由节点获取的不与所述第一路由节点相邻的链路的状态信息;将接收的不与所述第一路由节点相邻的链路的状态信息存储在本地。
在上述的实施方式中,第一路由节点可以接收相邻的第二路由节点发送的第二链路状态信息,第二链路状态信息中包括不与第一路由节点相邻的链路的状态信息;第一路由节点也可以将不与第二路由节点相邻的链路的状态信息发送给第二路由节点,从而使得SDN中的路由节点可以获取到不与自身相连的链路的状态信息,扩大了路由节点对链路状态获取的范围。
在一个可能的设计中,所述第二链路状态信息包括链路身份标识、与所述链路身份标识对应的链路的链路状态;所述将接收的不与所述第一路由节点相邻的链路的状态信息存储在本地,包括:判断所述链路身份标识对应的链路的链路状态是否已被记录在所述本地表项中;若否,则记录所述链路身份标识对应的链路的链路状态。
在上述的实施方式中,在欲记录链路的链路状态时,可以根据链路身份标识,先判断该链路身份标识对应的链路是否已被记录过链路状态,若未被记录过链路状态,则可以将该链路身份标识对应的链路的链路状态记录在路由节点的本地。根据链路身份标识进行链路的查找,利于路由节点更加全面的获取链路状态,不容易被遗漏。
在一个可能的设计中,所述第二链路状态信息还包括探测路由节点的标识以及时间戳,所述判断所述链路身份标识对应的链路的状态信息是否已被记录在所述本地表项中之后,所述方法还包括:若所述链路身份标识对应的链路的链路状态已被记录在所述本地表项中,获取当前接收到的与所述链路身份标识对应的链路的时间戳;判断所述当前接收到的时间戳是否迟于已被记录在所述本地表项中的同一链路的时间戳;若是,用所述当前接收到的所述链路状态替换所述本地表项中的同一链路的链路状态;若否,保留所述本地表项中的同一链路的链路状态。
在上述的实施方式中,若第二链路状态信息中包括的链路身份标识对应的链路状态已经被记录在路由节点的本地表项中,在可以比较本地表项中的链路状态的时间戳与第二链路状态信息中的链路状态的时间戳,若第二链路状态信息中的链路状态的时间戳迟于本地表项中的链路状态的时间戳,则表示第二链路状态信息中的链路状态为更新后的状态,因此,可以用第二链路状态信息中的链路状态替换本地表项中同一链路的链路状态。若第二链路状态信息中的链路状态的时间戳早于本地表项中的链路状态的时间戳,则表示第二链路状态信息中的链路状态不如原本就存储在本地表项中的同一链路的链路状态新,因此,可以保留原本就存储在本地表项中的同一链路的链路状态。在路由节点的本地表项中存储有相同链路的链路状态时,可以基于链路状态的时间戳进行选择,从而可以保持链路状态的始终处于较新的状态。
在一个可能的设计中,在所述接收所述第二路由节点发送的第二链路状态信息之后,所述方法还包括:向除所述第二路由节点以外的相邻路由节点转发所述第二链路状态信息。
在上述的实施方式中,第一路由节点在接收到第二路由节点发送的第二链路状态信息之后,除了将第二链路状态信息中的不与第一路由节点相邻的链路记录在本地以外,还可以将第二链路状态信息转发给除第二路由节点以外的其他路由节点,从而可以进一步扩大每个路由节点可获知的非相邻链路的链路状态。
在一个可能的设计中,在所述向SDN中相邻的第二路由节点发送第一链路状态信息之前,所述方法还包括:周期性地向相邻的路由节点发送链路状态检测报文;根据所述相邻的路由节点的应答情况,获取第一路由节点与每个相邻的路由节点的链路状态,其中,所述第一路由节点与每个相邻的路由节点的链路状态为第一链路状态信息。
在上述的实施方式中,第一路由节点可以通过检测的方式来获取与第一路由节点相邻的链路的链路状态,然后将检测得到的与第一路由节点相邻的链路的链路状态发送给第二路由节点。与第一路由节点相邻的链路中存在有不与第二路由节点相邻的链路,因此,第一路由节点将自身检测到的链路的链路状态发送给第二路由节点,利于扩大第二路由节点获取到的链路状态的范围。
在一个可能的设计中,在所述向SDN中相邻的第二路由节点发送第一链路状态信息之前,所述方法还包括:接收除所述第二路由节点以外的路由节点发送的链路状态信息,其中,所述除所述第二路由节点以外的路由节点发送的链路状态信息为第一链路状态信息。
在上述的实施方式中,第一路由节点可以通过接收其他路由节点发送的链路状态信息的方式,获取不与第二路由节点相邻的链路的链路状态,从而可以进一步扩大第二路由节点获取到的链路状态的范围。
在一个可能的设计中,所述由所述第二路由节点获取的不与所述第一路由节点相邻的链路的状态信息为所述第二路由节点检测的链路状态信息或所述第二路由节点转发的链路状态信息。
在上述的实施方式中,第二路由节点获取不与第一路由节点相邻的链路的状态信息,可以通过两种方式进行:第二路由节点自身检测到的链路状态信息;第二路由节点转发其他路由节点发送的链路状态信息。通过上述两种方式,可以较大地提高第一路由节点获取的链路状态的范围。
第二方面,本申请实施例提供了一种链路状态获取装置,应用于软件定义网络SDN中的第一路由节点,所述装置包括:状态信息发送模块,用于向SDN中相邻的第二路由节点发送第一链路状态信息,所述第一链路状态信息包括由所述第一路由节点获取的不与所述第二路由节点相邻的链路的状态信息;状态信息接收模块,用于接收所述第二路由节点发送的第二链路状态信息,所述第二链路状态信息包括由所述第二路由节点获取的不与所述第一路由节点相邻的链路的状态信息;状态信息存储模块,用于将接收的不与所述第一路由节点相邻的链路的状态信息存储在本地。
在一个可能的设计中,状态信息存储模块,用于判断所述链路身份标识对应的链路的链路状态是否已被记录在所述本地表项中;若否,则记录所述链路身份标识对应的链路的链路状态。
在一个可能的设计中,所述装置还包括:时间戳获取模块,用于当所述链路身份标识对应的链路的链路状态已被记录在所述本地表项中时,获取当前接收到的与所述链路身份标识对应的链路的时间戳;时间戳判断模块,用于判断所述当前接收到的时间戳是否迟于已被记录在所述本地表项中的同一链路的时间戳;链路状态替换模块,用于当所述当前接收到的时间戳迟于已被记录在所述本地表项中的同一链路的时间戳,用所述当前接收到的所述链路状态替换所述本地表项中的同一链路的链路状态;链路状态保留模块,用于当所述当前接收到的时间戳未迟于已被记录在所述本地表项中的同一链路的时间戳,保留所述本地表项中的同一链路的链路状态。
在一个可能的设计中,所述装置还包括:信息转发模块,用于向除所述第二路由节点以外的相邻路由节点转发所述第二链路状态信息。
在一个可能的设计中,所述装置还包括:报文检测模块,用于周期性地向相邻的路由节点发送链路状态检测报文;链路状态获取模块,用于根据所述相邻的路由节点的应答情况,获取第一路由节点与每个相邻的路由节点的链路状态,其中,所述第一路由节点与每个相邻的路由节点的链路状态为第一链路状态信息。
在一个可能的设计中,链路状态接收模块,用于接收除所述第二路由节点以外的路由节点发送的链路状态信息,其中,所述除所述第二路由节点以外的路由节点发送的链路状态信息为第一链路状态信息。
在一个可能的设计中,所述由所述第二路由节点获取的不与所述第一路由节点相邻的链路的状态信息为所述第二路由节点检测的链路状态信息或所述第二路由节点转发的链路状态信息。
第三方面,本申请提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当所述电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行第一方面或第一方面的任一可选的实现方式所述的方法。
第四方面,本申请提供一种可读存储介质,该可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行第一方面或第一方面的任一可选的实现方式所述的方法。
第五方面,本申请提供一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行第一方面或第一方面的任意可能的实现方式中的方法。
为使本申请实施例所要实现的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了对照实施例提供的SDN的连接关系示意图;
图2为本申请实施例提供的链路状态获取方法的流程示意图;
图3为图2中步骤S130的具体步骤的流程示意图;
图4为本申请实施例提供的SDN的连接关系示意图;
图5为本申请实施例提供的链路状态获取装置的示意性结构框图。
具体实施方式
请参见图1,图1示出了对照实施例的SDN,该SDN包括控制器10和多个路由器Spoke1、Spoke2、Spoke3、Spoke4、Agg1、Agg2、Hub1以及Hub2。其中,控制器10与多个路由器均连接,多个路由器均作为SDN的路由节点,路由节点之间的链路连接情况如图1所示。
控制器10会向如图1示出的SDN的全部路由节点下发检测配置信息,检测配置信息用于告知该SDN中的每个路由节点,需要向相邻的路由节点发送检测报文,例如,控制器10会告知Agg2,需要向与Agg2相邻的路由节点Agg1、Spoke2、Spoke4以及Hub2发送检测报文。
在该SDN中的每个路由节点进行过报文检测,并确定出全部链路的连通情况或断开情况后,控制器10会规划出一条传输通信报文的传输路径,然后向在该传输路径上的路由节点下发报文传输的主策略和备份策略。例如,不妨设控制器10规划出的传输路径为Spoke1-Agg1-Agg2-Hub2,则控制器10会将主策略和备份策略均发送给Spoke1、Agg1、Agg2、Hub2。
其中,主策略指的是传输路径中任一链路均不发生断开时,通信报文传输的路径;备份策略指的是传输路径中某一链路发生断开,而控制器10尚未规划出新的传输路径时,通信报文传输的路径。
检测报文可以是周期性发送的心跳报文,例如每过一秒钟,SDN中的每个路由节点可以根据检测配置信息,向相邻的路由节点发送检测报文,以获取每个路由节点与相邻的路由节点之间的链路的连通状态。
在对照实施例中,路由节点只能对与路由节点直接连接的链路进行探测,探测效率较低。
例如,请参见图1,不妨设Agg2与Hub2之间的link9断开,通信报文传输到Agg1时,由于Agg1与Agg2之间的链路link7未断开,且Agg1无法感知到Agg2与Hub2之间的link9断开,因此,Agg1依然会按照主策略,将通信报文传输给Agg2。由于Agg2可以感知到Agg2与Hub2之间的link9断开,因此Agg2会停止主策略,启用备份策略,在接收到通信报文后实现该通信报文的绕行,具体地,Agg2可以根据备份策略,将通信报文发回Agg1,再由Agg1传输到Hub1。路由节点只能对与路由节点直接连接的链路进行探测,对链路状态获取的范围较小,降低了通信报文的传输效率。
本申请实施例提供的链路状态获取方法中,路由节点可以接收另一路由节点获取的链路状态信息,该链路状态信息中包括有不与作为接收方的路由节点相邻的链路的状态信息,作为接收方的路由节点可以将不与自身相连的链路的状态信息存储在本地,提高了路由节点对链路状态获取的范围,使得路由节点能够更早地进行主策略与备份策略的切换,可以提高通信报文的传输效率。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
请参见图2,图2示出了本申请实施例提供的链路状态获取方法的流程示意图,应用于SDN。该方法可以由SDN中的第一路由节点执行,其中,第一路由节点为SDN中的任一路由节点。该方法具体包括如下步骤S110至步骤S130:
步骤S110,向SDN中相邻的第二路由节点发送第一链路状态信息,所述第一链路状态信息包括由所述第一路由节点获取的不与所述第二路由节点相邻的链路的状态信息。
第二路由节点可以为与第一路由节点相邻的任意一个路由节点。第一链路状态信息包括至少一个链路的链路状态信息。其中,链路的链路状态信息包括该链路对应的链路身份标识、该链路的链路状态、探测该链路状态信息的探测路由节点的标识以及时间戳。
第一链路状态信息由第一路由节点获取,第一路由节点的获取方式包括:第一路由节点通过自身检测的方式获取,或通过接收其他路由节点发送的链路状态的方式获取。
可选地,在一种具体实施方式中,第一路由节点通过自身检测的方式获取,可以包括如下步骤:
周期性地向相邻的路由节点发送链路状态检测报文;根据所述相邻的路由节点的应答情况,获取第一路由节点与每个相邻的路由节点的链路状态,其中,所述第一路由节点与每个相邻的路由节点的链路状态为第一链路状态信息。
节点与节点之间通过链路连接,链路状态检测报文为可以对链路状态进行检测的报文,第一路由节点可以根据相邻的路由节点的应答情况,确定第一路由节点与每个相邻的路由节点的链路状态。
例如,对于BFD链路探测手段,第一路由节点在向一相邻的路由节点发出链路状态检测报文之后,判断在预定时长内,是否接收到该相邻的路由节点的应答报文,若在预定时长内接收到该相邻的路由节点的应答报文,则可以判定第一路由节点与该相邻的路由节点之间的链路处于连通的状态;若在预定时长内未接收到该相邻的路由节点的应答报文,则可以判定第一路由节点与该相邻的路由节点之间的链路处于断开的状态。
对于SLA链路探测手段,第一路由节点在向一相邻的路由节点发出链路状态检测报文之后,接收该相邻的路由节点的应答报文,并根据应答报文中包括的探测指标例如时延、抖动以及丢包率的具体数值,判断第一路由节点与相邻的路由节点之间的链路是处于正常状态、轻度劣化状态还是重度劣化状态。第一路由节点根据应答情况确定第一路由节点与相邻的路由节点的链路状态的具体方式,与具体的链路探测手段有关第一路由节点确定链路状态的具体方式不应该理解为是对本申请的限制。
可选地,在另一种具体实施方式中,第一路由节点通过接收其他路由节点发送的链路状态的方式获取,可以包括如下步骤:
接收除所述第二路由节点以外的路由节点发送的链路状态信息,其中,所述除所述第二路由节点以外的路由节点发送的链路状态信息为第一链路状态信息。
上述的除所述第二路由节点以外的路由节点发送的链路状态信息,可以是作为发送方的路由节点检测的,也可以是作为发送方的路由节点转发其他路由节点发送的。
第一路由节点可以通过接收其他路由节点发送的链路状态信息的方式,获取不与第二路由节点相邻的链路的链路状态,从而可以进一步扩大第二路由节点获取到的链路状态的范围。
步骤S120,接收所述第二路由节点发送的第二链路状态信息,所述第二链路状态信息包括由所述第二路由节点获取的不与所述第一路由节点相邻的链路的状态信息。
第二链路状态信息由第二路由节点获取。可选地,第二路由节点的获取方式可以包括:第二路由节点自身检测的链路状态信息,或第二路由节点转发的链路状态信息。第二路由节点获取第二链路状态信息的方式与第一路由节点获取第一链路状态信息的方式对应相同,在此便不做赘述。
步骤S130,将接收的不与所述第一路由节点相邻的链路的状态信息存储在本地。
第一路由节点可以接收相邻的第二路由节点发送的第二链路状态信息,第二链路状态信息中包括不与第一路由节点相邻的链路的状态信息;第一路由节点也可以将不与第二路由节点相邻的链路的状态信息发送给第二路由节点,从而使得SDN中的路由节点可以获取到不与自身相连的链路的状态信息,扩大了路由节点对链路状态获取的范围。
可选地,请参见图3,图3示出了步骤S130的具体步骤的流程示意图,具体包括如下步骤S131至步骤S136:
步骤S131,判断所述链路身份标识对应的链路的链路状态是否已被记录在所述本地表项中,若是,执行步骤S132;若否,执行步骤S136。
步骤S132,获取当前接收到的与所述链路身份标识对应的链路的时间戳。
步骤S133,判断所述当前接收到的时间戳是否迟于已被记录在所述本地表项中的同一链路的时间戳,若是,执行步骤S134;若否,执行步骤S135。
步骤S134,用所述当前接收到的所述链路状态替换所述本地表项中的同一链路的链路状态。
若第二链路状态信息中包括的链路身份标识对应的链路状态已经被记录在路由节点的本地表项中,在可以比较本地表项中的链路状态的时间戳与第二链路状态信息中的链路状态的时间戳,若第二链路状态信息中的链路状态的时间戳迟于本地表项中的链路状态的时间戳,则表示第二链路状态信息中的链路状态为更新后的状态,因此,可以用第二链路状态信息中的链路状态替换本地表项中同一链路的链路状态。
步骤S135,保留所述本地表项中的同一链路的链路状态。
若第二链路状态信息中的链路状态的时间戳早于本地表项中的链路状态的时间戳,则表示第二链路状态信息中的链路状态不如原本就存储在本地表项中的同一链路的链路状态新,因此,可以保留原本就存储在本地表项中的同一链路的链路状态。
在路由节点的本地表项中存储有相同链路的链路状态时,可以基于链路状态的时间戳进行选择,从而可以保持链路状态的始终处于较新的状态。
步骤S136,记录所述链路身份标识对应的链路的链路状态。
在欲记录链路的链路状态时,可以根据链路身份标识,判断该链路身份标识对应的链路是否已被记录过链路状态,若未被记录过链路状态,则可以将该链路身份标识对应的链路的链路状态记录在路由节点的本地。根据链路身份标识进行链路的查找,利于路由节点更加全面的获取链路状态,不容易被遗漏。
可选地,在一种具体实施方式中,在步骤S120之后,该方法还可以包括:向除所述第二路由节点以外的相邻路由节点转发所述第二链路状态信息。
第一路由节点在接收到第二路由节点发送的第二链路状态信息之后,除了将第二链路状态信息中的不与第一路由节点相邻的链路记录在本地以外,还可以将第二链路状态信息转发给除第二路由节点以外的其他路由节点,从而可以进一步扩大每个路由节点可获知的非相邻链路的链路状态。
请参见图4,接下来以图4示出的SDN的连接关系图为例,对本申请实施例提供的链路状态获取方法进行说明:
图4示出的SDN包括控制器10和路由节点:Spoke1、Spoke2、Spoke3、Spoke4、Agg1、Agg2、Hub1以及Hub2。其中,控制器10与多个路由节点均连接,路由节点之间的链路连接情况如图4所示。
控制器10规划出一条传输通信报文的传输路径为Spoke1-Agg1-Agg2-Hub2,并且控制器10将主策略和备份策略均发送给Spoke1、Agg1、Agg2、Hub2。
不妨设第一路由节点为Agg1,则第二路由节点可以为与第一路由节点相邻的任一节点,即与Agg1相邻的Spoke1、Spoke3、Agg2以及Hub1均可以作为第二路由节点。不妨设第二路由节点为Agg2,则:
Agg1可以向Agg2发送第一链路状态信息。第一链路状态信息可以是Agg1自身检测到的,也可以是Agg1接收Spoke1、Spoke3或Hub1发送的。
对第一链路状态信息是Agg1自身检测到的情况进行如下介绍:
Agg1可以周期性地向Spoke1、Spoke3、Hub1、Agg2发送检测报文,以分别获取Agg1与Spoke1;Agg1与Spoke3;Agg1与Hub1;Agg1与Agg2的链路连接情况,并将上述的链路连接情况记录在自身。
例如,对于BFD探测,Agg1可以在向Spoke1、Spoke3、Hub1、Agg2发送检测报文之后,判断在预定时长内是否接收到Spoke1、Spoke3、Hub1或Agg2的应答报文,若接收到应答报文,则表示Agg1与发出应答报文的路由节点之间的链路为连通的状态;若未接收到应答报文,则表示Agg1与未发送应答报文的路由节点之间的链路为断开的状态。
不妨设Agg1在预定时长内接收到Spoke1、Hub1以及Agg2的应答报文,未收到Spoke3的应答报文,则说明Agg1与Spoke1之间的链路为连通状态,Agg1与Hub1之间的链路为连通状态,Agg1与Agg2之间的链路为连通状态,Agg1与Spoke3之间的链路为断开状态。
Agg1可以按照如下格式记录链路状态信息:
探测类型:链路身份标识:链路状态:探测路由节点标识:时间戳
则Agg1向Agg2发送的第一链路状态信息可以为:
Bfd:103:UP:Agg1:t;
Bfd:104:DOWN:Agg1:t;
Bfd:107:UP:Agg1:t;
Bfd:108:UP:Agg1:t。
其中,Bfd代表探测类型是BFD探测,103、104、107、108为分别为链路Link3、Link4、Link7、Link8对应的链路身份标识,连通UP或断开DOWN为链路状态,Agg1为探测链路状态的路由节点的标识信息,t为时间戳,用于标示探测结果对应的实际探测时间。链路身份标识可以由控制器10进行统一分配,也可以由网络管理员分配。
对于SLA探测,Agg1可以在向Spoke1、Spoke3、Hub1、Agg2发送检测报文,并且在接收到Spoke1、Spoke3、Hub1或Agg2的应答报文后,根据应答报文中的探测指标,判断Agg1与发出应答报文的路由节点之间的链路的状态。
探测指标包括时延、抖动以及丢包率,时延、抖动以及丢包率不同的数值对应不同的链路状态,例如,时延为a1、抖动为b1、丢包率为c1时对应轻度劣化Mild;时延为a2、抖动为b2、丢包率为c2时对应重度劣化Severe;时延为a3、抖动为b3、丢包率为c3时对应正常Normal。探测指标的具体数值与链路状态的对应关系可以由用户进行配置,因此数值与链路状态的具体对应关系不应该理解为是对本申请的限制。
不妨设Agg1与Spoke1、Spoke3、Agg2、Hub1之间的链路状态分别为Normal、Normal、Mild、Severe。
则Agg1向Agg2发送的第一链路状态信息可以为:
SLA:103:Normal:Agg1:t;
SLA:104:Normal:Agg1:t;
SLA:107:Mild:Agg1:t;
SLA:108:Severe:Agg1:t。
对第一链路状态信息是Agg1接收Spoke1、Spoke3或Hub1发送的情况进行如下介绍:
Spoke1、Spoke3或Hub1可以将第一链路状态信息发送给Agg1,再由Agg1将第一链路状态信息转发给Agg2。Spoke1、Spoke3或Hub1发送给Agg1的第一链路状态信息可以是它们自身检测获得的,它们进行检测的检测过程与Agg1进行检测的检测过程相近似,在此便不做赘述。
Agg2发送第二链路状态信息给Agg1的过程与上述的Agg1发送第一链路状态信息给Agg2的过程相近似,在此便不做赘述。
对于图4示出的SDN网络中的任一路由节点,不妨以Agg1为例,Agg1可以探测与自身相连的链路的链路状态信息,并记录在本地表项中;Agg1还可以接收Spoke1、Spoke3、Hub1或Agg2发送的它们各自检测到的链路状态信息,并记录在本地表项中;Agg1也可以接收Spoke1、Spoke3、Hub1或Agg2转发的其他路由节点检测到的链路状态信息,并记录在本地表项中,因此,Agg1的本地表项中可以记录整个SDN网络中的全部链路的链路状态,从而扩大了Agg1能够获取的链路状态的范围。
Agg1在进行链路探测时,为了避免相同链路的链路状态的重复,可以通过如下原则实现避免链路状态的重复:
对于与Agg1相邻的链路,以Agg1自身检测到的链路状态为准确的链路状态;对于与Agg1不相邻的链路,以时间戳较新的链路状态为准确的链路状态。
不妨设图4中的link9 109断开,Agg2以及Hub2均会将探测到的link9109断开的信息分别向它们各自的邻接路由节点发送。
Agg1会接收到Agg2或Hub2检测到的link9 109断开的链路状态信息,并在Agg1就会停止主策略(即不再向Agg2发送通信报文),启用备份策略(即向Hub1发送通信报文),同时等待控制器10传输过来新的传输路径。
请参见图5,图5示出了本申请实施例提供的链路状态获取装置的一种具体实施方式,应用于服务器,该装置300包括:
状态信息发送模块310,用于向SDN中相邻的第二路由节点发送第一链路状态信息,所述第一链路状态信息包括由所述第一路由节点获取的不与所述第二路由节点相邻的链路的状态信息。
状态信息接收模块320,用于接收所述第二路由节点发送的第二链路状态信息,所述第二链路状态信息包括由所述第二路由节点获取的不与所述第一路由节点相邻的链路的状态信息。
状态信息存储模块330,用于将接收的不与所述第一路由节点相邻的链路的状态信息存储在本地。
状态信息存储模块330,具体用于判断所述链路身份标识对应的链路的链路状态是否已被记录在所述本地表项中;若否,则记录所述链路身份标识对应的链路的链路状态。
所述装置还包括:
时间戳获取模块,用于当所述链路身份标识对应的链路的链路状态已被记录在所述本地表项中时,获取当前接收到的与所述链路身份标识对应的链路的时间戳。
时间戳判断模块,用于判断所述当前接收到的时间戳是否迟于已被记录在所述本地表项中的同一链路的时间戳。
链路状态替换模块,用于当所述当前接收到的时间戳迟于已被记录在所述本地表项中的同一链路的时间戳,用所述当前接收到的所述链路状态替换所述本地表项中的同一链路的链路状态。
链路状态保留模块,用于当所述当前接收到的时间戳未迟于已被记录在所述本地表项中的同一链路的时间戳,保留所述本地表项中的同一链路的链路状态。
信息转发模块,用于向除所述第二路由节点以外的相邻路由节点转发所述第二链路状态信息。
报文检测模块,用于周期性地向相邻的路由节点发送链路状态检测报文。
链路状态获取模块,用于根据所述相邻的路由节点的应答情况,获取第一路由节点与每个相邻的路由节点的链路状态,其中,所述第一路由节点与每个相邻的路由节点的链路状态为第一链路状态信息。
链路状态接收模块,用于接收除所述第二路由节点以外的路由节点发送的链路状态信息,其中,所述除所述第二路由节点以外的路由节点发送的链路状态信息为第一链路状态信息。
图5示出的链路状态获取装置与图2示出的链路状态获取方法相对应,在此便不做赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种链路状态获取方法,其特征在于,应用于软件定义网络SDN中的第一路由节点,所述方法包括:
向SDN中相邻的第二路由节点发送第一链路状态信息,所述第一链路状态信息包括由所述第一路由节点获取的不与所述第二路由节点相邻的链路的状态信息;以及
接收所述第二路由节点发送的第二链路状态信息,所述第二链路状态信息包括由所述第二路由节点获取的不与所述第一路由节点相邻的链路的状态信息;
将接收的不与所述第一路由节点相邻的链路的状态信息存储在本地。
2.根据权利要求1所述的方法,其特征在于,所述第二链路状态信息包括链路身份标识、与所述链路身份标识对应的链路的链路状态;
所述将接收的不与所述第一路由节点相邻的链路的状态信息存储在本地,包括:
判断所述链路身份标识对应的链路的链路状态是否已被记录在本地表项中;
若否,则记录所述链路身份标识对应的链路的链路状态。
3.根据权利要求2所述的方法,其特征在于,所述第二链路状态信息还包括探测路由节点的标识以及时间戳,所述判断所述链路身份标识对应的链路的状态信息是否已被记录在所述本地表项中之后,所述方法还包括:
若所述链路身份标识对应的链路的链路状态已被记录在所述本地表项中,获取当前接收到的与所述链路身份标识对应的链路的时间戳;
判断所述当前接收到的时间戳是否迟于已被记录在所述本地表项中的同一链路的时间戳;
若是,用所述当前接收到的所述链路状态替换所述本地表项中的同一链路的链路状态;
若否,保留所述本地表项中的同一链路的链路状态。
4.根据权利要求1所述的方法,其特征在于,在所述接收所述第二路由节点发送的第二链路状态信息之后,所述方法还包括:
向除所述第二路由节点以外的相邻路由节点转发所述第二链路状态信息。
5.根据权利要求1所述的方法,其特征在于,在所述向SDN中相邻的第二路由节点发送第一链路状态信息之前,所述方法还包括:
周期性地向相邻的路由节点发送链路状态检测报文;
根据所述相邻的路由节点的应答情况,获取第一路由节点与每个相邻的路由节点的链路状态,其中,所述第一路由节点与每个相邻的路由节点的链路状态为第一链路状态信息。
6.根据权利要求1所述的方法,其特征在于,在所述向SDN中相邻的第二路由节点发送第一链路状态信息之前,所述方法还包括:
接收除所述第二路由节点以外的路由节点发送的链路状态信息,其中,所述除所述第二路由节点以外的路由节点发送的链路状态信息为第一链路状态信息。
7.根据权利要求1所述的方法,其特征在于,所述由所述第二路由节点获取的不与所述第一路由节点相邻的链路的状态信息为所述第二路由节点检测的链路状态信息或所述第二路由节点转发的链路状态信息。
8.一种链路状态获取装置,其特征在于,应用于软件定义网络SDN中的第一路由节点,所述装置包括:
状态信息发送模块,用于向SDN中相邻的第二路由节点发送第一链路状态信息,所述第一链路状态信息包括由所述第一路由节点获取的不与所述第二路由节点相邻的链路的状态信息;
状态信息接收模块,用于接收所述第二路由节点发送的第二链路状态信息,所述第二链路状态信息包括由所述第二路由节点获取的不与所述第一路由节点相邻的链路的状态信息;
状态信息存储模块,用于将接收的不与所述第一路由节点相邻的链路的状态信息存储在本地。
9.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1-7任一项所述的链路状态获取方法。
10.一种可读存储介质,其特征在于,该可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1-7任一项所述的链路状态获取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011243100.9A CN112422428B (zh) | 2020-11-09 | 2020-11-09 | 链路状态获取方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011243100.9A CN112422428B (zh) | 2020-11-09 | 2020-11-09 | 链路状态获取方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112422428A CN112422428A (zh) | 2021-02-26 |
CN112422428B true CN112422428B (zh) | 2022-05-17 |
Family
ID=74782297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011243100.9A Active CN112422428B (zh) | 2020-11-09 | 2020-11-09 | 链路状态获取方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112422428B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114615208B (zh) * | 2022-03-09 | 2024-02-23 | 新华三半导体技术有限公司 | 一种反压信息传递、请求发送方法、装置及网络芯片 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120030150A1 (en) * | 2010-07-29 | 2012-02-02 | Telcordia Technologies, Inc. | Hybrid Learning Component for Link State Routing Protocols |
CN102480753B (zh) * | 2010-11-24 | 2016-03-30 | 中兴通讯股份有限公司 | 链路状态检测方法和装置 |
CN102136947A (zh) * | 2011-03-10 | 2011-07-27 | 华为技术有限公司 | 链路故障处理方法及装置 |
WO2014113957A1 (zh) * | 2013-01-24 | 2014-07-31 | 华为技术有限公司 | 一种链路管理方法、设备和通信系统 |
CN104125590B (zh) * | 2013-04-26 | 2017-10-03 | 富士通株式会社 | 链路故障诊断装置以及方法 |
CN104283722B (zh) * | 2014-10-29 | 2018-05-08 | 新华三技术有限公司 | Sdn链路状态信息收集方法及装置 |
CN105553844B (zh) * | 2015-12-31 | 2018-12-14 | 北京华为数字技术有限公司 | 一种链路状态通告的传输方法及网络设备 |
CN108989204B (zh) * | 2017-05-31 | 2021-08-20 | 华为技术有限公司 | 一种链路状态确定方法及设备 |
CN109617805B (zh) * | 2018-12-17 | 2022-04-08 | 新华三技术有限公司合肥分公司 | 链路动态属性的获取方法、装置及路径选择方法、装置 |
CN110011839B (zh) * | 2019-03-26 | 2022-04-08 | 新华三技术有限公司 | 报文转发方法、装置、spe及存储介质 |
CN111404822B (zh) * | 2020-02-28 | 2022-08-26 | 华为技术有限公司 | 数据传输方法、装置、设备以及计算机可读存储介质 |
CN111756596A (zh) * | 2020-06-02 | 2020-10-09 | 深圳供电局有限公司 | 一种基于sdn的链路质量探测系统及方法 |
-
2020
- 2020-11-09 CN CN202011243100.9A patent/CN112422428B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112422428A (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9237092B2 (en) | Method, apparatus, and system for updating ring network topology information | |
US6765877B1 (en) | System and method for detecting unidirectional links | |
US20140254347A1 (en) | Ethernet Ring Protection Switching Method, Node, and System | |
US9385944B2 (en) | Communication system, path switching method and communication device | |
US9515919B2 (en) | Method and apparatus for protection switching in packet transport system | |
CN107517117B (zh) | 一种ip层oam告警方法、装置及网络节点 | |
CN112291116A (zh) | 链路故障检测方法、装置及网络设备 | |
CN107547374B (zh) | 一种聚合路由处理方法和装置 | |
CN112422428B (zh) | 链路状态获取方法、装置、电子设备及可读存储介质 | |
JP2001217830A (ja) | 通信ネットワークシステムおよび通信ネットワークシステムにおける障害通知方法 | |
EP2472796A1 (en) | Method and system for blocking protocol messages at a sub-ring control channel without virtual channel | |
US10277484B2 (en) | Self organizing network event reporting | |
JP5802829B2 (ja) | 障害表示状態を判定する方法、ノード、及びシステム | |
JP6011540B2 (ja) | 診断システム | |
CN115152192B (zh) | Pce受控网络可靠性 | |
CN110572290B (zh) | 主设备确定方法、装置、电子设备、存储介质及网络系统 | |
US7764630B2 (en) | Method for automatically discovering a bus system in a multipoint transport network, multipoint transport network and network node | |
CN113595828A (zh) | 软件定义网络拓扑探测方法及系统 | |
US20180102835A1 (en) | Transmission device and network system | |
CN115412483B (zh) | 一种跨设备链路聚合保活报文交互的方法和系统 | |
JP2007060518A (ja) | システム総合管理システム | |
JP6512037B2 (ja) | 無線通信装置、方法、及びプログラム | |
KR100318966B1 (ko) | 비동기전송모드 교환망에서 헬스체크를 이용한 네트웍 자동 복구시스템 및 방법 | |
CN114374643B (zh) | 通信方法及装置 | |
CN113595939B (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 |