拓扑收集方法和装置与流程

文档序号:14098020阅读:186来源:国知局

本申请涉及网络通信技术,特别涉及拓扑收集方法和装置。



背景技术:

软件定义网络(sdn:softwaredefinednetwork)是一种新型网络创新架构,其核心思想是将网络设备的控制层面与转发层面分离,以实现对网络流量的灵活控制,为核心网络及应用的创新提供良好的平台。

在sdn内,sdn控制器定时使用链路层发现协议(lldp:linklayerdiscoveryprotocol)收集整个sdn的网络拓扑。该收集的网络拓扑指示了sdn控制器控制的各交换设备之间端口链路的联通状态。之后,sdn控制器在为数据流确定转发路径时,就会基于已收集的网络拓扑并按照最短路径算法计算从数据流的源端至目的端的转发路径,计算出的路径为从数据流的源端至目的端的最短路径。

但是,sdn控制器收集的网络拓扑只是简单示出了各交换设备之间端口链路的联通状态,没有关注端口链路的可用带宽、转发速率、转发代价(cost)、端口优先级等信息。为便于描述,这里将可用带宽、转发速率、转发cost、端口优先级等信息统称为服务质量(qos)信息。sdn控制器基于已收集的未考虑端口链路的qos信息的网络拓扑计算出的从数据流的源端至目的端的转发路径有可能不满足数据流本身的qos要求。以数据流qos要求为:数据流的转发路径上各链路的可用带宽大于指定带宽m为例,因为sdn控制器收集的网络拓扑不包括各链路的可用带宽,如此,就会出现sdn控制器基于已收集的网络拓扑计算出的从数据流的源端至目的端的转发路径上有某条链路的可用带宽远远低于指定带宽m,影响数据流转发。



技术实现要素:

本申请提供了拓扑收集方法和装置,以实现网络拓扑收集时收集端口链路的qos信息。

本申请提供的技术方案包括:

一种拓扑收集方法,该方法应用于软件自定义网络sdn中的交换设备,包括:

在拓扑收集周期到达时,为本地各端口分别生成对应的拓扑收集报文并分别通过本地各端口发送;端口对应的拓扑收集报文携带了端口的端口标识、端口服务质量qos信息、以及本端交换设备的设备标识;

当通过本地第一端口收到对端设备发送的拓扑收集报文时,依据收到的拓扑收集报文生成packet-in消息,packet-in消息携带了本端交换设备的设备标识、第一端口的端口标识、以及该收到的拓扑收集报文所携带的对端设备的设备标识、对端设备上第二端口的端口标识以及端口qos信息;

将所述packet-in消息上送至用于负责控制管理本端交换设备的sdn控制器,以使所述sdn控制器依据所述packet-in消息确定所述对端设备上第二端口与本端交换设备上第一端口之间的端口链路并将所述packet-in消息携带的端口qos信息作为所述端口链路的qos信息。

一种拓扑收集方法,该方法应用于软件自定义网络sdn中的sdn控制器,包括:

接收来自本sdn控制器负责控制管理的第一交换设备上送的packet-in消息;所述packet-in消息是由所述第一交换设备依据本地第一端口收到的来自第二交换设备的拓扑收集报文生成的,携带了所述第一交换设备的设备标识、所述第一端口的端口标识、以及所述拓扑收集报文所携带的所述第二交换设备的设备标识、所述第二交换设备上第二端口的端口标识以及端口服务质量qos信息;

依据所述packet-in消息确定所述第二交换设备上第二端口与所述第一交换设备上第一端口之间的端口链路并将所述packet-in消息携带的端口qos信息作为所述端口链路的qos信息。

一种拓扑收集装置,该装置应用于软件自定义网络sdn中的交换设备,包括:

拓扑收集单元,用于在拓扑收集周期到达时,为本地各端口分别生成对应的拓扑收集报文并分别通过本地各端口发送;所述拓扑收集报文携带了本端交换设备的设备标识、对应的端口的端口标识以及端口服务质量qos信息;

