CN105723657A - 交换机、控制器、系统及链路质量检测方法 - Google Patents
交换机、控制器、系统及链路质量检测方法 Download PDFInfo
- Publication number
- CN105723657A CN105723657A CN201480018333.5A CN201480018333A CN105723657A CN 105723657 A CN105723657 A CN 105723657A CN 201480018333 A CN201480018333 A CN 201480018333A CN 105723657 A CN105723657 A CN 105723657A
- Authority
- CN
- China
- Prior art keywords
- interchanger
- detection messages
- detection
- controller
- flow table
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0895—Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
-
- 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/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/085—Retrieval of network configuration; Tracking network configuration history
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/085—Retrieval of network configuration; Tracking network configuration history
- H04L41/0853—Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- 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/14—Arrangements for monitoring or testing data switching networks using software, i.e. software packages
-
- 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/20—Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/31—Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits
-
- 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/64—Routing or path finding of packets in data switching networks using an overlay routing layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/266—Stopping or restarting the source, e.g. X-on or X-off
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种交换机、控制器、系统及链路质量检测方法,属于网络技术领域。本发明通过控制器确定检测路径,并控制检测路径的每个交换机获取检测报文,使每个交换机确定获取到的检测报文与预先存储的流表表项匹配后,根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM信息;控制器获取每个交换机添加OAM信息后得到的终结检测报文,并根据终结检测报文确定链路质量。由于检测路径的每个交换机无需通过对应的链路质量检测协议检测链路质量,仅需根据预先存储的流表表项在获取到的检测报文中添加OAM信息,不仅能简化每个交换机的结构,且简化了每个交换机的操作。另外,控制器无需与每个交换机交互,因此,能提高业务处理效率。
Description
本发明涉及网络技术领域,特别涉及一种交换机、控制器、系统及链路质量检测方法。
为了提升网络部署的灵活性和可管理性,基于SDN(Software Defined Network,软件定义网络)的网络实现方式被广泛应用。SDN将网元的控制功能和转发功能解耦,将网络中的网元划分为控制面和转发面两个部分。由于控制面与转发面之间或者转发面各网元之间的链路质量的好坏直接影响网络传输业务的质量,例如,链路通断、带宽、丢包率、时延、抖动等均影响网络传输业务的质量,因此,基于SDN的链路质量检测方法至关重要。
开放流(OpenFlow)协议是当前SDN的控制面和转发面之间的主要控制协议。OpenFlow协议中将控制面网元称为OpenFlow Controller(即OpenFlow控制器,以下简称控制器),将转发面网元称为OpenFlow Switch(OpenFlow交换机,以下简称交换机)。相关技术在实现基于SDN的链路质量检测时,通常由交换机结合其网络技术采用与其网络技术对应的链路质量检测协议检测链路质量,并将检测结果上报至控制器或者供控制器查询。例如,如果交换机的网络技术为以太网技术,则交换机通过以太网的链路检测协议检测链路质量,并将检测结果上报至控制器或者供控制器查询。由于不同的网络技术对应的链路检测协议各不相同,因此,交换机需要实现不同的链路质量检测协议,然后将检测结果上报给控制器或者供控制器查询。以BFD(Bidirectional Forwarding Detection,双向转发检测)为例,BFD主要实现对链路通断的检测,链路两端的两个交换机都需要实现BFD协议栈,维护状态机,并根据BFD协
议相互发送报文来检测链路的通断。
在实现本发明的过程中,发明人发现相关技术至少存在以下问题:
由于相关技术需要交换机针对不同的网络技术采用不同的链路质量检测协议检测链路质量,因此,交换机可能需要实现多种链路质量检测协议,增加了交换机的设备复杂性。另外,由于不同的链路质量检测协议检测的内容往往不同,例如,有的检测通断,有的检测时延,功能上并不统一,因此,链路质量检测方式不统一,如果需要检测链路的不同内容,则交换机需要实现多种链路质量检测协议,操作繁琐。再者,采用这种方式时,由于控制器和交换机之间的接口消息数量较多,因此,控制器需要向多个交换机查询链路质量,或者需要多个交换机上报链路质量,增加了控制器与交换机之间的交互,影响网络业务处理效率。此外,交换机在实现链路质量检测协议时,往往需要维护状态机,使得交换机实现复杂。
发明内容
为了解决现有技术存在的问题,本发明实施例提供了一种交换机、控制器、系统及链路质量检测方法。所述技术方案如下:
第一方面,提供了一种软件定义网络系统,所述系统包括控制器和至少一个交换机;
所述控制器,用于确定检测路径,并控制所述检测路径的每个交换机获取检测报文,使所述每个交换机确定获取到的检测报文与每个交换机预先存储的流表表项匹配后,根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM(Operation Administration and Maintenance,操作管理维护)信息;获取所述每个交换机在获取到的检测报文中添加OAM信息后得到的终结检测报文,根据所述终结检测报文确定链路质量;
所述至少一个交换机中的每个交换机,用于获取检测报文,并对获取到的检测报文进行匹配,根据对应的流表表项在匹配成功的检测报文中添加OAM
信息后,将添加OAM信息的检测报文发送至所述检测路径的下一个交换机或者所述控制器。
第二方面,提供了一种交换机,所述交换机包括:
获取模块,用于获取检测报文,其中,获取到的检测报文来自控制器确定的检测路径的上一个交换机或者所述控制器;
确定模块,用于确定获取到的检测报文是否与本地预先存储的流表表项匹配;
添加模块,用于当获取到的检测报文与本地预先存储的流表表项匹配时,根据所述本地预先存储的流表表项在获取到的检测报文中添加OAM信息;
发送模块,用于将添加OAM信息后的检测报文发送至所述检测路径的下一个交换机,直至所述检测路径的最后一个交换机根据预先存储流表表项在获取到的检测报文中添加OAM信息得到终结检测报文,并将所述终结检测报文发送至控制器后,由所述控制器根据所述终结检测报文确定链路质量。
结合第二方面,在第二方面的第一种可能的实现方式中,所述获取模块,用于:
当本地交换机为所述检测路径的第一个交换机时,接收所述控制器发送的初始检测报文,将接收的初始检测报文作为获取到的检测报文;或者,接收所述控制器发送的检测报文生成指令,并根据所述检测报文生成指令生成初始检测报文,将生成的初始检测报文作为获取到的检测报文;
当本地交换机不为所述检测路径的第一个交换机时,接收所述检测路径的上一个交换机添加OAM信息后的检测报文,并将接收的所述上一个交换机添加OAM信息后的检测报文作为获取到的检测报文。
结合第二方面,在第二方面的第二种可能的实现方式中,所述交换机,还包括:
接收模块,用于接收并存储所述控制器发送的流表表项,所述流表表项用于指示本地交换机对获取到的检测报文进行匹配,并根据本地预先存储的流表
表项在匹配成功的检测报文中添加OAM信息,得到添加本地OAM信息后的检测报文后,通过所述流表表项指定的输出端口将添加本地OAM信息后的检测报文发送至所述检测路径的下一个交换机或所述控制器。
结合第二方面,在第二方面的第三种可能的实现方式中,所述获取模块获取到的检测报文携带检测路径ID(Identity,标识),所述确定模块,包括:
解析单元,用于解析获取到的检测报文的报文头域及检测路径ID;
确定单元,用于根据获取到的检测报文的报文头域及所述检测路径ID中的至少一种信息确定获取到的检测报文是否与本地预先存储的流表表项匹配。
结合第二方面,在第二方面的第四种可能的实现方式中,本地交换机在获取到的检测报文中添加的OAM信息至少包括入接口已用带宽、入接口空闲带宽、出接口已用带宽、出接口空闲带宽、检测报文总数、检测报文接收时间戳、检测报文发送时间戳中的至少一种信息。
第三方面,提供了一种控制器,所述控制器包括:
第一确定模块,用于确定检测路径,所述检测路径包括至少一个交换机;
控制模块,用于控制所述检测路径的每个交换机获取检测报文,使所述每个交换机确定获取到的检测报文与每个交换机预先存储的流表表项匹配后,根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM信息;
获取模块,用于获取所述每个交换机在获取到的检测报文中添加OAM信息后得到的终结检测报文;
第二确定模块,用于根据所述终结检测报文确定链路质量。
结合第三方面,在第三方面的第一种可能的实现方式中,所述控制器,还包括:
发送模块,用于将所述检测路径的每个交换机对应的流表表项发送至每个交换机,所述每个交换机对应的流表表项用于指示所述每个交换机对获取到的检测报文进行匹配,并根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM信息后,通过所述每个交换机对应的流表表项指定的输出端
口将添加OAM信息后的检测报文发送至所述检测路径的下一个交换机或控制器。
结合第三方面,在第三方面的第二种可能的实现方式中,所述第一确定模块,用于根据网络的配置信息确定检测路径;或者,根据网络的拓扑信息生成检测路径,并将生成的检测路径作为确定的检测路径。
结合第三方面,在第三方面的第三种可能的实现方式中,所述控制模块,用于:
当交换机为所述检测路径的第一个交换机时,控制将初始检测报文发送至所述第一个交换机,使所述第一个交换机将接收的初始检测报文作为获取到的检测报文;或者,控制将检测报文生成指令发送至所述第一个交换机,使所述第一个交换机根据所述检测报文生成指令生成初始检测报文,并将生成的初始检测报文作为获取到的检测报文;
当交换机不为所述检测路径的第一个交换机时,控制交换机接收所述检测路径的上一个交换机发送的所述上一个交换机添加OAM信息后的检测报文,并将接收的所述上一个交换机添加OAM信息后的检测报文作为获取到的检测报文。
结合第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,所述控制模块,用于控制周期性地将初始检测报文发送至所述第一个交换机;
所述第二确定模块,用于确定是否有预设数值个周期未接收到每个初始检测报文对应的终结检测报文;如果确定有预设数值个周期未接收到每个初始检测报文对应的终结检测报文,则确定所述检测路径故障。
结合第三方面的第三种可能的实现方式,在第三方面的第五种可能的实现方式中,所述初始检测报文携带所述初始检测报文的生成时间戳及所述初始检测报文的报文序列号,所述控制器,还包括:
记录模块,用于记录接收到的终结检测报文总数以及终结检测报文接收时
间戳;
所述第二确定模块,用于根据所述初始检测报文的生成时间戳、所述初始检测报文的报文序列号、所述终结检测报文携带的每个交换机添加的OAM信息及所述终结检测报文总数、所述终结检测报文接收时间戳中的至少一种信息确定链路质量。
第四方面,提供了一种链路质量检测方法,所述方法包括:
获取检测报文,其中,获取到的检测报文来自控制器确定的检测路径的上一个交换机或者所述控制器;
确定获取到的检测报文是否与本地预先存储的流表表项匹配;
如果获取到的检测报文与本地预先存储的流表表项匹配,则根据所述本地预先存储的流表表项在获取到的检测报文中添加OAM信息;
将添加OAM信息后的检测报文发送至所述检测路径的下一个交换机,直至所述检测路径的最后一个交换机根据预先存储流表表项在获取到的检测报文中添加OAM信息得到终结检测报文,并将所述终结检测报文发送至控制器后,由所述控制器根据所述终结检测报文确定链路质量。
结合第四方面,在第四方面的第一种可能的实现方式中,所述获取检测报文,包括:
如果本地交换机为所述检测路径的第一个交换机,则接收所述控制器发送的初始检测报文,将接收的初始检测报文作为获取到的检测报文;或者,接收所述控制器发送的检测报文生成指令,并根据所述检测报文生成指令生成初始检测报文,将生成的初始检测报文作为获取到的检测报文;
如果本地交换机不为所述检测路径的第一个交换机,则接收所述检测路径的上一个交换机添加OAM信息后的检测报文,并将接收的所述上一个交换机添加OAM信息后的检测报文作为获取到的检测报文。
结合第四方面,在第四方面的第二种可能的实现方式中,所述确定获取到的检测报文是否与本地预先存储的流表表项匹配之前,还包括:
接收并存储所述控制器发送的流表表项,所述流表表项用于指示本地交换机对获取到的检测报文进行匹配,并根据本地预先存储的流表表项在匹配成功的检测报文中添加OAM信息,得到添加本地OAM信息后的检测报文后,通过所述流表表项指定的输出端口将添加本地OAM信息后的检测报文发送至所述检测路径的下一个交换机或所述控制器。
结合第四方面,在第四方面的第三种可能的实现方式中,获取到的检测报文携带检测路径ID,所述确定获取到的检测报文是否与本地预先存储的流表表项匹配,包括:
解析获取到的检测报文的报文头域及检测路径ID;
根据获取到的检测报文的报文头域及所述检测路径ID中的至少一种信息确定获取到的检测报文是否与本地预先存储的流表表项匹配。
结合第四方面,在第四方面的第四种可能的实现方式中,本地交换机在获取到的检测报文中添加的OAM信息至少包括入接口已用带宽、入接口空闲带宽、出接口已用带宽、出接口空闲带宽、检测报文总数、检测报文接收时间戳、检测报文发送时间戳中的至少一种信息。
第五方面,提供了一种链路质量检测方法,所述方法包括:
确定检测路径,所述检测路径包括至少一个交换机;
控制所述检测路径的每个交换机获取检测报文,使所述每个交换机确定获取到的检测报文与每个交换机预先存储的流表表项匹配后,根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM信息;
获取所述每个交换机在获取到的检测报文中添加OAM信息后得到的终结检测报文;
根据所述终结检测报文确定链路质量。
结合第五方面,在第五方面的第一种可能的实现方式中,所述控制所述检测路径的每个交换机获取检测报文之前,还包括:
将所述检测路径的每个交换机对应的流表表项发送至每个交换机,所述每
个交换机对应的流表表项用于指示所述每个交换机对获取到的检测报文进行匹配,并根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM信息后,通过所述每个交换机对应的流表表项指定的输出端口将添加OAM信息后的检测报文发送至所述检测路径的下一个交换机或控制器。
结合第五方面,在第五方面的第二种可能的实现方式中,所述确定检测路径,包括:
根据网络的配置信息确定检测路径;
或者,根据网络的拓扑信息生成检测路径,并将生成的检测路径作为确定的检测路径。
结合第五方面,在第五方面的第三种可能的实现方式中,所述控制所述检测路径的每个交换机获取检测报文,包括:
如果交换机为所述检测路径的第一个交换机,则控制将初始检测报文发送至所述第一个交换机,使所述第一个交换机将接收的初始检测报文作为获取到的检测报文;或者,控制将检测报文生成指令发送至所述第一个交换机,使所述第一个交换机根据所述检测报文生成指令生成初始检测报文,并将生成的初始检测报文作为获取到的检测报文;
如果交换机不为所述检测路径的第一个交换机,则控制交换机接收所述检测路径的上一个交换机发送的所述上一个交换机添加OAM信息后的检测报文,并将接收的所述上一个交换机添加OAM信息后的检测报文作为获取到的检测报文。
结合第五方面的第三种可能的实现方式,在第五方面的第四种可能的实现方式中,所述控制将初始检测报文发送至所述第一个交换机,包括:
控制周期性地将初始检测报文发送至所述第一个交换机;
所述根据所述终结检测报文确定链路质量,包括:
确定是否有预设数值个周期未接收到每个初始检测报文对应的终结检测报文;
如果确定有预设数值个周期未接收到每个初始检测报文对应的终结检测报文,则确定所述检测路径故障。
结合第五方面的第三种可能的实现方式,在第五方面的第五种可能的实现方式中,所述初始检测报文携带所述初始检测报文的生成时间戳及所述初始检测报文的报文序列号,所述获取所述每个交换机在获取到的检测报文中添加OAM信息后得到的终结检测报文之后,还包括:
记录接收到的终结检测报文总数以及终结检测报文接收时间戳;
所述根据所述终结检测报文确定链路质量,包括:
根据所述初始检测报文的生成时间戳、所述初始检测报文的报文序列号、所述终结检测报文携带的每个交换机添加的OAM信息及所述终结检测报文总数、所述终结检测报文接收时间戳中的至少一种信息确定链路质量。
本发明实施例提供的技术方案的有益效果是:
通过控制器确定检测路径,并控制检测路径的每个交换机获取检测报文,每个交换机确定获取到的检测报文与预先存储的流表表项匹配后,根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM信息后,控制器获取每个交换机添加OAM信息后得到的终结检测报文,并根据终结检测报文确定链路质量。由于检测路径的每个交换机无需通过对应的链路质量检测协议检测链路质量,仅需根据预先存储的流表表项在获取到的检测报文中添加OAM信息,不仅能简化每个交换机的结构,而且简化了每个交换机的操作。另外,由于控制器无需与每个交换机交互,因此,能提高业务处理效率。
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种SDN网络架构示意图;
图2是本发明另一实施例提供的一种链路质量检测方法所涉及的实施环境示意图;
图3是本发明另一实施例提供的一种报文在流表间传递的过程示意图;
图4是本发明另一实施例提供的一种SDN网络系统的结构示意图;
图5是本发明另一实施例提供的一种交换机的结构示意图;
图6是本发明另一实施例提供的一种控制器的结构示意图;
图7是本发明另一实施例提供的一种链路质量检测方法的流程图;
图8是本发明另一实施例提供的一种链路质量检测方法的流程图;
图9是本发明另一实施例提供的一种链路质量检测方法的流程图;
图10是本发明另一实施例提供的一种链路质量检测方法的流程图;
图11是本发明另一实施例提供的一种网络拓扑结构示意图;
图12是本发明另一实施例提供的一种检测报文的传输路径及内容示意图;
图13是本发明另一实施例提供的一种链路质量检测方法的流程图;
图14是本发明另一实施例提供的一种链路质量检测方法的流程图;
图15是本发明另一实施例提供的一种链路质量检测方法的流程图;
图16是本发明另一实施例提供的一种交换机的结构示意图;
图17是本发明另一实施例提供的一种控制器的结构示意图。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
随着网络技术的迅速发展,在当前的网络部署中,存在众多复杂的网元,如路由器、网关、交换机、防火墙和各类服务器等。这些实现各种网络功能的网元通常都包含各自独立的控制模块,这种分布式的控制模块导致网络的部署非常复杂。在此基础上,为了实施某个控制功能的修改或者引入新的特性,需
要对众多网元进行升级或者替换。为提升网络部署的灵活性和可管理性,基于SDN的网元管理方法的优势日趋突出。基于SDN的网络部署,可以将网元的控制功能和转发功能解耦,将网络中的网元划分为控制面和转发面两个部分。其中,控制面通常集中部署,而转发面往往根据实际需求分布式部署在多个物理设备上。控制面通过对转发面进行控制从而实现各种各样的网络功能,例如路由、交换,等等。目前,SDN正在被广泛应用到数据中心网络和电信网络中。
如图1所示,其出了一种SDN网络架构示意图。其中,控制面网元和转发面网元之间通过开放流(OpenFlow)协议实现通信。OpenFlow协议是当前主流的基于SDN的控制面网元和转发面网元之间的控制协议。OpenFlow协议中将控制面网元称为OpenFlow Controller(即OpenFlow控制器,以下简称控制器),将转发面网元称为OpenFlow Switch(OpenFlow交换机,以下简称交换机)。为了便于说明,在本发明的各个实施例中,均以控制面网元和转发面网元分别为控制器和交换机为例,对本发明实施例提供的方法进行解释说明。然而,在具体实施时,控制面网元和转发面网元之间的通信协议并不仅限于OpenFlow协议,也可以为其它协议,本发明实施例对此不作具体限定。另外,关于控制面网元和转发面网元之间的网络类型,以及各个转发面网元之间的网络类型,本发明实施例同样不作具体限定,具体实施时,包括但不限于为以太网、IP(Internet Protocol,网协)、MPLS(Multi-Protocol Label Switching,多协议标签交换)协议,等等。
如图2所示,其示出了本发明实施例提供的一种链路质量检测方法所涉及的实施环境示意图,该实施环境包括控制器201和至少一个交换机202。
控制器201主要通过流表表项控制每个交换机202的行为。控制器201预先确定对什么样的报文进行什么样的操作,从而制定每个交换机202对应的流表表项,并将每个交换机202对应的流表表项下发至每个交换机202。其中,如表一所示,流表表项的内容包括:匹配域(Match Fields)、优先级(Priority)、计数器(Counters)、指令(Instructions)、老化时间(Timeouts)和临时文件
(Cookie),等等。为了便于理解本发明,以下着重介绍一下流表表项中的匹配域和指令。
表一
Match Fields | Priority | Counters | Instructions | Timeouts | Cookies |
匹配域是指将各种各样的报文头域以及接收端口号等信息与指定的值进行匹配。其中,报文头域如IP五元组(IP报文的源IP地址、目的IP地址、协议类型、源端口号、目的端口号),以太网帧头中的各种报文头域,如,源MAC(Medium Access Control,介质访问控制层)地址、目的MAC地址等。这里的匹配可以是精确匹配,也可以是掩码匹配。比如Match(SRC IP=1.1.1.1),表示对报文的源IP地址进行精确匹配,只有源IP地址为1.1.1.1的报文可以匹配成功;Match(SRC IP/16=1.1.0.0)表示对IP地址的前16位进行匹配,所有源IP地址为1.1.0.0/16网段的报文都可以匹配成功。
流表表项中的指令可以有很多种,例如,指令可以为动作指令(Action指令)、流水线控制指令(Goto-Table指令)、测量指令(Meter指令)、写元数据指令(Write-Metadata指令),等等。其中,OpenFlow中的Action指令分为两个大类,一个大类是立刻执行的动作,对应的指令为Apply-Actions;另一个大类是先存放在动作集中,直到流水线结束时才执行的动作。向动作集中写动作的指令为Write-Actions,清除动作集中所有动作的指令为Clear-Actions。不论是立刻执行的动作,还是存放在动作集中的动作,都包含多种类别。例如,包括指示如何对报文进行操作的动作,如转发、丢弃、修改报文头、封装、解封装、发送给控制器及设置队列指令(Set-Queue指令),等等。Goto-Table指令,指示报文在流表之间进行跳转,即从一个流表跳转到另一个流表。Meter指令指示利用Meter表对报文进行QoS(Quality of Service,服务质量)处理。
每个交换机202接收并存储每个交换机202对应的流表表项,并对获取到的报文根据预先存储的流表表项中的匹配域进行匹配,如果匹配成功,则执行流表表项中包括的指令,从而实现各种报文的处理。
其中,每个交换机202中可以包含一个或者多个流表,数据报文从第一个流表开始匹配,如果匹配成功,则执行匹配成功的流表表项中的指令。其中,如果包含跳转到其它流表的指令,则跳转到其它流表继续匹配处理;如果匹配失败,则根据Table-Miss表项进行处理。例如,可以丢弃或者送给控制器处理,等等。其中,Table-Miss表项是OpenFlow流表中的一个特殊流表表项,该流表表项没有匹配域,即和所有报文都能匹配成功,匹配优先级最低,用于指示和流表中其它流表表项都匹配失败的报文如何处理。如果没有Table-Miss表项,则根据流表的属性决定对如何对报文进行处理,例如,可以将流表属性配置为丢弃或者送给控制器处理。
如图3所示,其示出了一种报文在流表间传递的过程示意图。进入每个交换机202的报文在各流表处理的整个流程称为流水线(Pipeline)。在各个流表之间可以通过元数据(Metadata)传递信息,接收端口(ingress port)表示交换机接收到报文的端口ID,动作包含两种类型,一种是立即执行的动作,一种是在流水线结束时执行的动作。后一种动作存放在动作集合(Action Set)中,直到流水线结束时才执行。因此,当报文在流表之间跳转时,报文内容、接收端口、元数据、动作集合这四种信息也相应地在流表之间传递。
结合上述对控制器及交换机的简介,通过本发明实施例提供的链路质量检测方法,控制器201确定检测路径,并生成检测路径包括的每个交换机202对应的流表表项后,分别将检测路径的每个交换机202对应的流表表项发送至每个交换机。在检测链路质量时,控制器201控制检测路径的每个交换机202获取检测报文,每个交换机202确定获取到的检测报文与每个交换机202预先存储的流表表项匹配后,根据每个交换机202预先存储的流表表项在匹配成功的检测报文中添加OAM信息,并将添加OAM信息的检测报文发送至检测路径的下一个交换机或者控制器。最后,控制器201获取每个交换机202在获取到的检测报文中添加OAM信息后得到的终结检测报文,并根据终结检测报文确定链路质量。具体的链路质量检测方法详见下述各个实施例:
图4是根据一示例性实施例提供的一种SDN网络系统的结构示意图。如图4所示,该系统包括控制器401和至少一个交换机402。其中:
控制器401,用于确定检测路径,并控制检测路径的每个交换机获取检测报文,使每个交换机确定获取到的检测报文与每个交换机预先存储的流表表项匹配后,根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM信息;获取每个交换机在获取到的检测报文中添加OAM信息后得到的终结检测报文,根据终结检测报文确定链路质量;
至少一个交换机中的每个交换机402,用于获取检测报文,并对获取到的检测报文进行匹配,根据对应的流表表项在匹配成功的检测报文中添加OAM信息后,将添加OAM信息的检测报文发送至检测路径的下一个交换机或者控制器。
本发明实施例提供的系统,通过控制器确定检测路径,并控制检测路径的每个交换机获取检测报文,每个交换机确定获取到的检测报文与预先存储的流表表项匹配后,根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM信息后,控制器获取每个交换机添加OAM信息后得到的终结检测报文,并根据终结检测报文确定链路质量。由于检测路径的每个交换机无需通过对应的链路质量检测协议检测链路质量,仅需根据预先存储的流表表项在获取到的检测报文中添加OAM信息,不仅能简化每个交换机的结构,而且简化了每个交换机的操作。另外,控制器无需与每个交换机交互,因此,能提高业务处理效率。
图5是根据一示例性实施例提供的一种交换机的结构示意图,该交换机为上述图4所示的系统中的任一交换机,且该交换机用于执行下述图7至图15对应实施例提供的链路质量检测方法中每个交换机所执行的功能。如图5所示,该交换机包括:
获取模块501,用于获取检测报文,其中,获取到的检测报文来自控制器确定的检测路径的上一个交换机或者控制器;
确定模块502,用于确定获取到的检测报文是否与本地预先存储的流表表项匹配;
添加模块503,用于当获取到的检测报文与本地预先存储的流表表项匹配时,根据本地预先存储的流表表项在获取到的检测报文中添加OAM信息;
发送模块504,用于将添加OAM信息后的检测报文发送至检测路径的下一个交换机,直至检测路径的最后一个交换机根据预先存储流表表项在获取到的检测报文中添加OAM信息得到终结检测报文,并将终结检测报文发送至控制器后,由控制器根据终结检测报文确定链路质量。
可选地,获取模块501,用于:
当本地交换机为检测路径的第一个交换机时,接收控制器发送的初始检测报文,将接收的初始检测报文作为获取到的检测报文;或者,接收控制器发送的检测报文生成指令,并根据检测报文生成指令生成初始检测报文,将生成的初始检测报文作为获取到的检测报文;
当本地交换机不为检测路径的第一个交换机时,接收检测路径的上一个交换机添加OAM信息后的检测报文,并将接收的上一个交换机添加OAM信息后的检测报文作为获取到的检测报文。
可选地,交换机,还包括:
接收模块,用于接收并存储控制器发送的流表表项,流表表项用于指示本地交换机对获取到的检测报文进行匹配,并根据本地预先存储的流表表项在匹配成功的检测报文中添加OAM信息,得到添加本地OAM信息后的检测报文后,通过流表表项指定的输出端口将添加本地OAM信息后的检测报文发送至检测路径的下一个交换机或控制器。
可选地,获取模块501获取到的检测报文携带检测路径ID,确定模块502,包括:
解析单元,用于解析获取到的检测报文的报文头域及检测路径ID;
确定单元,用于根据获取到的检测报文的报文头域及检测路径ID中的至少一种信息确定获取到的检测报文是否与本地预先存储的流表表项匹配。
可选地,本地交换机在获取模块501获取到的检测报文中添加的OAM信息至少包括入接口已用带宽、入接口空闲带宽、出接口已用带宽、出接口空闲带宽、检测报文总数、检测报文接收时间戳、检测报文发送时间戳中的至少一种信息。
本发明实施例提供的交换机,通过获取检测报文,并在确定获取到的检测报文与预先存储的流表表项匹配后,根据本地预先存储的流表表项在匹配成功的检测报文中添加OAM信息,在控制器获取每个交换机添加OAM信息后得到的终结检测报文,由控制器根据终结检测报文确定链路质量。由于交换机无需通过对应的链路质量检测协议检测链路质量,仅需根据预先存储的流表表项在获取到的检测报文中添加OAM信息,不仅能简化交换机的结构,而且简化了交换机的操作。另外,由于控制器无需与每个交换机交互,因此,能提高业务处理效率。
图6是根据一示例性实施例提供的一种控制器的结构示意图,该控制器为上述图4所示的系统中所述的控制器,且该控制器用于执行下述图7至图15对应实施例提供的链路质量检测方法中控制器所执行的功能。如图6所示,该控制器包括:
第一确定模块601,用于确定检测路径,其中,该检测路径包括至少一个交换机;
控制模块602,用于控制检测路径的每个交换机获取检测报文,使每个交换机确定获取到的检测报文与每个交换机预先存储的流表表项匹配后,根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM信息;
获取模块603,用于获取每个交换机在获取到的检测报文中添加OAM信
息后得到的终结检测报文;
第二确定模块604,用于根据终结检测报文确定链路质量。
可选地,控制器,还包括:
发送模块,用于将检测路径的每个交换机对应的流表表项发送至每个交换机,其中,每个交换机对应的流表表项用于指示每个交换机对获取到的检测报文进行匹配,并根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM信息后,通过每个交换机对应的流表表项指定的输出端口将添加OAM信息后的检测报文发送至检测路径的下一个交换机或控制器。
可选地,第一确定模块601,用于根据网络的配置信息确定检测路径;或者,根据网络的拓扑信息生成检测路径,并将生成的检测路径作为确定的检测路径。
可选地,控制模块602,用于:
当交换机为检测路径的第一个交换机时,控制将初始检测报文发送至第一个交换机,使第一个交换机将接收的初始检测报文作为获取到的检测报文;或者,控制将检测报文生成指令发送至第一个交换机,使第一个交换机根据检测报文生成指令生成初始检测报文,并将生成的初始检测报文作为获取到的检测报文;
当交换机不为检测路径的第一个交换机时,控制交换机接收检测路径的上一个交换机发送的上一个交换机添加OAM信息后的检测报文,并将接收的上一个交换机添加OAM信息后的检测报文作为获取到的检测报文。
可选地,控制模块602,用于控制周期性地将初始检测报文发送至第一个交换机;
第二确定模块604,用于确定是否有预设数值个周期未接收到每个初始检测报文对应的终结检测报文;如果确定有预设数值个周期未接收到每个初始检测报文对应的终结检测报文,则确定检测路径故障。
可选地,初始检测报文携带初始检测报文的生成时间戳及初始检测报文的
报文序列号,控制器,还包括:
记录模块,用于记录接收到的终结检测报文总数以及终结检测报文接收时间戳;
第二确定模块604,用于根据初始检测报文的生成时间戳、初始检测报文的报文序列号、终结检测报文携带的每个交换机添加的OAM信息及终结检测报文总数、终结检测报文接收时间戳中的至少一种信息确定链路质量。
本发明实施例提供的控制器,通过确定检测路径,并控制检测路径的每个交换机获取检测报文,使每个交换机确定获取到的检测报文与预先存储的流表表项匹配后,根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM信息后,控制器获取每个交换机添加OAM信息后得到的终结检测报文,并根据终结检测报文确定链路质量。由于检测路径的每个交换机无需通过对应的链路质量检测协议检测链路质量,仅需根据预先存储的流表表项在获取到的检测报文中添加OAM信息,不仅能简化每个交换机的结构,而且简化了每个交换机的操作。另外,由于控制器无需与每个交换机交互,因此,能提高业务处理效率。
图7是根据一示例性实施例提供的一种链路质量检测方法的流程图。以任一交换机执行本发明实施例提供的方法的角度为例,如图7所示,本发明实施例提供的方法流程包括:
701:获取检测报文,其中,获取到的检测报文来自控制器确定的检测路径的上一个交换机或者控制器。
可选地,获取检测报文,包括:
如果本地交换机为检测路径的第一个交换机,则接收控制器发送的初始检测报文,将接收的初始检测报文作为获取到的检测报文;或者,接收控制器发送的检测报文生成指令,并根据检测报文生成指令生成初始检测报文,将生成的初始检测报文作为获取到的检测报文;
如果本地交换机不为检测路径的第一个交换机,则接收检测路径的上一个交换机添加OAM信息后的检测报文,并将接收的上一个交换机添加OAM信息后的检测报文作为获取到的检测报文。
702:确定获取到的检测报文是否与本地预先存储的流表表项匹配。
可选地,确定获取到的检测报文是否与本地预先存储的流表表项匹配之前,还包括:
接收并存储控制器发送的流表表项,其中,流表表项用于指示本地交换机对获取到的检测报文进行匹配,并根据本地预先存储的流表表项在匹配成功的检测报文中添加OAM信息,得到添加本地OAM信息后的检测报文后,通过流表表项指定的输出端口将添加本地OAM信息后的检测报文发送至检测路径的下一个交换机或控制器。
可选地,获取到的检测报文携带检测路径标识ID,确定获取到的检测报文是否与本地预先存储的流表表项匹配,包括:
解析获取到的检测报文的报文头域及检测路径ID;
根据获取到的检测报文的报文头域及检测路径ID中的至少一种信息确定获取到的检测报文是否与本地预先存储的流表表项匹配。
703:如果获取到的检测报文与本地预先存储的流表表项匹配,则根据本地预先存储的流表表项在获取到的检测报文中添加OAM信息。
可选地,本地交换机在获取到的检测报文中添加的OAM信息至少包括入接口已用带宽、入接口空闲带宽、出接口已用带宽、出接口空闲带宽、检测报文总数、检测报文接收时间戳、检测报文发送时间戳中的至少一种信息。
704:将添加OAM信息后的检测报文发送至检测路径的下一个交换机,直至检测路径的最后一个交换机根据预先存储流表表项在获取到的检测报文中添加OAM信息得到终结检测报文,并将终结检测报文发送至控制器后,由控制器根据终结检测报文确定链路质量。
本发明实施例提供的方法,通过获取检测报文,并确定获取到的检测报文
与预先存储的流表表项匹配后,根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM信息,在控制器获取每个交换机添加OAM信息后得到的终结检测报文,由控制器根据终结检测报文确定链路质量。由于交换机无需通过对应的链路质量检测协议检测链路质量,仅需根据预先存储的流表表项在获取到的检测报文中添加OAM信息,不仅能简化交换机的结构,而且简化了交换机的操作。另外,由于控制器无需与每个交换机交互,因此,能提高业务处理效率。
图8是根据一示例性实施例提供的一种链路质量检测方法的流程图。以控制器执行本发明实施例提供的方法的角度为例,如图8所示,本发明实施例提供的方法流程包括:
801:确定检测路径,其中,检测路径包括至少一个交换机。
可选地,确定检测路径,包括:
根据网络的配置信息确定检测路径;
或者,根据网络的拓扑信息生成检测路径,并将生成的检测路径作为确定的检测路径。
802:控制检测路径的每个交换机获取检测报文,使每个交换机确定获取到的检测报文与每个交换机预先存储的流表表项匹配后,根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM信息。
可选地,控制检测路径的每个交换机获取检测报文之前,还包括:
将检测路径的每个交换机对应的流表表项分别发送至每个交换机,其中,每个交换机对应的流表表项用于指示每个交换机对获取到的检测报文进行匹配,并根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM信息后,通过每个交换机对应的流表表项指定的输出端口将添加OAM信息后的检测报文发送至检测路径的下一个交换机或控制器。
可选地,控制检测路径的每个交换机获取检测报文,包括:
如果交换机为检测路径的第一个交换机,则控制将初始检测报文发送至第一个交换机,使第一个交换机将接收的初始检测报文作为获取到的检测报文;或者,控制将检测报文生成指令发送至第一个交换机,使第一个交换机根据检测报文生成指令生成初始检测报文,并将生成的初始检测报文作为获取到的检测报文;
如果交换机不为检测路径的第一个交换机,则控制交换机接收检测路径的上一个交换机发送的上一个交换机添加OAM信息后的检测报文,并将接收的上一个交换机添加OAM信息后的检测报文作为获取到的检测报文。
803:获取每个交换机在获取到的检测报文中添加OAM信息后得到的终结检测报文。
804:根据终结检测报文确定链路质量。
可选地,控制将初始检测报文发送至第一个交换机,包括:
控制周期性地将初始检测报文发送至第一个交换机;
根据终结检测报文确定链路质量,包括:
确定是否有预设数值个周期未接收到每个初始检测报文对应的终结检测报文;
如果确定有预设数值个周期未接收到每个初始检测报文对应的终结检测报文,则确定检测路径故障。
可选地,初始检测报文携带初始检测报文的生成时间戳及初始检测报文的报文序列号,获取每个交换机在获取到的检测报文中添加OAM信息后得到的终结检测报文之后,还包括:
记录接收到的终结检测报文总数以及终结检测报文接收时间戳;
根据终结检测报文确定链路质量,包括:
根据初始检测报文的生成时间戳、初始检测报文的报文序列号、终结检测报文携带的每个交换机添加的OAM信息及终结检测报文总数、终结检测报文接收时间戳中的至少一种信息确定链路质量。
本发明实施例提供的方法,通过控制器确定检测路径,并控制检测路径的每个交换机获取检测报文,使每个交换机确定获取到的检测报文与预先存储的流表表项匹配后,根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM信息后,控制器获取每个交换机添加OAM信息后得到的终结检测报文,并根据终结检测报文确定链路质量。由于检测路径的每个交换机无需通过对应的链路质量检测协议检测链路质量,仅需根据预先存储的流表表项在获取到的检测报文中添加OAM信息,不仅能简化每个交换机的结构,而且简化了每个交换机的操作。另外,由于控制器无需与每个交换机交互,因此,能提高业务处理效率。
图9是根据一示例性实施例提供的一种链路质量检测方法的流程图。在本发明实施例中,以控制器和检测路径的每个交换机进行交互来执行本发明实施例提供的链路质量检测方法。参见图9,本发明实施例提供的方法流程包括:
901:控制器确定检测路径,其中,检测路径包括至少一个交换机。
关于控制器确定检测路径的方式,可以有很多种。具体实施时,包括但不限于通过如下两种方式来实现:
第一种方式:在控制器上预先配置了网络拓扑包括的各个可能的检测路径,因此,在检测链路质量时,控制器可以按照预先配置的各个检测路径的顺序选择某条检测路径进行检测或随机选择某条检测路径进行检测。因此,控制器可以根据网络的配置信息确定检测路径。
第二种方式:控制器可以根据需要确定检测网络拓扑中的哪条路径,因此,控制器可以根据网络的拓扑信息生成检测路径,并将生成的检测路径作为确定的检测路径。
需要说明的是,为了便于区分网络拓扑中的各条检测路径,网络拓扑中的每条检测路径都可以对应一个全局唯一的检测路径ID。此时,不仅可以通过检测路径ID区分检测路径,而且便于后续检测路径中的各个交换机根据检测路
径ID确定获取到的检测检测报文是否与本地预先存储的流表表项匹配。
可选地,为了使检测路径的每个交换机确定执行什么样的操作,控制器在检测链路之前,需要将检测路径的每个交换机对应的流表表项分别发送至每个交换机。其中,每个交换机对应的流表表项用于指示每个交换机对获取到的检测报文进行匹配,并根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM信息后,通过每个交换机对应的流表表项指定的输出端口将添加OAM信息后的检测报文发送至检测路径的下一个交换机或控制器。
例如,控制器发送至检测路径的某一个交换机的该交换机对应的流表表项的内容可以为:Match(EthType=X,Path-ID=1),Instructions(Apply-Actions(Append(Recv-BW-Used),Output(Port 2)))。该流表表项的内容指示接收该流表表项的交换机将以太网协议类型为X(EthType=X),检测路径ID(Path-ID)为1的检测报文,在检测报文尾部添加入接口已用带宽(Recv-BW-Used)之后,通过端口2(Port 2)发送出去。其中,Append是本发明实施例在OpenFlow中新定义的Action,表示在报文尾部添加指定信息,Recv-BW-Used表示该交换机的入接口已用带宽。
关于控制器将每个交换机对应的流表表项发送至每个交换机的方式,本发明实施例不作具体限定。
需要说明的是,控制器将检测路径的每个交换机对应的流表表项发送至每个交换机的步骤为检测链路质量之前的步骤,并非每次检测链路质量时均需执行的步骤,保证在检测链路质量时,已经将检测路径的每个交换机对应的流表表项发送至每个交换机即可。
902:控制器控制检测路径的每个交换机获取检测报文。
其中,由于当交换机处于检测路径的不同位置时,控制器可以控制交换机以不同的方式获取检测报文。因此,控制器控制检测路径的每个交换机获取检测报文时需要结合交换机在检测路径的位置而定。具体地,控制器控制每个交换机获取检测报文时,包括但不限于:
如果交换机为检测路径的第一个交换机,则控制器可以控制将初始检测报文发送至第一个交换机,使第一个交换机将接收的初始检测报文作为获取到的检测报文;或者,控制器可以控制将检测报文生成指令发送至第一个交换机,使第一个交换机根据检测报文生成指令生成初始检测报文,并将生成的初始检测报文作为获取到的检测报文。
如果交换机不为检测路径的第一个交换机,则控制器可以控制交换机接收检测路径的上一个交换机发送的上一个交换机添加OAM信息后的检测报文,并将接收的上一个交换机添加OAM信息后的检测报文作为获取到的检测报文。
其中,由于本发明实施例在实现链路质量检测时,需要控制器控制检测路径的每个交换机在匹配成功的检测报文中添加每个交换机对应的OAM信息。为了便于描述,也为了便于区分检测路径的第一个交换机和其它交换机获取到的检测报文,在本发明实施例及后续各个实施例中,将第一个交换机获取到的检测报文称作初始检测报文。
如果交换机为检测路径的第一个交换机,关于控制器控制将初始检测报文发送至第一个交换机的方式,本发明实施例均不作具体限定。具体实施时,控制器可以通过OpenFlow协议中的报文输出消息(Packet-Out消息)将初始检测报文发送至交换机。另外,控制器在将初始检测报文发送至第一个交换机时,还可以结合与第一个交换机之间的网络类型及连接端口实现。例如,如果控制器与第一个交换机之间的网络类型为以太网,且控制器通过端口0与第一个交换机的端口0连接,则控制器通过将初始检测报文以以太网报文格式通过端口0发送至第一个交换机的端口0。
关于控制器控制将检测报文生成指令发送至第一个交换机的方式,本发明实施例同样不作具体限定。具体实施时,当通过在控制器和交换机之间的接口协议中新增一个检测报文生成指令,例如,通过在OpenFlow协议中新增一个检测报文生成指令,并通过该检测报文生成指令来指示交换机生成初始检测报
文时,控制器可以独立指令的方式将检测报文生成指令发送至第一个交换机。
如果交换机为除检测路径的第一个交换机之外的其它交换机,则控制器控制其它交换机接收检测路径的上一个交换机发送的添加OAM信息后的检测报文,从而将接收的上一个交换机添加OAM信息后的检测报文作为获取到的检测报文的方式,包括但不限于:控制上一个交换机通过对应的端口连接至下一个交换机,并指示上一个交换机将添加OAM信息后的检测报文通过连接至下一个交换机的端口发送至下一个交换机,从而使得下一个交换机通过与上一个交换机连接的端口接收上一个交换机发送的添加OAM信息后的检测报文。
903:检测路径的每个交换机获取检测报文。
由于当交换机处于检测路径的不同位置时,其获取检测报文的方式并不相同。因此,获取检测报文时需要结合交换机在检测路径的位置而定。具体获取检测报文时,包括但不限于:
如果本地交换机为检测路径的第一个交换机,则第一个交换机可以通过接收控制器发送的初始检测报文,并将接收的初始检测报文作为获取到的检测报文;或者,第一个交换机可以通过接收控制器发送的检测报文生成指令,并根据检测报文生成指令生成初始检测报文,从而将生成的初始检测报文作为获取到的检测报文。
如果本地交换机不为检测路径的第一个交换机,则本地交换机可以通过接收检测路径的上一个交换机添加OAM信息后的检测报文,并将接收的上一个交换机添加OAM信息后的检测报文作为获取到的检测报文。
具体地,如果本地交换机为检测路径的第一个交换机,关于第一个交换机接收控制器发送的初始检测报文的方式,本发明实施例不作具体限定。具体实施时,如果控制器通过OpenFlow协议中的报文输出消息(Packet-Out消息)将初始检测报文发送至交换机,则第一个交换机通过接收该报文输出消息来接收控制器发送的初始检测报文。另外,第一个交换机在接收初始检测报文时,还可以结合第一个交换机与控制机之间的网络类型以及连接端口而定。例如,
如果控制器与第一个交换机之间的网络类型为以太网,且控制器与第一个交换机通过控制器的端口0与第一个交换机的端口0连接,则控制器可以通过端口0向第一个交换机发送以太网报文格式的初始检测报文,第一个交换机通过与控制器连接的端口0接收控制器发送的以太网报文格式的初始检测报文。
关于第一个交换机接收控制器发送的检测报文生成指令的方式,本发明实施例同样不作具体限定。具体实施时,如果通过在控制器和交换机之间的接口协议中新增一个检测报文生成指令来指示第一个交换机生成初始检测报文,且控制器以独立指令的方式将初始检测报文发送至第一个交换机,则第一个交换机可以通过接收控制器发送的独立指令来接收检测报文生成指令。
另外,控制器在控制第一个交换机生成初始检测报文时,还可以通过检测报文生成指令控制交换机周期性地生成初始检测报文,以及控制交换机生成预设数量的初始检测报文,等等。
关于检测报文生成指令的具体内容,本发明实施例不作具体限定。例如,控制器可以通过向第一个交换机发送如下检测报文生成指令来指示第一个交换机生成初始检测报文:PacketGenerate(Type=ETH,Dst MAC=MAC1,Src MAC=MAC0,Eth Type=X,Path-ID=1,T=10s,Number=100)。该举例中的PacketGenerate即为检测报文生成指令。该检测报文生成指令指示交换机生成以太网报文(Type=ETH),且该报文的目的MAC地址为MAC1,源MAC地址为MAC0,以太网协议类型为X,检测路径ID(Path-ID)为1,生成周期T为10s(秒),总共生成100(Number=100)个初始检测报文。
进一步地,如果本地交换机不为检测路径的第一个交换机,则本发明实施例不对本地交换机接收检测路径的上一个交换机添加OAM信息后的检测报文的方式进行限定。具体实施时,需要结合本地交换机与检测路径的上一个交换机之间的网络类型及连接端口实现。例如,如果本地交换机与上一个交换机之间的网络类型为以太网,且本地交换机通过端口1与上一个交换机的端口2连接,则本地交换机通过端口1接收上一个交换机通过端口2发送的以太网形式
格式的上一个交换机添加OAM信息后的检测报文。
904:每个交换机确定获取到的检测报文是否与每个交换机本地预先存储的流表表项匹配。
为了确定是否需要对接收到的检测报文进行处理,每个交换机在获取到检测报文后,需要确定获取到的检测报文是否与每个交换机本地预先存储的流表表项匹配。
关于每个交换机确定获取到的检测报文是否与每个交换机本地预先存储的流表表项匹配的方式,本发明实施例不作具体限定。具体实施时,针对于控制器确定的每条检测路径,如果每条检测路径均对应一个全局唯一的检测路径ID,从而使得针对于不同的检测路径上的交换机,可以有不同的指令或不同的动作集。在此基础上,控制器和交换机之间传输的检测报文中可以携带检测路径ID。因此,每个交换机在确定获取到的检测报文是否与每个交换机本地预先存储的流表表项匹配时,包括但不限于:解析获取到的检测报文的报文头域及检测路径ID;根据获取到的检测报文的报文头域及检测路径ID中的至少一种信息确定获取到的检测报文是否与本地预先存储的流表表项匹配。
关于在检测报文中携带检测路径ID的方式,本发明实施例不作具体限定。具体实施时,控制器在控制第一个交换机获取初始检测报文时,即可在初始检测报文中添加检测路径ID。其中,当第一个交换机通过接收控制器发送的初始检测报文来获取检测报文时,检测路径ID可以由控制器添加至初始检测报文中;当第一个交换机通过接收控制器发送的检测报文生成指令来生成初始检测报文时,检测路径ID可以由控制器发送至第一个交换机,并由第一个交换机添加至初始检测报文中。为了便于说明,在本发明及后续实施例中,将控制器在初始检测报文中添加的检测路径ID等信息作为控制器添加的OAM信息。
关于解析获取到的检测报文的报文头域及检测路径ID的方式,本发明实施例不作具体限定。关于根据获取到的检测报文的报文头域及检测路径ID中的至少一种信息确定获取到的检测报文是否与本地预先存储的流表表项匹配
的方式,包括但不限于:
每个交换机可以根据获取到的检测报文的报文头域确定获取到的检测报文是否与每个交换机预先存储的流表表项匹配,也可以根据获取到的检测报文中的检测路径ID确定获取到的检测报文是否与每个交换机本地预先存储的流表表项匹配,还可以同时根据获取到的检测报文的报文头域和检测路径ID确定获取到的检测报文是否与每个交换机本地预先存储的流表表项匹配。
关于某一交换机根据获取到的检测报文的报文头域及检测路径ID中的至少一种信息确定获取到的检测报文是否与该交换机本地预先存储的流表表项匹配的方式,本发明实施例不作具体限定。
例如,如果该交换机根据检测路径ID确定获取到的检测报文是否与该交换机本地预先存储的流表表项匹配,则该交换机可以将获取到的检测报文中携带的检测路径ID值与预先存储的流表表项中的检测路径ID值进行比对来实现。如果该交换机获取到的检测报文中携带的检测路径ID值与该交换机预先存储的流表表项中的检测路径ID值一致,则确定该交换机获取到的检测报文与该交换机本地预先存储的流表表项匹配;如果该交换机获取到的检测报文中携带的检测路径ID值与该交换机本地预先存储的流表表项中的检测路径ID值不一致,则确定该交换机获取到的检测报文与本地预先存储的流表表项不匹配。
又例如,如果该交换机根据获取到的检测报文的报文头域确定获取到的检测报文是否与该交换机本地预先存储的流表表项匹配,则该交换机可以将获取到的检测报文的报文头域值与该交换机本地预先存储的流表表项中的报文头域值进行比对来实现。如果该交换机获取到的检测报文的报文头域值与该交换机本地预先存储的流表表项中的报文头域值匹配,则确定该交换机获取到的检测报文与该交换机本地预先存储的流表表项匹配;如果该交换机获取到的检测报文的报文头域值与该交换机预先存储的流表表项中的报文头域值不一致,则确定该交换机获取到的检测报文与该交换机本地预先存储的流表表项不匹配。
其中,检测报文的报文头域包括但不限于为源MAC地址、目的MAC地址、以太网报文协议类型、源IP地址、目的IP地址、协议类型、源端口号、目的端口号等。
905:如果每个交换机确定获取到的检测报文与每个交换机预先存储的流表表项匹配,则根据每个交换机预先存储的流表表项在获取到的检测报文中添加OAM信息。
关于每个交换根据每个交换机预先存储的流表表项在获取到的检测报文中添加OAM信息的方式,本发明实施例不作具体限定。具体实施时,结合上述步骤901中提及的Append指令。如果每个交换机接收的对应流表表项中包含该Append指令,则每个交换机在接收的检测报文的报文尾部添加Append中携带的参数的信息。
可选地,每个交换机在获取到的检测报文中添加的OAM信息至少包括入接口已用带宽、入接口空闲带宽、出接口已用带宽、出接口空闲带宽、检测报文总数、检测报文接收时间戳、检测报文发送时间戳中的至少一种信息。
需要说明的是,为了使检测路径的下一个交换机或者控制器明确接收的检测报文来自于哪个交换机,控制器可以通过流表表项控制每个交换机在获取到的检测报文中添加每个交换机的ID。
906:每个交换机将添加OAM信息后的检测报文发送至检测路径的下一个交换机,直至检测路径的最后一个交换机根据预先存储流表表项在获取到的检测报文中添加OAM信息得到终结检测报文。
关于每个交换机将添加OAM信息后的检测报文发送至检测路径的下一个交换机的方式,本发明实施例不作具体限定。具体实施时,在每个交换机对应的流表表项中指定了每个交换机发送检测报文的端口号,每个交换机通过该端口号发送检测报文,即可将添加OAM信息后的检测报文发送至检测路径的下一个交换机。
907:控制器获取终结检测报文。
为了根据每个交换机添加OAM信息后得到的终结检测报文确定链路质量,控制器需要获取终结检测报文。关于控制器获取终结检测报文的方式,包括但不限于:控制器发送至检测路径的最后一个交换机对应的流表表项中指示最后一个交换机通过指定的端口将其添加OAM信息后的检测报文发送至控制器。因此,控制器可以通过接收检测路径的最后一个交换机发送的终结检测报文来获取终结检测报文。
例如,控制器向检测路径的最后一个交换机发送的该交换机对应的流表表项的内容可以为:Match(Dst MAC=MAC1,SRC MAC=MAC0,Instructions(Apply-Actions(Output(CONTROLLER)))。该流表表项的内容释义为:将目的MAC为MAC1,源MAC为MAC0的检测报文,通过Packet-In消息发送给控制器。其中,CONTROLLER是OpenFlow协议中定义的一个特殊端口,表示将报文通过Packet-In消息发送给控制器。
908:控制器根据终结检测报文确定链路质量。
关于控制器根据终结检测报文确定链路质量的方式,可以结合控制器需要确定的链路质量的具体内容以及控制器指示每个交换机在获取到的检测报文中添加的OAM信息的具体内容而定。关于具体的根据终结检测报文确定链路质量的方式将在后续实施例中进行详细说明,在此暂不赘述。需要说明的是,通过本发明实施例提供的方法,不仅可以检测链路的通断,还可以检测链路的时延、抖动、带宽、丢包率等。
可选地,如果控制器在步骤902中通过控制将初始检测报文发送至检测路径的第一个交换机来触发链路检测过程,则控制器在控制将初始检测报文发送至第一个交换机时,可以控制周期性地将初始检测报文发送至第一个交换机。此时,控制器在根据终结检测报文确定链路质量时,可以通过确定是否有预设数值个周期未接收到每个初始检测报文对应的终结检测报文;如果确定有预设数值个周期未接收到每个初始检测报文对应的终结检测报文,则确定检测路径故障,即检测路径中有中断的节点。
可选地,控制器在控制检测链路质量时,如果控制器在步骤902中通过控制将初始检测报文发送至检测路径的第一个交换机来触发链路检测过程,则控制器还可以在初始检测报文中添加初始检测报文的生成时间戳及初始检测报文的报文序列号。其中,由于控制器生成初始检测报文的时刻与控制器发送初始检测报文的时刻相差很小,因此,初始检测报文的生成时间戳亦即初始检测报文的发送时间戳。
通过在初始检测报文中添加初始检测报文的序列号,控制器可以统计已经发送的初始检测报文的总数,以便控制器可以根据发送初始检测报文的总数以及后续接收的终结检测报文总数确定丢包率,等等。通过在初始检测报文中添加初始检测报文的发送时间戳,使得后续控制器可以根据该初始检测报文的发送时间戳及终结检测报文的接收时间戳确定链路的时延及抖动,等等。
结合上述内容,控制器获取每个交换机在获取到的检测报文中添加OAM信息后得到的终结检测报文之后,还可以记录接收到的终结检测报文总数以及终结检测报文的接收时间戳。此时,控制器根据终结检测报文确定链路质量,包括:根据初始检测报文的生成时间戳、初始检测报文的报文序列号、终结检测报文携带的每个交换机添加的OAM信息及终结检测报文总数、终结检测报文接收时间戳中的至少一种信息确定链路质量。关于控制器根据终结检测报文确定链路是否通断,以及检测链路的时延、抖动、带宽、丢包率等的具体内容,将在后续实施例进行具体举例说明,在此暂不赘述。
本发明实施例提供的方法,通过控制器确定检测路径,并控制检测路径的每个交换机获取检测报文,每个交换机确定获取到的检测报文与预先存储的流表表项匹配后,根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM信息后,控制器获取每个交换机添加OAM信息后得到的终结检测报文,并根据终结检测报文确定链路质量。由于检测路径的每个交换机无需通过对应的链路质量检测协议检测链路质量,仅需根据预先存储的流表表项在获取到的检测报文中添加OAM信息,不仅能简化每个交换机的结构,而且简化
了每个交换机的操作。另外,由于控制器无需与每个交换机交互,因此,能提高业务处理效率。
图10是根据一示例性实施例提供的一种链路质量检测方法的流程图。为了便于对本发明实施例提供的链路质量检测方法进行解释说明,在本发明实施例中,以检测路径为控制器-交换机A-交换机B-交换机C-控制器为例,且控制器通过向检测路径的第一个交换机发送初始检测报文来触发链路质量检测过程对本发明实施例进行解释说明。
另外,为了便于描述,本发明实施例及后续实施例均以采用如图11所示的网络拓扑结构示意图为例。参见图11,控制器分别通过端口0、端口1、端口2直连到各交换机的端口0,并通过OpenFlow协议控制各交换机。交换机A通过端口2直连到交换机B的端口1,交换机B通过端口2直连到交换机C的端口1,控制器和各交换机之间均为以太网连接。
此外,在本发明实施例及后续的各个实施例中,均以检测报文采用以太网报文,检测报文的报文头域的格式如下表二所示,即目的MAC地址为MAC1,源MAC地址为MAC0,以太网报文的协议类型为X,检测报文的载荷部分为Payload,且控制器和/或交换机添加的OAM信息均添加至Payload部分。
表二
Dst MAC=MAC1 | Src MAC=MAC0 | Eth Type=X | Payload |
如图10所示,本发明实施例提供的方法流程包括:
1001:控制器确定检测路径。
关于控制器确定检测路径的方式,可以有很多种。具体实施时,包括但不限于通过如下两种方式来实现:
第一种方式:在控制器上预先配置了网络拓扑包括的各个可能的检测路径,因此,在检测链路质量时,控制器可以按照预先配置的各个检测路径的顺序选择某条检测路径进行检测或随机选择某条检测路径进行检测。因此,控制
器可以根据网络的配置信息确定检测路径。
第二种方式:控制器可以根据需要确定检测网络拓扑中的哪条路径,因此,控制器可以根据网络的拓扑信息生成检测路径,并将生成的检测路径作为确定的检测路径。
需要说明的是,为了便于区分网络拓扑中的各条检测路径,网络拓扑中的每条检测路径都可以对应一个全局唯一的检测路径ID。此时,不仅可以通过检测路径ID区分检测路径,而且便于后续检测路径中的各个交换机根据检测路径ID确定获取到的检测检测报文是否与本地预先存储的流表表项匹配。
可选地,为了使检测路径的每个交换机确定执行什么样的操作,控制器在检测链路之前,需要将检测路径的每个交换机对应的流表表项分别发送至每个交换机。其中,每个交换机对应的流表表项用于指示每个交换机对获取到的检测报文进行匹配,并根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM信息后,通过每个交换机对应的流表表项指定的输出端口将添加OAM信息后的检测报文发送至检测路径的下一个交换机或控制器。下述步骤1002至1004即为控制器将该检测路径包括的每个交换机对应的流表表项分别发送至每个交换机的步骤。
需要说明的是,控制器将检测路径的每个交换机对应的流表表项发送至每个交换机的步骤为检测链路质量之前的步骤,并非每次检测链路质量时均需执行的步骤,保证在检测链路质量时,已经将检测路径的每个交换机对应的流表表项发送至每个交换机即可。
1002:控制器将交换机A对应的流表表项发送至交换机A,其中,交换机A对应的流表表项用于指示交换机A对获取到的检测报文进行匹配,并根据交换机A对应的流表表项在匹配成功的检测报文中添加OAM信息后,通过交换机A对应的流表表项指定的输出端口将添加OAM信息后的检测报文发送至交换机B。
关于控制器将交换机A对应的流表表项发送至交换机A的方式,本发明
实施例不作具体限定。具体实施时,结合图11,控制器可以通过与交换机A连接的端口0通过以太网报文的形式将交换机A对应的流表表项发送至交换机A。
例如,结合图11,控制器发送至交换机A的交换机A对应的流表表项的内容可以为:Match(EthType=X,Path-ID=1),Instructions(Apply-Actions(Append(Recv-BW-Used),Output(Port 2))),该流表表项的内容指示交换机A将以太网协议类型为X,检测路径为1的检测报文,在检测报文尾部添加Recv-BW-Used之后,通过端口2发送出去。其中,Append是本发明实施例在OpenFlow中新定义的Action,表示在报文尾部添加指定信息,Recv-BW-Used表示该交换机的入接口已用带宽。
1003:控制器将交换机B对应的流表表项发送至交换机B,其中,交换机B对应的流表表项用于指示交换机B对获取到的检测报文进行匹配,并根据交换机B对应的流表表项在匹配成功的检测报文中添加OAM信息后,通过交换机B对应的流表表项指定的输出端口将添加OAM信息后的检测报文发送至交换机C。
关于控制器将交换机B对应的流表表项发送至交换机B的方式,本发明实施例不作具体限定。具体实施时,结合图11,控制器可以通过与交换机B连接的端口1通过以太网报文格式的报文将交换机B对应的流表表项发送至交换机B。其中,控制器发送至交换机B的交换机B对应的流表表项的内容可以与上述步骤1002中控制器发送至交换机A的交换机A对应的流表表项的内容一致。
1004:控制器将交换机C对应的流表表项发送至交换机C,其中,交换机C对应的流表表项用于指示交换机C对获取到的检测报文进行匹配,并根据交换机C对应的流表表项在匹配成功的检测报文中添加OAM信息后,通过交换机C对应的流表表项指定的输出端口将添加OAM信息后得到终结检测报文,并将该终结检测报文发送至控制器。
关于控制器将交换机C对应的流表表项发送至交换机C的方式,本发明实施例不作具体限定。具体实施时,结合图11,控制器可以通过与交换机C连接的端口2通过以太网报文的形式将交换机C对应的流表表项发送至交换机C。
另外,需要说明的是,由于交换机C为该检测路径的最后一个交换机,因此,控制器向交换机C下发的流表表项需要指示交换机C在交换机B发送的检测报文中添加交换机C对应的OAM信息得到终结检测报文后,将终结检测报文发送至控制器。
例如,控制器发送至交换机C的交换机C对应的流表表项的内容可以为:Match(Dst MAC=MAC1,SRC MAC=MAC0),Instructions(Apply-Actions(Output(CONTROLLER)))。该流表表项的内容释义为:将目的MAC为MAC1,源MAC为MAC0的检测报文,通过Packet-In消息发送给控制器。其中,CONTROLLER是OpenFlow协议中定义的一个特殊端口,表示将报文通过Packet-In消息发送给控制器。
1005:控制器将初始检测报文发送至交换机A。
为了触发链路质量检测过程,在本发明实施例中,控制器通过将初始检测报文发送至交换机A来使交换机A获取初始检测报文。关于控制器将初始检测报文发送至交换机A的方式,本发明实施例不作具体限定。结合图11,控制器可以通过端口0将初始检测报文以以太网报文格式发送至交换机A。当然,如果控制器与交换机A之间的网络类型为其它网络类型,连接端口为其它端口,则控制器通过与交换机A建立连接的端口以其它网络类型报文格式将初始检测报文发送至交换机A。关于具体的端口号以及其它网络类型的具体类型,本发明实施例均不作具体限定。
需要说明的是,为了使得后续控制器根据终结检测报文确定的链路质量的种类比较多且比较全面,控制器在发送初始检测报文时,也可以在初始检测报文中添加OAM信息。其中,控制器在初始检测报文中添加的OAM信息包括
但不限于:检测路径ID、初始检测报文的报文序列号及初始检测报文的生成时间戳。
通过在初始检测报文中添加检测路径ID,不仅可以标识每条检测路径,而且可以用于检测路径的每个交换机根据检测路径ID对获取到的检测报文进行匹配。通过在初始检测报文中添加初始检测报文的报文序列号,控制器可以统计已经发送的初始检测报文的总数,以便控制器可以根据发送的初始检测报文的总数以及后续接收的终结检测报文总数确定丢包率,等等。通过在初始检测报文中添加初始检测报文的发送时间戳,使得后续控制器可以根据该初始检测报文的生成时间戳及终结检测报文接收时间戳确定链路的时延及抖动,等等。
另外,初始检测报文中除携带控制器添加的OAM信息外,还携带报文头域,以便后续每个交换机也可以根据获取到的检测报文中的报文头域确定是否与每个交换机预先存储的流表表项匹配。其中,本发明实施例不对报文头域的具体内容进行限定,具体实施时,报文头域包括但不限于为源MAC地址、目的MAC地址、以太网报文协议类型、源IP地址、目的IP地址、协议类型、源端口号、目的端口号,等等。
1006:交换机A根据接收到的流表表项对接收到初始的检测报文进行匹配,并在匹配成功后,根据对应的流表表项在初始检测报文中添加OAM信息,并将添加OAM信息后的检测报文通过流表表项指定的输出端口发送至交换机B。
其中,交换机A接收到的流表表项为步骤1002中控制器发送至交换机A的交换机A对应的流表表项。交换机A为了确定是否需要对接收的初始检测报文进行处理,需要确定接收到的初始检测报文是否与交换机A本地预先存储的流表表项匹配。因此,交换机A根据接收的流表表项对接收到的初始检测报文进行匹配。
关于交换机A根据接收的流表表项对接收到的初始检测报文进行匹配的方式,本发明实施例不作具体限定。具体实施时,如果初始检测报文中携带了
检测路径ID,则交换机A可以根据检测路径ID和/或初始检测报文的报文头域对接收到的初始检测报文进行匹配。具体地,交换机A可以解析接收到的初始检测报文的报文头域及检测路径ID;根据接收到的初始检测报文的报文头域及检测路径ID中的至少一种信息对接收到的初始检测报文进行匹配。
关于交换机A解析接收到的初始检测报文的报文头域及检测路径ID的方式,本发明实施例不作具体限定。在具体对接收到的初始检测报文进行匹配时,交换机A可以根据接收到的初始检测报文的报文头域确定接收到的初始检测报文是否与交换机A本地预先存储的流表表项匹配,也可以根据接收到的初始检测报文中携带的检测路径ID确定接收到的初始检测报文是否与交换机A本地预先存储的流表表项匹配,还可以同时根据接收到的初始检测报文的报文头域和检测路径ID确定接收到的检测报文是否与交换机A本地预先存储的流表表项匹配。
关于根据接收到的检测报文的报文头域及检测路径ID中的至少一种信息确定接收到的初始检测报文是否与交换机A本地预先存储的流表表项匹配的方式,本发明实施例不作具体限定。
例如,如果根据检测路径ID确定接收到的初始检测报文是否与交换机A本地预先存储的流表表项匹配,则可以将接收到的初始检测报文中携带的检测路径ID值与交换机A预先存储的流表表项中的检测路径ID值进行比对来实现。如果交换机A接收到的初始检测报文中携带的检测路径ID值与交换机A预先存储的流表表项中的检测路径ID值一致,则确定接收到的初始检测报文与交换机A本地预先存储的流表表项匹配;如果交换机A接收到的初始检测报文中携带的检测路径ID值与交换机A预先存储的流表表项中的检测路径ID值不一致,则确定交换机A接收到的初始检测报文与交换机A本地预先存储的流表表项不匹配。
又例如,如果交换机A根据接收到的初始检测报文的报文头域确定接收到的初始检测报文是否与交换机A本地预先存储的流表表项匹配,则可以将接收
到的初始检测报文的报文头域值与交换机A本地预先存储的流表表项中的报文头域值进行比对来实现。如果交换机A接收到的初始检测报文的报文头域值与交换机A本地预先存储的流表表项中的报文头域值匹配,则交换机A确定接收到的初始检测报文与交换机A本地预先存储的流表表项匹配;如果交换机A接收到的初始检测报文的报文头域值与交换机A预先存储的流表表项中的报文头域值不一致,则交换机A确定接收到的初始检测报文与交换机A本地预先存储的流表表项不匹配。
关于交换机A在匹配成功的初始检测报文中添加OAM信息的方式,本发明实施例不作具体限定。结合表二所示的报文结构,交换机A可以在初始检测报文的载荷(Payload)部分添加交换机A对应的流表表项中指定的信息。
关于交换机A在初始检测报文中添加的OAM信息的具体内容,可以有很多种。具体实施时,包括但不限于为入接口已用带宽、入接口空闲带宽、出接口已用带宽、出接口空闲带宽、检测报文总数、检测报文接收时间戳、检测报文发送时间戳中的至少一种信息。其中,交换机A在初始检测报文中添加的OAM信息的具体内容需要结合控制器发送至交换机A的交换机A对应的流表表项的具体内容而定。例如,如果控制器在交换机A对应的流表表项中指示交换机A在获取到的检测报文中添加检测报文接收时间戳,则交换机A在初始检测报文中添加初始检测报文接收时间戳,等等。
需要说明的是,为了使检测路径的下一个交换机或者控制器明确接收的检测报文来自于哪个交换机,交换机A还需要在接收到的初始检测报文中添加交换机A的ID。
关于交换机A将添加OAM信息后的检测报文通过流表表项指定的输出端口发送至交换机B的方式,本发明实施例不作具体限定。具体实施时,需要结合控制器发送至交换机A的流表表项中指定的端口而定。例如,结合图11,以及步骤1102中控制器发送至交换机A的交换机A对应的流表表项的内容,如果控制器在发送至交换机A的交换机A对应的流表表项中指示交换机A通
过端口2发送添加OAM信息后的检测报文,则交换机A通过端口2将添加OAM信息后的检测报文发送至交换机B。
1007:交换机B接收交换机A发送的添加交换机A对应的OAM信息的检测报文。
关于交换机B接收交换机A发送的添加交换机A对应的OAM信息的检测报文的方式,本发明实施例不作具体限定。具体实施时,需要结合与交换机A连接的端口以及与交换机A之间的网络类型而定。例如,结合图11,如果交换机A与交换机B之间的网络类型为以太网,且交换机B通过端口1与交换机A的端口2直连,则交换机B通过端口1接收交换机A通过端口2发送的以太网报文格式的交换机A添加OAM信息的检测报文。
1008:交换机B根据接收到的流表表项对接收到的检测报文进行匹配,并在匹配成功后,根据对应的流表表项在接收到的检测报文中添加OAM信息,并将添加OAM信息后的检测报文发送至交换机C。
其中,交换机B接收到的流表表项为步骤1003中控制器发送至交换机B的交换机B对应的流表表项。
该步骤的原理与步骤1006中交换机A根据接收到的流表表项对接收到的初始检测报文进行匹配,并在匹配成功后,根据对应的流表表项在初始检测报文中添加OAM信息,并将添加OAM信息后的检测报文发送至交换机B的原理一致,具体可参见上述步骤1006中的内容,在此不再赘述。
1009:交换机C接收交换机B发送的添加交换机A和交换机B对应的OAM信息后的检测报文。
该步骤的原理同步骤1007中交换机B接收交换机A发送的添加交换机A对应的OAM信息的检测报文的原理一致,具体可参见上述步骤1007中的内容,在此不再赘述。
1010:交换机C根据接收到的流表表项对接收到的检测报文进行匹配,并在匹配成功后,根据对应的流表表项在接收到的检测报文中添加OAM信息,
并将添加OAM信息后得到的终结检测报文发送至控制器。
其中,交换机C接收到的流表表项为步骤1004中控制器发送至交换机C的交换机C对应的流表表项。
该步骤的原理与步骤1006中交换机A根据接收的流表表项对接收到的初始检测报文进行匹配,并在匹配成功后,根据对应的流表表项在接收到的初始检测报文中添加OAM信息,并将添加OAM信息后的检测报文发送至交换机B的原理一致,具体可参见上述步骤1006中的内容,在此不再赘述。然而,该步骤与步骤1006的差别在于:由于交换机C为检测路径的最后一个交换机,因此,交换机在接收到的检测报文中添加其对应的OAM信息后,将得到终结检测报文,且交换机C需要将该终结检测报文发送至控制器。
关于交换机C将得到的终结检测报文发送至控制器的方式,本发明实施例不作具体限定。具体实施时,结合图11,交换机C通过端口0将终结检测报文发送至控制器。
至此,检测路径的每个交换机均在接收到的检测报文中添加了每个交换机对应的OAM信息,从而得到了终结检测报文。如图12所示,其示出了一种本发明实施例中检测报文的传输路径及内容的示意图。
1011:控制器接收交换机C发送的终结检测报文。
关于控制器接收交换机C发送的终结检测报文的方式,本发明实施例不作具体限定。结合图11,控制器通过与交换机C连接的端口0接收交换机C发送的终结检测报文。
1012:控制器根据终结检测报文确定链路质量。
关于控制器根据终结检测报文确定链路质量的方式,可以结合控制器需要确定的链路质量的具体内容以及控制器指示每个交换机在获取到的检测报文中添加的OAM信息的具体内容而定。关于具体的根据终结检测报文确定链路质量的方式将在后续实施例中进行详细说明,在此暂不赘述。需要说明的是,通过本发明实施例提供的方法,不仅可以检测链路的通断,还可以检测链路的
时延、抖动、带宽、丢包率等。
可选地,如果该次检测的链路质量为链路的通断,则控制器在控制将初始检测报文发送至交换机A来触发链路检测过程时,则控制器可以控制周期性地将初始检测报文发送至交换机A。此时,控制器在根据终结检测报文确定链路质量时,可以通过确定是否有预设数值个周期未接收到每个初始检测报文对应的终结检测报文;如果确定有预设数值个周期未接收到每个初始检测报文对应的终结检测报文,则确定检测路径故障。
可选地,控制器在控制检测链路质量时,如果控制器在控制将初始检测报文发送至交换机A来触发链路检测过程,则控制器还可以在初始检测报文中添加初始检测报文的生成时间戳及初始检测报文的报文序列号。通过在初始检测报文中添加初始检测报文的报文序列号,控制器可以统计已经发送的初始检测报文的总数,以便控制器可以根据发送初始检测报文的总数以及后续接收的终结检测报文总数确定丢包率,等等。通过在初始检测报文中添加初始检测报文的生成时间戳,使得后续控制器可以根据该初始检测报文的生成时间戳及终结检测报文的接收时间戳确定链路的时延及抖动,等等。
例如,如果每个交换机在检测报文中添加的OAM信息为每个交换机接收到的检测报文的接收时间戳,且控制器在发送初始检测报文时,在初始检测报文中添加了初始检测报文的生成时间戳,则控制器可以根据接收的终结检测报文接收时间戳确定每两个交换机之间的时延,以及整个检测路径的时延,等等。其中,由于控制器生成初始检测报文的时刻与控制器发送初始检测报文的时刻相差很小,因此,初始检测报文的生成时间戳亦即初始检测报文的发送时间戳。
例如,如果交换机A接收到检测报文的时间戳为10:12:30,交换机B接收到检测报文的时间戳为10:12:32,则交换机A和交换机B之间的时延为2s(秒)。又例如,如果控制器发送初始检测报文的时间戳为10:12:28,接收终结检测报文的时间戳为10:12:35,则控制器确定该条检测路径的时延为5s。
需要说明的是,为了使得控制器确定的检测路径的信息比较全面,可以重
复执行步骤1005至1012。
本发明实施例提供的方法,通过控制器确定检测路径,并控制检测路径的每个交换机获取检测报文,每个交换机确定获取到的检测报文与预先存储的流表表项匹配后,根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM信息后,控制器获取每个交换机添加OAM信息后得到的终结检测报文,并根据终结检测报文确定链路质量。由于检测路径的每个交换机无需通过对应的链路质量检测协议检测链路质量,仅需根据预先存储的流表表项在获取到的检测报文中添加OAM信息,不仅能简化每个交换机的结构,而且简化了每个交换机的操作。另外,由于控制器仅需与检测路径的第一个交换机和最后一个交换机进行交互,因此,能提高业务处理效率。
图13是根据一示例性实施例提供的一种链路质量检测方法的流程图。在本发明实施例中,以检测路径为控制器-交换机A-交换机B-交换机C-控制器为例,且控制器通过向检测路径的第一个交换机发送初始检测报文来触发链路质量检测,该实施例用以检测该检测路径的通断为例,对本发明实施例提供的链路质量检测方法进行解释说明。参见图12,本发明实施例提供的方法流程包括:
1301:控制器确定检测路径。
该步骤的原理同步骤1001中的原理一致,具体可参见步骤1001中的内容,在此不再赘述。
另外,需要说明的是,由于本发明实施例用以检测该检测路径的通断,因此,控制器可以通过周期性地发送初始检测报文,并通过确是否连续预设数值个周期未接收到每个初始检测报文对应的终结检测报文来实现。因此,控制器在确定检测路径后,还可以确定初始检测报文的发送周期T以及链路中断的阈值N。如果控制器连续N个周期未接收到该N个周期内发送的初始检测报文对应的终结检测报文,则控制器可以确定该检测路径中断。
关于控制器确定初始检测报文的发送周期T以及链路中断的阈值N的方
式,本发明实施例不作具体限定。具体实施时,可以根据配置信息获取,也可以根据网络的拓扑结构确定。关于发送周期T以及链路中断的阈值N的具体数值,本发明实施例不作具体限定。具体实施时,可以根据链路质量检测需要设定。
1302:控制器将交换机A对应的流表表项发送至交换机A,其中,交换机A对应的流表表项用于指示交换机A对获取到的检测报文进行匹配,并根据交换机A对应的流表表项将匹配成功的检测报文发送至交换机B。
该步骤的原理同步骤1002的原理一致,具体可参见步骤1002的中的内容,在此不再赘述。
需要说明的是,由于本发明实施例中,控制器通过确定是否有预设数值个周期未接收到到每个初始检测报文对应的终结检测报文来确定链路通断,与每个交换机在接收到的检测报文中添加的OAM信息的具体内容无关,因此,控制器发送至每个交换机的每个交换机对应的流表表项中可以不指示每个交换机在接收到的检测报文中添加OAM信息。也就是说,控制器可以指示每个交换机在接收到的检测报文中添加的OAM信息为空。此时,控制器发送至每个交换机的流表表项用于指示每个交换机根据预先存储的流表表项对接收到的检测报文进行匹配,并将匹配成功的检测报文通过对应的流表表项指定的输出端口发送至下一个交换机。
例如,控制器发送至交换机A的流表表项的内容可以为:Match(Dst MAC=MAC1,SRC MAC=MAC0),Instructions(Apply-Actions(Output(Port 2)))。该流表表项的内容指示交换机A将目的MAC为MAC1,源MAC为MAC0的报文,通过端口2发送出去。
1303:控制器将交换机B对应的流表表项发送至交换机B,其中,交换机B对应的流表表项用于指示交换机B对获取到的检测报文进行匹配,并根据交换机B对应的流表表项将匹配成功的检测报文发送至交换机C。
该步骤的原理同步骤1302的原理一致,具体可参见上述步骤1302中的内
容,在此不再赘述。其中,控制器发送至交换机B的交换机B对应的流表表项的内容可以与上述步骤1302中控制器发送至交换机A的交换机A对应的流表表项的内容一致。
1304:控制器将交换机C对应的流表表项发送至交换机B,其中,交换机C对应的流表表项用于指示交换机C对获取到的检测报文进行匹配,并根据交换机C对应的流表表项将匹配成功的检测报文发送至控制器。
该步骤的原理同步骤1302中控制器将交换机A对应的流表表项发送至交换机A的原理一致,具体可参见上述步骤1302中的内容,在此不再赘述。
另外,需要说明的是,由于交换机C为该检测路径的最后一个交换机,因此,控制器向交换机C下发的流表表项需要指示交换机C将接收到的检测报文发送至控制器。
例如,控制器发送至交换机C的交换机C对应的流表表项的内容可以为:Match(Dst MAC=MAC1,SRC MAC=MAC0),Instructions(Apply-Actions(Output(CONTROLLER)))。该流表表项的内容用于指示交换机C将目的MAC为MAC1,源MAC为MAC0的检测报文,通过Packet-In消息发送给控制器。
1305:控制器将初始检测报文发送至交换机A。
该步骤的原理同步骤1005的原理一致,具体可参见上述步骤1005的内容,在此不再赘述。
1306:交换机A根据接收到的流表表项对接收到的初始检测报文进行匹配,并在匹配成功后,将接收到的检测报文通过流表表项指定的输出端口发送至交换机B。
其中,交换机A接收到的流表表项为步骤1302中控制器发送至交换机A的交换机A对应的流表表项。该步骤的原理同步骤1006中交换机A根据接收到的流表表项对接收到初始的检测报文进行匹配的原理,以及将添加OAM信息后的检测报文通过流表表项指定的输出端口发送至交换机B的原理一致,具体可参见上述步骤1006的内容,在此不再赘述。
1307:交换机B接收交换机A发送的检测报文。
关于交换机B接收交换机A发送的检测报文的原理,与上述步骤1007中交换机B接收交换机A发送的添加交换机A对应的OAM信息的检测报文的原理一致,具体可参见上述步骤1007中的内容,在此不再赘述。
1308:交换机B根据接收到的流表表项对接收到的检测报文进行匹配,并在匹配成功后,将检测报文通过流表表项指定的输出端口发送至交换机C。
其中,交换机B接收到的流表表项为步骤1303中控制器发送至交换机C的交换机C对应的流表表项。该步骤的原理同上述步骤1008中交换机B根据接收到的流表表项对接收到的检测报文进行匹配的原理,以及交换机B将添加OAM信息后的检测报文发送至交换机C的原理一致,具体可参见上述步骤1008中的内容,在此不再赘述。
1309:交换机C接收交换机B发送的检测报文。
该步骤的原理同上述步骤1009中交换机C接收交换机B发送的添加交换机A和交换机B对应的OAM信息后的检测报文的原理一致,具体可参见上述步骤1009的内容,在此不再赘述。
1310:交换机C根据接收到的流表表项对接收到的检测报文进行匹配,并在匹配成功后,将得到的终结检测报文发送至控制器。
其中,交换机C接收到的流表表项为步骤1304中控制器发送至交换机C的交换机C对应的流表表项。该步骤的原理同上述步骤1010中交换机C根据接收到的流表表项对接收到的检测报文进行匹配的原理,以及交换机C将添加OAM信息后得到的终结检测报文发送至控制器的原理一致,具体可参见上述步骤1010中的内容,在此不再赘述。
1311:控制器接收交换机C发送的终结检测报文。
该步骤的原理同步骤1011的原理一致,具体可参见上述步骤1011中的内容,在此不再赘述。
1312:控制器周期性地发送初始检测报文,并使每个交换机周期性地执行
步骤1305至1311,如果控制器连续N个周期未收到每个初始检测报文对应的终结检测报文,则确定检测路径中断。
本发明实施例提供的方法,通过控制器确定检测路径,并控制检测路径的每个交换机获取检测报文,每个交换机确定获取到的检测报文与预先存储的流表表项匹配后,每个交换机将获取到的检测报文发送至检测路径的下一个交换机,控制器通过获取终结检测报文,并根据终结检测报文确定是否有预数值个周期未接收到初始检测报文对应的终结检测报文来确定链路的通断。由于检测路径的每个交换机无需通过对应的链路质量检测协议检测链路质量,仅需根据预先存储的流表表项对获取到的检测报文进行匹配,不仅能简化每个交换机的结构,而且简化了每个交换机的操作。另外,由于控制器仅需与检测路径的第一个交换机和最后一个交换机进行交互,因此,能提高业务处理效率。
图14是根据一示例性实施例提供的一种链路质量检测方法的流程图。在本发明实施例中,以检测路径为控制器-交换机A-交换机B-交换机C-控制器为例,且控制器通过向检测路径的第一个交换机发送初始检测报文来触发链路质量检测,该实施例用以检测该检测路径的已用带宽、可用带宽、时延、抖动及丢包率为例,对本发明实施例提供的链路质量检测方法进行解释说明。参见图14,本发明实施例提供的方法流程包括:
1401:控制器确定检测路径。
该步骤的原理同步骤1001中控制器确定检测路径的原理一致,具体可参见上述步骤1001中的内容,在此不再赘述。
1402:控制器将交换机A对应的流表表项发送至交换机A,其中,交换机A对应的流表表项用于指示交换机A对获取到的检测报文进行匹配,并根据交换机A对应的流表表项在匹配成功的检测报文中添加OAM信息后,通过交换机A对应的流表表项指定的输出端口将添加OAM信息后的检测报文发送至交换机B。
该步骤的原理同步骤1002中控制器将交换机A对应的流表表项发送至交换机A的原理一致,具体可参见步骤1002中的内容,在此不再赘述。
需要说明的是,为了检测链路的已用带宽、可用带宽、时延、抖动及丢包率,在该实施例中,每个交换机在接收到的检测路径中添加的OAM信息包括入接口已用带宽、入接口空闲带宽、出接口已用带宽、出接口空闲带宽、检测报文总数、检测报文接收时间戳、检测报文发送时间戳。
具体地,在本发明实施例中,控制器下发的初始检测报文的格式可以如表三所示:
表三
其中,Path-ID表示检测路径ID;Sequence-Number表示初始检测报文的序列号,控制器每发送一个初始检测报文,初始检测报文的序列号增加1;Time-Stamp表示初始检测报文的发送时间戳。
每个交换机向检测报文中添加的OAM信息如表四所示:
表四
其中,Datapath-ID表示OpenFlow协议中定义的交换机的ID;Recv-BW-Used表示接收端口已用带宽;Recv-BW-Unused表示接收端口空闲带宽;Send-BW-Used表示发送端口已用带宽;Send-BW-Unused表示发送端口空闲带宽;Packet-Counter表示流表表项匹配成功的报文总数;Recv-Time-Stamp表示检测报文的接收时间戳;Send-Time-Stamp表示检测报文的发送时间戳。
结合上述内容,控制器发送至交换机A的交换机A对应的流表表项的内容可以为:Match(Eth Type=X,Path-ID=1),Instructions(Apply-Actions(Append(Datapath-ID,Recv-BW-Used,Recv-BW-Unused,Send-BW-Used,Send-B W-Unused,Packet-Counter,Recv-Time-Stamp,Send-Time-Stamp),Output(Port
2)))。该流表表项的内容用于指示交换机A将以太网协议类型为X,Path-ID为1的报文,在检测报文尾部添加Datapath-ID、Recv-BW-Used、Recv-BW-Unused、Send-BW-Used、Send-BW-Unused、Packet-Counter、Recv-Time-Stamp和Send-Time-Stamp之后,通过端口2发送出去。
其中,Append是一个新定义的Action,表示在报文尾部添加指定信息。Append携带的参数指定需要添加的信息内容。这里可以根据链路质量检测的需要制定交换机添加相应的信息,不一定包括上述所有信息。
需要说明的是,对于IP等报文头域中包含检测报文长度和/或校验和的检测报文,每个交换机通过Append指令在添加信息后,还需要更新检测报文的长度和/或校验和。关于更新检测报文长度和/或校验和的方式,本发明实施例不作具体限定。具体实施时,每个交换机在添加OAM信息后,可以直接更新报文长度和/或校验和;每个交换机也可以通过Append指令仅在报文尾部添加指定信息,更新报文长度和/或校验和通过定义独立的Action来完成,比如定义如下动作分别完成IP头域中检测报文长度的更新、以及IP头域中校验和的更新:
Update(IP-Length)
Update(IP-Checksum)
其中,IP-Length表示IP头域中检测报文长度,IP-Checksum表示IP头域中校验和。
1403:控制器将交换机B对应的流表表项发送至交换机B,其中,交换机B对应的流表表项用于指示交换机B对获取到的检测报文进行匹配,并根据交换机B对应的流表表项在匹配成功的检测报文中添加OAM信息后,通过交换机B对应的流表表项指定的输出端口将添加OAM信息后的检测报文发送至交换机C。
该步骤的原理同步骤1402中控制器将交换机A对应的流表表项发送至交换机A的原理一致,具体可参见步骤1402中的内容,在此不再赘述。其中,
控制器向交换机B发送的交换机B对应的流表表项的内容可以同上述步骤1402中控制器发送至交换机A的交换机A对应的流表表项的内容一致。
1404:控制器将交换机C对应的流表表项发送至交换机C,其中,交换机C对应的流表表项用于指示交换机C对获取到的检测报文进行匹配,并根据交换机C对应的流表表项在匹配成功的检测报文中添加OAM信息后,通过交换机C对应的流表表项指定的输出端口将添加OAM信息后得到终结检测报文,并将该终结检测报文发送至控制器。
该步骤的原理同步骤1402中控制器将交换机A对应的流表表项发送至交换机A的原理一致,具体可参见步骤1402中的内容,在此不再赘述。其中,控制器发送至交换机C的交换机C对应的流表表项与步骤1402中控制器发送至交换机A的交换机A对应的流表表项的内容的差别在于:交换机C需要将添加OAM信息后得到的终结检测报文发送至控制器。
例如,控制器发送至交换机C的交换机C对应的流表表项的内容可以为:Match(Eth Type=X,Path-ID=1),Instruction(Apply-Actions(Append(Datapath-ID,Recv-BW-Used,Recv-BW-Unused,Send-BW-Used,Send-BW-Unused,Packet-Co unter,Recv-Time-Stamp,Send-Time-Stamp),Output(CONTROLLER)))。该流表表项的内容用于指示交换机C将以太网协议类型为X,Path-ID为1的报文,通过Packet-In消息发送给控制器。
1405:控制器将初始检测报文发送至交换机A。
该步骤的原理与步骤1005中控制器向交换机A发送初始检测报文的原理一致,具体可参见上述步骤1005中的内容,在此不再赘述。
1406:交换机A根据接收到的流表表项对接收到初始的检测报文进行匹配,并在匹配成功后,根据对应的流表表项在初始检测报文中添加OAM信息,并将添加OAM信息后的检测报文通过流表表项指定的输出端口发送至交换机B。
其中,交换机A接收到的流表表项为步骤1402中控制器发送至交换机A
的交换机A对应的流表表项。该步骤的原理同步骤1006中交换机A根据接收到的流表表项对接收到的初始检测报文进行匹配,并在匹配成功后,根据对应的流表表项在初始检测报文中添加OAM信息,并将添加OAM信息后的检测报文通过流表表项指定的输出端口发送至交换机B的原理一致,具体可参见上述步骤1006的内容,在此不再赘述。
结合上述步骤1402中控制器发送至交换机A的交换机A对应的流表表项的内容,交换机A在接收到的初始检测报文中添加的OAM信息包括Datapath-ID,Recv-BW-Used,Recv-BW-Unused,Send-BW-Used,Send-BW-Unuse d,Packet-Counter,Recv-Time-Stamp,Send-Time-Stamp,并且交换机A在初始检测报文中添加上述OAM信息后,通过端口2发送至交换机B。
1407:交换机B接收交换机A发送的添加交换机A对应的OAM信息的检测报文。
该步骤的原理同步骤1007中交换机B接收交换机A发送的添加交换机A对应的OAM信息的检测报文的原理一致,具体可参见上述步骤1007中的内容,在此不再赘述。
1408:交换机B根据接收到的流表表项对接收到的检测报文进行匹配,并在匹配成功后,根据对应的流表表项在接收到的检测报文中添加OAM信息,并将添加OAM信息后的检测报文发送至交换机C。
其中,交换机B接收到的流表表项为步骤1403中控制器发送至交换机B的交换机B对应的流表表项。
该步骤的原理与步骤1006中交换机A根据接收的流表表项对初始检测报文进行匹配,并在匹配成功后,根据对应的流表表项在接收到的初始检测报文中添加OAM信息,并将添加OAM信息后的检测报文发送至交换机B的原理一致,具体可参见上述步骤1006中的内容,在此不再赘述。
另外,由于步骤1403中控制器发送至交换机B的交换机B对应的流表表项的内容与上述步骤1402中控制器发送至交换机A的交换机A对应的流表表
项的内容相同。因此,交换机B在接收到的检测报文中添加的OAM信息包括Datapath-ID,Recv-BW-Used,Recv-BW-Unused,Send-BW-Used,Send-BW-Unuse d,Packet-Counter,Recv-Time-Stamp,Send-Time-Stamp,并且交换机B在检测报文中添加上述OAM信息后,通过端口2发送至交换机C。
1409:交换机C接收交换机B发送的添加交换机A和交换机B对应的OAM信息后的检测报文。
该步骤的原理同步骤1009中交换机C接收交换机B发送的添加交换机A和交换机B对应的OAM信息后的检测报文的原理一致,具体可参见上述步骤1009的内容,在此不再赘述。
1410:交换机C根据接收到的流表表项对接收到的检测报文进行匹配,并在匹配成功后,根据对应的流表表项在接收到的检测报文中添加OAM信息,并将添加OAM信息后得到的终结检测报文发送至控制器。
其中,交换机C接收到的流表表项为步骤1404中控制器发送至交换机C的交换机C对应的流表表项。
该步骤的原理与步骤1406中交换机A根据接收到的流表表项对接收到的初始检测报文进行匹配,并在匹配成功后,根据对应的流表表项在接收到的初始检测报文中添加OAM信息,并将添加OAM信息后的检测报文发送至交换机B的基本原理一致,具体可参见上述步骤1406中的内容,在此不再赘述。其与步骤1406的区别在于,交换机C在检测报文中添加OAM信息后,通过接收的对应流表表项中指定的输出端口将添加OAM信息后得到的终结检测报文发送至控制器。
结合上述步骤1404中控制器发送至交换机C的交换机C对应的流表表项的内容,交换机C在接收到的检测报文中添加的OAM信息包括Datapath-ID,Recv-BW-Used,Recv-BW-Unused,Send-BW-Used,Send-BW-Unuse d,Packet-Counter,Recv-Time-Stamp,Send-Time-Stamp,并且交换机C在检测报文中添加上述OAM信息后,通过端口2发送至控制器。
1411:控制器接收交换机C发送的终结检测报文。
该步骤的原理同步骤1011中控制器接收交换机C发送的终结检测报文的原理一致,具体可参见上述步骤1011中的内容,在此不再赘述。
1412:控制器记录接收到的终结检测报文总数以及终结检测报文的接收时间戳。
关于控制器记录接收到的终结检测报文总数以及终结检测报文的接收时间戳的方式,本发明实施例不作具体限定。
1413:控制器根据初始检测报文的发送时间戳、初始检测报文的报文序列号、结检测报文携带的每个交换机添加的OAM信息及终结检测报文总数、终结检测报文的接收时间戳中的至少一种信息确定链路的已用带宽、可用带宽、丢包率、时延和抖动。
为了便于对控制器根据初始检测报文的发送时间戳、初始检测报文的报文序列号、结检测报文携带的每个交换机添加的OAM信息及终结检测报文总数、终结检测报文的接收时间戳中的至少一种信息确定链路质量的过程进行解释说明,下面举例说明如何通过检测报文中记录的OAM信息计算链路的已用带宽、可用带宽、丢包率、时延和抖动。
例如,如果控制器接收到的两个终结检测报文,分别如表五和表六所示:
表五
表六
另外,控制器记录的接收到前一个终结检测报文(表五所示终结检测报文)时记录的接收到的终结检测报文总数为9990,且该终结检测报文的接收时间戳为T12。控制器记录的接收到后一个终结检测报文(表六所示终结检测报文)时记录的接收到的终结检测报文总数为19980,且该终结检测报文的接收时间戳为T22。利用如表五所示的第一个终结检测报文,可以计算出检测路径:控制器-交换机A-交换机B-交换机C-控制器路径的链路质量。
例如,在前一个初始检测报文的发送时间戳T11至该前一个初始检测报文对应的终结检测报文的接收时间戳T12的时间段内,该检测路径的空闲带宽为:交换机A、交换机B、交换机C提供的Recv-BW-Unused,Send-BW-Unused中的最小值,即Min(50M,40M,30M,60M,80M,50M)=30Mbps。从T11至T12,这段时间该检测路径的丢包率为:1-(该段时间控制器记录的检测报文总数=9990)/(该段时间初始检测报文的发送个数=10000)=0.1%。其中,初始检测报文的发送个数为初始检测报文的序列号。
在T11-T12这个时间段,该检测路径的时延为T12-T11。另外,根据多个时刻计算的时延,可以计算出该检测路径的抖动。关于根据时延计算抖动的方式,包括但不限于:获取预设数值个时间段的时延的平均值,并根据平均值求出时延的方差,从而将方差作为检测路径在该段时间内的抖动值。
另外,根据前一个终结检测报文,也可以计算局部检测路径的链路质量。例如,可以计算出交换机A到交换机B的链路时延为TB11-TA12,等等。根据这两个终结检测报文,还可以计算在T11到T22这个时间段内控制器-交换机A-交换机B-交换机C-控制器这条检测路径的链路质量。例如,这段时间该检测路径的丢包率为:1-(该段时间控制器接收到的检测报文总数=19980-9990)/(该段时间发送的初始检测报文总数=20000-10000)=0.1%。其它链路质量指标以此类推,不再赘述。
本发明实施例提供的方法,通过控制器确定检测路径,并控制检测路径的每个交换机获取检测报文,使每个交换机确定获取到的检测报文与预先存储的
流表表项匹配后,根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM信息后,控制器获取每个交换机添加OAM信息后得到的终结检测报文,并根据终结检测报文中携带的OAM信息确定链路的已用带宽、可用带宽、时延、抖动及丢包率。由于检测路径的每个交换机无需通过对应的链路质量检测协议检测链路质量,仅需根据预先存储的流表表项在获取到的检测报文中添加OAM信息,不仅能简化每个交换机的结构,而且简化了每个交换机的操作。另外,由于控制器仅需与检测路径的第一个交换机和最后一个交换机进行交互,因此,能提高业务处理效率。
图15是根据一示例性实施例提供的一种链路质量检测方法的流程图。在本发明实施例中,以检测路径为交换机A-交换机B-交换机A为例,且控制器通过指示检测路径的第一个交换机生成初始检测报文来触发链路质量检测,该实施例用以检测该检测路径的时延为例,对本发明实施例提供的链路质量检测方法进行解释说明。参见图15,本发明实施例提供的方法流程包括:
1501:控制器确定检测路径。
该步骤的原理同步骤1001中控制器确定检测路径的原理一致,具体可参见步骤1001中的内容,在此不再赘述。
1502:控制器将交换机A对应的流表表项发送至交换机A,其中,交换机A对应的流表表项用于指示交换机A对获取到的检测报文进行匹配,并根据交换机A对应的流表表项在匹配成功的检测报文中添加OAM信息后,通过交换机A对应的流表表项指定的输出端口将添加OAM信息后的检测报文发送至交换机B,以及指示交换机A将得到的终结检测报文发送至控制器。
该步骤的原理同步骤1002中控制器将交换机A对应的流表表项发送至交换机A的原理一致,具体可参见步骤1002中的内容。需要说明的是,由于在该实施例中,检测路径的起始节点位于交换机,因此,控制器需要指示交换机生成初始检测报文。另外,由于该实施例用以检测该检测路径的时延,因此,
每个交换机在获取到的检测报文中添加的OAM信息为检测报文的接收时间戳Time-Stamp。另外,由于检测报文在交换机内部的处理速度非常快,因此,本发明实施例中不区分检测报文的发送时间戳和接收时间戳。
其中,控制器发送至交换机A的交换机A对应的流表表项的内容可以为:Match(In Port=LOCAL,Eth Type=X,Path-ID=1),Instructions(Apply-Actions(Append(Time-Stamp),Output(Port2)))。该流表表项的内容指示交换机A将输入端口为LOCAL,以太网协议类型为X,Path-ID为1的检测报文,在检测报文尾部添加Time-Stamp之后,通过端口2发送。这里LOCAL是OpenFlow协议中定义的特殊端口,表示由交换机自己生成的报文。
另外,为了在该检测路径中,交换机A同时也为检测路径的最后一个交换机,也就是说,需要由其将终结检测报文发送至控制器,因此,控制器发送至交换机A的交换机A对应的流表表项还应该包括指示交换机A将得到的终结检测报文发送至控制器的内容。
例如,控制器发送至交换机A的交换机A对应的流表表项还可以包括如下内容:Match(In Port=2,Eth Type=X,Path-ID=1),Instructions(Apply-Actions(Append(Time-Stamp),Output(CONTROLLER)))。该流表表项的内容用于指示交换机A将输入端口为端口2,以太网协议类型为X,Path-ID为1的检测报文,在检测报文尾部添加Time-Stamp之后,通过Packet-In消息发送至控制器。
1503:控制器将交换机B对应的流表表项发送至交换机B,其中,交换机B对应的流表表项用于指示交换机B对获取到的检测报文进行匹配,并根据交换机B对应的流表表项在匹配成功的检测报文中添加OAM信息后,通过交换机B对应的流表表项指定的输出端口将添加OAM信息后的检测报文发送至交换机A。
该步骤的原理同步骤1003中控制器将交换机B对应的流表表项发送至交换机B的原理一致,具体可参见上述步骤1003中的内容,在此不再赘述。另
外,由于在该实施例中,每个交换机在接收到的检测报文中添加的OAM信息为Time-Stamp,因此,控制器发送至交换机B的交换机B对应的流表表项的内容可以为:Match(Eth Type=X,Path-ID=1),Instructions(Apply-Actions(Append(Time-Stamp),Output(Port 1)))。该流表表项的内容用于指示交换机B将以太网协议类型为X,Path-ID为1的报文,在检测报文尾部添加Time-Stamp之后,通过端口1发送。
1504:控制器控制交换机A生成初始检测报文。
关于控制器控制交换机A生成初始检测报文的方式,本发明实施例不作具体限定。具体实施时,控制器可以通过向交换机A发送检测报文生成指令,使交换机A根据该检测报文生成指令生成初始检测报文。其中,控制器向交换机A发送的检测报文生成指令可以携带在控制器发送至交换机A的交换机A对应的流表表项中。
例如,控制器可以通过向交换机A发送如下检测报文生成指令:
PacketGenerate(Type=ETH,Dst MAC=MAC1,Src MAC=MAC0,Eth Type=X,Path-ID=1,T=10s,Number=100)。其中,PacketGenerate是OpenFlow协议中新定义的消息,即指示交换机生成以太网报文,目的MAC地址为MAC1,源MAC地址为MAC0,以太网协议类型为X,Path-ID为1,生成周期为10秒,总共生成100个。
1505:交换机A根据检测报文生成指令生成初始检测报文。
关于交换机A根据检测报文生成指令生成初始检测报文的方式,本发明实施例不作具体限定。
1506:交换机A根据接收到的流表表项对接收到初始的检测报文进行匹配,并在匹配成功后,根据对应的流表表项在初始检测报文中添加OAM信息,并将添加OAM信息后的检测报文通过流表表项指定的输出端口发送至交换机B。
其中,交换机A接收到的流表表项为步骤1502中控制器发送至交换机A
的交换机A对应的流表表项。
该步骤的原理同步骤1006中交换机A根据接收到的流表表项对接收到初始的检测报文进行匹配,并在匹配成功后,根据对应的流表表项在初始检测报文中添加OAM信息,并将添加OAM信息后的检测报文通过流表表项指定的输出端口发送至交换机B的原理一致,具体可参见上述1006的步骤,在此不再赘述。
1507:交换机B接收交换机A发送的添加交换机A对应的OAM信息的检测报文。
该步骤的原理同步骤1007中交换机B接收交换机A发送的添加交换机A对应的OAM信息的检测报文的原理一致,具体可参见上述步骤1007的内容,在此不再赘述。
1508:交换机B根据接收到的流表表项对接收到的检测报文进行匹配,并在匹配成功后,根据对应的流表表项在接收到的检测报文中添加OAM信息,并将添加OAM信息后的检测报文发送至交换机A。
其中,交换机B接收到的流表表项为步骤1503中控制器发送至交换机B的交换机B对应的流表表项。
该步骤的原理同步骤1006中交换机A根据接收到的流表表项对接收到初始的检测报文进行匹配,并在匹配成功后,根据对应的流表表项在初始检测报文中添加OAM信息,并将添加OAM信息后的检测报文通过流表表项指定的输出端口发送至交换机B的原理一致,具体可参见上述1006的步骤,在此不再赘述。
1509:交换机A接收交换机B发送的添加交换机A和交换机B对应的OAM信息后的检测报文。
该步骤的原理同步骤1007中交换机B接收交换机A发送的添加交换机A对应的OAM信息的检测报文的原理一致,具体可参见上述步骤1007中的内容,在此不再赘述。
1510:交换机A根据接收到的流表表项对接收到的检测报文进行匹配,并在匹配成功后,根据对应的流表表项在接收到的检测报文中添加OAM信息,并将添加OAM信息后得到的终结检测报文发送至控制器。
其中,交换机A接收到的流表表项为步骤1502中控制器发送至交换机A的交换机A对应的流表表项。
该步骤的原理与步骤1006中交换机A根据接收的流表表项对接收到的初始检测报文进行匹配,并在匹配成功后,根据对应的流表表项在接收到的初始检测报文中添加OAM信息,并将添加OAM信息后的检测报文发送至交换机B的原理一致,具体可参见上述步骤1006中的内容,在此不再赘述。
1511:控制器接收交换机A发送的终结检测报文。
该步骤的原理同步骤1011的原理一致,具体可参见上述步骤1011中的内容,在此不再赘述。
1512:控制器根据终结检测报文确定链路的时延。
具体地,控制器根据终结检测报文中每个交换机添加的时间戳信息确定检测路径的时延。其中,控制器根据检测报文中记录的时间戳信息,计算交换机A和交换机B之间的链路时延,包括单向时延和环回时延。其中,单向时延为交换机A至交换机B的时延或交换机B至交换机A的时延。环回时延为整个检测路径的时延。
例如,交换机A至交换机B的时延可以通过交换机B在接收到的检测报文中添加的时间戳减去交换机A在接收到的检测报文中添加的时间戳来实现。整个检测路径的时延可以通过控制器接收终结检测报文的时间戳减去交换机A生成初始检测报文的时间戳得到。
可选地,检测过程中,如果需要停止检测,控制器可以下发消息给交换机A指示交换机停止生成检测报文。例如,控制器可以向交换机A下发如下消息来指示交换机A停止生成检测报文:
StopPacketGenerate(Type=ETH,Dst MAC=MAC1,Src MAC=MAC0,Eth
Type=X,Path-ID=1)或者,StopPacketGenerate(Path-ID=1)。其中,StopPacketGenerate也可以是OpenFlow协议中新定义的消息。
本发明实施例提供的方法,通过控制器确定检测路径,并控制检测路径的每个交换机获取检测报文,使每个交换机确定获取到的检测报文与预先存储的流表表项匹配后,根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM信息后,控制器获取每个交换机添加OAM信息后得到的终结检测报文,并根据终结检测报文中携带的时间戳信息确定链路的时延。由于检测路径的每个交换机无需通过对应的链路质量检测协议检测链路质量,仅需根据预先存储的流表表项在获取到的检测报文中添加OAM信息,不仅能简化每个交换机的结构,而且简化了每个交换机的操作。另外,由于控制器仅需与检测路径的第一个交换机和最后一个交换机进行交互,因此,能提高业务处理效率。
图16是根据一示例性实施例提供的一种交换机的结构示意图,该交换机用于执行上述图7至图15提供的链路质量检测方法中交换机所执行的功能。参见图16,该交换机包括处理器1601和发射器1602。其中:
处理器1601,用于获取检测报文,其中,获取到的检测报文来自控制器确定的检测路径的上一个交换机或者控制器;确定获取到的检测报文是否与本地预先存储的流表表项匹配;如果获取到的检测报文与本地预先存储的流表表项匹配,则根据本地预先存储的流表表项在获取到的检测报文中添加OAM信息;
发射器1602,用于将添加OAM信息后的检测报文发送至检测路径的下一个交换机,直至检测路径的最后一个交换机根据预先存储流表表项在获取到的检测报文中添加OAM信息得到终结检测报文,并将终结检测报文发送至控制器后,由控制器根据终结检测报文确定链路质量。
可选地,处理器1601,还用于:
如果本地交换机为检测路径的第一个交换机,则接收控制器发送的初始检测报文,将接收的初始检测报文作为获取到的检测报文;或者,接收控制器发
送的检测报文生成指令,并根据检测报文生成指令生成初始检测报文,并将生成的初始检测报文作为获取到的检测报文;
如果本地交换机不为检测路径的第一个交换机,则接收检测路径的上一个交换机添加OAM信息后的检测报文,并将接收的上一个交换机添加OAM信息后的检测报文作为获取到的检测报文。
可选地,交换机还包括接收机,用于接收并存储控制器发送的流表表项,流表表项用于指示本地交换机对获取到的检测报文进行匹配,并根据本地预先存储的流表表项在匹配成功的检测报文中添加OAM信息,得到添加本地OAM信息后的检测报文后,通过流表表项指定的输出端口将添加本地OAM信息后的检测报文发送至检测路径的下一个交换机或控制器。
可选地,获取到的检测报文携带检测路径标识ID,处理器1501,还用于解析获取到的检测报文的报文头域及检测路径ID;根据获取到的检测报文的报文头域及检测路径ID中的至少一种信息确定获取到的检测报文是否与本地预先存储的流表表项匹配。
可选地,本地交换机在获取到的检测报文中添加的OAM信息至少包括入接口已用带宽、入接口空闲带宽、出接口已用带宽、出接口空闲带宽、检测报文总数、检测报文接收时间戳、检测报文发送时间戳中的至少一种信息。
本发明实施例提供的交换机,通过在控制器确定检测路径后,获取检测报文,并在确定获取到的检测报文与预先存储的流表表项匹配后,根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM信息后,由控制器获取每个交换机添加OAM信息后得到的终结检测报文,并根据终结检测报文确定链路质量。由于交换机无需通过对应的链路质量检测协议检测链路质量,仅需根据预先存储的流表表项在获取到的检测报文中添加OAM信息,不仅能简化交换机的结构,而且简化了交换机的操作。另外,由于控制器无需与每个交换机交互,因此,能提高业务处理效率。
图17是根据一示例性实施例提供的一种控制器的结构示意图,该控制器用于执行上述图7至图15提供的链路质量检测方法中控制器所执行的功能。参见图17,该控制器包括处理器1701和用于存储处理器1701可执行指令的存储器1702。其中:
处理器1701,用于确定检测路径,检测路径包括至少一个交换机;控制检测路径的每个交换机获取检测报文,使每个交换机确定获取到的检测报文与每个交换机预先存储的流表表项匹配后,根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM信息;获取每个交换机在获取到的检测报文中添加OAM信息后得到的终结检测报文;根据终结检测报文确定链路质量。
可选地,控制器还包括发射器,用于将检测路径的每个交换机对应的流表表项分别发送至每个交换机,使每个交换机接收并存储每个交换机对应的流表表项,每个交换机对应的流表表项用于指示每个交换机对获取到的检测报文进行匹配,并根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM信息后,通过每个交换机对应的流表表项指定的输出端口将添加OAM信息后的检测报文发送至检测路径的下一个交换机或控制器。
可选地,处理器1701,还用于根据网络的配置信息确定检测路径;或者,根据网络的拓扑信息生成检测路径,并将生成的检测路径作为确定的检测路径。
可选地,处理器1701,还用于:
如果交换机为检测路径的第一个交换机,则控制将初始检测报文发送至第一个交换机,使第一个交换机将接收的初始检测报文作为获取到的检测报文;或者,控制将检测报文生成指令发送至第一个交换机,使第一个交换机根据检测报文生成指令生成初始检测报文,并将生成的初始检测报文作为获取到的检测报文;
如果交换机不为检测路径的第一个交换机,则控制交换机接收检测路径的上一个交换机发送的上一个交换机添加OAM信息后的检测报文,并将接收的
上一个交换机添加OAM信息后的检测报文作为获取到的检测报文。
可选地,处理器1701,还用于控制周期性地将初始检测报文发送至第一个交换机;确定是否有预设数值个周期未接收到每个初始检测报文对应的终结检测报文;如果确定有预设数值个周期未接收到每个初始检测报文对应的终结检测报文,则确定检测路径故障。
可选地,初始检测报文携带初始检测报文的生成时间戳及初始检测报文的报文序列号,处理器1701,还用于记录接收到的终结检测报文总数以及终结检测报文接收时间戳;根据初始检测报文的生成时间戳、初始检测报文的报文序列号、终结检测报文携带的每个交换机添加的OAM信息及终结检测报文总数、终结检测报文接收时间戳中的至少一种信息确定链路质量。
本发明实施例提供的控制器,通过控制器确定检测路径,并控制检测路径的每个交换机获取检测报文,使每个交换机确定获取到的检测报文与预先存储的流表表项匹配后,根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM信息后,控制器获取每个交换机添加OAM信息后得到的终结检测报文,并根据终结检测报文确定链路质量。由于检测路径的每个交换机无需通过对应的链路质量检测协议检测链路质量,仅需根据预先存储的流表表项在获取到的检测报文中添加OAM信息,不仅能简化每个交换机的结构,而且简化了每个交换机的操作。另外,由于控制器无需与每个交换机交互,因此,能提高业务处理效率。
需要说明的是:上述实施例提供的交换机及控制器在检测链路质量时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置及设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的交换机、控制器及软件定义网络系统与链路质量检测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (23)
- 一种软件定义网络系统,其特征在于,所述系统包括控制器和至少一个交换机;所述控制器,用于确定检测路径,并控制所述检测路径的每个交换机获取检测报文,使所述每个交换机确定获取到的检测报文与每个交换机预先存储的流表表项匹配后,根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加操作管理维护OAM信息;获取所述每个交换机在获取到的检测报文中添加OAM信息后得到的终结检测报文,根据所述终结检测报文确定链路质量;所述至少一个交换机中的每个交换机,用于获取检测报文,并对获取到的检测报文进行匹配,根据对应的流表表项在匹配成功的检测报文中添加OAM信息后,将添加OAM信息的检测报文发送至所述检测路径的下一个交换机或者所述控制器。
- 一种交换机,其特征在于,所述交换机包括:获取模块,用于获取检测报文,其中,获取到的检测报文来自控制器确定的检测路径的上一个交换机或者所述控制器;确定模块,用于确定获取到的检测报文是否与本地预先存储的流表表项匹配;添加模块,用于当获取到的检测报文与本地预先存储的流表表项匹配时,根据所述本地预先存储的流表表项在获取到的检测报文中添加操作管理维护OAM信息;发送模块,用于将添加OAM信息后的检测报文发送至所述检测路径的下一个交换机,直至所述检测路径的最后一个交换机根据预先存储流表表项在获取到的检测报文中添加OAM信息得到终结检测报文,并将所述终结检测报文发送至控制器后,由所述控制器根据所述终结检测报文确定链路质量。
- 根据权利要求2所述的交换机,其特征在于,所述获取模块,用于:当本地交换机为所述检测路径的第一个交换机时,接收所述控制器发送的初始检测报文,将接收的初始检测报文作为获取到的检测报文;或者,接收所述控制器发送的检测报文生成指令,并根据所述检测报文生成指令生成初始检测报文,并将生成的初始检测报文作为获取到的检测报文;当本地交换机不为所述检测路径的第一个交换机时,接收所述检测路径的上一个交换机添加OAM信息后的检测报文,并将接收的所述上一个交换机添加OAM信息后的检测报文作为获取到的检测报文。
- 根据权利要求2所述的交换机,其特征在于,所述交换机,还包括:接收模块,用于接收并存储所述控制器发送的流表表项,所述流表表项用于指示本地交换机对获取到的检测报文进行匹配,并根据本地预先存储的流表表项在匹配成功的检测报文中添加OAM信息,得到添加本地OAM信息后的检测报文后,通过所述流表表项指定的输出端口将添加本地OAM信息后的检测报文发送至所述检测路径的下一个交换机或所述控制器。
- 根据权利要求2所述的交换机,其特征在于,所述获取模块获取到的检测报文携带检测路径标识ID,所述确定模块,包括:解析单元,用于解析获取到的检测报文的报文头域及检测路径ID;确定单元,用于根据获取到的检测报文的报文头域及所述检测路径ID中的至少一种信息确定获取到的检测报文是否与本地预先存储的流表表项匹配。
- 根据权利要求2所述的交换机,其特征在于,本地交换机在获取到的检测报文中添加的OAM信息至少包括入接口已用带宽、入接口空闲带宽、出接口已用带宽、出接口空闲带宽、检测报文总数、检测报文接收时间戳、检测报文 发送时间戳中的至少一种信息。
- 一种控制器,其特征在于,所述控制器包括:第一确定模块,用于确定检测路径,所述检测路径包括至少一个交换机;控制模块,用于控制所述检测路径的每个交换机获取检测报文,使所述每个交换机确定获取到的检测报文与每个交换机预先存储的流表表项匹配后,根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加操作管理维护OAM信息;获取模块,用于获取所述每个交换机在获取到的检测报文中添加OAM信息后得到的终结检测报文;第二确定模块,用于根据所述终结检测报文确定链路质量。
- 根据权利要求7所述的控制器,其特征在于,所述控制器,还包括:发送模块,用于将所述检测路径的每个交换机对应的流表表项发送至每个交换机,所述每个交换机对应的流表表项用于指示所述每个交换机对获取到的检测报文进行匹配,并根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加OAM信息后,通过所述每个交换机对应的流表表项指定的输出端口将添加OAM信息后的检测报文发送至所述检测路径的下一个交换机或控制器。
- 根据权利要求7所述的控制器,其特征在于,所述第一确定模块,用于根据网络的配置信息确定检测路径;或者,根据网络的拓扑信息生成检测路径,并将生成的检测路径作为确定的检测路径。
- 根据权利要求7所述的控制器,其特征在于,所述控制模块,用于:当交换机为所述检测路径的第一个交换机时,控制将初始检测报文发送至所述第一个交换机,使所述第一个交换机将接收的初始检测报文作为获取到的 检测报文;或者,控制将检测报文生成指令发送至所述第一个交换机,使所述第一个交换机根据所述检测报文生成指令生成初始检测报文,并将生成的初始检测报文作为获取到的检测报文;当交换机不为所述检测路径的第一个交换机时,控制交换机接收所述检测路径的上一个交换机发送的所述上一个交换机添加OAM信息后的检测报文,并将接收的所述上一个交换机添加OAM信息后的检测报文作为获取到的检测报文。
- 根据权利要求10所述的控制器,其特征在于,所述控制模块,用于控制周期性地将初始检测报文发送至所述第一个交换机;所述第二确定模块,用于确定是否有预设数值个周期未接收到每个初始检测报文对应的终结检测报文;如果确定有预设数值个周期未接收到每个初始检测报文对应的终结检测报文,则确定所述检测路径故障。
- 根据权利要求10所述的控制器,其特征在于,所述初始检测报文携带所述初始检测报文的生成时间戳及所述初始检测报文的报文序列号,所述控制器,还包括:记录模块,用于记录接收到的终结检测报文总数以及终结检测报文接收时间戳;所述第二确定模块,用于根据所述初始检测报文的生成时间戳、所述初始检测报文的报文序列号、所述终结检测报文携带的每个交换机添加的OAM信息及所述终结检测报文总数、所述终结检测报文接收时间戳中的至少一种信息确定链路质量。
- 一种链路质量检测方法,其特征在于,所述方法包括:获取检测报文,其中,获取到的检测报文来自控制器确定的检测路径的上 一个交换机或者所述控制器;确定获取到的检测报文是否与本地预先存储的流表表项匹配;如果获取到的检测报文与本地预先存储的流表表项匹配,则根据所述本地预先存储的流表表项在获取到的检测报文中添加操作管理维护OAM信息;将添加OAM信息后的检测报文发送至所述检测路径的下一个交换机,直至所述检测路径的最后一个交换机根据预先存储流表表项在获取到的检测报文中添加OAM信息得到终结检测报文,并将所述终结检测报文发送至控制器后,由所述控制器根据所述终结检测报文确定链路质量。
- 根据权利要求13所述的方法,其特征在于,所述获取检测报文,包括:如果本地交换机为所述检测路径的第一个交换机,则接收所述控制器发送的初始检测报文,将接收的初始检测报文作为获取到的检测报文;或者,接收所述控制器发送的检测报文生成指令,并根据所述检测报文生成指令生成初始检测报文,将生成的初始检测报文作为获取到的检测报文;如果本地交换机不为所述检测路径的第一个交换机,则接收所述检测路径的上一个交换机添加OAM信息后的检测报文,并将接收的所述上一个交换机添加OAM信息后的检测报文作为获取到的检测报文。
- 根据权利要求13所述的方法,其特征在于,所述确定获取到的检测报文是否与本地预先存储的流表表项匹配之前,还包括:接收并存储所述控制器发送的流表表项,所述流表表项用于指示本地交换机对获取到的检测报文进行匹配,并根据本地预先存储的流表表项在匹配成功的检测报文中添加OAM信息,得到添加本地OAM信息后的检测报文后,通过所述流表表项指定的输出端口将添加本地OAM信息后的检测报文发送至所述检测路径的下一个交换机或所述控制器。
- 根据权利要求13所述的方法,其特征在于,获取到的检测报文携带检测路径标识ID,所述确定获取到的检测报文是否与本地预先存储的流表表项匹配,包括:解析获取到的检测报文的报文头域及检测路径ID;根据获取到的检测报文的报文头域及所述检测路径ID中的至少一种信息确定获取到的检测报文是否与本地预先存储的流表表项匹配。
- 根据权利要求13所述的方法,其特征在于,本地交换机在获取到的检测报文中添加的OAM信息至少包括入接口已用带宽、入接口空闲带宽、出接口已用带宽、出接口空闲带宽、检测报文总数、检测报文接收时间戳、检测报文发送时间戳中的至少一种信息。
- 一种链路质量检测方法,其特征在于,所述方法包括:确定检测路径,所述检测路径包括至少一个交换机;控制所述检测路径的每个交换机获取检测报文,使所述每个交换机确定获取到的检测报文与每个交换机预先存储的流表表项匹配后,根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加操作管理维护OAM信息;获取所述每个交换机在获取到的检测报文中添加OAM信息后得到的终结检测报文;根据所述终结检测报文确定链路质量。
- 根据权利要求18所述的方法,其特征在于,所述控制所述检测路径的每个交换机获取检测报文之前,还包括:将所述检测路径的每个交换机对应的流表表项分别发送至每个交换机,所述每个交换机对应的流表表项用于指示所述每个交换机对获取到的检测报文进行匹配,并根据每个交换机预先存储的流表表项在匹配成功的检测报文中添加 OAM信息后,通过所述每个交换机对应的流表表项指定的输出端口将添加OAM信息后的检测报文发送至所述检测路径的下一个交换机或控制器。
- 根据权利要求18所述的方法,其特征在于,所述确定检测路径,包括:根据网络的配置信息确定检测路径;或者,根据网络的拓扑信息生成检测路径,并将生成的检测路径作为确定的检测路径。
- 根据权利要求18所述的方法,其特征在于,所述控制所述检测路径的每个交换机获取检测报文,包括:如果交换机为所述检测路径的第一个交换机,则控制将初始检测报文发送至所述第一个交换机,使所述第一个交换机将接收的初始检测报文作为获取到的检测报文;或者,控制将检测报文生成指令发送至所述第一个交换机,使所述第一个交换机根据所述检测报文生成指令生成初始检测报文,并将生成的初始检测报文作为获取到的检测报文;如果交换机不为所述检测路径的第一个交换机,则控制交换机接收所述检测路径的上一个交换机发送的所述上一个交换机添加OAM信息后的检测报文,并将接收的所述上一个交换机添加OAM信息后的检测报文作为获取到的检测报文。
- 根据权利要求21所述的方法,其特征在于,所述控制将初始检测报文发送至所述第一个交换机,包括:控制周期性地将初始检测报文发送至所述第一个交换机;所述根据所述终结检测报文确定链路质量,包括:确定是否有预设数值个周期未接收到每个初始检测报文对应的终结检测报文;如果确定有预设数值个周期未接收到每个初始检测报文对应的终结检测报文,则确定所述检测路径故障。
- 根据权利要求21所述的方法,其特征在于,所述初始检测报文携带所述初始检测报文的生成时间戳及所述初始检测报文的报文序列号,所述获取所述每个交换机在获取到的检测报文中添加OAM信息后得到的终结检测报文之后,还包括:记录接收到的终结检测报文总数以及终结检测报文接收时间戳;所述根据所述终结检测报文确定链路质量,包括:根据所述初始检测报文的生成时间戳、所述初始检测报文的报文序列号、所述终结检测报文携带的每个交换机添加的OAM信息及所述终结检测报文总数、所述终结检测报文接收时间戳中的至少一种信息确定链路质量。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/087574 WO2016045098A1 (zh) | 2014-09-26 | 2014-09-26 | 交换机、控制器、系统及链路质量检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105723657A true CN105723657A (zh) | 2016-06-29 |
CN105723657B CN105723657B (zh) | 2020-10-09 |
Family
ID=55580145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480018333.5A Active CN105723657B (zh) | 2014-09-26 | 2014-09-26 | 交换机、控制器、系统及链路质量检测方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10756994B2 (zh) |
CN (1) | CN105723657B (zh) |
WO (1) | WO2016045098A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110830284A (zh) * | 2018-08-14 | 2020-02-21 | 杭州达乎科技有限公司 | 一种基于sdn网络的业务故障监测的方法和装置 |
CN111698168A (zh) * | 2020-05-20 | 2020-09-22 | 北京吉安金芯信息技术有限公司 | 消息处理方法、装置、存储介质及处理器 |
CN111756596A (zh) * | 2020-06-02 | 2020-10-09 | 深圳供电局有限公司 | 一种基于sdn的链路质量探测系统及方法 |
CN111837361A (zh) * | 2018-03-13 | 2020-10-27 | 华为技术有限公司 | 使用带外消息采集网络oam流数据 |
CN111953555A (zh) * | 2020-06-29 | 2020-11-17 | 联想(北京)有限公司 | 一种链路检测方法、cpe及存储介质 |
CN112866043A (zh) * | 2019-11-12 | 2021-05-28 | 中兴通讯股份有限公司 | 网络质量检测方法、装置、服务器和计算机可读介质 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017105431A1 (en) * | 2015-12-16 | 2017-06-22 | Hewlett Packard Enterprise Development Lp | Dataflow consistency verification |
US10541900B2 (en) * | 2016-02-01 | 2020-01-21 | Arista Networks, Inc. | Hierarchical time stamping |
TWI612831B (zh) * | 2016-03-01 | 2018-01-21 | 財團法人工業技術研究院 | 時脈同步方法、行動網路系統、網路控制器與網路交換器 |
CN107547293B (zh) * | 2016-06-29 | 2020-09-08 | 新华三技术有限公司 | 一种流路径探测方法和装置 |
US10536379B2 (en) * | 2017-09-28 | 2020-01-14 | Argela Yazilim Ve Bilisim Teknolojileri San Ve Tic. A.S. | System and method for control traffic reduction between SDN controller and switch |
US10516551B2 (en) * | 2018-01-15 | 2019-12-24 | Futurewei Technologies, Inc. | In-band telemetry with limited extra bytes |
US11184280B2 (en) * | 2018-10-11 | 2021-11-23 | Cisco Technology, Inc. | Methods and apparatus for verification of non-steered traffic flows having unspecified paths based on traversed network node or service function identities |
WO2020096501A1 (en) * | 2018-11-05 | 2020-05-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Traffic steering device |
US11646956B2 (en) * | 2019-07-24 | 2023-05-09 | Cisco Technology, Inc. | Systems and methods for providing bidirectional forwarding detection with performance routing measurements |
CN111682986B (zh) * | 2020-06-08 | 2023-11-07 | 平安科技(深圳)有限公司 | 全量链路质量探测方法、装置、计算机设备及存储介质 |
US11483229B1 (en) | 2021-06-30 | 2022-10-25 | Juniper Networks, Inc. | Detection of network measurement inaccuracies |
US11757751B2 (en) | 2021-06-30 | 2023-09-12 | Juniper Networks, Inc. | Detection of network measurement inaccuracies |
CN114615178B (zh) * | 2022-03-16 | 2024-02-13 | 北京轻网科技股份有限公司 | 链路质量检测方法及装置 |
CN117544550A (zh) * | 2024-01-10 | 2024-02-09 | 紫光恒越技术有限公司 | 一种网络质量监控的方法、装置、存储介质及电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1815970A (zh) * | 2005-02-01 | 2006-08-09 | 华为技术有限公司 | 一种检测网络链路故障并定位故障的方法 |
CN1937541A (zh) * | 2005-09-20 | 2007-03-28 | 华为技术有限公司 | 一种网络性能测试方法 |
US20090052321A1 (en) * | 2007-08-20 | 2009-02-26 | Kamath Krishna Y | Taxonomy based multiple ant colony optimization approach for routing in mobile ad hoc networks |
CN101699786A (zh) * | 2009-10-15 | 2010-04-28 | 华为技术有限公司 | 一种丢包检测的方法、装置和系统 |
US20110286324A1 (en) * | 2010-05-19 | 2011-11-24 | Elisa Bellagamba | Link Failure Detection and Traffic Redirection in an Openflow Network |
CN103051499A (zh) * | 2012-12-31 | 2013-04-17 | 华为技术有限公司 | 一种检测报文的方法和装置 |
CN103262472A (zh) * | 2010-12-13 | 2013-08-21 | 日本电气株式会社 | 计算机系统、控制器、控制器管理器和通信路由分析方法 |
CN103765823A (zh) * | 2011-07-08 | 2014-04-30 | 瑞典爱立信有限公司 | 用于开放流的控制器激励的oam |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005202446A (ja) * | 2004-01-13 | 2005-07-28 | Hitachi Ltd | 障害監視復旧支援装置 |
US10277476B2 (en) * | 2014-01-06 | 2019-04-30 | Cisco Technology, Inc. | Optimizing network parameters based on a learned network performance model |
US20170054637A1 (en) * | 2014-02-12 | 2017-02-23 | Nec Corporation | Information processing apparatus, communication method, network control apparatus, network control method, communication system, and program |
WO2015199743A1 (en) * | 2014-06-25 | 2015-12-30 | Hewlett-Packard Development Company, L.P. | Selecting an optimal network device for reporting flow table misses upon expiry of a flow in a software defined network |
US20160013990A1 (en) * | 2014-07-09 | 2016-01-14 | Cisco Technology, Inc. | Network traffic management using heat maps with actual and planned /estimated metrics |
US10270699B2 (en) * | 2014-07-28 | 2019-04-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Automated flow devolvement in an aggregate flow environment |
WO2016032034A1 (ko) * | 2014-08-29 | 2016-03-03 | 삼성전자주식회사 | 네트워크에서 사용자 체감 품질을 측정하고 관리하는 방법 및 장치 |
US9813323B2 (en) * | 2015-02-10 | 2017-11-07 | Big Switch Networks, Inc. | Systems and methods for controlling switches to capture and monitor network traffic |
-
2014
- 2014-09-26 WO PCT/CN2014/087574 patent/WO2016045098A1/zh active Application Filing
- 2014-09-26 CN CN201480018333.5A patent/CN105723657B/zh active Active
-
2017
- 2017-03-24 US US15/469,190 patent/US10756994B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1815970A (zh) * | 2005-02-01 | 2006-08-09 | 华为技术有限公司 | 一种检测网络链路故障并定位故障的方法 |
CN1937541A (zh) * | 2005-09-20 | 2007-03-28 | 华为技术有限公司 | 一种网络性能测试方法 |
US20090052321A1 (en) * | 2007-08-20 | 2009-02-26 | Kamath Krishna Y | Taxonomy based multiple ant colony optimization approach for routing in mobile ad hoc networks |
CN101699786A (zh) * | 2009-10-15 | 2010-04-28 | 华为技术有限公司 | 一种丢包检测的方法、装置和系统 |
US20110286324A1 (en) * | 2010-05-19 | 2011-11-24 | Elisa Bellagamba | Link Failure Detection and Traffic Redirection in an Openflow Network |
CN103262472A (zh) * | 2010-12-13 | 2013-08-21 | 日本电气株式会社 | 计算机系统、控制器、控制器管理器和通信路由分析方法 |
CN103765823A (zh) * | 2011-07-08 | 2014-04-30 | 瑞典爱立信有限公司 | 用于开放流的控制器激励的oam |
CN103051499A (zh) * | 2012-12-31 | 2013-04-17 | 华为技术有限公司 | 一种检测报文的方法和装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111837361A (zh) * | 2018-03-13 | 2020-10-27 | 华为技术有限公司 | 使用带外消息采集网络oam流数据 |
CN111837361B (zh) * | 2018-03-13 | 2021-11-09 | 华为技术有限公司 | 使用带外消息采集网络oam流数据的方法及网络节点 |
CN110830284A (zh) * | 2018-08-14 | 2020-02-21 | 杭州达乎科技有限公司 | 一种基于sdn网络的业务故障监测的方法和装置 |
CN112866043A (zh) * | 2019-11-12 | 2021-05-28 | 中兴通讯股份有限公司 | 网络质量检测方法、装置、服务器和计算机可读介质 |
CN111698168A (zh) * | 2020-05-20 | 2020-09-22 | 北京吉安金芯信息技术有限公司 | 消息处理方法、装置、存储介质及处理器 |
CN111756596A (zh) * | 2020-06-02 | 2020-10-09 | 深圳供电局有限公司 | 一种基于sdn的链路质量探测系统及方法 |
CN111953555A (zh) * | 2020-06-29 | 2020-11-17 | 联想(北京)有限公司 | 一种链路检测方法、cpe及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20170201435A1 (en) | 2017-07-13 |
US10756994B2 (en) | 2020-08-25 |
WO2016045098A1 (zh) | 2016-03-31 |
CN105723657B (zh) | 2020-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105723657A (zh) | 交换机、控制器、系统及链路质量检测方法 | |
US11876883B2 (en) | Packet processing method, network node, and system | |
US11848757B2 (en) | In-situ passive performance measurement in a network environment | |
US9112774B2 (en) | Controller driven OAM for openflow | |
US11095546B2 (en) | Network device service quality detection method and apparatus | |
US9419878B2 (en) | Network controller for delay measurement in SDN and related delay measurement system and delay measurement method | |
CN104509032A (zh) | 软件定义的网络中的操作、监管、以及管理(oam)功能 | |
US10785095B2 (en) | Service fault locating method and apparatus | |
CN108234317B (zh) | 一种隧道环回方法及其相关设备 | |
EP2858302A1 (en) | Connectivity check method of service stream link, related apparatus and system | |
US11258702B2 (en) | Routing path analysis method and device | |
WO2016095611A1 (zh) | 用于获取参数的方法、网络设备及系统 | |
JPWO2014104277A1 (ja) | 制御装置、通信システム、通信ノードの制御方法及びプログラム | |
CN112400289A (zh) | 分组交换通信网络中的性能测量 | |
CN107835109B (zh) | 一种测试软件定义的分组传送网网络的方法及系统 | |
CN111835589A (zh) | 链路质量探测方法、路径选择方法及其装置 | |
KR101707073B1 (ko) | Sdn 기반의 에러 탐색 네트워크 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |