网络拓扑收集方法及装置与流程

文档序号:19247694发布日期:2019-11-27 19:49阅读:485来源:国知局
网络拓扑收集方法及装置与流程

本发明涉及网络通信技术领域,尤其涉及一种网络拓扑收集方法及装置。



背景技术:

应用驱动广域网(applicationdrivenwideareanetwork,缩写:adwan)是新一代广域网解决方案,旨在帮助用户构建开放、灵活、易于运维的广域网,承载日益丰富的应用流量。

adwan网络包括控制器和网络设备。控制器负责收集网络拓扑,计算流量转发路径,并向网络设备下发用于指导流量转发的配置信息。

目前,adwan网络中的网络设备普遍基于开放最短路径优先(openshortestpathfirst,缩写:ospf)协议或中间系统到中间系统(intermediatesystemtointermediatesystem,缩写:is-is)协议交互链路状态信息,并基于边界网关协议(bordergatewayprotocol,bgp)协议主动向控制器发布链路状态信息,以使控制器收集到adwan的网络拓扑。

而在基于开放路由(openrouting,缩写:openr)协议交互链路状态信息的adwan网络中,由于openr协议不是标准协议,网络设备通常不会配置bgp协议,来发布基于openr协议的链路状态信息,导致控制器无法收集到adwan的网络拓扑。



技术实现要素:

有鉴于此,本发明为了解决现有控制器无法收集到基于openr协议的adwan的网络拓扑的问题,提出一种网络拓扑收集方法及装置,用以实现对基于openr协议的adwan网络的拓扑收集。

为实现上述发明目的,本发明提供了如下技术方案:

第一方面,本发明提供一种网络拓扑收集方法,应用于adwan包括的控制器,所述adwan还包括多个网络设备,所述多个网络设备之间通过openr协议交互链路状态信息,所述方法包括:

与所述多个网络设备中的第一网络设备建立第一连接;

通过所述第一连接,向所述第一网络设备发送第一链路状态请求,所述第一链路状态请求用于请求链路状态信息;

接收所述第一网络设备根据所述第一链路状态请求回应的第一链路状态响应,所述第一链路状态响应包括所述第一网络设备获取到的所述多个网络设备的链路状态信息;

根据所述多个网络设备的链路状态信息,生成所述adwan的网络拓扑。

可选的,所述与所述多个网络设备中的第一网络设备建立第一连接,包括:

获取预先配置的所述第一网络设备的ip地址和服务端口,所述服务端口为用于提供链路状态信息服务的端口;

根据所述第一网络设备的ip地址和服务端口,与所述第一网络设备建立所述第一连接。

可选的,所述第一网络设备与所述控制器之间基于远程过程调用(remoteprocedurecall,缩写:rpc)协议,交互所述第一链路状态请求和所述第一链路状态响应。

可选的,所述通过所述第一连接,向所述第一网络设备发送第一链路状态请求,包括:

通过所述第一连接,向所述第一网络设备发送第一子链路状态请求,所述第一子链路状态请求用于请求设备信息;

通过所述第一连接,向所述第一网络设备发送第二子链路状态请求,所述第二子链路状态请求用于请求链路信息;

所述接收所述第一网络设备根据所述第一链路状态请求回应的第一链路状态响应,包括:

接收所述第一网络设备根据所述第一子链路状态请求回应的第一子链路状态响应,所述第一子链路状态响应包括所述多个网络设备的设备信息;

接收所述第一网络设备根据所述第二子链路状态请求回应的第二子链路状态响应,所述第二子链路状态响应包括所述多个网络设备的链路信息;

根据所述多个网络设备的设备信息和链路信息,得到所述多个网络设备的链路状态信息。

可选的,所述方法还包括:

若检测到所述第一网络设备故障,从本地配置的网络设备的ip地址和服务端口中,选择第二网络设备的ip地址和服务端口,所述第二网络设备为除所述第一网络设备之外的网络设备;

根据所述第二网络设备的ip地址和服务端口,与所述第二网络设备建立第二连接。

通过所述第二连接,向所述第二网络设备发送第二链路状态请求;

接收所述第二网络设备根据所述第二链路状态请求回应的第二链路状态响应,所述第二链路状态响应包括所述第二网络设备获取到的所述多个网络设备的链路状态信息。

第二方面,本发明提供一种网络拓扑收集方法,应用于adwan包括的多个网络设备中的第一网络设备,所述多个网络设备之间通过openr协议交互链路状态信息,所述adwan还包括控制器,所述方法包括:

与所述控制器建立第一连接;

通过所述第一连接,接收所述控制器发送的第一链路状态请求,所述第一链路状态请求用于请求链路状态信息;

获取本地记录的所述多个网络设备的链路状态信息;

向所述控制器发送第一链路状态响应,所述第一链路状态响应包括所述多个网络设备的链路状态信息,以使所述控制器根据所述多个网络设备的链路状态信息,生成所述adwan的网络拓扑。

可选的,所述通过所述第一连接,接收所述控制器发送的第一链路状态请求,包括:

获取预设的用于建立所述第一连接的服务端口,所述服务端口为用于提供链路状态信息服务的端口;

通过所述服务端口,接收所述控制器发送的第一链路状态请求。

可选的,所述第一网络设备与所述控制器之间基于rpc协议,交互所述第一链路状态请求和所述第一链路状态响应。

可选的,所述通过所述第一连接,接收所述控制器发送的第一链路状态请求,包括:

通过所述第一连接,接收所述控制器发送的第一子链路状态请求,所述第一子链路状态请求用于请求设备信息;

通过所述第一连接,接收所述控制器发送的第二子链路状态请求,所述第二子链路状态请求用于请求链路信息;

所述获取本地记录的所述多个网络设备的链路状态信息,包括:

根据所述第一子链路状态请求,获取本地记录的所述多个网络设备的设备信息;

根据所述第二子链路状态请求,获取本地记录的所述多个网络设备的链路信息;

所述向所述控制器发送第一链路状态响应,包括:

向所述控制器发送第一子链路状态响应,所述第一子链路状态响应包括所述多个网络设备的设备信息;

向所述控制器发送第二子链路状态响应,所述第二子链路状态响应包括所述多个网络设备的链路信息,以使所述控制器根据所述多个网络设备的设备信息和链路信息,得到所述多个网络设备的链路状态信息。

第三方面,本发明提供一种网络拓扑收集装置,应用于adwan包括的控制器,所述adwan还包括多个网络设备,所述多个网络设备之间通过openr协议交互链路状态信息,所述装置包括:

连接建立单元,用于与所述多个网络设备中的第一网络设备建立第一连接;

请求发送单元,用于通过所述第一连接,向所述第一网络设备发送第一链路状态请求,所述第一链路状态请求用于请求链路状态信息;

响应接收单元,用于接收所述第一网络设备根据所述第一链路状态请求回应的第一链路状态响应,所述第一链路状态响应包括所述第一网络设备获取到的所述多个网络设备的链路状态信息;

拓扑生成单元,用于根据所述多个网络设备的链路状态信息,生成所述adwan的网络拓扑。

可选的,所述连接建立单元与所述多个网络设备中的第一网络设备建立第一连接,包括:

获取预先配置的所述第一网络设备的ip地址和服务端口,所述服务端口为用于提供链路状态信息服务的端口;

根据所述第一网络设备的ip地址和服务端口,与所述第一网络设备建立所述第一连接。

可选的,所述第一网络设备与所述控制器之间基于rpc协议,交互所述第一链路状态请求和所述第一链路状态响应。

可选的,所述请求发送单元通过所述第一连接,向所述第一网络设备发送第一链路状态请求,包括:

通过所述第一连接,向所述第一网络设备发送第一子链路状态请求,所述第一子链路状态请求用于请求设备信息;

通过所述第一连接,向所述第一网络设备发送第二子链路状态请求,所述第二子链路状态请求用于请求链路信息;

所述响应接收单元接收所述第一网络设备根据所述第一链路状态请求回应的第一链路状态响应,包括:

接收所述第一网络设备根据所述第一子链路状态请求回应的第一子链路状态响应,所述第一子链路状态响应包括所述多个网络设备的设备信息;

接收所述第一网络设备根据所述第二子链路状态请求回应的第二子链路状态响应,所述第二子链路状态响应包括所述多个网络设备的链路信息;

根据所述多个网络设备的设备信息和链路信息,得到所述多个网络设备的链路状态信息。

可选的,所述装置还包括:

服务选择单元,用于若检测到所述第一网络设备故障,从本地配置的网络设备的ip地址和服务端口中,选择第二网络设备的ip地址和服务端口,所述第二网络设备为除所述第一网络设备之外的网络设备;

所述连接建立单元,还用于根据所述第二网络设备的ip地址和服务端口,与所述第二网络设备建立第二连接。

所述请求发送单元,还用于通过所述第二连接,向所述第二网络设备发送第二链路状态请求;

所述响应接收单元,还用于接收所述第二网络设备根据所述第二链路状态请求回应的第二链路状态响应,所述第二链路状态响应包括所述第二网络设备获取到的所述多个网络设备的链路状态信息。

第四方面,本发明提供一种网络拓扑收集装置,应用于adwan包括的多个网络设备中的第一网络设备,所述多个网络设备之间通过openr协议交互链路状态信息,所述adwan还包括控制器,所述装置包括:

连接建立单元,用于与所述控制器建立第一连接;

请求接收单元,用于通过所述第一连接,接收所述控制器发送的第一链路状态请求,所述第一链路状态请求用于请求链路状态信息;

信息获取单元,用于获取本地记录的所述多个网络设备的链路状态信息;

响应发送单元,用于向所述控制器发送第一链路状态响应,所述第一链路状态响应包括所述多个网络设备的链路状态信息,以使所述控制器根据所述多个网络设备的链路状态信息,生成所述adwan的网络拓扑。

可选的,所述请求接收单元通过所述第一连接,接收所述控制器发送的第一链路状态请求,包括:

获取预设的用于建立所述第一连接的服务端口,所述服务端口为用于提供链路状态信息服务的端口;

通过所述服务端口,接收所述控制器发送的第一链路状态请求。