packet-in消息单元,用于当通过本地第一端口收到对端设备发送的拓扑收集报文时,依据收到的拓扑收集报文生成packet-in消息,packet-in消息携带了本端交换设备的设备标识、第一端口的端口标识、以及该收到的拓扑收集报文所携带的对端设备的设备标识、对端设备上第二端口的端口标识以及端口qos信息;以及,

将所述packet-in消息上送至用于负责控制管理本端交换设备的sdn控制器,以使所述sdn控制器依据所述packet-in消息确定所述对端设备上第二端口与本端交换设备上第一端口之间的端口链路并将所述packet-in消息携带的端口qos信息作为所述端口链路的qos信息。

一种拓扑收集装置,该装置应用于软件自定义网络sdn中的sdn控制器,包括:

接收单元,用于接收来自本sdn控制器负责控制管理的第一交换设备上送的packet-in消息;所述packet-in消息是由所述第一交换设备依据本地第一端口收到的来自第二交换设备的拓扑收集报文生成的,携带了所述第一交换设备的设备标识、所述第一端口的端口标识、以及所述拓扑收集报文所携带的所述第二交换设备的设备标识、所述第二交换设备上第二端口的端口标识以及端口服务质量qos信息;

链路单元,用于依据所述packet-in消息确定所述第二交换设备上第二端口与所述第一交换设备上第一端口之间的端口链路并将所述packet-in消息携带的端口qos信息作为所述端口链路的qos信息。

由以上技术方案可以看出,本申请中,交换设备主动发送拓扑收集报文给对端设备、且交换设备发送的拓扑收集报文携带了交换设备自身的设备标识、发送拓扑收集报文的端口的端口标识以及端口qos信息,而当交换设备的对端设备收到交换设备发送的拓扑收集报文时,其会依据收到的拓扑收集报文生成packet-in消息并上送给以使所述sdn控制器依据所述packet-in消息确定交换设备与对端设备之间的端口链路并将所述packet-in消息携带的端口qos信息作为所述端口链路的qos信息,实现了sdn控制器在收集整个网络中各交换设备之间的端口链路的同时,也收集了端口链路的qos信息,并且,避免sdn控制器定时从交换设备上获取端口链路,减少了sdn控制器和交换设备之间的报文交互,提高了网络的整体效率。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1为本申请提供的一种拓扑收集的方法的流程图;

图2为本申请提供的另一种拓扑收集的方法的流程图;

图3为本申请提供的实施例应用网络图;

图4为本申请提供的一种拓扑收集的装置的结构图;

图5为本申请提供的另一种拓扑收集的装置的结构图。

具体实施方式

在sdn中,拓扑收集报文(比如lldp报文)由sdn控制器主动向其控制管理的各交换设备发送,以用于sdn控制器进行链路发现和拓扑计算。

而本申请中,拓扑收集报文(比如lldp报文)是由交换设备主动发送的,相比于现有sdn中收集网络拓扑时sdn控制器主动向交换设备发送拓扑收集报文(比如lldp报文),减少了sdn控制器与交换设备之间的报文交互,提高了网络拓扑收集的效率。下面通过图1对本申请提供的方法进行描述:

参见图1,图1为本申请提供的一种拓扑收集的方法的流程图。该流程应用于交换设备(记为第一交换设备)。这里,第一交换设备,泛指sdn中任一交换设备,其只是为便于区分后文引出的交换设备而进行的命名。

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

步骤101,第一交换设备在拓扑收集周期到达时,为本地各端口分别生成对应的拓扑收集报文并分别通过本地各端口发送;端口对应的拓扑收集报文携带了端口的端口标识、端口服务质量qos信息、以及本端交换设备的设备标识。

作为一个实施例,拓扑收集周期为sdn控制器下发至本交换设备的。具体地,作为一个实施例,在本申请执行之前,第一交换设备与sdn控制器之间会建立网络配置(netconf)通道。拓扑收集周期为sdn控制器通过与第一交换设备之间已建立的netconf通道下发至第一交换设备的。

