链路检测方法和交换机控制器
文献发布时间:2023-06-19 11:14:36
技术领域
本申请涉及通信技术领域,具体涉及一种链路检测方法和交换机控制器。
背景技术
目前,随着软件定义网络(Software Defined Network,SDN)的普及,在园区网、数据中心和广域网等很多方面,SDN都有广泛的应用。在一定网络场景中,存在SDN交换机与传统交换机混合部署的网络拓扑结构,针对这类网络拓扑结构,SDN控制器通常采用链路层发现协议(Link Layer Discovery Protocol,LLDP)和广播数据包(Broadcast Packets,BDDP)方式进行网络拓扑检测。首先发送LDDP报文对相互直连SDN交换机进行检测,再通过发送BDDP报文对SDN交换机之间存在传统交换机的情况进行检测。为了获取混合网络场景下的网络拓扑,需要两种报文以及两次检测,导致网络资源的浪费。
发明内容
为此,本申请提供一种链路检测方法和交换机控制器,以解决如何检测链路的连接类型,进而确定混合网络场景下的网络拓扑,避免网络资源的浪费的问题。
为了实现上述目的,本申请第一方面提供一种链路检测方法,方法包括:依据预设类型表,生成链路检测消息;依据链路检测消息对链路集合中的待检测链路进行检测,获得待检测交换机对应的交换机类型,待检测链路包括第一交换机和待检测交换机;依据预设类型表和待检测交换机对应的交换机类型,确定待检测链路的连接类型。
在一些具体实现中,预设类型表包括预设交换机类型,预设交换机类型包括软件定义网络SDN交换机类型和二层交换机类型;待检测链路的连接类型包括直接连接类型和间接连接类型。
在一些具体实现中,依据预设类型表和待检测交换机对应的交换机类型,确定待检测链路的连接类型,包括:在确定待检测交换机对应的交换机类型是SDN交换机类型的情况下,确定待检测链路的连接类型是直接连接类型;在确定待检测交换机对应的交换机类型是二层交换机类型的情况下,确定待检测链路的连接类型是间接连接类型。
在一些具体实现中,预设类型表还包括预设生存时间值,预设生存时间值是与二层交换机类型对应的生存时间值TTL;依据预设类型表和待检测交换机对应的交换机类型,确定待检测链路的连接类型之后,还包括:获取待检测交换机的物理地址;在确定待检测链路的连接类型是直接连接类型的情况下,依据预设生存时间值,生成与SDN交换机类型对应的第一TTL;依据第一TTL和待检测交换机的物理地址,生成并发送第一上报消息至交换机控制器,以使交换机控制器获知待检测链路的连接类型和第一TTL;在确定待检测链路的连接类型是间接连接类型的情况下,依据预设生存时间值和待检测交换机的物理地址,生成并发送第二上报消息,以使交换机控制器获知待检测链路的连接类型。
在一些具体实现中,依据链路检测消息对链路集合中的待检测链路进行检测,获得待检测交换机对应的交换机类型之后,还包括:在确定待检测交换机对应的交换机类型是二层交换机类型的情况下,确定待检测交换机支持开放系统互连参考模型OSI中的数据链路层的协议的数据解析;在确定待检测交换机对应的交换机类型是SDN交换机类型的情况下,确定待检测交换机支持OSI中的至少三层协议的数据解析。
在一些具体实现中,依据链路检测消息对链路集合中的待检测链路进行检测,获得待检测交换机对应的交换机类型,包括:发送链路检测消息至第一交换机,以使第一交换机转发链路检测消息至待检测交换机;响应于待检测交换机反馈的链路检测响应,获取待检测交换机对应的交换机类型。
在一些具体实现中,依据预设类型表和待检测交换机对应的交换机类型,确定待检测链路的连接类型之后,还包括:依据待检测链路的连接类型,确定通信网络的网络拓扑。
在一些具体实现中,依据待检测链路的连接类型,确定通信网络的网络拓扑之后,还包括:将待检测链路标识为通信链路;依据网络拓扑,对通信链路进行路由选择。
为了实现上述目的,本申请第二方面提供一种交换机控制器,包括:生成模块,用于依据预设类型表,生成链路检测消息;检测模块,用于依据链路检测消息对链路集合中的待检测链路进行检测,获得待检测交换机对应的交换机类型,待检测链路包括第一交换机和待检测交换机;连接类型确定模块,用于依据预设类型表和待检测交换机对应的交换机类型,确定待检测链路的连接类型。
在一些具体实现中,预设类型表包括预设交换机类型,预设交换机类型包括软件定义网络SDN交换机类型和二层交换机类型;待检测链路的连接类型包括直接连接类型和间接连接类型;连接类型确定模块,包括:第一确定子模块,用于在确定待检测交换机对应的交换机类型是SDN交换机类型的情况下,确定待检测链路的连接类型是直接连接类型;第二确定子模块,用于在确定待检测交换机对应的交换机类型是二层交换机类型的情况下,确定待检测链路的连接类型是间接连接类型。
本申请中的链路检测方法和交换机控制器,通过预设类型表,生成链路检测消息,该链路检测消息包括预设类型表,简化链路检测的消息,方便后续对待检测链路进行检测;依据链路检测消息对链路集合中的待检测链路进行检测,获得待检测交换机对应的交换机类型,待检测链路是第一交换机与待检测交换机之间的链路,能够快速获得待检测交换机的交换机类型,加快对待检测链路的检测速度;依据预设类型表和待检测交换机对应的交换机类型,确定待检测链路的连接类型,使待检测链路的连接类型能够快速的确定,避免发送重复的检测消息,减少网络资源的浪费,方便对通信网络中的通信连接进行选择,加快通信速度。
附图说明
附图用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请,并不构成对本申请的限制。通过参考附图对详细示例实施例进行描述,以上和其它特征和优点对本领域技术人员将变得更加显而易见,在附图中:
图1示出本申请中的基于LLDP对通信链路进行检测的检测系统的组成方框图。
图2示出本申请中的基于BDDP对通信链路进行检测的检测系统的组成方框图。
图3示出本申请一实施例中的链路检测方法的流程示意图。
图4示出本申请又一实施例中的链路检测方法的流程示意图。
图5示出本申请再一实施例中的链路检测方法的流程示意图。
图6示出本申请另一实施例中的链路检测方法的流程示意图。
图7示出本申请实施例中的交换机控制器的组成方框图。
图8示出本申请实施例中的链路检测系统的组成方框图。
图9示出本申请实施例中的链路检测系统的工作方法的流程示意图。
具体实施方式
以下结合附图对本申请的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本申请,并不用于限制本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1示出本申请中的基于LLDP对通信链路进行检测的检测系统的组成方框图。
如图1所示,该检测系统包括依次连接的第一软件定义网络(Software DefinedNetwork,SDN)交换机101、第二SDN交换机102和SDN控制器103。其中,SDN控制器103采用LLDP报文对第一SDN交换机101和第二SDN交换机102之间的链路连接方式进行检测。因LLDP报文只支持一跳的消息传递,即第一SDN交换机101发送的基于LLDP报文的检测消息只能发送给与该第一SDN交换机101直接连接的第二SDN交换机102,SDN控制器103只能检测两个SDN交换机是否直连。
具体检测流程如下:SDN控制器103先发送PACKET_OUT消息给第一SDN交换机101,其中,PACKET_OUT消息是基于LLDP报文的检测消息;当第一SDN交换机101接收到该PACKET_OUT消息后,通过指定的端口转发出去,以使与该第一SDN交换机101直联的交换机(例如,第二SDN交换机102)能够获得该PACKET_OUT消息;当第二SDN交换机102获得该PACKET_OUT消息后,会向SDN控制器103反馈PACKET_IN消息(即检测响应消息),以使SDN控制器103获知第一SDN交换机101和第二SDN交换机102之间的链路连接类型是直接连接的。但这种检测方法中的LLDP报文的存活时间只有一跳,即只能对两个相邻的交换机之间的链路连接类型进行检测,无法对非相邻的交换机之间的链路连接类型进行检测,具有一定的局限性。
图2示出本申请中的基于BDDP对通信链路进行检测的检测系统的组成方框图。
如图2所示,该检测系统包括依次连接的第一SDN交换机201、待检测交换机203、第二SDN交换机202和SDN控制器204。其中,SDN控制器204采用BDDP报文对第一SDN交换机201和第二SDN交换机202之间的链路连接方式进行检测。其中,BDDP报文可检测第一SDN交换机201和第二SDN交换机202之间是否存在非SDN交换机(例如,传统的二层交换机)。
具体检测流程如下:首先,SDN控制器204先发送PACKET_OUT消息给第一SDN交换机201,其中,PACKET_OUT消息是基于LLDP报文的第一检测消息,该第一检测消息包括预设端口;第一SDN交换机201在接收到该PACKET_OUT消息时,会使用预设端口将该PACKET_OUT消息转发出去;若该PACKET_OUT消息被非SDN交换机(例如,传统的二层交换机)接收到,则该PACKET_OUT消息会被传统的二层交换机丢弃,导致SDN控制器204无法接收到对应的PACKET_IN消息。在预设时长内,若SDN控制器204没有接收到PACKET_IN消息,则SDN控制器204会发送基于BDDP报文的第二检测消息至第一SDN交换机201,并使第一SDN交换机201使用对应的端口将该第二检测消息转发出去;若该第二检测消息被非SDN交换机(例如,传统的二层交换机)接收到,并通过传统的二层交换机转发至第二SDN交换机202,以使第二SDN交换机202将该第二检测消息对应的检查响应消息(例如,PACKET_IN消息)发送给SDN控制器204,此时,SDN控制器204可根据该检查响应消息判定:在第一SDN交换机201和第二SDN交换机202之间存在着非SDN交换机(即,传统的二层交换机)。但上述混合网络场景下的检测,需要至少发送两次检测报文(例如,基于LLDP报文和BDDP报文的两种检测消息),才能获知第一SDN交换机201和第二SDN交换机202之间是否存在着非SDN交换机,导致网络资源的浪费。
图3示出本申请一实施例中的链路检测方法的流程示意图。该链路检测方法可应用于交换机。如图3所示,该链路检测方法包括:
步骤S301,依据预设类型表,生成链路检测消息。
其中,预设类型表包括预设交换机类型,预设交换机类型包括SDN交换机类型和二层交换机类型;待检测链路的连接类型包括直接连接类型和间接连接类型。
需要说明的是,直接连接类型表示当前交换机与待连接交换机之间不存在二层交换机,间接连接类型表示当前交换机是通过二层交换机与待连接交换机进行连接的,当前交换机和待连接交换机的类型均是SDN交换机类型。通过不同的链路的连接类型,表征当前交换机与其他交换机之间的连接情况,并依据包括预设交换机类型的预设类型表生成链路检测消息,提高对链路的检测效率。
步骤S302,依据链路检测消息对链路集合中的待检测链路进行检测,获得待检测交换机对应的交换机类型。
其中,待检测链路包括第一交换机和待检测交换机。
需要说明的是,其中的待检测交换机是直接与第一交换机相连接的交换机,通过获得待检测交换机对应的交换机类型,可快速确定与第一交换机相连接的交换机的具体功能,方便为第一交换机选择合适的通信路径。
在一些具体实现中,依据链路检测消息对链路集合中的待检测链路进行检测,获得待检测交换机对应的交换机类型,包括:发送链路检测消息至第一交换机,以使第一交换机转发链路检测消息至待检测交换机;响应于待检测交换机反馈的链路检测响应,获取待检测交换机对应的交换机类型。
通过第一交换机转发链路检测消息,能够快速的获得与第一交换机相连接的待检测交换机对应的交换机类型,提高对待检测链路的检测效率。
步骤S303,依据预设类型表和待检测交换机对应的交换机类型,确定待检测链路的连接类型。
其中,可将待检测交换机对应的交换机类型与预设类型表中的各个预设交换机类型相比较,判断待检测交换机对应的交换机类型是否符合预设类型表的要求,进而根据判断结果确定待检测链路的连接类型,简化链路检测的流程,加快对待检测链路的检测速度。
在一些具体实现中,依据预设类型表和待检测交换机对应的交换机类型,确定待检测链路的连接类型,包括:在确定待检测交换机对应的交换机类型是SDN交换机类型的情况下,确定待检测链路的连接类型是直接连接类型;在确定待检测交换机对应的交换机类型是二层交换机类型的情况下,确定待检测链路的连接类型是间接连接类型。
其中,当待检测交换机对应的交换机类型是SDN交换机类型时,说明第一交换机和待检测交换机是直接连接的,两者之间没有二层交换机;当确定待检测交换机对应的交换机类型是二层交换机类型时,说明第一交换机是与一个二层交换机相连接的,若希望该第一交换机能够与其他SDN交换机进行通信,需要通过该二层交换机的路由转换,才能是该第一交换机与其他SDN交换机进行通信。通过对待检测交换机对应的交换机类型进行判断,可明确与第一交换机对应的通信网络的拓扑结构,方便对经过第一交换机的通信消息进行合适的路由选择,提高通信效率。
在本实施例中,通过依据预设类型表生成链路检测消息,简化链路检测的消息,方便后续对待检测链路进行检测;依据链路检测消息对链路集合中的待检测链路进行检测,获得待检测交换机对应的交换机类型,待检测链路是第一交换机与待检测交换机之间的链路,能够快速获得待检测交换机的交换机类型,加快对待检测链路的检测速度;依据预设类型表和待检测交换机对应的交换机类型,确定待检测链路的连接类型,使待检测链路的连接类型能够快速的确定,避免发送重复的检测消息,减少网络资源的浪费,方便对通信网络中的通信连接进行选择,加快通信速度。
图4示出本申请又一实施例中的链路检测方法的流程示意图。该链路检测方法可应用于交换机。如图4所示,该链路检测方法包括:
步骤S401,依据预设类型表,生成链路检测消息。
步骤S402,依据链路检测消息对链路集合中的待检测链路进行检测,获得待检测交换机对应的交换机类型。
需要说明的是,本实施例中的步骤S401~步骤S402与上一实施例中的步骤S301~步骤S302相同,在此不再赘述。
步骤S403,依据预设类型表和待检测交换机对应的交换机类型,确定待检测链路的连接类型。
其中,预设类型表包括预设交换机类型和预设生存时间值,预设生存时间值是预先设定的生存时间值(Time To Live,TTL),TTL用于表示某个数据包被交换机(或,路由器)丢弃之前允许通过的最大网段数量。
例如,若某个数据包中的TTL初始设定为255,该数据包不论经过多少个二层交换机,该TTL都保持255不变;若该数据包每经过一个SDN交换机,该TTL就会自动减一,直至该数据包因找不到通信路径而被丢弃为止。因此,可根据TTL的变化,确定某个数据包经过的交换机的类型。
步骤S404,获取待检测交换机的物理地址。
其中,物理地址包括媒体存取控制位址(Media Access Control Address,MAC)、硬件地址、以太网地址(Ethernet Address)和局域网地址(LAN Address)中的任意一种。物理地址用于确认待检测交换机的位置信息。在通信网络中,物理地址用于唯一标识一台设备(例如,交换机或网卡等)。
步骤S405,在确定待检测链路的连接类型是直接连接类型的情况下,依据预设生存时间值,生成与SDN交换机类型对应的第一TTL。
其中,因待检测链路的连接类型是直接连接类型,并且第一交换机的交换机类型是SDN交换机类型,则待检测交换机对应的交换机类型也是SDN交换机类型。因此,若预设生存时间值设定为255,则第一TTL等于255-1=254,以表征待检测链路中的交换机均是SDN交换机。
步骤S406,依据第一TTL和待检测交换机的物理地址,生成并发送第一上报消息至交换机控制器。
当交换机控制器接收到第一上报消息后,通过对第一上报消息的解析,可根据第一TTL的值,确定待检测链路的连接类型为直接连接类型。
步骤S407,在确定待检测链路的连接类型是间接连接类型的情况下,依据预设生存时间值和待检测交换机的物理地址,生成并发送第二上报消息。
当交换机控制器接收到第二上报消息后,通过对第二上报消息的解析,可获知预设生存时间值没有变化,进而确定待检测链路的连接类型为间接连接类型,即待检测链路中包括二层交换机。
在本实施例中,在待检测链路的连接类型是直接连接类型时,通过预设生存时间值,生成与SDN交换机类型对应的第一TTL,以表征待检测链路中的交换机均是SDN交换机;在待检测链路的连接类型是间接连接类型时,因第二上报消息中的预设生存时间值没有变化,可知待检测链路中包括二层交换机。进一步明确待检测链路中的交换机类型,提升对待检测链路的检测精度,方便交换机控制获得准确的待检测链路的连接类型,进而确定网络拓扑,提升通信信息的传输效率。
图5示出本申请再一实施例中的链路检测方法的流程示意图。该链路检测方法可应用于交换机控制器。如图3所示,该链路检测方法包括:
步骤S501,依据预设类型表,生成链路检测消息。
步骤S502,依据链路检测消息对链路集合中的待检测链路进行检测,获得待检测交换机对应的交换机类型。
步骤S503,依据预设类型表和待检测交换机对应的交换机类型,确定待检测链路的连接类型。
需要说明的是,本实施例中的步骤S501~步骤S503与一实施例中的步骤S301~步骤S303相同,在此不再赘述。
步骤S504,在确定待检测交换机对应的交换机类型是二层交换机类型的情况下,确定待检测交换机支持开放系统互连参考模型中的数据链路层的协议的数据解析。
其中,开放系统互连参考模型(Open System Interconnect,OSI)是由国际标准化组织提出的、试图使各种计算机在世界范围内互连为网络的标准框架。OSI将计算机网络体系结构划分为以下七层:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
其中,物理层用于将数据转换为可通过物理介质传送的电子信号。数据链路层用于负责网络寻址、错误侦测和改错,并将数据进行分帧。数据链路层还可以指定拓扑结构并提供硬件寻址。网络层用于决定数据的路径选择和转寄,将网络表头加至数据包,以形成分组。传输层用于提供终端到终端的可靠连接。会话层用于允许用户使用简单易记的名称建立连接。表示层用于协商数据交换格式。应用层用于使用户的应用程序和网络之间进行接口通信。
在确定待检测交换机对应的交换机类型是二层交换机类型时,因二层交换机只支持OSI中的数据链路层和物理层的协议的数据解析,因此,该待检测交换机也只能对接收到的通信信息中的数据链路层和物理层的协议数据进行解析。无法对数据链路层以上的高层协议数据进行解析和分析。
步骤S505,在确定待检测交换机对应的交换机类型是SDN交换机类型的情况下,确定待检测交换机支持OSI中的至少三层协议的数据解析。
其中,在确定待检测交换机对应的交换机类型是SDN交换机类型时,因SDN交换机可以支持OSI中的至少三层协议的数据解析,例如,SDN交换机可对通信信息中的物理层、数据链路层、网络层、传输层、会话层、表示层和应用层中的至少三层的协议数据进行解析,因此,该待检测交换机也可以支持对通信信息中的物理层、数据链路层、网络层、传输层、会话层、表示层和应用层中的至少三层的协议数据进行解析,加速了对通信信息的处理速度,提高对通信信息的解析准确度。
图6示出本申请另一实施例中的链路检测方法的流程示意图。该链路检测方法可应用于交换机控制器。如图6所示,该链路检测方法包括:
步骤S601,依据预设类型表,生成链路检测消息。
步骤S602,依据链路检测消息对链路集合中的待检测链路进行检测,获得待检测交换机对应的交换机类型。
步骤S603,依据预设类型表和待检测交换机对应的交换机类型,确定待检测链路的连接类型。
需要说明的是,本实施例中的步骤S601~步骤S603与一实施例中的步骤S301~步骤S303相同,在此不再赘述。
步骤S604,依据待检测链路的连接类型,确定通信网络的网络拓扑。
例如,需要检测第一交换机对应的网络拓扑,若待检测链路的连接类型是直接连接类型,则可确定第一交换机和待检测交换机都是SDN交换机,第一交换机可直接将通信信息传输给待检测交换机;若待检测链路的连接类型是间接连接类型,则第一交换机在进行通信信息的传输时,需要将该通信消息先传输给与之相连接的二层交换机,然后由该二层交换机转发给下一节点的SDN交换机。通过不同的检测链路的连接类型,可确定第一交换机对应的网络拓扑结构。因通信网络中可包括多个第一交换机,通过对多个不同的第一交换机的网络连接状态进行检测,可综合确定通信网络的网络拓扑,为后续通信信息的传输提供路径选择。
在一些具体实现中,网络拓扑包括链路集合中的待检测链路,待检测链路包括第一交换机和待检测交换机;依据待检测链路的连接类型,确定通信网络的网络拓扑之后,还包括:将待检测链路标识为通信链路;依据网络拓扑,对通信链路进行路由选择。
其中,网络拓扑用于表征链路集合中的待检测链路的网络连接关系,而链路集合中包括N条待检测链路,N为大于或等于1的整数。交换机控制器可根据多条待检测链路的网络连接关系,确定通信网络的网络拓扑,加快对通信信息的传输效率。
交换机控制器通过网络拓扑,能够快速的判断出不同的通信链路传输通信信息所需要的时间,进而对通信链路进行路由选择,为通信信息的传输选择传输效率较高的通信链路,提升通信效率。
图7示出本申请实施例中的交换机的组成方框图。如图7所示,该交换机具体包括:生成模块701,用于依据预设类型表,生成链路检测消息;检测模块702,用于依据链路检测消息对链路集合中的待检测链路进行检测,获得待检测交换机对应的交换机类型,待检测链路包括第一交换机和待检测交换机;连接类型确定模块703,用于依据预设类型表和待检测交换机对应的交换机类型,确定待检测链路的连接类型。
在一些具体实现中,预设类型表包括预设交换机类型,预设交换机类型包括软件定义网络SDN交换机类型和二层交换机类型;待检测链路的连接类型包括直接连接类型和间接连接类型;连接类型确定模块703,包括:第一确定子模块,用于在确定待检测交换机对应的交换机类型是SDN交换机类型的情况下,确定待检测链路的连接类型是直接连接类型;第二确定子模块,用于在确定待检测交换机对应的交换机类型是二层交换机类型的情况下,确定待检测链路的连接类型是间接连接类型。
在本实施方式中,通过生成模块依据预设类型表,生成链路检测消息,该链路检测消息包括预设类型表,简化链路检测的消息,方便后续对待检测链路进行检测;使用检测模块依据链路检测消息对链路集合中的待检测链路进行检测,获得待检测交换机对应的交换机类型,待检测链路是第一交换机与待检测交换机之间的链路,能够快速获得待检测交换机的交换机类型,加快对待检测链路的检测速度;使用连接类型确定模块依据预设类型表和待检测交换机对应的交换机类型,确定待检测链路的连接类型,使待检测链路的连接类型能够快速的确定,避免发送重复的检测消息,减少网络资源的浪费,方便对通信网络中的通信连接进行选择,加快通信速度。
值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本申请的创新部分,本实施方式中并没有将与解决本申请所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
图8示出本申请实施例中的链路检测系统的组成方框图。如图8所示,该链路检测系统包括如下设备:第一SDN交换机801、第二SDN交换机802、第三SDN交换机803、第四SDN交换机804、SDN交换机控制器805和二层交换机806。
其中,SDN交换机控制器805分别与第一SDN交换机801、第二SDN交换机802、第三SDN交换机803和第四SDN交换机804相连接;第一SDN交换机801和第二SDN交换机802相连接;第二SDN交换机802和第四SDN交换机804相连接;第三SDN交换机803和第四SDN交换机804相连接;第一SDN交换机801和第三SDN交换机803之间通过二层交换机806间接连接;但SDN交换机控制器805并不知道各个SDN交换机之间的链路的连接类型,需要采用链路检测方法对该链路检测系统进行链路检测,快速获得完整的网络拓扑,避免发送重复的检测消息,减少网络资源的浪费,方便对通信网络中的通信连接进行选择,加快通信速度。
SDN交换机控制器805用于依据预设类型表,生成并发送链路检测消息至第一SDN交换机801或第四SDN交换机804,以使第一SDN交换机801依据该链路检测消息对第一SDN交换机801和第二SDN交换机802之间的链路,以及第一SDN交换机801和第三SDN交换机803之间的链路进行检测,获得第一SDN交换机801、第二SDN交换机802和第三SDN交换机803之间的网络拓扑;同时,使第四SDN交换机804依据该链路检测消息对第二SDN交换机802和第四SDN交换机804之间的链路,以及第四SDN交换机804和第三SDN交换机803之间的链路进行检测,获得第二SDN交换机802、第四SDN交换机804和第三SDN交换机803之间的网络拓扑。
其中,链路检测消息包括初始TTL(例如,可设置初始TTL为255)、交换机类型(例如,初始设置为0x8999)、目的MAC地址(例如,设置为广播地址0xFFFFFFFFFFFF)。其中的交换机类型用于表征待检测交换机能够支持的协议类型,进而反应待检测交换机的交换机类型。例如,当协议类型初始设置为0x8999时,表征初始默认待检测交换机是SDN交换机。
需要说明的是,由于传统的二层交换机仅能够支持OSI中的数据链路层的协议的数据解析,因此,在接收到链路检测消息时,传统的二层交换机会更新该链路检测消息中的协议类型为0x8100,即使用0x8100来表征接收到该链路检测消息的待检测交换机的交换机类型是二层交换机。
具体地,图9示出本申请实施例中的链路检测系统的工作方法的流程示意图。如图9所示,以第一SDN交换机801为例,检测与该第一SDN交换机801对应的链路的检测方法,具体包括如下步骤。
步骤S901,SDN交换机控制805依据预设类型表,生成链路检测消息,并发送该链路检测消息至第一SDN交换机801。
其中,预设类型表包括预设交换机类型,该预设交换机类型包括SDN交换机类型(例如,0x8999)和二层交换机类型(例如,0x8100)。链路检测消息不仅包括预设类型表,还包括源MAC地址、目的MAC地址、初始TTL和交换机类型。具体实现时,可将链路检测消息的源MAC地址设置为第一SDN交换机801的MAC地址,目的MAC地址设置为0xFFFFFFFFFFFF,设置初始TTL为255,将交换机类型初始化为0x8999。
在一个具体实现中,SDN交换机控制805还可以通过发送广播消息的形式,发送预设类型表至通信网络中,以使每个SDN交换机都能够获得该预设类型表。例如,使用公开流流表(OpenFlow)协议中的流模式(Flow_mod)向通信网络中的每个SND交换机广播预设类型表。
其中,OpenFlow协议是一种网络通信协议,属于数据链路层,OpenFlow协议能够控制SDN交换器的转发平面(Forwarding Plane),通过Forwarding Plane来改变网络数据包对应的通信路径。
步骤S902,第一SDN交换机801在接收到链路检测消息后,通过第一SDN交换机801与第二SDN交换机802之间的端口,发送该链路检测消息至第二SDN交换机802。
需要说明的是,在执行步骤S902的同时,还同步执行步骤S905。通过第一SDN交换机801的所有端口,转发该链路检测消息至通信网络中,以检测与该第一SDN交换机801相连接的所有链路的连接类型。
步骤S903,第二SDN交换机802接收到链路检测消息后,因第二SDN交换机802对应的交换机类型是SDN交换机,通过对比链路检测消息中的交换机类型和第二SDN交换机802对应的交换机类型,确定两者相同(例如,都是0x8999),并且链路检测消息的目的MAC地址为广播地址(例如,0xFFFFFFFFFFFF),则生成第一链路检测响应。
其中,第一链路检测响应包括第二SDN交换机802对应的交换机类型(例如,0x8999)。需要说明的是,因第二SDN交换机802对应的交换机类型是SDN交换机,因此,第二SDN交换机802可以支持OSI中的至少三层协议的数据解析,通过将TTL减一的方式,将第一链路检测响应中的TTL设置为254,以区别于传统的二层交换机。
步骤S904,第二SDN交换机802发送该第一链路检测响应至SDN交换机控制805,以使SDN交换机控制805获知第二SDN交换机802对应的交换机类型为SDN交换机。
例如,第二SDN交换机802通过上报消息,直接将其交换机类型(0x8999)发送给SDN交换机控制器805,以使SDN交换机控制器805能够快速获得第二SDN交换机802的交换机类型为0x8999、源MAC地址为MAC-1,TTL字段为255,进而使SDN交换机控制器805判定第一SDN交换机801与第二SDN交换机802之间的链路的连接类型为直接连接类型。
步骤S905,第一SDN交换机801通过第一SDN交换机801与第三SDN交换机803之间的端口,发送该链路检测消息至第三SDN交换机803。
需要说明的是,由于第一SDN交换机801与第三SDN交换机803之间存在二层交换机806,因此,该链路检测消息会被二层交换机806获得。
步骤S906,二层交换机806接收到链路检测消息后,因二层交换机806对应的交换机类型是二层交换机(即,交换机类型为0x8100),通过对比链路检测消息中的交换机类型(初始化为0x8999)和二层交换机806对应的交换机类型,确定两者不同,并且,确定链路检测消息的目的MAC地址为广播地址(例如,0xFFFFFFFFFFFF),则依据二层交换机806对应的交换机类型(0x8100),生成第二链路检测响应。
需要说明的是,因二层交换机806对应的交换机类型是二层交换机,而二层交换机仅支持OSI中的数据链路层的协议的数据解析,因此,需要将第二链路检测响应中的TTL设置为255,以区别于SDN交换机。
步骤S907,二层交换机806发送第二链路检测响应至SDN交换机控制805,以使SDN交换机控制805获知二层交换机806对应的交换机类型为二层交换机。
步骤S908,SDN交换机控制805通过获得的步骤S904中的第一链路检测响应,可知第一SDN交换机801与第二SDN交换机802之间的链路的连接类型为直接连接类型;通过获得的步骤S907中的第二链路检测响应,可知第一SDN交换机801与第三SDN交换机803之间存在二层交换机806,即第一SDN交换机801与第三SDN交换机803之间的链路的连接类型为间接连接类型。
步骤S909,SDN交换机控制器805根据第一SDN交换机801与第二SDN交换机802之间的链路的连接类型,以及第一SDN交换机801与第三SDN交换机803之间的链路的连接类型,确定与第一SDN交换机801对应的网络拓扑。
在一个具体实现中,SDN交换机控制器805将第二SDN交换机802的MAC地址(MAC-2)作为源MAC地址,并将TTL设置为254,生成新的链路检测消息(即第二链路检测消息),通过第二SDN交换机802的、除了其与第一SDN交换机801之间的端口以外的所有端口发出,用以测试第二SDN交换机802与其他交换机之间的链路的连接类型。
需要说明的是,在对图8中的第四SDN交换机804的网络拓扑进行检测时,也可以采用步骤S902~步骤S904的方法,检测获得与第四SDN交换机804相对应的网络拓扑(即,第二SDN交换机802和第四SDN交换机804之间的链路的连接类型为直接连接类型,以及第四SDN交换机804和第三SDN交换机803之间的链路的连接类型为直接连接类型)。通过以上网络拓扑确定整个通信网络的完整的网络拓扑。
在一些具体实现中,SDN交换机控制器805在获得整个通信网络的完整的网络拓扑后,SDN交换机控制器805会依据该网络拓扑,对通信链路进行路由选择,以使通信网络中的数据能够通过较优的通信路径进行传输,提高通信网络中的数据的传输效率。
在本实施例中,通过依据预设类型表生成链路检测消息,该链路检测消息包括预设类型表,简化链路检测的消息,方便后续对待检测链路进行检测;依据链路检测消息对链路集合中的待检测链路进行检测,获得待检测交换机对应的交换机类型,待检测链路是第一SDN交换机与待检测交换机之间的链路,能够快速获得待检测交换机的交换机类型,加快对待检测链路的检测速度;依据预设类型表和待检测交换机对应的交换机类型,确定待检测链路的连接类型,使待检测链路的连接类型能够快速的确定,避免发送重复的检测消息,减少网络资源的浪费,方便对通信网络中的通信连接进行选择,加快通信速度。
可以理解的是,以上实施方式仅仅是为了说明本申请的原理而采用的示例性实施方式,然而本申请并不局限于此。对于本领域内的普通技术人员而言,在不脱离本申请的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本申请的保护范围。
- 基于交换机和控制器的链路恢复方法、控制器及交换机
- 交换机、控制器、系统及链路质量检测方法