可选的,所述第一网络设备与所述控制器之间基于rpc协议,交互所述第一链路状态请求和所述第一链路状态响应。

可选的,所述请求接收单元通过所述第一连接,接收所述控制器发送的第一链路状态请求,包括:

通过所述第一连接,接收所述控制器发送的第一子链路状态请求,所述第一子链路状态请求用于请求设备信息;

通过所述第一连接,接收所述控制器发送的第二子链路状态请求,所述第二子链路状态请求用于请求链路信息;

所述信息获取单元获取本地记录的所述多个网络设备的链路状态信息,包括:

根据所述第一子链路状态请求,获取本地记录的所述多个网络设备的设备信息;

根据所述第二子链路状态请求,获取本地记录的所述多个网络设备的链路信息;

所述响应发送单元向所述控制器发送第一链路状态响应,包括:

向所述控制器发送第一子链路状态响应,所述第一子链路状态响应包括所述多个网络设备的设备信息;

向所述控制器发送第二子链路状态响应,所述第二子链路状态响应包括所述多个网络设备的链路信息,以使所述控制器根据所述多个网络设备的设备信息和链路信息,得到所述多个网络设备的链路状态信息。

第五方面,本发明提供一种控制器,所述控制器包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述第一方面的网络拓扑收集方法。

第六方面,本发明提供一种网络设备,所述网络设备包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述第二方面的网络拓扑收集方法。

第七方面,本发明提供一种机器可读存储介质,所述机器可读存储介质内存储有机器可执行指令,所述机器可执行指令被处理器执行时实现上述第一方面的网络拓扑收集方法。

第八方面,本发明提供一种机器可读存储介质,所述机器可读存储介质内存储有机器可执行指令,所述机器可执行指令被处理器执行时实现上述第二方面的网络拓扑收集方法。

由以上描述可以看出,本发明中,控制器与网络设备之间建立第一连接,控制器通过该建立的第一连接向网络设备请求链路状态信息。网络设备根据控制器的请求,向控制器返回基于openr协议收集到的所有网络设备的链路状态信息。控制器根据所有网络设备的链路状态信息,生成adwan的网络拓扑。即,实现对基于openr协议的adwan网络的拓扑收集。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例示出的一种网络拓扑收集方法流程图;

图2是本发明实施例示出的步骤101的实现流程;

图3是本发明实施例示出的一种第一网络设备故障后的处理流程;

图4是本发明实施例提供的另一种网络拓扑收集方法流程图;

图5是本发明实施例示出的步骤402的实现流程;

图6是本发明实施例示出的一种adwan网络示意图;

图7是本发明实施例示出的一种网络拓扑收集装置的结构示意图;

图8是本发明实施例示出的另一种网络拓扑收集装置的结构示意图;

图9是本发明实施例示出的一种控制器或网络设备的硬件结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

在本发明实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明实施例。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本发明实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明实施例范围的情况下,协商信息也可以被称为第二信息,类似地,第二信息也可以被称为协商信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

本发明实施例提供一种网络拓扑收集方法。该方法中,控制器与网络设备建立连接,控制器通过该连接向网络设备请求链路状态信息。网络设备根据控制器的请求,向控制器返回基于openr协议收集到的所有网络设备的链路状态信息。控制器根据所有网络设备的链路状态信息,生成adwan的网络拓扑。

为了使本发明实施例的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明实施例执行详细描述:

参见图1,为本发明实施例提供的网络拓扑收集方法流程图。该流程应用于adwan包括的控制器。

该adwan还包括多个网络设备。各网络设备之间通过openr协议交互链路状态信息。每一个网络设备可收集到所有网络设备的链路状态信息。

如图1所示,该流程可包括以下步骤:

步骤101,控制器与多个网络设备中的第一网络设备建立第一连接。

本发明实施例中,每一个网络设备均可获取到所有网络设备的链路状态信息,因此,控制器可选择任一网络设备作为第一网络设备,或者,预先指定某一网络设备作为第一网络设备。这里,第一网络设备只是为便于区分而进行的命名,并非用于限定。

控制器与第一网络设备建立第一连接的过程,在下文中描述,这里暂不赘述。这里,第一连接只是为便于区分而进行的命名,并非用于限定。

步骤102,控制器通过第一连接,向第一网络设备发送第一链路状态请求。

在通过步骤101建立第一连接后,控制器通过该第一连接,向第一网络设备发送第一链路状态请求。该第一链路状态请求用于请求网络设备的链路状态信息。可以理解的是,之所以称为第一链路状态请求,只是为便于区分而进行的命名,并非用于限定。

步骤103,控制器接收第一网络设备根据第一链路状态请求回应的第一链路状态响应。

第一网络设备接收到第一链路状态请求后,获取基于openr协议收集到的所有网络设备的链路状态信息。

第一网络设备将收集到的链路状态信息添加到第一链路状态响应中。这里,第一链路状态响应只是为便于区分而进行的命名,并非用于限定。

第一网络设备将第一链路状态响应发送给控制器。

控制器接收第一链路状态响应,获取第一链路状态响应包括的所有网络设备的链路状态信息。