作为另一个实施例,拓扑收集周期可根据实际业务需求静态配置在第一交换设备的。

为了保证第一交换设备生成的拓扑收集报文携带其对应的端口的端口qos信息,可预先在第一交换设备本地配置qos状态标记,所述qos状态标记用于指示拓扑收集报文携带其对应的端口的端口qos信息。这里的端口qos信息包括不限于端口的可用带宽、转发速率、转发cost、端口优先级等信息。

作为一个实施例,这里的qos状态标记可由sdn控制器下发配置至第一交换设备本地。基于上面描述的netconf通道,则这里的qos状态标记为sdn控制器通过与第一交换设备之间已建立的netconf通道下发配置在第一交换设备本地的。基于此,本步骤101中为本地各端口分别生成对应的拓扑收集报文包括:检查本端交换设备已收到来自所述sdn控制器下发的所述qos状态标记,则依据所述qos状态标记为本地各端口分别生成对应的拓扑收集报文。

当第一交换设备通过本地一端口发送拓扑收集报文后,若该端口连接sdn控制器或虚拟机(vm),则因为sdn控制器或vm是无法识别出拓扑收集报文的,会直接丢弃接收的拓扑收集报文。而若端口连接交换设备,则当端口连接的交换设备收到拓扑收集报文后,能够识别并处理收到的拓扑收集报文,其中,处理收到的拓扑收集报文具体见步骤102中第一交换设备执行的操作。

类似地,第一交换设备也会通过本地端口收到对端交换设备发送的拓扑收集报文,以下以第一交换设备的第一端口收到第二交换设备通过第二端口发送的拓扑收集报文为例,当第一交换设备通过本地第一端口收到第二交换设备通过第二端口发送的拓扑收集报文时,执行步骤102。

步骤102,第一交换设备本地第一端口收到第二交换设备通过第二端口发送的拓扑收集报文时,依据收到的拓扑收集报文生成packet-in消息,packet-in消息携带了第一交换设备的设备标识、第一端口的端口标识、以及该收到的拓扑收集报文所携带的第二交换设备的设备标识、第二端口的端口标识以及端口qos信息。

作为一个实施例,这里依据拓扑收集报文生成packet-in消息可为:生成packet-in消息,packet-in消息携带第一交换设备的设备标识、第一端口的端口标识、以及该收到的拓扑收集报文。

步骤103,第一交换设备将所述packet-in消息上送至用于负责控制管理本交换设备的sdn控制器。

作为一个实施例,在本申请执行之前,第一交换设备与sdn控制器之间会建立开放流(openflow)通道。基于此,本步骤103具体可包括:

第一交换设备通过与sdn控制器之间已建立的openflow通道上送packet-in消息至sdn控制器。

当第一交换设备将packet-in消息上送至sdn控制器后,sdn控制器就会依据packet-in消息携带的第一交换设备的设备标识、第一端口的端口标识、以及packet-in消息携带的拓扑收集报文所携带的第二交换设备的设备标识、第二端口的端口标识确定第二交换设备上第二端口与第一交换设备上第一端口之间的端口链路,同时,也会获取packet-in消息携带的端口qos信息,将获取的端口qos信息作为该确定的端口链路的qos信息。最终实现了sdn控制器收集的网络拓扑和网络拓扑中各端口链路的qos信息。图2示出了sdn控制器收到packet-in消息后执行的具体操作,下面进行描述:

参见图2,图2为本申请提供的另一种拓扑收集的方法的流程图。该流程应用于sdn控制器。需要说明的是,本申请中,为触发各交换设备主动发起拓扑收集、以及发起的拓扑收集报文携带端口qos信息,则在图2所示流程执行之前,sdn控制器可进一步执行以下步骤:向本sdn控制器负责控制管理的各交换设备分别下发拓扑收集周期和qos状态标记;所述qos状态标记用于指示端口发送的拓扑收集报文携带端口的qos信息;所述拓扑收集周期用于指示交换设备发起拓扑收集,不同交换设备下发的拓扑收集周期相同或不同。

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

