本发明涉及网络通信领域,尤其涉及软件定义网络中服务质量控制方法及装置。
背景技术:
软件定义网络(Software Defined Network,简称SDN)是一种由SDN控制器和转发设备构成的网络,其中转发设备通过SDN控制器设备接入SDN。在SDN数据流转发过程中,由SDN控制器制定数据流转发规则,由转发设备按照SDN控制器所制定的数据流转发规则完成数据流的转发。
由于SDN通常需要同时转发多个不同应用层(Application Layer)业务所产生的数据流,因此在数据流在转发过程中可能发生延迟或阻塞。为确保重要业务量不受延迟或丢弃,保证SDN的高效运行,SDN需要对各数据流进行服务质量(Quality of Service,简称QoS)控制。由于SDN在转发数据流的过程中,需要使用多个转发设备组成该数据流的转发路径,并由该转发路径完成该数据流的转发,因此在SDN对数据流进行QoS控制时,SDN控制器需要根据数据流所对应的应用层业务,为该转发路径上的各个转发设备分别设置该数据流的服务质量参数。
现有传统网络在基于应用层业务进行QoS控制时,需要在转发设备上安装应用层过滤模块(L7-filter);利用L7-filter识别数据流所采用的传输协议,进而对该对数据流进行QoS控制。但是在SDN中,SDN控制器与转发设备相分离,数据流转发规则由SDN控制器生成,转发设备仅仅用于按照SDN控制器生成的数据流转发规则完成数据流转发。由此可以看出,现有传统网络中基于应用层业务进行QoS控制的方法,无法满足SDN中基于应用层业务进行QoS控制的需求。
技术实现要素:
本发明实施例提供了软件定义网络中服务质量控制方法及装置,以满足SDN中基于应用层业务进行QoS控制的需求。
第一方面,本发明实施例提供了一种SDN中转发设备的QoS控制方法,该方法包括:
SDN控制器获取数据流的应用层标识;SDN控制器根据应用层标识生成所述数据流转发路径上的转发设备所适用的转发设备QoS参数;SDN控制器将所述转发设备QoS参数下发至转发设备,以便于所述转发设备在转发包含所述应用层标识的数据流时,按照所述转发设备QoS参数对所述数据流进行QoS控制。
结合第一方面,在第一方面第一种可能的实现方式中,所述SDN控制器获取数据流的应用层标识包括:SDN控制器接收所述数据流的首数据包;SDN控制器从所述首数据包的指定字段中解析出所述应用层标识。
结合第一方面第一种可能的实现方式,在第一方面第二种可能的实现方式中,所述SDN控制器从所述首数据包的指定字段中解析出所述应用层标识包括:SDN控制器从所述首数据包的包头域中获取所述应用层标识。
结合第一方面,在第一方面第三种可能的实现方式中,所述SDN控制器获取数据流的应用层标识包括:SDN控制器接收所述应用层标识,所述应用层标识由所述转发设备发送。
结合第一方面或第一方面第一至三种可能的实现方式中任意一种,在第一方面第四种可能的实现方式中,所述SDN控制器根据应用层标识生成所述数据流转发路径上的转发设备所适用的转发设备服务质量QoS参数包括:SDN控制器获取所述应用层标识对应的应用层QoS参数;SDN控制器获取与所述应用层标识对应的QoS参数转换模型;SDN控制器使用所述QoS参数转换模型将所述应用层QoS参数转换为转发设备QoS参数。
结合第一方面或第一方面第一至四种可能的实现方式中任意一种,在第一方面第五种可能的实现方式中,所述SDN控制器将所述转发设备QoS参数下发至转发设备包括:SDN控制器生成OpenFlow计量表及OpenFlow流表,所述OpenFlow流表以所述应用层标识作为匹配条件,所述OpenFlow流表的行为是转发所述数据流或者以OpenFlow计量表中指定的数据速率对数据流进行流控,所述数据速率与所述转发设备QoS参数相对应;SDN控制器将所述OpenFlow计量表及所述OpenFlow流表下发至转发设备。
结合第一方面或第一方面第一至五种可能的实现方式中任意一种,在第一方面第六种可能的实现方式中,所述方法还包括:SDN控制器接收转发设备上报的流量统计数据;SDN控制器使用所述流量统计数据更新所述QoS参数转换模型,得到当前QoS参数转换模型;SDN控制器使用所述当前QoS参数转换模型将所述应用层服务质量参数转换为转发设备当前QoS参数;SDN控制器将所述转发设备当前QoS参数下发至转发设备,以便于所述转发设备在转发包含所述应用层标识的数据流时,按照所述转发设备当前QoS参数对所述数据流进行QoS控制。
第二方面,本发明实施例提供了一种SDN中转发设备的QoS控制方法,该方法包括:
转发设备接收SDN控制器下发的转发设备QoS参数,所述转发设备QoS参数由控制器根据数据流的应用层标识生成;转发设备在转发包含所述应用层标识的数据流时,使用所述转发设备QoS参数对所述数据流进行服务质量控制。
结合第二方面,在第二方面第一种可能的实现方式中,
所述转发设备接收SDN控制器下发的转发设备QoS参数包括:转发设备获取数据流;转发设备从所述数据流首数据包的指定字段中获取所述应用层标识;转发设备将所述应用层标识上报至SDN控制器;转发设备接收SDN控制器发送的转发设备QoS参数,所述转发设备QoS参数由所述SDN控制器根据所述应用层标识对应的应用层QoS参数生成。
结合第二方面第一种可能的实现方式,在第二方面第二种可能的实现方式中,
所述转发设备从所述数据流首数据包的指定字段中获取所述应用层标识包括:所述转发设备从所述首数据包的包头域中获取所述应用层标识。
结合第二方面,在第二方面第三种可能的实现方式中,
所述转发设备接收SDN控制器下发的转发设备QoS参数包括:转发设备获取数据流;转发设备将所述数据流的首数据包上报至控制器;转发设备接收SDN控制器发送的转发设备QoS参数,所述转发设备QoS参数由所述SDN控制器根据所述首数据包中应用层标识对应的应用层QoS参数生成。
结合第二方面,在第二方面第四种可能的实现方式中,
所述转发设备接收SDN控制器发送的转发设备QoS参数包括:转发设备接收SDN控制器发送的OpenFlow计量表及OpenFlow流表,所述OpenFlow流表以所述应用层标识作为匹配条件,所述OpenFlow流表的行为是转发所述数据流或者以OpenFlow计量表中指定的数据速率对数据流进行流控,所述数据速率与所述转发设备QoS参数相对应;所述转发设备使用所述转发设备QoS参数对所述数据流进行服务质量控制包括:转发设备按照所述OpenFlow流表的行为转发所述数据流或者以OpenFlow计量表中指定的数据速率对数据流进行流控。
结合二方面或第二方面第一至四种可能的实现方式中的任意一种,在第二方面第五种可能的实现方式中,
所述方法还包括:转发设备生成所述数据流的流量统计数据;转发设备将所述流量统计数据发送至SDN控制器;转发设备接收SDN控制器下发的转发设备当前QoS参数,所述转发设备当前QoS参数由所述SDN控制器根据所述流量统计数据生成;转发设备在转发包含所述应用层标识的数据流时,使用所述转发设备当前QoS参数对所述数据流进行服务质量控制。
第三方面,本发明实施例提供了一种SDN中转发设备的QoS控制方法,该方法包括:
SDN控制器获取数据流的应用层特征;SDN控制器为所述数据流分配与所述应用层特征对应的MPLS标签组;SDN控制器指示所述数据流转发路径的转发设备为所述数据流包含的数据包添加所述MPLS标签组;SDN控制器生成与所述MPLS标签组对应的转发设备QoS参数;SDN控制器将所述转发设备QoS参数下发至转发设备,以便于所述转发设备在转发数据包包含MPLS标签组的数据流时,按照所述转发设备QoS参数进行QoS控制。
结合第三方面,在第三方面第一种可能的实现方式中,所述SDN控制器获取数据流的应用层特征包括:SDN控制器获取数据流的首数据包;SDN控制器解析所述首数据包的应用层特征。
结合第三方面第一种可能的实现方式,在第三方面第二种可能的实现方式中,所述SDN控制器解析所述首数据包的应用层特征包括:SDN控制器从所述首数据包的包头域中获取所述应用层标识;SDN控制器获取与所述应用层标识对应的应用层特征。
结合第三方面或第三方面第一至二种可能的实现方式中任意一种,在第三方面第三种可能的实现方式中,所述SDN控制器生成与所述MPLS标签组对应的转发设备QoS参数包括:SDN控制器获取所述应用层特征对应的应用层QoS参数;SDN控制器获取与所述应用层特征对应的QoS参数转换模型;SDN控制器使用所述QoS参数转换模型将所述应用层QoS参数转换为转发设备QoS参数,得到所述MPLS标签组对应的转发设备QoS参数。
结合第三方面或第三方面第一至三种可能的实现方式中任意一种,在第三方面第四种可能的实现方式中,所述SDN控制器将所述转发设备QoS参数下发至转发设备包括:SDN控制器生成OpenFlow计量表及OpenFlow流表,所述OpenFlow流表以所述MPLS标签组为匹配条件,所述OpenFlow流表的行为是转发所述数据流或者以OpenFlow计量表中指定的数据速率对数据流进行流控,所述数据速率与所述转发设备QoS参数相对应;SDN控制器将所述OpenFlow计量表及所述OpenFlow流表下发至转发设备。
结合第三方面或第三方面第一至四种可能的实现方式中任意一种,在第三方面第五种可能的实现方式中,所述方法还包括:SDN控制器接收转发设备上报的流量统计数据;SDN控制器使用所述流量统计数据更新所述QoS参数转换模型,得到当前QoS参数转换模型;SDN控制器使用所述当前QoS参数转换模型将所述应用层QoS参数转换为转发设备当前QoS参数;SDN控制器将所述转发设备当前QoS参数下发至转发设备,以便于所述转发设备在转发包含所述MPLS标签组的数据流时,按照所述转发设备当前QoS参数对所述数据流进行QoS控制。
第四方面,本发明实施例提供了一种SDN中转发设备的QoS控制方法,该方法包括:
转发设备获取数据流的MPLS标签组,所述MPLS标签组与所述数据流的应用层特征相对应;转发设备接收与所述MPLS标签组对应的转发设备QoS参数;转发设备在转发数据流时,使用所述转发设备QoS参数对所述数据流进行服务质量控制。
结合第四方面,在第四方面第一种可能的实现方式中,所述转发设备获取MPLS标签组包括:转发设备从所述数据流的数据包中获取所述MPLS标签组。
结合第四方面,在第四方面第二种可能的实现方式中,所述转发设备获取MPLS标签组包括:转发设备将所述数据流的首数据包发送至控制器;转发设备接收控制器为所述数据流分配的MPLS标签组;所述转发设备接收与所述MPLS标签组对应的转发设备QoS参数包括:转发设备接收所述SDN控制器发送的转发设备QoS参数,所述转发设备QoS参数由所述SDN控制器根据所述应用层特征对应的应用层QoS参数生成。
结合第四方面,在第四方面第三种可能的实现方式中,所述转发设备接收与所述MPLS标签组对应的转发设备QoS参数包括:转发设备接收SDN控制器发送的OpenFlow计量表及OpenFlow流表,所述OpenFlow流表以所述MPLS标签组作为匹配条件,所述OpenFlow流表的行为是转发所述数据流或者以OpenFlow计量表中指定的数据速率对数据流进行流控,所述数据速率与所述转发设备QoS参数相对应;所述转发设备使用所述转发设备QoS参数对所述数据流进行服务质量控制包括:转发设备按照所述OpenFlow流表的行为转发所述数据流或者以OpenFlow计量表中指定的数据速率对数据流进行流控。
结合第四方面第一种可能的实现方式,在第四方面第三种可能的实现方式中,所述方法还包括:转发设备为所述数据流的数据包添加所述MPLS标签组。
结合第四方面或第四方面第一至三种可能的实现方式中任意一种,在第四方面第四种可能的实现方式中,转发设备生成所述数据流的流量统计数据;转发设备将所述流量统计数据发送至SDN控制器;转发设备接收SDN控制器下发的转发设备当前QoS参数,所述转发设备当前QoS参数由所述SDN控制器根据所述流量统计数据生成;转发设备在转发所述数据流时,使用所述转发设备当前QoS参数对所述数据流进行服务质量控制。
第五方面,本发明实施例提供了一种SDN中转发设备的QoS控制装置,该装置包括:
获取单元,用于SDN控制器获取数据流的应用层标识;生成单元,用于根据应用层标识生成所述数据流转发路径上的转发设备所适用的转发设备QoS参数;发送单元,用于将所述转发设备QoS参数下发至转发设备,以便于所述转发设备在转发包含所述应用层标识的数据流时,按照所述转发设备QoS参数对所述数据流进行QoS控制。
结合第五方面,在第五方面第一种可能的实现方式中,所述获取单元包括:接收子单元,用于接收所述数据流的首数据包;解析子单元,用于从所述首数据包的指定字段中解析出所述应用层标识。
结合第五方面第一种可能的实现方式,在第五方面第二种可能的实现方式中,所述解析子单元,用于从所述首数据包包头域中获取所述应用层标识。
结合第五方面,在第五方面第三种可能的实现方式中,所述获取单元,具体用于接收所述应用层标识,所述应用层标识由所述转发设备发送。
结合第五方面或第五方面第一至三种可能的实现方式中任意一种,在第五方面第四种可能的实现方式中,所述生成单元包括:参数获取子单元,用于获取所述应用层标识对应的应用层QoS参数;模型获取子单元,用于获取与所述应用层标识对应的QoS参数转换模型;参数生成子单元,用于使用所述QoS参数转换模型将所述应用层QoS参数转换为转发设备QoS参数。
结合第五方面或第五方面第一至四种可能的实现方式中任意一种,在第五方面第五种可能的实现方式中,所述发送单元包括:流表生成子单元,用于生成OpenFlow计量表及OpenFlow流表,所述OpenFlow流表以所述应用层标识作为匹配条件,所述OpenFlow流表的行为是转发所述数据流或者以OpenFlow计量表中指定的数据速率对数据流进行流控,所述数据速率与所述转发设备QoS参数相对应;流表下发子单元,用于将所述OpenFlow计量表及所述OpenFlow流表下发至转发设备。
结合第五方面或第五方面第一至五种可能的实现方式中任意一种,在第五方面第六种可能的实现方式中,所述装置还还包括接收单元及更新单元;所述接收单元,用于接收转发设备上报的流量统计数据;所述更新单元,用于用所述流量统计数据更新所述QoS参数转换模型,得到当前QoS参数转换模型;所述生成单元,还用于使用所述当前QoS参数转换模型将所述应用层服务质量参数转换为转发设备当前QoS参数;所述发送单元,还用于将所述转发设备当前QoS参数下发至转发设备,以便于所述转发设备在转发包含所述应用层标识的数据流时,按照所述转发设备当前QoS参数对所述数据流进行QoS控制。
第六方面,本发明实施例提供了一种SDN中转发设备的QoS控制装置,该装置包括:
获取单元,用于获取SDN控制器下发的转发设备QoS参数,所述转发设备QoS参数由控制器根据数据流的应用层标识生成;控制单元,用于在转发包含所述应用层标识的数据流时,使用所述转发设备QoS参数对所述数据流进行服务质量控制。
结合第六方面,在第六方面第一种可能的实现方式中,所述获取单元包括:第一数据流获取子单元,用于获取数据流;标识获取子单元,用于从所述数据流首数据包的指定字段中获取所述应用层标识;标识上报子单元,用于将所述应用层标识上报至SDN控制器;第一参数接收子单元,用于接收SDN控制器发送的转发设备QoS参数,所述转发设备QoS参数由所述SDN控制器根据所述应用层标识对应的应用层QoS参数生成。
结合第六方面第一种可能的实现方式,在第六方面第二种可能的实现方式中,所述标识获取子单元,具体用于从所述首数据包的包头域中获取所述应用层标识。
结合第六方面,在第六方面第三种可能的实现方式中,所述获取单元包括:第二数据流获取子单元,用于获取数据流;数据包上报子单元,用于将所述数据流的首数据包上报至控制器;第二参数接收子单元,用于接收SDN控制器发送的转发设备QoS参数,所述转发设备QoS参数由所述SDN控制器根据所述首数据包中应用层标识对应的应用层QoS参数生成。
结合第六方面,在第六方面第四种可能的实现方式中,所述获取单元,具体用于接收SDN控制器发送的OpenFlow计量表及OpenFlow流表,所述OpenFlow流表以所述应用层标识作为匹配条件,所述OpenFlow流表的行为是转发所述数据流或者以OpenFlow计量表中指定的数据速率对数据流进行流控,所述数据速率与所述转发设备QoS参数相对应;所述控制单元,具体用于按照所述OpenFlow流表的行为转发所述数据流或者以OpenFlow计量表中指定的数据速率对数据流进行流控。
结合第六方面或第六方面第一至四种可能的实现方式中的任意一种,在第六方面第五种可能的实现方式中,所述装置还包括统计单元及发送单元;所述统计单元,用于生成所述数据流的流量统计数据;所述发送单元,用于将所述流量统计数据发送至SDN控制器;所述接收单元,还用于接收SDN控制器下发的转发设备当前QoS参数,所述转发设备当前QoS参数由所述SDN控制器根据所述流量统计数据生成;所述控制单元,还用于在转发包含所述应用层标识的数据流时,使用所述转发设备当前QoS参数对所述数据流进行服务质量控制。
第七方面,本发明实施例提供了一种SDN中转发设备的QoS控制装置,该装置包括:
获取单元,用于获取数据流的应用层特征;分配单元,用于为所述数据流分配与所述应用层特征对应的MPLS标签组;指示单元,用于指示所述数据流转发路径的转发设备为所述数据流包含的数据包添加所述MPLS标签组;生成单元,用于生成与所述MPLS标签组对应的转发设备QoS参数;发送单元,用于将所述转发设备QoS参数下发至转发设备,以便于所述转发设备在转发数据包包含MPLS标签组的数据流时,按照所述转发设备QoS参数进行QoS控制。
结合第七方面,在第七方面第一种可能的实现方式中,所述获取单元包括:数据包获取子单元,用于获取数据流的首数据包;特征解析子单元,用于解析所述首数据包的应用层特征。
结合第七方面第一种可能的实现方式,在第七方面第二种可能的实现方式中,所述特征解析子单元,具体用于从所述首数据包的包头域中获取所述应用层标识;获取与所述应用层标识对应的应用层特征。
结合第七方面或第七方面第一至二种可能的实现方式中任意一种,在第七方面第三种可能的实现方式中,所述生成单元包括:参数获取子单元,用于获取所述应用层标识对应的应用层QoS参数;模型获取子单元,用于获取与所述应用层标识对应的QoS参数转换模型;参数生成子单元,用于使用所述QoS参数转换模型将所述应用层QoS参数转换为转发设备QoS参数。
结合第七方面或第七方面第一至三种可能的实现方式中任意一种,在第七方面第四种可能的实现方式中,所述发送单元包括:流表生成子单元,用于生成OpenFlow计量表及OpenFlow流表,所述OpenFlow流表以所述MPLS标签组为匹配条件,所述OpenFlow流表的行为是转发所述数据流或者以OpenFlow计量表中指定的数据速率对数据流进行流控,所述数据速率与所述转发设备QoS参数相对应;流表下发子单元,用于将所述OpenFlow计量表及所述OpenFlow流表下发至转发设备。
结合第七方面或第七方面第一至四种可能的实现方式中任意一种,在第七方面第五种可能的实现方式中,所述装置还包括接收单元及更新单元;所述接收单元,用于接收转发设备上报的流量统计数据;所述更新单元,用于用所述流量统计数据更新所述QoS参数转换模型,得到当前QoS参数转换模型;所述生成单元,还用于使用所述当前QoS参数转换模型将所述应用层服务质量参数转换为转发设备当前QoS参数;所述发送单元1105,还用于将所述转发设备当前QoS参数下发至转发设备,以便于所述转发设备在转发包含所述应用层标识的数据流时,按照所述转发设备当前QoS参数对所述数据流进行QoS控制。
第八方面,本发明实施例提供了一种SDN中转发设备的QoS控制装置,该装置包括:
所述装置包括:获取单元,用于获取数据流的MPLS标签组,所述MPLS标签组与所述数据流的应用层特征相对应;接收单元,用于接收与所述MPLS标签组对应的转发设备QoS参数;控制单元,用于在转发数据流时,使用所述转发设备QoS参数对所述数据流进行服务质量控制。
结合第八方面,在第八方面第一种可能的实现方式中,所述获取单元,具体用于从所述数据流的数据包中获取所述MPLS标签组。
结合第八方面,在第八方面第二种可能的实现方式中,所述获取单元包括:数据包上报子单元,用于将所述数据流的首数据包发送至控制器;MPLS标签组接收子单元,用于接收控制器为所述数据流分配的MPLS标签组;所述接收单元,用于接收所述SDN控制器发送的转发设备QoS参数,所述转发设备QoS参数由所述SDN控制器根据所述应用层特征对应的应用层QoS参数生成。
结合第八方面,在第八方面第三种可能的实现方式中,所述接收单元,具体用于接收SDN控制器发送的OpenFlow计量表及OpenFlow流表,所述OpenFlow流表以所述MPLS标签组作为匹配条件,所述OpenFlow流表的行为是转发所述数据流或者以OpenFlow计量表中指定的数据速率对数据流进行流控,所述数据速率与所述转发设备QoS参数相对应;所述控制单元,具体用于按照所述OpenFlow流表的行为转发所述数据流或者以OpenFlow计量表中指定的数据速率对数据流进行流控。
结合第八方面第一种可能的实现方式,在第八方面第三种可能的实现方式中,所述获取单元还包括:标签添加单元,用于为所述数据流的数据包添加所述MPLS标签组。
结合第八方面或第八方面第一至三种可能的实现方式中任意一种,在第八方面第四种可能的实现方式中,所述装置还包括统计单元及发送单元;所述统计单元,用于生成所述数据流的流量统计数据;所述发送单元,用于将所述流量统计数据发送至SDN控制器;所述接收单元,还用于接收SDN控制器下发的转发设备当前QoS参数,所述转发设备当前QoS参数由所述SDN控制器根据所述流量统计数据生成;所述控制单元,还用于在转发包含所述应用层标识的数据流时,使用所述转发设备当前QoS参数对所述数据流进行服务质量控制。
本发明实施例中,SDN控制器获取数据流的应用层标识;SDN控制器根据应用层标识生成所述数据流转发路径上的转发设备所适用的转发设备QoS参数;SDN控制器将所述转发设备QoS参数下发至转发设备,以便于所述转发设备在转发包含所述应用层标识的数据流时,按照所述转发设备QoS参数对所述数据流进行QoS控制。在本发明实施例中,SDN控制器可以根据数据流中携带的应用层标识,确定数据流的应用层QoS参数,然后将应用层QoS参数转换为转发设备QoS参数并下发至转发设备。转发设备可以按照SDN控制器下发的转发设备QoS参数,对携带的应用层标识的数据流进行QoS控制,从而满足SDN中基于应用层业务进行QoS控制的需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明SDN中转发设备的QoS控制方法一个实施例的流程图;
图2为本发明SDN中转发设备的QoS控制方法另一个实施例的流程图;
图3为本发明SDN中转发设备的QoS控制方法另一个实施例的流程图;
图4为本发明SDN中转发设备的QoS控制方法另一个实施例的流程图;
图5为本发明SDN中转发设备的QoS控制方法另一个实施例的流程图;
图6为本发明SDN中转发设备的QoS控制方法另一个实施例的流程图;
图7为本发明SDN中转发设备的QoS控制方法另一个实施例的流程图;
图8为本发明SDN中转发设备的QoS控制方法另一个实施例的流程图;
图9为本发明SDN中转发设备的QoS控制装置一个实施例的结构示意图;
图10为本发明SDN中转发设备的QoS控制装置另一个实施例的结构示意图;
图11为本发明SDN中转发设备的QoS控制装置另一个实施例的结构示意图;
图12为本发明SDN中转发设备的QoS控制装置另一个实施例的结构示意图;
图13为本发明SDN中转发设备的QoS控制装置另一个实施例的结构示意图;
图14为本发明SDN中转发设备的QoS控制装置另一个实施例的结构示意图;
图15为本发明SDN中转发设备的QoS控制装置另一个实施例的结构示意图;
图16为本发明SDN中转发设备的QoS控制装置另一个实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中,数据流的应用层特征包括但不限于所述数据流所采用的应用层传输协议,所述数据流的优先级,所述数据流对应用户等特征或特征的组合。
本发明实施例中,数据流的应用层标识为可以反映数据流的应用层特征的标识。该应用层标识可以由多个子标识组合而成,其中,每一个子标识可以表示该数据流的一个应用层特征。例如,应用层标识可以由表示所述数据流所采用的应用层传输协议的协议类型标识及表示所述数据流对应用户的用户标识等组合而成。
本发明实施例中,MPLS标签组与数据流的应用层特征相对应,可以用于反映数据流的应用层特征。当数据流转发路径包含多个转发设备时,可以针对数据流的应用层特征结合每个转发设备的负载情况为每个转发设备分配不同的MPLS标签,多个转发设备的MPLS标签组合成为MPLS标签组。
在使用本发明实施例时,可以扩展OpenFlow协议,使得数据包的包头域中携带应用层标识,并使SDN控制器具有从数据流的数据包中解析应用层标识的能力。
参见图1,为本发明SDN中转发设备的QoS控制方法一个实施例的流程图。本实施例可以由SDN中的SDN控制器执行。如图1所示,该方法包括如下步骤:
步骤101,SDN控制器获取数据流的应用层标识。
SDN控制器获取数据流的应用层标识的方式可以有多种。
在一种可能实现方式中,当虚拟交换机(vSwitch)等转发设备收到数据流的首数据包时,可以使用OpenFlow协议Packet in消息将首数据包发送至SDN控制器。SDN控制器在获取所述数据流的首数据包后,可以从所述首数据包的包头域中获取所述应用层标识。
在另一种可能实现方式中,当虚拟交换机等转发设备收到数据流的首数据包时,可以将数据包复制一份,并将复制的数据包转发给DPI模块。DPI模块从所述首数据包中解析出所述应用层标识后,将应用层标识返回给转发设备;转发设备再将接收到的应用层标识发送至SDN控制器。其中,DPI模块可以嵌入在虚拟层(hypervisor)。
步骤102,SDN控制器根据应用层标识生成所述数据流转发路径上的转发设备所适用的转发设备QoS参数。
由于数据流应用层QoS参数与数据流的应用层特征相对应,因此根据应用层标识可以确定数据流的应用层QoS参数。在生成转发设备QoS参数时,SDN控制器可以首先获取所述应用层标识对应的应用层QoS参数;SDN控制器获取与所述应用层标识对应的QoS参数转换模型;SDN控制器使用所述QoS参数转换模型将所述应用层QoS参数转换为转发设备QoS参数。所述QoS参数转换模型可以由技术人员预先设置,也可以由SDN控制器依据该数据流的转发路径采用机器学习算法生成,其中,所述转发路径可以由多个转发设备构成。例如,可以在区分服务(DiffServ)模型基础上,结合数据流应用层特征及转发设备的性能生成转发设备QoS参数。
步骤103,SDN控制器将所述转发设备QoS参数下发至转发设备,以便于所述转发设备在转发包含所述应用层标识的数据流时,按照所述转发设备QoS参数对所述数据流进行QoS控制。
SDN控制器在向转发设备下发转发设备QoS参数时,可以生成与转发设备QoS参数对应的OpenFlow计量表及OpenFlow流表;然后将该OpenFlow计量表及OpenFlow流表下发至转发设备。OpenFlow流表中可以使用应用层标识作为匹配条件,OpenFlow流表行为是转发所述数据流或者以OpenFlow计量表中指定的数据速率对数据流进行流控,从而实现按照所述转发设备QoS参数对所述数据流进行QoS控制。
转发设备在接收该OpenFlow流表后,根据该OpenFlow流表中与应用层标识对应的OpenFlow流表行为,对数据流进行转发和流控等,从而实现按照所述转发设备QoS参数对所述数据流进行QoS控制。
由于在数据流传输的过程中,各个转发设备的负载及数据流的流量可能会发生变化,因SDN控制器还需要根据需要实时的调整转发设备QoS参数。因此,如图2所示,在步骤103之后还可以包括:
步骤104,SDN控制器接收转发设备上报的流量统计数据。
转发设备在转发包含所述应用层标识的数据流时,可以对该数据流的传输速率、流控、转发性能等进行统计生成流量统计数据,然后将流量统计数据发送至SDN控制器。
步骤105,SDN控制器使用所述流量统计数据更新所述QoS参数转换模型,得到当前QoS参数转换模型。
SDN控制器获取多所述流量统计数据后,计算流量统计数据与QoS参数对应的流量参考数据之间差距,并根据该差距对QoS参数转换模型进行调整,从而得到当前QoS参数转换模型。
例如,可以采用多维线性拟合计算流量统计数据与QoS参数对应的流量参考数据之间差距,然后将该差距作为流量调整的影响系数添加到QoS参数转换模型中,从而得到当前QoS参数转换模型。或者,也可以采用其他机器学习算法生成当前QoS参数转换模型。
步骤106,SDN控制器使用所述当前QoS参数转换模型将所述应用层服务质量参数转换为转发设备当前QoS参数。
在当前QoS参数转换模型生成后,SDN控制器可以先获取所述应用层标识对应的应用层QoS参数;然后使用所述当前QoS参数转换模型将所述应用层QoS参数转换为转发设备当前QoS参数。
步骤107,SDN控制器将所述转发设备当前QoS参数下发至转发设备,以便于所述转发设备在转发包含所述应用层标识的数据流时,按照所述转发设备当前QoS参数对所述数据流进行QoS控制。
转发设备当前QoS参数也可以采用OpenFlow流表形式下发,其中,OpenFlow流表的匹配项仍为所述应用层标识,OpenFlow流表行为是转发所述数据流或者以转发设备当前QoS参数对应的数据速率对数据流进行流控。具体来说,SDN控制器在向转发设备下发转发设备当前QoS参数时,可以生成与转发设备当前QoS参数对应的OpenFlow计量表及OpenFlow流表;然后将该OpenFlow计量表及OpenFlow流表下发至转发设备。OpenFlow流表中可以使用应用层标识作为匹配条件,OpenFlow流表行为是转发所述数据流或者以OpenFlow计量表中指定的数据速率对数据流进行流控。
从上述实施例可以看出,SDN控制器可以根据数据流中携带的应用层标识,确定数据流的应用层QoS参数,然后将应用层QoS参数转换为转发设备QoS参数并下发至转发设备。转发设备可以按照SDN控制器下发的转发设备QoS参数,对携带的应用层标识的数据流进行QoS控制,从而满足SDN中基于应用层业务进行QoS控制的需求。
参见图3,为本发明SDN中转发设备的QoS控制方法一个实施例的流程图。本实施例可以由SDN中的网络设备执行。如图3所示,该方法包括如下步骤:
步骤301,转发设备获取SDN控制器下发的转发设备QoS参数,所述转发设备QoS参数由控制器根据数据流的应用层标识生成。
转发设备可以在接收到数据流之前预先接收SDN控制器下发的转发设备QoS参数。也可以在接收到数据流之后请求SDN控制器下发的转发设备QoS参数。
在一种可能的实现方式中,转发设备在获取到数据流之后,可以从所述数据流首数据包的指定字段中获取所述应用层标识,并将所述应用层标识上报至SDN控制器;然后接收SDN控制器发送的转发设备QoS参数。其中,所述转发设备QoS参数由所述SDN控制器根据所述应用层标识对应的应用层QoS参数生成。
在另一种可能的实现方式中,转发设备在获取到数据流之后,可以将所述数据流的首数据包上报至控制器;然后接收SDN控制器发送的转发设备QoS参数,所述转发设备QoS参数由所述SDN控制器根据所述首数据包中应用层标识对应的应用层QoS参数生成。
转发设备QoS参数可以为OpenFlow计量表及OpenFlow流表形式。OpenFlow计量表及OpenFlow流表的具体内容可以参见前述实施例,在此就不再赘述。
步骤302,转发设备在转发包含所述应用层标识的数据流时,使用所述转发设备QoS参数对所述数据流进行服务质量控制。
在接收到转发设备QoS参数后,可以在数据流转发过程中使用所述转发设备QoS参数对所述数据流进行服务质量控制。
例如,转发设备在接收OpenFlow流表形式的QoS参数后,可以根据该OpenFlow流表中与应用层标识对应的OpenFlow流表行为及OpenFlow计量表的具体内容对数据流进行转发和流控,从而实现按照所述转发设备QoS参数对所述数据流进行QoS控制。
由于在数据流传输的过程中,各个转发设备的负载及数据流的流量可能会发生变化,因SDN控制器还需要根据需要实时的调整转发设备QoS参数。因此,如图4所示,在步骤302之后还可以包括:
步骤303,转发设备生成所述数据流的流量统计数据。
转发设备在转发包含所述应用层标识的数据流时,可以对该数据流的传输速率、流控、转发性能等进行统计生成流量统计数据,然后将流量统计数据发送至SDN控制器。
步骤304,转发设备将所述流量统计数据发送至SDN控制器。
步骤305,接收SDN控制器下发的转发设备当前QoS参数,所述转发设备当前QoS参数由所述SDN控制器根据所述流量统计数据生成。
SDN控制器在接收到所述流量统计数据后,可以根据所述流量统计数据生成转发设备当前QoS参数。转发设备当前QoS参数也可以为OpenFlow计量表及OpenFlow流表形式。OpenFlow计量表及OpenFlow流表的具体内容可以参见前述实施例,具体的过程在此就不再赘述。
步骤306,转发设备在转发包含所述应用层标识的数据流时,使用所述转发设备当前QoS参数对所述数据流进行服务质量控制。
在接收到转发设备当前QoS参数后,可以在数据流转发过程中使用所述转发设备当前QoS参数对所述数据流进行服务质量控制。使用转发设备当前QoS参数对所述数据流进行服务质量控制的具体方式可以参见步骤302,在此就不再进行赘述。
从上述实施例可以看出,SDN控制器可以根据数据流中携带的应用层标识,确定数据流的应用层QoS参数,然后将应用层QoS参数转换为转发设备QoS参数并下发至转发设备。转发设备可以按照SDN控制器下发的转发设备QoS参数,对携带的应用层标识的数据流进行QoS控制,从而满足SDN中基于应用层业务进行QoS控制的需求。
参见图5,为本发明SDN中转发设备的QoS控制方法一个实施例的流程图。本实施例可以由SDN中的SDN控制器执行。如图5所示,该方法包括如下步骤:
步骤501,SDN控制器获取数据流的应用层特征。
SDN控制器获取数据流的应用层特征的方式可以有多种。SDN控制器可以首先从所述数据流数据包的指定字段中获取数据流的应用层标识,从而根据该应用层标识确定数据流的应用层特征;SDN控制器也可以分析所述数据流的数据包,从而获得所述数据流的应用层特征。
步骤502,SDN控制器为所述数据流分配与所述应用层特征对应的MPLS标签组。
SDN控制器为所述数据流分配与所述应用层特征对应的MPLS标签组,以用MPLS标签组来区分不同的数据流。其中,所述MPLS标签组可以由一个或多个MPLS标签对应。例如,当数据流转发路径包含多个转发设备时,可以针对数据流的应用层特征结合每个转发设备的负载情况为每个转发设备分配不同的MPLS标签,多个转发设备的MPLS标签组合成为MPLS标签组。
步骤503,SDN控制器指示所述数据流转发路径的转发设备为所述数据流包含的数据包添加所述MPLS标签组。
在数据流的MPLS标签组确定之后,SDN控制器可以指示所述数据流转发路径的首转发设备为所述的数据包添加所述MPLS标签组。
步骤504,SDN控制器生成与所述MPLS标签组对应的转发设备QoS参数。
由于MPLS标签组与数据流的应用层特征相对应,因此MPLS标签组也可以像应用层标识那样反应数据流的应用层特征。在生成转发设备QoS参数时,SDN控制器可以首先获取所述MPLS标签对应的应用层QoS参数;SDN控制器获取与所述应用层特征对应的QoS参数转换模型;SDN控制器使用所述QoS参数转换模型将所述应用层QoS参数转换为转发设备QoS参数。其中,所述QoS参数转换模型可以有技术人员预先设置。
步骤505,SDN控制器将所述转发设备QoS参数下发至转发设备,以便于所述转发设备在转发数据包包含MPLS标签组的数据流时,按照所述转发设备QoS参数进行QoS控制。
SDN控制器在向转发设备下发转发设备QoS参数时,可以生成与转发设备QoS参数对应的OpenFlow计量表及OpenFlow流表;然后将该OpenFlow计量表及OpenFlow流表下发至转发设备;OpenFlow流表中使用所述MPLS标签组作为匹配条件,OpenFlow流表行为是是转发所述数据流或者以OpenFlow计量表中指定的数据速率对数据流进行流控。然后将该OpenFlow计量表及OpenFlow流表下发至转发设备。转发设备在接收该OpenFlow计量表及OpenFlow流表后,可以根据该OpenFlow流表中与所述MPLS标签组对应的OpenFlow流表行为,对数据流进行转发或者以OpenFlow计量表中指定的数据速率对数据流进行流控,从而实现按照所述转发设备QoS参数对所述数据流进行QoS控制。
由于在数据流传输的过程中,各个转发设备的负载及数据流的流量可能会发生变化,因SDN控制器还需要根据需要实时的调整转发设备QoS参数。因此,如图6所示,在步骤505之后还可以包括:
步骤506,SDN控制器接收转发设备上报的流量统计数据。
转发设备在转发包含所述应用层特征的数据流时,可以对该数据流的传输速率、流控、转发性能等进行统计生成流量统计数据,然后将流量统计数据发送至SDN控制器。
步骤507,SDN控制器使用所述流量统计数据更新所述QoS参数转换模型,得到当前QoS参数转换模型。
SDN控制器获取到所述流量统计数据后,计算流量统计数据与QoS参数对应的流量参考数据之间差距,并根据该差距对QoS参数转换模型进行调整,从而得到当前QoS参数转换模型。例如,可以采用多维线性拟合计算流量统计数据与QoS参数对应的流量参考数据之间差距,然后将该差距作为流量调整的影响系数添加到QoS参数转换模型中,从而得到当前QoS参数转换模型。或者,也可以采用其他机器学习算法生成当前QoS参数转换模型。
步骤508,SDN控制器使用所述当前QoS参数转换模型将所述应用层QoS参数转换为转发设备当前QoS参数。
在当前QoS参数转换模型生成后,SDN控制器可以先获取所述应用层特征对应的应用层QoS参数;然后使用所述当前QoS参数转换模型将所述应用层QoS参数转换为转发设备当前QoS参数。
步骤509,SDN控制器将所述转发设备当前QoS参数下发至转发设备,以便于所述转发设备在转发包含所述MPLS标签组的数据流时,按照所述转发设备当前QoS参数对所述数据流进行QoS控制。
转发设备当前QoS参数也可以采用OpenFlow计量表及OpenFlow流表形式下发,其中,OpenFlow流表的匹配项仍为所述MPLS标签组,OpenFlow流表行为是是转发所述数据流或者以OpenFlow计量表中指定的数据速率对数据流进行流控。具体方式可以参见步骤505,在此就不再赘述。
从上述实施例可以看出,SDN控制器可以根据数据流的应用层特征,为数据流分配MPLS标签组,并将数据流的应用层QoS参数转换为转发设备QoS参数并下发至转发设备。从而使发设备可以按照SDN控制器下发的转发设备QoS参数,对包含所述MPLS标签组的所述数据流进行QoS控制,从而满足SDN中基于应用层业务进行QoS控制的需求。
参见图7,为本发明SDN中转发设备的QoS控制方法一个实施例的流程图。本实施例可以由SDN中的转发设备执行。如图7所示,该方法包括如下步骤:
步骤701,转发设备获取数据流的MPLS标签组,所述MPLS标签组与所述数据流的应用层特征相对应。
由于源设备在发送数据流时,可能并未给数据流的数据包打上MPLS标签组。当接收到未包含MPLS标签的数据流时,转发设备可以将所述数据流的首数据包发送至控制器;然后接收控制器为所述数据流分配的MPLS标签组。转发设备如果接收到未包含MPLS标签的数据流,在接收到所述MPLS标签组后,转发设备可以为所述数据流的数据包添加所述MPLS标签组,以便于后续转发设备对数据流进行处理。当接收到已包含MPLS标签的数据流时,转发设备从所述数据流的数据包中获取所述MPLS标签组。
步骤702,转发设备获取与所述MPLS标签组对应的转发设备QoS参数。
转发设备在获取到所述MPLS标签组后,获取与所述MPLS标签组对应的转发设备QoS参数。所述转发设备QoS参数同样也可以为OpenFlow计量表及OpenFlow流表形式。OpenFlow流表中使用所述MPLS标签组作为匹配条件,OpenFlow流表行为是转发所述数据流或者以OpenFlow计量表中指定的数据速率对数据流进行流控。该OpenFlow计量表及OpenFlow流表可以由SDN控制器预先下发给转发设备,也可以由SDN控制器为所述数据流分配的MPLS标签组后下发给转发设备。
步骤703,转发设备在转发数据流时,使用所述转发设备QoS参数对所述数据流进行服务质量控制。
转发设备在转发数据流时,可以使用SDN控制器下发的转发设备QoS参数对所述数据流进行服务质量控制。例如,转发设备在接收该OpenFlow计量表及OpenFlow流表后,可以根据该OpenFlow流表中与所述MPLS标签组对应的OpenFlow流表行为,对数据流进行转发或者以OpenFlow计量表中指定的数据速率对数据流进行流控,从而实现按照所述转发设备QoS参数对所述数据流进行QoS控制。
由于在数据流传输的过程中,各个转发设备的负载及数据流的流量可能会发生变化,因SDN控制器还需要根据需要实时的调整转发设备QoS参数。因此,如图8所示,在步骤703之后还可以包括:
步骤704,转发设备生成所述数据流的流量统计数据。
转发设备在转发所述数据流时,可以对该数据流的传输速率、流控、转发性能等进行统计生成流量统计数据,然后将流量统计数据发送至SDN控制器。
步骤705,转发设备将所述流量统计数据发送至SDN控制器。
步骤706,转发设备接收SDN控制器下发的转发设备当前QoS参数,所述转发设备当前QoS参数由所述SDN控制器根据所述流量统计数据生成。
SDN控制器在接收到所述流量统计数据后,可以根据所述流量统计数据生成转发设备当前QoS参数,并将所述转发设备当前QoS参数下发至转发设备。转发设备当前QoS参数也可以采用OpenFlow计量表及OpenFlow流表形式下发,其中,OpenFlow流表的匹配项仍为所述MPLS标签组,OpenFlow流表行为是转发所述数据流或者以OpenFlow计量表中指定的数据速率对数据流进行流控。转发设备当前QoS参数的生成过程可以参见前述实施例,在此就不再赘述。
步骤707,转发设备在转发所述数据流时,使用所述转发设备当前QoS参数对所述数据流进行服务质量控制。
在接收到转发设备当前QoS参数后,可以在数据流转发过程中使用所述转发设备当前QoS参数对所述数据流进行服务质量控制。使用转发设备当前QoS参数对所述数据流进行服务质量控制的具体方式可以参见步骤703,在此就不再进行赘述。
从上述实施例可以看出,SDN控制器可以根据数据流的应用层特征,为数据流分配MPLS标签组,并将数据流的应用层QoS参数转换为转发设备QoS参数并下发至转发设备。从而使转发设备可以按照SDN控制器下发的转发设备QoS参数,对所述包含所述MPLS标签组的数据流进行QoS控制,从而满足SDN中基于应用层业务进行QoS控制的需求。
与本发明转发设备的服务质量QoS控制方法相对应,本发明还提供了转发设备的服务质量QoS控制装置。
参见图9,为本发明QoS控制装置一个实施例的结构示意图。该QoS控制装置可以设置在SDN控制器上。
如图9所示,该装置包括:获取单元901、生成单元902及发送单元903。
其中,获取单元901,用于SDN控制器获取数据流的应用层标识;生成单元902,用于根据应用层标识生成所述数据流转发路径上的转发设备所适用的转发设备QoS参数;发送单元903,用于将所述转发设备QoS参数下发至转发设备,以便于所述转发设备在转发包含所述应用层标识的数据流时,按照所述转发设备QoS参数对所述数据流进行QoS控制。
可选的,所述获取单元901包括:接收子单元,用于接收所述数据流的首数据包;解析子单元,用于从所述首数据包的指定字段中解析出所述应用层标识。
可选的,所述解析子单元,用于从所述首数据包包头域中获取所述应用层标识。
可选的,所述获取单元901,具体用于接收所述应用层标识,所述应用层标识由所述转发设备发送。
可选的,所述生成单元902包括:参数获取子单元,用于获取所述应用层标识对应的应用层QoS参数;模型获取子单元,用于获取与所述应用层标识对应的QoS参数转换模型;参数生成子单元,用于使用所述QoS参数转换模型将所述应用层QoS参数转换为转发设备QoS参数。
可选的,所述发送单元903包括:流表生成子单元,用于生成OpenFlow计量表及OpenFlow流表,所述OpenFlow流表以所述应用层标识作为匹配条件,所述OpenFlow流表的行为是转发所述数据流或者以OpenFlow计量表中指定的数据速率对数据流进行流控,所述数据速率与所述转发设备QoS参数相对应;流表下发子单元,用于将所述OpenFlow计量表及所述OpenFlow流表下发至转发设备。
可选的,所述装置还还包括接收单元及更新单元;所述接收单元,用于接收转发设备上报的流量统计数据;所述更新单元,用于用所述流量统计数据更新所述QoS参数转换模型,得到当前QoS参数转换模型;所述生成单元902,还用于使用所述当前QoS参数转换模型将所述应用层服务质量参数转换为转发设备当前QoS参数;所述发送单元903,还用于将所述转发设备当前QoS参数下发至转发设备,以便于所述转发设备在转发包含所述应用层标识的数据流时,按照所述转发设备当前QoS参数对所述数据流进行QoS控制。
参见图10,为本发明QoS控制装置一个实施例的结构示意图。该QoS控制装置可以设置在转发设备上。
如图10所示,该装置包括:获取单元1001及控制单元1002。
其中,所述获取单元1001,用于获取SDN控制器下发的转发设备QoS参数,所述转发设备QoS参数由控制器根据数据流的应用层标识生成;控制单元1002,用于在转发包含所述应用层标识的数据流时,使用所述转发设备QoS参数对所述数据流进行服务质量控制。
可选的,所述获取单元1001包括:第一数据流获取子单元,用于获取数据流;标识获取子单元,用于从所述数据流首数据包的指定字段中获取所述应用层标识;标识上报子单元,用于将所述应用层标识上报至SDN控制器;第一参数接收子单元,用于接收SDN控制器发送的转发设备QoS参数,所述转发设备QoS参数由所述SDN控制器根据所述应用层标识对应的应用层QoS参数生成。
可选的,所述标识获取子单元,具体用于从所述首数据包的包头域中获取所述应用层标识。
可选的,所述获取单元1001包括:第二数据流获取子单元,用于获取数据流;数据包上报子单元,用于将所述数据流的首数据包上报至控制器;第二参数接收子单元,用于接收SDN控制器发送的转发设备QoS参数,所述转发设备QoS参数由所述SDN控制器根据所述首数据包中应用层标识对应的应用层QoS参数生成。
可选的,所述获取单元1001,具体用于接收SDN控制器发送的OpenFlow计量表及OpenFlow流表,所述OpenFlow流表以所述应用层标识作为匹配条件,所述OpenFlow流表的行为是转发所述数据流或者以OpenFlow计量表中指定的数据速率对数据流进行流控,所述数据速率与所述转发设备QoS参数相对应;所述控制单元1002,具体用于按照所述OpenFlow流表的行为转发所述数据流或者以OpenFlow计量表中指定的数据速率对数据流进行流控。
可选的,所述装置还包括统计单元及发送单元;所述统计单元,用于生成所述数据流的流量统计数据;所述发送单元,用于将所述流量统计数据发送至SDN控制器;所述接收单元,还用于接收SDN控制器下发的转发设备当前QoS参数,所述转发设备当前QoS参数由所述SDN控制器根据所述流量统计数据生成;所述控制单元1002,还用于在转发包含所述应用层标识的数据流时,使用所述转发设备当前QoS参数对所述数据流进行服务质量控制。
参见图11,为本发明QoS控制装置一个实施例的结构示意图。该QoS控制装置可以设置在SDN控制器上。
如图11所示,该装置包括:获取单元1101、分配单元1102、指示单元1103、生成单元1104及发送单元1105。
其中,获取单元1101,用于获取数据流的应用层特征;分配单元1102,用于为所述数据流分配与所述应用层特征对应的MPLS标签组;指示单元1103,用于指示所述数据流转发路径的转发设备为所述数据流包含的数据包添加所述MPLS标签组;生成单元1104,用于生成与所述MPLS标签组对应的转发设备QoS参数;发送单元1105,用于将所述转发设备QoS参数下发至转发设备,以便于所述转发设备在转发数据包包含MPLS标签组的数据流时,按照所述转发设备QoS参数进行QoS控制。
可选的,所述获取单元1101包括:数据包获取子单元,用于获取数据流的首数据包;特征解析子单元,用于解析所述首数据包的应用层特征。
可选的,所述特征解析子单元,具体用于从所述首数据包的包头域中获取所述应用层标识;获取与所述应用层标识对应的应用层特征。
可选的,所述生成单元1104包括:参数获取子单元,用于获取所述应用层标识对应的应用层QoS参数;模型获取子单元,用于获取与所述应用层标识对应的QoS参数转换模型;参数生成子单元,用于使用所述QoS参数转换模型将所述应用层QoS参数转换为转发设备QoS参数。
可选的,所述发送单元1105包括:流表生成子单元,用于生成OpenFlow计量表及OpenFlow流表,所述OpenFlow流表以所述MPLS标签组为匹配条件,所述OpenFlow流表的行为是转发所述数据流或者以OpenFlow计量表中指定的数据速率对数据流进行流控,所述数据速率与所述转发设备QoS参数相对应;流表下发子单元,用于将所述OpenFlow计量表及所述OpenFlow流表下发至转发设备。
可选的,所述装置还包括接收单元及更新单元;所述接收单元,用于接收转发设备上报的流量统计数据;所述更新单元,用于用所述流量统计数据更新所述QoS参数转换模型,得到当前QoS参数转换模型;所述生成单元,还用于使用所述当前QoS参数转换模型将所述应用层服务质量参数转换为转发设备当前QoS参数;所述发送单元1105,还用于将所述转发设备当前QoS参数下发至转发设备,以便于所述转发设备在转发包含所述应用层标识的数据流时,按照所述转发设备当前QoS参数对所述数据流进行QoS控制。
参见图12,为本发明QoS控制装置一个实施例的结构示意图。该QoS控制装置可以设置在转发设备上。
如图12所示,该装置可以包括:获取单元1201、接收单元1202及控制单元1203。
其中,获取单元1201,用于获取数据流的MPLS标签组,所述MPLS标签组与所述数据流的应用层特征相对应;接收单元1202,用于接收与所述MPLS标签组对应的转发设备QoS参数;控制单元1203,用于在转发数据流时,使用所述转发设备QoS参数对所述数据流进行服务质量控制。
可选的,所述获取单元1201,具体用于从所述数据流的数据包中获取所述MPLS标签组。
可选的,所述获取单元1201包括:数据包上报子单元,用于将所述数据流的首数据包发送至控制器;MPLS标签组接收子单元,用于接收控制器为所述数据流分配的MPLS标签组;所述接收单元1202,用于接收所述SDN控制器发送的转发设备QoS参数,所述转发设备QoS参数由所述SDN控制器根据所述应用层特征对应的应用层QoS参数生成。
可选的,所述接收单元1202,具体用于接收SDN控制器发送的OpenFlow计量表及OpenFlow流表,所述OpenFlow流表以所述MPLS标签组作为匹配条件,所述OpenFlow流表的行为是转发所述数据流或者以OpenFlow计量表中指定的数据速率对数据流进行流控,所述数据速率与所述转发设备QoS参数相对应;所述控制单元1203,具体用于按照所述OpenFlow流表的行为转发所述数据流或者以OpenFlow计量表中指定的数据速率对数据流进行流控。
可选的,所述获取单元1201还包括:标签添加单元,用于为所述数据流的数据包添加所述MPLS标签组。
可选的,所述装置还包括统计单元及发送单元;所述统计单元,用于生成所述数据流的流量统计数据;所述发送单元,用于将所述流量统计数据发送至SDN控制器;所述接收单元1202,还用于接收SDN控制器下发的转发设备当前QoS参数,所述转发设备当前QoS参数由所述SDN控制器根据所述流量统计数据生成;所述控制单元1203,还用于在转发包含所述应用层标识的数据流时,使用所述转发设备当前QoS参数对所述数据流进行服务质量控制。
如图13所示,为本发明QoS控制装置一个实施例的结构示意图。该QoS控制装置可以设置在SDN控制器上。
如图13所示,该装置可以包括:处理器1301、存储器1302及收发器1303。处理器1301、存储器1302及收发器1303之间互相连接。例如,所述处理器1301、存储器1302收发器1303可以通过总线1304连接。
其中,存储器1302用于存储计算机执行指令。具体地,程序可以包括程序代码,所述程序代码包括计算机执行指令。存储器1302可能包含随机存取存储器(random access memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器1302。
所述处理器1301用于获取数据流的应用层标识;根据应用层标识生成所述数据流转发路径上的转发设备所适用的转发设备QoS参数;通过收发器1303将所述转发设备QoS参数下发至转发设备,以便于所述转发设备在转发包含所述应用层标识的数据流时,按照所述转发设备QoS参数对所述数据流进行QoS控制。
如图14所示,为本发明QoS控制装置一个实施例的结构示意图。该QoS控制装置可以设置在转发设备上。
如图14所示,该装置可以包括:处理器1401、存储器1402及收发器1403。处理器1401、存储器1402及收发器1403之间互相连接。例如,所述处理器1401、存储器1402收发器1403可以通过总线1404连接。
其中,存储器1402用于存储计算机执行指令。具体地,程序可以包括程序代码,所述程序代码包括计算机执行指令。存储器1402可能包含随机存取存储器(random access memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器1402。
所述收发器1403用于接收SDN控制器下发的转发设备QoS参数,所述转发设备QoS参数由控制器根据数据流的应用层标识生成。所述处理器1401用于在转发包含所述应用层标识的数据流时,使用所述转发设备QoS参数对所述数据流进行服务质量控制。
如图15所示,为本发明QoS控制装置一个实施例的结构示意图。该QoS控制装置可以设置在SDN控制器上。
如图15所示,该装置可以包括:处理器1501、存储器1502及收发器1503。处理器1501、存储器1502及收发器1503之间互相连接。例如,所述处理器1501、存储器1502收发器1503可以通过总线1504连接。
其中,存储器1502用于存储计算机执行指令。具体地,程序可以包括程序代码,所述程序代码包括计算机执行指令。存储器1502可能包含随机存取存储器(random access memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器1502。
所述处理器1501,用于获取数据流的应用层特征;为所述数据流分配与所述应用层特征对应的MPLS标签组;指示所述数据流转发路径的转发设备为所述数据流包含的数据包添加所述MPLS标签组;生成与所述MPLS标签组对应的转发设备QoS参数;通过所述收发器1503将所述转发设备QoS参数下发至转发设备,以便于所述转发设备在转发数据包包含MPLS标签组的数据流时,按照所述转发设备QoS参数进行QoS控制。
如图16所示,为本发明QoS控制装置一个实施例的结构示意图。该QoS控制装置可以设置在转发设备上。
如图16所示,该装置可以包括:处理器1601、存储器1602及收发器1603。处理器1601、存储器1602及收发器1603之间互相连接。例如,所述处理器1601、存储器1602收发器1603可以通过总线1604连接。
其中,存储器1602用于存储计算机执行指令。具体地,程序可以包括程序代码,所述程序代码包括计算机执行指令。存储器1602可能包含随机存取存储器(random access memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器1602。
所述处理器1601用于获取数据流的MPLS标签组,所述MPLS标签组与所述数据流的应用层特征相对应;所述收发器1603用于接收与所述MPLS标签组对应的转发设备QoS参数;所述处理器1601还用于在转发数据流时,使用所述转发设备QoS参数对所述数据流进行服务质量控制。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者转发设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于实体装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。