通过本步骤,控制器可收集到adwan中所有网络设备的链路状态信息。

步骤104,控制器根据多个网络设备的链路状态信息,生成adwan的网络拓扑。

控制器根据各网络设备的链路状态信息,可确定网络设备之间的连接关系,生成adwan网络的网络拓扑。

至此,完成图1所示流程。

通过图1所示流程可以看出,本发明实施例中,控制器与网络设备建立第一连接,控制器通过该建立的第一连接向网络设备请求链路状态信息。网络设备根据控制器的请求,向控制器返回基于openr协议收集到的所有网络设备的链路状态信息。控制器根据所有网络设备的链路状态信息,生成adwan的网络拓扑。即,实现对基于openr协议的adwan网络的拓扑收集。

可选的,作为一个实施例,下面对步骤101中控制器与第一网络设备建立第一连接的过程进行描述。参见图2,为本发明实施例示出的步骤101的实现流程。

如图2所示,该流程可包括以下步骤:

步骤201,控制器获取预先配置的第一网络设备的ip地址和服务端口。

本发明中,控制器本地配置第一网络设备的ip地址和服务端口。其中,该服务端口为用于提供链路状态信息服务的端口。

步骤202,控制器根据第一网络设备的ip地址和服务端口,与第一网络设备建立第一连接。

后续,控制器通过该第一连接,从第一网络设备获取adwan中各网络设备的链路状态信息。

至此,完成图2所示流程。

通过图2所示流程,控制器可与网络设备建立连接,进而通过该连接获取adwan网络中所有链路状态信息。

可选的,作为一个实施例,控制器与第一网络设备之间可基于rpc协议,交互第一链路状态请求和第一链路状态响应。

具体为,首先,在控制器内部署rpc客户端(client),在第一网络设备内部署rpc服务器(server)。比如,该rpcclient可以为谷歌远程过程调用(googleremoteprocedurecall,缩写:grpc)client,rpcserver可以为grpcserver。

控制器启动grpcclient,第一网络设备启动grpcserver。启动后,grpcclient与grpcserver基于前述步骤101建立第一连接。

在建立第一连接后,grpcclient通过调用grpcserver提供的rpcsynctopo接口,向rpcserver发送第一链路状态请求,并接收rpcserver基于第一链路状态请求回应的第一链路状态响应。第一链路状态响应中包括所有网络设备的链路状态信息。控制器根据所有网络设备的链路状态信息,生成adwan的网络拓扑。

rpcsynctopo接口的定义,在下文中描述,这里暂不赘述。

可选的,作为一个实施例,下面对步骤102中控制器通过第一连接,向第一网络设备发送第一链路状态请求的过程进行描述。该步骤102可包括:

步骤1021,控制器通过第一连接,向第一网络设备发送第一子链路状态请求。

该第一子链路状态请求用于请求所有网络设备的设备信息。该设备信息包括设备名称、设备的ip地址、厂商信息、接口信息等。

这里,第一子链路状态请求只是为便于区分而进行的命名,并非用于限定。

步骤1022,控制器通过第一连接,向第一网络设备发送第二子链路状态请求。

该第二子链路状态请求用于请求所有网络设备的链路信息。该链路信息包括设备的接口与相邻设备的连接关系等,比如,设备1通过接口1与设备2相连。

这里,第二子链路状态请求只是为便于区分而进行的命名,并非用于限定。

下面对步骤103中控制器接收第一网络设备根据第一链路状态请求回应的第一链路状态响应的过程进行描述。该步骤103可包括:

步骤1031,控制器接收第一网络设备根据第一子链路状态请求回应的第一子链路状态响应。

第一网络设备接收控制器发送的第一子链路状态请求。如前所述,控制器通过第一子链路状态请求向第一网络设备请求所有网络设备的设备信息。

第一网络设备根据第一子链路状态请求,向控制器回应第一子链路状态响应。该第一子链路状态响应包括第一网络设备收集到的所有网络设备的设备信息。

这里,第一子链路状态响应只是为便于区分而进行的命名,并非用于限定。

步骤1032,控制器接收第一网络设备根据第二子链路状态请求回应的第二子链路状态响应。

第一网络设备接收控制器发送的第二子链路状态请求。如前所述,控制器通过第二子链路状态请求向第一网络设备请求所有网络设备的链路信息。

第一网络设备根据第二子链路状态请求,向控制器回应第二子链路状态响应。该第二子链路状态响应包括第一网络设备收集到的所有网络设备的链路信息。

这里,第二子链路状态响应只是为便于区分而进行的命名,并非用于限定。

步骤1033,控制器根据多个网络设备的设备信息和链路信息,得到多个网络设备的链路状态信息。

链路状态信息包括设备信息和链路信息。因此,控制器在通过步骤1031和步骤1032获取到设备信息和链路信息后,即可得到完整的链路状态信息。

从上述描述可以看出,本发明实施例中,控制器通过两次请求,分别获取网络设备的设备信息和链路信息,以得到网络设备的链路状态信息。