步骤201,sdn控制器接收来自本sdn控制器负责控制管理的第一交换设备上送的packet-in消息;所述packet-in消息是由所述第一交换设备依据收到的来自第二交换设备的拓扑收集报文生成的,携带了所述第二交换设备的设备标识、所述第二交换设备发送所述拓扑收集报文的端口的端口标识以及端口qos信息。

这里的第一交换设备为泛指sdn控制器负责控制管理的任一交换设备。这里的第二交换设备为泛指第一交换设备通过本地端口连接的任一对端设备。之所以描述第一交换设备、第二交换设备,只是为便于区分,并非用于限定。

步骤202,sdn控制器依据所述packet-in消息确定所述第二交换设备上第二端口与所述第一交换设备上第一端口之间的端口链路并将所述packet-in消息携带的端口qos信息作为所述端口链路的qos信息。

通过步骤201至步骤202,最终sdn控制器会收集整个网络中各个交换设备之间的端口链路、以及各端口链路的qos信息。

当sdn控制器收集完整个网络中各个交换设备之间的端口链路、以及各端口链路的qos信息后,后续就可依据各端口链路的qos信息为数据流确定满足数据流的qos要求的转发路径。举例描述:

sdn控制器为数据流确定转发路径时,

比如,数据流存在最小带宽要求b1,则sdn控制器会选择该确定的转发路径上各端口链路的可用带宽(包含在端口链路的qos信息中)均大于或等于b1。

再比如,数据流要求有最小的转发代价c1(转发代价代表了耗费,比如时间延迟之类),则sdn控制器会选择该确定的转发路径上各端口链路的转发代价(包含在端口链路的qos信息中)之和小于或等于c1。

再比如:数据流要求转发路径上各交换设备按照高优先级处理数据流,以实现在各交换设备发生拥塞的情况下也不会丢弃该数据流,则sdn控制器会选择该确定的转发路径上各端口链路都具备较高的优先级(包含在端口链路的qos信息中)。

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

通过图1、图2所示流程可以看出,在本申请中,交换设备主动发送拓扑收集报文给对端设备、且交换设备发送的拓扑收集报文携带了交换设备自身的设备标识、发送拓扑收集报文的端口的端口标识以及端口qos信息,而当交换设备的对端设备收到交换设备发送的拓扑收集报文时,其会依据收到的拓扑收集报文生成packet-in消息并上送给以使所述sdn控制器依据所述packet-in消息确定交换设备与对端设备之间的端口链路并将所述packet-in消息携带的端口qos信息作为所述端口链路的qos信息,实现了sdn控制器在收集整个网络中各交换设备之间的端口链路的同时,也收集了端口链路的qos信息,并且,避免sdn控制器定时从交换设备上获取端口链路,减少了sdn控制器和交换设备之间的报文交互,提高了网络的整体效率。

下面通过一个具体实施例对图1、2所示流程进行实施例描述:

参见图3,图3为本申请的实施例应用网络图。在图3所示的网络中,sw1、sw2、sw3、sw4为交换设备,controller为sdn控制器,sdn控制器和各交换机之间存在netconf通道和openflow通道。

在图3所示的网络中,sdn控制器通过与各交换设备之间的netconf通道下发配置信息,配置信息包括:拓扑收集周期、qos状态标记。

以sw1为例进行说明:

sw1通过与sdn控制器之间的netconf通道接收sdn控制器下发的配置信息,配置信息包括:拓扑收集周期、qos状态标记。

sw1在拓扑收集周期到达时,发现sdn控制器下发的配置信息包含qos状态标记,则依据qos状态标记,为本地每一端口生成对应的拓扑收集报文。在本实施例中,拓扑收集报文举例为lldp报文。其中,lldp报文通过增加扩展字段携带端口的qos信息。qos信息可包括:可用带宽、转发速率、转发cost、端口优先级等信息。需要说明的是,在本申请中,sw1为本地端口生成的lldp报文还携带sw1的设备标识(可通过sw1的桥mac地址表示),端口的端口标识。之后,sw1通过本地每一端口发送其对应的lldp报文。

如图3所示,sw1本地有端口port101、port102、port103、port104,则sw1会为port101生成对应的lldp报文(记为报文1a)并通过port101发送。生成的port101对应的报文1a携带了port101的端口qos信息。类似地,sw1会为port102生成对应的lldp报文(记为报文2a)并通过port102发送。生成的port102对应的报文2a携带了port102的端口qos信息。sw1会为port103生成对应的lldp报文(记为报文3a)并通过port103发送。生成的port103对应的报文3a携带了port103的端口qos信息。sw1会为port104生成对应的lldp报文(记为报文4a)并通过port104发送。生成的port104对应的报文4a携带了port104的端口qos信息。

当sw1通过port101发送报文1a后,因为port101连接的对端为sdn控制器,则sdn控制器会收到报文1a,但因为该报文1a未经packet-in封装,sdn控制器是识别不出来的,所以sdn控制器直接丢弃接收的报文1a。当sw1通过port104发送报文4a后,因为port104连接的对端为虚拟机(vm11),则vm11会收到报文4a,但vm11识别不出收到的报文4a,所以vm11直接丢弃接收的报文4a。

当sw1通过port102发送报文2a后,因为port102连接的对端为sw2,则sw2会收到报文2a。当sw2通过端口port202收到报文2a后,一方面sw2从报文2a中获取设备标识(sw1)、端口标识(port102),确定本sw2上端口port202与sw1上端口port102之间的链路邻居关系,另一方面,sw2对报文2a进行packet-in封装生成packet-in消息并上送给sdn控制器。此时的packet-in消息除了有收到的报文2a外,还携带了设备标识(sw2)、sw2收到报文2a的端口的端口标识(port202)。当sdn控制器接收到sw2发送的packet-in消息后,根据packet-in消息携带的设备标识sw2、端口标识port202、以及packet-in消息中报文2a携带的设备标识sw1、端口标识port102确定出sw1上端口port102与sw2上端口port202之间的端口链路,并将packet-in消息中报文2a携带的port102的端口qos信息作为该确定出的端口链路的qos信息。

当sw1通过port103发送报文3a后,因为port103连接的对端为sw3,则sw3会收到报文3a。当sw3通过端口port303收到报文3a后,一方面sw3从报文3a中获取设备标识(sw1)、端口标识(port103),确定本sw3上端口port303与sw1上端口port103之间的链路邻居关系,另一方面,sw3对报文3a进行packet-in封装生成packet-in消息并上送给sdn控制器。此时的packet-in消息除了有收到的报文3a外,还携带了设备标识(sw3)、sw3收到报文3a的端口的端口标识(port303)。当sdn控制器接收到sw3发送的packet-in消息后,根据packet-in消息携带的设备标识sw3、端口标识port303、以及packet-in消息中报文3a携带的设备标识sw1、端口标识port103确定出sw1上端口port103与sw3上端口port203之间的端口链路,并将packet-in消息中报文3a携带的port103的端口qos信息作为该确定出的端口链路的qos信息。

其他交换设备执行的操作类似sw1执行的操作,如此,sdn控制器基于各个交换设备上送的packet-in消息建立物理上的网络拓扑图。

通过上面拓扑收集的描述可以看出,在本申请中,交换设备每次通过端口发送lldp报文前都会实时统计该端口上的qos信息,sdn控制器也能实时获取该端口连接的端口链路的qos信息;进一步地,本申请中,交换设备周期通过端口发送lldp报文,使得当某个端口上的qos信息发生变化时,sdn控制器会及时更新物理拓扑上该端口连接的端口链路的qos信息,以便基于更新的端口链路的qos信息及时进行数据流转发路径更新。下面描述sdn控制器如何基于更新的端口链路的qos信息及时进行数据流转发路径更新:

在有数据流传输时,sdn控制器依据该数据流的带宽要求,并结合已收集的每个端口链路的qos信息计算该数据流的转发路径为:sw1的port102->sw2的port204->sw4的port404。

在之后的某个时刻,sw1的端口port102的转发速率发生变化,转发速率增加了很多,导致可用带宽减少,如此,基于上面描述的拓扑收集过程,最终,sdn控制器也会获取端口port102的最新可用带宽。

之后,在有上述数据流传输时,假如端口port102的最新可用带宽是满足不了数据流的带宽要求,则sdn控制器会依据该数据流的带宽要求,并结合已收集的每个端口链路的qos信息重新计算该数据流的转发路径为:

sw1的port103->sw3的port304->sw4的port404。

可以看出,通过本申请,sdn控制器能够基于收集的各端口链路的qos信息为数据流计算出满足数据流本身qos要求的转发路径,提高数据流的转发效率和可靠性。

以上对本申请提供的方法进行了描述,下面对本申请提供的装置进行描述:

参见图4,图4为本申请提供的一种拓扑收集的装置的结构图。该装置应用于sdn中的交换设备,包括:

拓扑收集单元,用于在拓扑收集周期到达时,为本地各端口分别生成对应的拓扑收集报文并分别通过本地各端口发送;所述拓扑收集报文携带了本端交换设备的设备标识、对应的端口的端口标识以及端口服务质量qos信息;

packet-in消息单元,用于当通过本地第一端口收到对端设备发送的拓扑收集报文时,依据收到的拓扑收集报文生成packet-in消息,packet-in消息携带了本端交换设备的设备标识、第一端口的端口标识、以及该收到的拓扑收集报文所携带的对端设备的设备标识、对端设备上第二端口的端口标识以及端口qos信息;以及,

将所述packet-in消息上送至用于负责控制管理本端交换设备的sdn控制器,以使所述sdn控制器依据所述packet-in消息确定所述对端设备上第二端口与本端交换设备上第一端口之间的端口链路并将所述packet-in消息携带的端口qos信息作为所述端口链路的qos信息。

作为一个实施例,所述拓扑收集周期为所述sdn控制器下发至本端交换设备的;

所述拓扑收集单元进一步用于接收所述sdn控制器下发的qos状态标记,所述qos状态标记用于指示拓扑收集报文携带其对应的端口的端口qos信息;

所述拓扑收集单元为本地各端口分别生成对应的拓扑收集报文包括:检查本端交换设备已收到来自所述sdn控制器下发的所述qos状态标记,则依据所述qos状态标记为本地各端口分别生成对应的拓扑收集报文。

至此,完成图4所示装置的结构描述。

参见图5,图5为本申请提供的另一种拓扑收集的装置的结构图。该装置应用于软件自定义网络sdn中的sdn控制器,包括:

接收单元,用于接收来自本sdn控制器负责控制管理的第一交换设备上送的packet-in消息;所述packet-in消息是由所述第一交换设备依据本地第一端口收到的来自第二交换设备的拓扑收集报文生成的,携带了所述第一交换设备的设备标识、所述第一端口的端口标识、以及所述拓扑收集报文所携带的所述第二交换设备的设备标识、所述第二交换设备上第二端口的端口标识以及端口服务质量qos信息;

链路单元,用于依据所述packet-in消息确定所述第二交换设备上第二端口与所述第一交换设备上第一端口之间的端口链路并将所述packet-in消息携带的端口qos信息作为所述端口链路的qos信息。

如图5所示,该装置进一步包括:

配置单元,用于向本sdn控制器负责控制管理的各交换设备分别下发拓扑收集周期和qos状态标记;所述qos状态标记用于指示端口发送的拓扑收集报文携带端口的qos信息;不同交换设备下发的拓扑收集周期相同或不同;

路径单元,用于在为数据流确定转发路径时,依据已确定的各端口链路的qos信息为所述数据流确定满足所述数据流的qos要求的转发路径。

至此,完成图5所示装置的结构描述。

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

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