当然,作为另一种实施方式,控制器也可通过一次请求,直接获取网络设备的链路状态信息,即,网络设备将设备信息和链路信息一同回应给控制器。

下面对rpcsynctopo接口进行介绍,以确定控制器如何通过一次请求或两次请求,得到网络设备的链路状态信息。rpcsynctopo接口定义如下:

grpcclient调用rpcsynctopo接口时,可通过设置请求ttoporeqinfo中的属性enmsgtype,来指定需要获取的信息类型。

比如,若设置enmsgtype的值为t_msg_topo_node,则表示请求获取所有网络设备的设备信息;若设置enmsgtype的值为t_msg_topo_link,则表示请求获取所有网络设备的链路信息;若设置enmsgtype的值为t_msg_topo_node_link,则表示请求获取所有网络设备的链路状态信息(包括设备信息和链路信息)。

grpcserver根据rpcclient的请求,从本地记录的基于openr协议收集到的各网络设备的链路状态信息中,提取与grpcclient请求的信息类型匹配的信息,生成对应的应答ttopomsgrsp,发送给grpcclient。

比如,若grpcclient通过ttoporeqinfo请求设备信息(enmsgtype的值为t_msg_topo_node),则grpcserver在回应的ttopomsgrsp中携带所有网络设备的设备信息。若grpcclient通过ttoporeqinfo请求链路信息(enmsgtype的值为t_msg_topo_link),则grpcserver在回应的ttopomsgrsp中携带所有网络设备的链路信息。若grpcclient通过ttoporeqinfo请求链路状态信息(enmsgtype的值为t_msg_topo_node_link),则grpcserver在回应的ttopomsgrsp中携带所有网络设备的设备信息和链路信息。

由此可以看出,本发明实施例中,控制器可分别请求设备信息和链路信息,以得到完整的链路状态信息,也可直接请求链路状态信息。

可选的,作为一个实施例,控制器周期性向第一网络设备发送第一链路状态请求,以获得最新的链路状态信息,及时更新网络拓扑。若第一网络设备故障,控制器可执行如下处理流程。

参见图3,为本发明实施例示出的一种第一网络设备故障后的处理流程。如图3所示,该流程可包括以下步骤:

步骤301,若检测到第一网络设备故障,控制器从本地配置的网络设备的ip地址和服务端口中,获取第二网络设备的ip地址和服务端口。

若控制器在预设的时间阈值内,未接收到第一网络设备回应的第一链路状态响应,或者,控制器连续发送预设次数个第一链路状态请求,均未接收到第一网络设备回应的第一链路状态响应,则确定第一网络设备故障。

控制器本地配置有多个网络设备的ip地址以及服务端口。当检测到第一网络设备故障时,控制器可从本地配置的网络设备的ip地址和服务端口中,获取第二网络设备的ip地址和服务端口。

该第二网络设备为除第一网络设备之外的网络设备。该第二网络设备可从控制器配置的多个网络设备中随机选择,或者,按照多个网络设备的设备编号、ip地址、mac地址等进行选择,比如,选择设备编号最小的网络设备作为第二网络设备。

这里,可以理解的是,之所以称为第二网络设备,只是为便于描述而进行的命名,并非用于限定。

步骤302,控制器根据第二网络设备的ip地址和服务端口,与第二网络设备建立第二连接。

由于第一网络设备故障,控制器与第一网络设备的第一连接已断开。

控制器根据步骤301获取的第二网络设备的ip地址和服务端口,与第二网络设备建立第二连接。可以理解的是,之所以称为第二链接,只是为便于区分而进行的命名,并非用于限定。

步骤303,控制器通过第二连接,向第二网络设备发送第二链路状态请求。

这里,第二链路状态请求只是为便于区分而进行的命名,并非用于限定。

步骤304,控制器接收第二网络设备根据第二链路状态请求回应的第二链路状态响应。

该第二链路状态响应包括第二网络设备获取到的所有网络设备的链路状态信息。

如前所述,每一个网络设备均可获取到所有网络设备的链路状态信息。因此,在第一网络设备故障后,控制器可从第二网络设备获取到adwan网络中的链路状态信息,从而保证控制器可正常更新adwan网络的网络拓扑。

至此,完成图3所示流程。

通过图3所示流程可以看出,部分网络设备故障,并不影响控制器收集网络拓扑,可有效提升网络拓扑收集的可靠性。

本发明实施例还提供一种网络拓扑收集方法,该方法应用于adwan包括的多个网络设备中的第一网络设备。参见图4,为本发明实施例提供的一种网络拓扑收集方法流程图。

如图4所示,该流程可包括以下步骤:

步骤401,第一网络设备与控制器建立第一连接。

具体参见前述步骤101的描述,这里不再赘述。

步骤402,第一网络设备通过第一连接,接收控制器发送的第一链路状态请求。

控制器通过第一连接发送第一链路状态请求,该第一链路状态请求用于请求第一网络设备收集的所有网络设备的链路状态信息。

第一网络设备接收第一链路状态请求的过程,在下文中描述,这里不再赘述。

步骤403,第一网络设备获取本地记录的多个网络设备的链路状态信息。

如前所述,网络设备基于openr协议交互,可获取到所有网络设备的链路状态信息。

步骤404,第一网络设备向控制器发送第一链路状态响应。

第一网络设备通过步骤403获取到多个网络设备的链路状态信息后,将链路状态信息添加到第一链路状态响应中,发送给控制器。

控制器接收第一链路状态响应,获取第一链路状态响应包括的多个网络设备的链路状态信息。根据多个网络设备的链路状态信息,生成adwan的网络拓扑。具体参见前述步骤103和步骤104的描述,这里不再赘述。

至此,完成图4所示流程。

通过图4所示流程可以看出,本发明中,网络设备与控制器建立连接,通过该连接接收控制器的请求。网络设备根据控制器的请求,向控制器返回基于openr协议收集到的所有网络设备的链路状态信息,以使控制器根据所有网络设备的链路状态信息,生成adwan的网络拓扑。实现控制器对基于openr协议的adwan网络的拓扑收集。

可选的,作为一个实施例,下面对步骤402中第一网络设备通过第一连接,接收控制器发送的第一链路状态请求的过程进行描述。参见图5,为本发明实施例示出的步骤402的实现流程。

如图5所示,该流程可包括以下步骤:

步骤501,第一网络设备获取预设的用于建立第一连接的服务端口。

第一网络设备预设用于提供链路状态信息服务的服务端口。

控制器基于第一网络设备的ip地址以及服务端口,与第一网络设备建立第一连接。

步骤502,第一网络设备通过该服务端口,接收控制器发送的第一链路状态请求。

第一网络设备监听预设的服务端口,以接收控制器发送的第一链路状态请求。

至此,完成图5所示流程。

通过图5所示流程,网络设备可接收到控制器发送的用于获取链路状态信息的请求。

可选的,作为一个实施例,第一网络设备与控制器之间可基于rpc协议,交互第一链路状态请求和第一链路状态响应。具体参见前述控制器侧的描述,这里不再赘述。

可选的,作为一个实施例,下面对步骤402中第一网络设备通过第一连接,接收控制器发送的第一链路状态请求的过程进行描述。该步骤402可包括:

步骤4021,第一网络设备通过第一连接,接收控制器发送的第一子链路状态请求。

该第一子链路状态请求用于请求所有网络设备的设备信息。

可参见前述步骤1021的描述,这里不再赘述。

步骤4022,第一网络设备通过第一连接,接收控制器发送的第二子链路状态请求。

该第二子链路状态请求用于请求所有网络设备的链路信息。

可参见前述步骤1022的描述,这里不再赘述。

下面对步骤403中第一网络设备获取本地记录的多个网络设备的链路状态信息的过程进行描述。该步骤403可包括:

步骤4031,第一网络设备根据第一子链路状态请求,获取本地记录的多个网络设备的设备信息。

如前所述,第一子链路状态请求用于请求所有网络设备的设备信息。因此,第一网络设备接收到第一子链路状态请求后,获取本设备基于openr协议收集到的所有网络设备的设备信息。

步骤4032,第一网络设备根据第二子链路状态请求,获取本地记录的多个网络设备的链路信息。

如前所述,第二子链路状态请求用于请求所有网络设备的链路信息。因此,第一网络设备接收到第二子链路状态请求后,获取本设备基于openr协议收集到的所有网络设备的链路信息。

下面对步骤404中第一网络设备向控制器发送第一链路状态响应的过程进行描述。该步骤404可包括:

步骤4041,第一网络设备向控制器发送第一子链路状态响应。

第一网络设备将通过步骤4031获取到的所有网络设备的设备信息,添加到第一子链路状态响应中,发送给控制器。

步骤4042,第一网络设备向控制器发送第二子链路状态响应。

第一网络设备将通过步骤4032获取到的所有网络设备的链路信息,添加到第二子链路状态响应中,发送给控制器。

控制器获取第一子链路状态响应包括的设备信息以及第二子链路状态响应包括的链路信息,得到adwan中所有网络设备的链路状态信息。具体参见前述步骤1031~1033的描述,这里不再赘述。

从上述描述可以看出,本发明实施例中,网络设备分两次响应控制器的请求,分别向控制器返回网络设备的设备信息和链路信息,以使控制器基于设备信息和链路信息,得到完整的链路状态信息。

当然,作为另一种实施方式,网络设备也可在一次控制器的请求后,将网络设备的设备信息和链路信息一同返回给控制器。

下面通过具体实施例对本发明实施例提供的方法进行描述:

参见图6,为本发明实施例示出的一种adwan网络的示意图。该adwan网络包括控制器610、网络设备621~网络设备623。各网络设备(网络设备621~网络设备623)通过openr协议交互链路状态信息。每一个网络设备均可收集到所有网络设备的链路状态信息。这里,将网络设备621~网络设备623的链路状态信息分别记为ls621~ls623。

控制器610预先配置有网络设备621的ip地址(记为ip621)和服务端口(记为端口621),以及网络设备622的ip地址(记为ip622)和服务端口(记为端口622)。

控制器610启动rpcclient。网络设备(网络设备621~网络设备623)启动rpcserver。

以控制器610从网络设备621获取链路状态信息为例。

控制器610中的rpcclient根据网络设备621的ip地址(ip621)和服务端口(端口621),与网络设备621中的rpcserver建立连接。

在建立连接后,rpcclient通过调用rpcserver提供的接口函数,向网络设备621中的rpcserver发送链路状态请求。

作为一种实施方式,该链路状态请求包括待请求的信息类型,该信息类型为链路状态类型。

网络设备621中的rpcserver通过端口621,接收rpcclient发送的链路状态请求。在确认链路状态请求携带的信息类型为链路状态类型时,获取本设备基于openr协议收集到的各网络设备的链路状态信息(ls621~ls623)。将ls621~ls623添加到链路状态响应中,发送给rpcclient。

rpcclient接收链路状态响应,获取链路状态响应包括的各网络设备的链路状态信息(ls621~ls623)。

作为另一种实施方式,rpcclient分两次向网络设备621中的rpcserver发送链路状态请求,分别记为链路状态请求1和链路状态请求2。其中,链路状态请求1包括的信息类型为设备类型;链路状态请求2包括的信息类型为链路类型。

网络设备621中的rpcserver通过端口621,接收rpcclient发送的链路状态请求。

在确认链路状态请求携带的信息类型为设备类型时,获取本设备基于openr协议收集到的各网络设备的设备信息。将各网络设备的设备信息添加到链路状态响应中,发送给rpcclient。

在确认链路状态请求携带的信息类型为链路类型时,获取本设备基于openr协议收集到的各网络设备的链路信息。将各网络设备的设备信息添加到链路状态响应中,发送给rpcclient。

rpcclient分别获取链路状态响应中的设备信息和链路信息。根据各网络设备的设备信息和链路信息,得到各网络设备的链路状态信息(ls621~ls623)。

参见表1,为本发明实施例示出的控制器610获取到的各网络设备的链路状态信息的示例。

表1

其中,第一条链路状态信息(ls621)表示,网络设备621通过接口s1与网络设备622直连,通过接口s2与网络设备623直连。以此类推。

控制器610根据获取到的上述链路状态信息,可得到图6所示网络拓扑。

控制器610周期性向网络设备621发送链路状态请求,以更新adwan网络的网络拓扑。

若控制器610在预设时间阈值内,未接收到网络设备621返回的链路状态响应,则认为网络设备621故障。

控制器610中的rpcclient可根据网络设备622的ip地址(ip622)和服务端口(端口622),与网络设备622中的rpcserver建立连接。通过调用网络设备622中rpcserver提供的接口函数,向网络设备622发送链路状态请求。

网络设备622处理链路状态请求的过程同网络设备621,这里不再赘述。

控制器610根据网络设备622提供的链路状态信息,也可生成adwan的网络拓扑。

至此,完成本实施例的描述。

以上对本发明实施例提供的方法进行了描述,下面对本发明实施例提供的装置进行描述:

参见图7,为本发明实施例提供的装置的结构示意图。该装置应用于adwan包括的控制器,该装置包括:连接建立单元701、请求发送单元702、响应接收单元703以及拓扑生成单元704,其中:

连接建立单元701,用于与所述多个网络设备中的第一网络设备建立第一连接;

请求发送单元702,用于通过所述第一连接,向所述第一网络设备发送第一链路状态请求,所述第一链路状态请求用于请求链路状态信息;

响应接收单元703,用于接收所述第一网络设备根据所述第一链路状态请求回应的第一链路状态响应,所述第一链路状态响应包括所述第一网络设备获取到的所述多个网络设备的链路状态信息;

拓扑生成单元704,用于根据所述多个网络设备的链路状态信息,生成所述adwan的网络拓扑。

作为一个实施例,所述连接建立单元701与所述多个网络设备中的第一网络设备建立第一连接,包括:

获取预先配置的所述第一网络设备的ip地址和服务端口,所述服务端口为用于提供链路状态信息服务的端口;

根据所述第一网络设备的ip地址和服务端口,与所述第一网络设备建立所述第一连接。

作为一个实施例,所述第一网络设备与所述控制器之间基于rpc协议,交互所述第一链路状态请求和所述第一链路状态响应。

作为一个实施例,所述请求发送单元702通过所述第一连接,向所述第一网络设备发送第一链路状态请求,包括:

通过所述第一连接,向所述第一网络设备发送第一子链路状态请求,所述第一子链路状态请求用于请求设备信息;

通过所述第一连接,向所述第一网络设备发送第二子链路状态请求,所述第二子链路状态请求用于请求链路信息;

所述响应接收单元703接收所述第一网络设备根据所述第一链路状态请求回应的第一链路状态响应,包括:

接收所述第一网络设备根据所述第一子链路状态请求回应的第一子链路状态响应,所述第一子链路状态响应包括所述多个网络设备的设备信息;

接收所述第一网络设备根据所述第二子链路状态请求回应的第二子链路状态响应,所述第二子链路状态响应包括所述多个网络设备的链路信息;

根据所述多个网络设备的设备信息和链路信息,得到所述多个网络设备的链路状态信息。

作为一个实施例,所述装置还包括:

服务选择单元,用于若检测到所述第一网络设备故障,从本地配置的网络设备的ip地址和服务端口中,选择第二网络设备的ip地址和服务端口,所述第二网络设备为除所述第一网络设备之外的网络设备;

所述连接建立单元701,还用于根据所述第二网络设备的ip地址和服务端口,与所述第二网络设备建立第二连接。

所述请求发送单元702,还用于通过所述第二连接,向所述第二网络设备发送第二链路状态请求;

所述响应接收单元703,还用于接收所述第二网络设备根据所述第二链路状态请求回应的第二链路状态响应,所述第二链路状态响应包括所述第二网络设备获取到的所述多个网络设备的链路状态信息。

至此,完成图7所示装置的描述。本发明实施例中,控制器与网络设备建立第一连接,控制器通过该建立的第一连接向网络设备请求链路状态信息。网络设备根据控制器的请求,向控制器返回基于openr协议收集到的所有网络设备的链路状态信息。控制器根据所有网络设备的链路状态信息,生成adwan的网络拓扑。即,实现对基于openr协议的adwan网络的拓扑收集。

下面对本发明实施例提供的另一个装置进行描述:

参见图8,为本发明实施例提供的装置的结构示意图。该装置应用于adwan包括的多个网络设备中的第一网络设备,该装置包括:连接建立单元801、请求接收单元802、信息获取单元803以及响应发送单元804,其中:

连接建立单元801,用于与所述控制器建立第一连接;

请求接收单元802,用于通过所述第一连接,接收所述控制器发送的第一链路状态请求,所述第一链路状态请求用于请求链路状态信息;

信息获取单元803,用于获取本地记录的所述多个网络设备的链路状态信息;

响应发送单元804,用于向所述控制器发送第一链路状态响应,所述第一链路状态响应包括所述多个网络设备的链路状态信息,以使所述控制器根据所述多个网络设备的链路状态信息,生成所述adwan的网络拓扑。

作为一个实施例,所述请求接收单元802通过所述第一连接,接收所述控制器发送的第一链路状态请求,包括:

获取预设的用于建立所述第一连接的服务端口,所述服务端口为用于提供链路状态信息服务的端口;

通过所述服务端口,接收所述控制器发送的第一链路状态请求。

作为一个实施例,所述第一网络设备与所述控制器之间基于rpc协议,交互所述第一链路状态请求和所述第一链路状态响应。

作为一个实施例,所述请求接收单元802通过所述第一连接,接收所述控制器发送的第一链路状态请求,包括:

通过所述第一连接,接收所述控制器发送的第一子链路状态请求,所述第一子链路状态请求用于请求设备信息;

通过所述第一连接,接收所述控制器发送的第二子链路状态请求,所述第二子链路状态请求用于请求链路信息;

所述信息获取单元803获取本地记录的所述多个网络设备的链路状态信息,包括:

根据所述第一子链路状态请求,获取本地记录的所述多个网络设备的设备信息;

根据所述第二子链路状态请求,获取本地记录的所述多个网络设备的链路信息;

所述响应发送单元804向所述控制器发送第一链路状态响应,包括:

向所述控制器发送第一子链路状态响应,所述第一子链路状态响应包括所述多个网络设备的设备信息;

向所述控制器发送第二子链路状态响应,所述第二子链路状态响应包括所述多个网络设备的链路信息,以使所述控制器根据所述多个网络设备的设备信息和链路信息,得到所述多个网络设备的链路状态信息。

至此,完成图8所示装置的描述。本发明实施例中,网络设备与控制器建立第一连接,通过该第一连接接收控制器的请求。网络设备根据控制器的请求,向控制器返回基于openr协议收集到的所有网络设备的链路状态信息,以使控制器根据所有网络设备的链路状态信息,生成adwan的网络拓扑。实现控制器对基于openr协议的adwan网络的拓扑收集。

下面对本发明实施例提供的设备(网络设备或控制器)进行描述:

参见图9,为本发明实施例提供的一种设备的硬件结构示意图。该设备可包括处理器901、存储有机器可执行指令的机器可读存储介质902。处理器901与机器可读存储介质902可经由系统总线903通信。并且,通过读取并执行机器可读存储介质902中与网络拓扑收集逻辑对应的机器可执行指令,处理器901可执行上文描述的网络拓扑收集方法。

本文提到的机器可读存储介质902可以是任何电子、磁性、光学或其他物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,所述机器可读存储介质902可以包括如下至少一个种存储介质:易失存储器、非易失性存储器、其它类型存储介质。其中,易失性存储器可为ram(randomaccessmemory,随机存取存储器),非易失性存储器可为闪存、存储驱动器(如硬盘驱动器)、固态硬盘、存储盘(如光盘、dvd等)。

本发明实施例还提供一种包括机器可执行指令的机器可读存储介质,例如图9中的机器可读存储介质902,所述机器可执行指令可由设备中的处理器901执行,以实现以上描述的网络拓扑收集方法。

至此,完成图9所示设备的描述。

以上所述仅为本发明实施例的较佳实施例而已,并不用以限制本发明,凡在本发明实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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