一种传输数据的方法以及相关设备
技术领域
本申请涉及通信领域,尤其涉及一种传输数据的方法以及相关设备。
背景技术
开放流(Openflow)网络是一种可以由软件定义的新型网络架构,分离了传统网络中交换机的控制平面和数据转发平面,由集中式的控制器统一管理网络中的交换机,Openflow作为一种通信协议,是控制器和转发层面之间的进行通信的协议,Openflow通过将网络设备的控制面与数据转发面的分离,实现网络流量的灵活控制。Openflow通过流进行网络业务的标识,可以提供精确的粒度控制,使网络能及时响应应用层的实时变化。
Openflow网络结构中包括Openflow控制器与Openflow交换机,在Openflow控制器与Openflow交换机之间建立有一个传输控制协议(transmission control protocol,TCP)通道,用于进行数据传输,该数据可以包括流表,协议报文等。但当有大量的数据传输时,该TCP通道会因为流量突然增大,而导致数据阻塞在TCP通道内,保活报文可能会被阻塞在通道内,无法发送到相关的设备,造成Openflow协议断链,导致在通道中传输的数据丢失。
现有方案中,根据不同报文的紧急程度确定报文的发送顺序,优先发送紧急程度高的报文,但由于中间网络复杂,一个TCP通道中可能包括多个中间网络设备,例如,Openflow控制器与Openflow交换机1建立了TCP通道,该TCP通道还经过了Openflow交换机2与Openflow交换机3,该Openflow交换机2与Openflow交换机3作为该TCP内的转发设备,那么Openflow交换机2与Openflow交换机3都为中间网络设备,该中间网络设备可以是一个也可以是多个。因此,仍有可能造成先发送的报文与后发送的报文在同一个中间网络设备上阻塞,一些重要的报文也无法正常传输。例如,Openflow控制器无法接收到保活报文等,导致通信断链,或上一级流表与具有以来关系的下一级流表的发送顺序错乱,上一级流表被接收后无法获取到下一级流表,导致数据转发失败等。
发明内容
本申请实施例提供一种传输数据的方法以及相关设备,用于解决Openflow网络中报文阻塞在传输通道内的问题,减少进行数据传输时的数据丢失,提高数据传输的效率。
有鉴于此,本申请第一方面提供一种数据传输的方法,可以包括:
Openflow交换机在该Openflow交换机的第一端口和Openflow控制器的第三端口之间建立第一TCP通道,以及在该Openflow交换机的第二端口和该Openflow控制器的该第三端口之间建立第二TCP通道,该第一端口和该第二端口为不同端口;该Openflow交换机确定该第一TCP通道的第一优先级和该第二TCP通道的第二优先级;该Openflow交换机根据报文的优先级经由该第一TCP通道或该第二TCP通道传输该报文。需要说明的是,该第一优先级与第二优先级可以是Openflow交换机与Openflow控制器预置的,也可以是由Openflow交换机与Openflow控制器协商得到,还可以是由Openflow交换机分配并通知Openflow控制器的,具体此处不作限定。
还需要说明的是,Openflow交换机与Openflow控制器建立了至少两个TCP通道,即至少两个TCP连接,Openflow交换机除了建立与Openflow控制器的第一TCP通道以及第二TCP通道外,Openflow交换机还可以在Openflow交换机上的第三端口建立与Openflow控制器的第三TCP通道或在第四端口与Openflow控制器的第三端口建立第四TCP通道等,依次类推,具体此处不作限定。
在本申请实施例中,Openflow交换机与Openflow控制器建立了至少两个TCP通道,其中可以包括第一TCP通道与第二TCP通道,每个TCP通道都对应一个优先级,且每个在该Openflow交换机与Openflow控制器之间传输的报文也都对应一个优先级,可根据报文的优先级选择TCP通道进行数据传输,优先级高的报文可通过优先级高的TCP通道传输,Openflow交换机或Openflow控制器可以优先传输优先级高的报文,中间网络设备也可以优先转发优先级高的报文。因此,本申请实施例中建立的至少两个TCP通道,且分配对应的优先级,不仅能减少报文阻塞在TCP通道的情况,还能避免优先级高的重要报文阻塞在TCP通道,提高数据传输的稳定性,以及数据传输的效率以及数据传输的容量。
结合本申请第一方面,在本申请第一方面的第一种实施方式中,在该Openflow交换机根据报文的优先级经由该第一TCP通道或该第二TCP通道传输该报文之前,该方法还可以包括:
该Openflow交换机经由该第一TCP通道向该Openflow控制器发送第一通告消息,该第一通告消息携带该第一优先级的信息;该Openflow交换机经由该第二TCP通道向该Openflow控制器发送第二通告消息,该第二通告消息携带该第二优先级的信息,以通知Openflow控制器该第一TCP通道的第一优先级以及第二TCP通道的第二优先级。
在本申请实施例中,Openflow交换机与Openflow控制器可以通过通告消息的方式确定TCP通道的优先级,为一种确定TCP通道优先级的方式。
结合本申请第一方面的第一种实施方式,在本申请第一方面的第二种实施方式中,该第一通告消息可以是第一会话优先级消息,该第二通告消息可以是第二会话优先级消息,该方法还可以包括:
在Openflow交换机向Openflow控制器发送第一会话优先级消息后,该Openflow交换机经由该第一TCP通道接收来自Openflow控制器的第一会话优先级回复消息,Openflow交换机通过该第一会话优先级获取到,该Openflow控制器确认Openflow交换机为该第一TCP通道的该第一优先级;该Openflow交换机经由该第二TCP通道接收来自Openflow控制器的第二会话优先级回复消息,Openflow交换机通过该第二会话优先级获取到,该Openflow控制器确认该Openflow交换机为该第二TCP通道的该第二优先级。
应理解,若该Openflow控制器重新为第一TCP通道分配第三优先级,或重新为第二TCP通道分配第四优先级,则该第一会话优先级回复消息中可以携带该第三优先级,或该第二会话优先级中可以携带该第四优先级,之后Openflow交换机可以通过该第一会话优先级回复消息获取到该第三优先级为该第一TCP通道的优先级,并将该第三优先级作为该第一TCP通道的优先级,或Openflow交换机可以通过该第二会话优先级回复消息获取到该第四优先级为该第二TCP通道的优先级,并将该第四优先级作为该第二TCP通道的优先级。
在本申请实施例中,Openflow交换机通过第一TCP通道向Openflow控制器发送第一会话优先级消息,该第一会话优先级消息中包括了Openflow交换机确定的第一TCP通道的第一优先级,通过第二TCP通道向Openflow控制器发送第二会话优先级消息,该第二会话优先级消息中包括了Openflow交换机确定的第二TCP通道的第二优先级;之后,Openflow交换机接收Openflow控制器通过第一TCP通道发送的第一会话优先级回复消息,以及Openflow控制器通过第二TCP通道发送的第二会话优先级回复消息,Openflow交换机可以通过与Openflow控制器进行协商确定第一TCP通道的优先级与第二TCP通道的优先级,增加了一种确定TCP通道优先级的方式,可以准确地确定TCP通道的优先级,提高数据传输的稳定性与可靠性。
结合本申请第一方面的第一种实施方式,在本申请第一方面的第三种实施方式中,该第一通告消息可以是第一特征回复消息,该第二通告消息可以是第二特征回复消息,在该Openflow交换机发送该第一通告消息和该第二通告消息之前,该方法还可以包括:
该Openflow交换机通过该第一TCP通道接收来自Openflow控制器的第一特征请求消息,该Openflow交换机通过该第二TCP通道接收来自Openflow控制器的第二特征请求消息。
在本申请实施例中,Openflow交换机通过第一TCP通道接收到Openflow控制器发送的第一特征请求消息后,通过该第一TCP通道向Openflow控制器发送第一特征回复消息,该特征回复消息中包括了第一TCP通道的优先级;以及Openflow交换机通过第二TCP通道接收到Openflow控制器发送的第二特征请求消息后,通过该第二TCP通道向Openflow控制器发送第二特征回复消息,该特征请求回复消息中包括了第二TCP通道的优先级,以通知Openflow控制器该第一TCP通道的优先级与第二TCP通道的优先级,增加了一种确定Openflow交换机建立的与Openflow控制器之间的TCP通道优先级的方式。
结合本申请第一方面、本申请第一方面的第一种实施方式至本申请第一方面的第三种实施方式中的任一实施方式,在本申请第一方面的第四种实施方式中,该Openflow交换机根据报文的优先级经由该第一TCP通道或该第二TCP通道传输该报文,可以包括:
该Openflow交换机确定该报文的优先级和该第一优先级相同,该Openflow交换机经由该第一TCP通道传输该报文;或者该Openflow交换机确定该报文的优先级和该第二优先级相同,该Openflow交换机经由该第二TCP通道传输该报文。应理解,该报文的优先级可以是该报文的处理优先级和/或转发优先级,该报文的处理优先级可以为Openflow交换机或Openflow控制器处理该报文的优先级,该转发优先级可以为中间网络设备转发该报文的优先级。需要说明的是,该报文的优先级可以是Openflow交换机分配的,也可以是Openflow控制器分配后通知该Openflow交换机的,具体此此处不作限定。
在本申请实施例中,若一个报文的优先级与一个TCP通道的优先级相同,则Openflow交换机可以通过与该报文优先级相同的TCP通道传输该报文。因此,优先级高的报文可以通过优先级高的TCP通道传输,Openflow交换机或Openflow控制器可以优先级传输优先级高的报文,中间网络设备也可以优先转发优先级高的报文,可以减少高优先级报文阻塞在TCP通道内的情况,提高报文传输的稳定性与可靠性。
结合本申请第一方面、本申请第一方面的第一种实施方式至本申请第一方面的第四种实施方式中的任一实施方式,在本申请第一方面的第五种实施方式中,该Openflow交换机根据报文的优先级经由该第一TCP通道或该第二TCP通道传输该报文,可以包括:
该Openflow交换机确定该报文的优先级和该第一TCP通道的第一优先级相同;该Openflow交换机确定该第一TCP通道的带宽占用率高于第一阈值,且该第二TCP通道的带宽占用率低于第二阈值;该Openflow交换机可以通过该第二TCP通道传输该报文。
在本申请实施例中,若Openflow交换机确定一个报文的优先级与第一TCP通道的优先级相同,Openflow交换机可以选择通过第一TCP通道传输该报文,而Openflow交换机监测到第一TCP通道的带宽占用率高于第一阈值,且该第二TCP通道的带宽占用率低于第二阈值,则可以将该报文通过该第二TCP通道传输,即在第一TCP通道的负载过大,而第二TCP通道的负载空闲的时候,将等待在第一TCP通道传输的报文通过该第二TCP通道传输,能够更进一步提高数据传输的效率,减少报文的阻塞,并且可以合理利用网络资源,减少网络资源浪费的情况。
本申请第二方面提供一种数据传输的方法,Openflow交换机的第一端口和Openflow控制器的第三端口之间建立有第一TCP通道,以及该Openflow交换机的第二端口和该Openflow控制器的该第三端口之间建立有第二TCP通道,该第一端口和该第二端口为不同端口,该方法可以包括:
该Openflow控制器通过该第一TCP通道接收该Openflow交换发送的第一通告消息,该第一通告消息中携带了第一优先级的信息;该Openflow控制器经由该第二TCP通道接收该Openflow交换发送的第二通告消息,该第二通告消息携带第二优先级的信息;该Openflow控制器根据该第一通告消息确定该第一TCP通道的优先级为该第一优先级,以及该Openflow控制器根据该第二通告消息确定该第二TCP通道的优先级为该第二优先级;该Openflow控制器根据报文的优先级经由该第一TCP通道或该第二TCP通道传输该报文。
在本申请实施例中,Openflow交换机与Openflow控制器可以建立至少两个TCP通道,其中包括第一TCP通道与第二TCP通道,每个TCP通道都对应一个优先级,该优先级可以由Openflow交换机通过通告消息发送至Openflow控制器,且每个在该Openflow交换机与Openflow控制器之间传输的报文也都对应一个优先级,Openflow控制器可根据报文的优先级选择TCP通道进行数据传输,优先级高的报文可通过优先级高的TCP通道传输。Openflow交换机或控制器可以优先传输优先级高的报文,中间网络设备也可以优先转发优先级高的报文。因此,本申请实施例中建立的至少两个TCP通道,不仅能减少报文阻塞在TCP通道的情况,还能避免优先级高的重要报文阻塞在TCP通道,提高数据传输的稳定性,以及数据传输的效率。
结合本申请第二方,在本申请第二方面的第一种实施方式中,该第一通告消息可以是第一会话优先级消息,该第二通告消息可以是第二会话优先级消息,该方法还可以包括:
Openflow控制器接收Openflow交换机通过第一TCP通道发送的第一会话优先级消息后,该Openflow控制器通过该第一TCP通道向该Openflow交换机发送该第一会话优先级回复消息,该第一会话优先级回复消息用于通知Openflow交换机该Openflow控制器确认该Openflow交换机确定的该第一优先级;Openflow控制器接收Openflow交换机通过第二TCP通道发送的第二会话优先级消息后,该Openflow控制器通过该第二TCP通道向该Openflow交换机发送该第二会话优先级回复消息,该第二会话优先级回复消息用于通知Openflow交换机该Openflow控制器确认该Openflow交换机确定的该第二优先级。
应理解,若该Openflow控制器未将第一优先级作为第一TCP通道的优先级,或未将第二优先级作为第二TCP通道的优先级,Openflow控制器可继续与Openflow交换机协商该第一TCP通道或该第二TCP通道的优先级,Openflow控制器也可以重新为第一TCP通道分配第三优先级,或重新为第二TCP通道分配第四优先级,该第一会话优先级回复消息中可以携带该第三优先级,或该第二会话优先级中可以携带该第四优先级,之后Openflow交换机可以通过该第一会话优先级回复消息将该第三优先级作为该第一TCP通道的优先级,或Openflow交换机可以通过该第二会话优先级回复消息将该第四优先级作为该第二TCP通道的优先级。
在本申请实施例中,Openflow交换机通过会话优先级消息将TCP通道的优先级发送至Openflow控制器,Openflow控制器向Openflow交换机发送会话优先级回复消息,以使Openflow交换机和Openflow控制器可以协商确认TCP通道的优先级,增加了确认TCP通道的方式。
结合本申请第二方,在本申请第二方面的第二种实施方式中,该第一通告消息是第一特征回复消息,该第二通告消息是第二特征回复消息,在该Openflow控制器接收该Openflow交换机发送的该第一通告消息和该第二通告消息之前,该方法还可以包括:
在建立至少两个TCP通道后,该Openflow控制器通过该第一TCP通道向该Openflow交换机发送第一特征请求消息;该第一特征请求消息可以用于请求获取Openflow交换机的设备信息或地址信息等信息,该Openflow控制器通过该第二TCP通道向该Openflow交换机发送第二特征请求消息,该第二特征请求消息可以用于请求获取Openflow交换机的设备信息或地址信息等信息。
在本申请实施例中,Openflow交换机与Openflow控制器建立至少两个TCP通道后,Openflow控制器通过该至少两个TCP通道中的每个TCP通道向Openflow交换机发送至少两个特征请求消息,Openflow交换机接收到该至少两个特征请求消息后,针对该至少两个特征请求消息生成特征回复消息,该特征回复消息中携带了对应的TCP通道的优先级,以通知Openflow控制器该至少两个TCP通道中每个TCP通道的优先级,增加了一种Openflow控制器确定TCP通道优先级的方式。
结合本申请第二方面、本申请第二方面的第一种实施方式至本申请第二方面的第二种实施方式中任一实施方式,在本申请第二方面的第三种实施方式中,该Openflow控制器根据报文的优先级通过该第一TCP通道或该第二TCP通道传输该报文,可以包括:
该Openflow控制器确定该报文的优先级和该第一TCP通道的第一优先级相同,该Openflow控制器经由该第一TCP通道传输该报文;或者该Openflow控制器确定该报文的优先级和该第二TCP通道的第二优先级相同,该Openflow控制器经由该第二TCP通道传输该报文。
在本申请实施例中,若Openflow控制器确定报文的优先级与TCP通道的优先级匹配,则Openflow控制器通过该TCP通道传输该报文。因此,优先级高的报文可以通过优先级高的TCP通道传输,减少报文阻塞在TCP通道内的情况,提高报文传输的稳定性与可靠性。
结合本申请第二方面、本申请第二方面的第一种实施方式至本申请第二方面的第三种实施方式中任一实施方式,在本申请第二方面的第四种实施方式中,该Openflow控制器根据报文的优先级通过该第一TCP通道或该第二TCP通道传输该报文,可以包括:
该Openflow控制器机确定该报文的优先级和该第一优先级相同后,即该报文需要从第一TCP通道传输;若该Openflow控制器确定该第一TCP通道的带宽占用率高于第一阈值,且该第二TCP通道的带宽占用率低于第二阈值,则该Openflow控制器可以通过该第二TCP通道传输该报文。应理解,该报文的优先级可以是该报文的处理优先级和/或转发优先级,该报文的处理优先级可以为Openflow交换机或Openflow控制器处理该报文的优先级,该转发优先级可以为中间网络设备转发该报文的优先级。需要说明的是,该报文的优先级可以是Openflow交换机分配的,也可以是Openflow控制器分配后通知该Openflow交换机的,具体此此处不作限定。
在本申请实施例中,若Openflow控制器确定一个报文的优先级与第一TCP通道的优先级匹配,Openflow控制器即将通过第一TCP通道传输该报文,而Openflow控制器检测到第一TCP通道的带宽占用率高于第一阈值,且该第二TCP通道的带宽占用率低于第二阈值,则可以将该报文通过该第二TCP通道传输,即在第一TCP通道的负载过大,而第二TCP通道的负载空闲的时候,将等待在第一TCP通道传输的报文通过该第二TCP通道进行传输,可以更进一步提高数据传输的效率,减少报文的阻塞,并且可以合理利用网络资源,减少网络资源浪费的情况。
本申请第三方面提供一种Openflow交换机,该Openflow交换机可以包括:
建立单元,用于在该Openflow交换机的第一端口和Openflow控制器的第三端口之间建立第一TCP通道,以及在该Openflow交换机的第二端口和该Openflow控制器的该第三端口之间建立第二TCP通道,该第一端口和该第二端口为不同端口;
确定单元,用于确定该第一TCP通道的第一优先级和该第二TCP通道的第二优先级;
传输单元,用于根据报文的优先级经由该第一TCP通道或该第二TCP通道传输该报文。
结合本申请第三方面,在本申请第三方面的第一种实施方式中,
该传输单元,还用于经由该第一TCP通道向该Openflow控制器发送第一通告消息,该第一通告消息携带该第一优先级的信息;
该传输单元,还用于经由该第二TCP通道向该Openflow控制器发送第二通告消息,该第二通告消息携带该第二优先级的信息。
结合本申请第三方面的第一种实施方式,在本申请第三方面的第二种实施方式中,该第一通告消息是第一会话优先级消息,该第二通告消息是第二会话优先级消息,可以包括:
该传输单元,还用于经由该第一TCP通道接收来自Openflow控制器的第一会话优先级回复消息,该第一会话优先级回复消息用于该Openflow控制器确认该Openflow交换机确定的该第一优先级;
该传输单元,还用于经由该第二TCP通道接收来自Openflow控制器的第二会话优先级回复消息,该第二会话优先级回复消息用于该Openflow控制器确认该Openflow交换机确定的该第二优先级。
结合本申请第三方面的第一种实施方式,在本申请第三方面的第三种实施方式中,该第一通告消息是第一特征回复消息,该第二通告消息是第二特征回复消息,在该传输单元发送该第一通告消息和该第二通告消息之前,可以包括:
该传输单元,还用于经由该第一TCP通道接收来自Openflow控制器的第一特征请求消息;
该传输单元,还用于经由该第二TCP通道接收来自Openflow控制器的第二特征请求消息。
结合本申请第三方面、本申请第三方面的第一种实施方式至本申请第三方面的第三种实施方式中任一实施方式,在本申请第三方面的第四种实施方式中,可以包括:
在该确定单元确定该报文的优先级和该第一优先级相同后,该传输单元具体用于经由该第一TCP通道传输该报文;或者
在该确定单元确定该报文的优先级和该第二优先级相同后,该传输单元具体用于经由该第二TCP通道传输该报文。
结合本申请第三方面、本申请第三方面的第一种实施方式至本申请第三方面的第四种实施方式中任一实施方式,在本申请第三方面的第五种实施方式中,可以包括:
该确定单元,还用于确定该报文的优先级和该第一优先级相同;
该确定单元,还用于确定该第一TCP通道的带宽占用率高于第一阈值,且该第二TCP通道的带宽占用率低于第二阈值;
该传输单元,在该确定单元确定该第一TCP通道的带宽占用率高于第一阈值,且该第二TCP通道的带宽占用率低于第二阈值后,还用于经由该第二TCP通道传输该报文。
本申请第四方面提供一种Openflow控制器,Openflow交换机的第一端口和该Openflow控制器的第三端口之间建立有第一TCP通道,以及该Openflow交换机的第二端口和该Openflow控制器的该第三端口之间建立有第二TCP通道,该第一端口和该第二端口为不同端口,该Openflow控制器可以包括:
传输单元,用于经由该第一TCP通道接收该Openflow交换发送的第一通告消息,该第一通告消息携带第一优先级的信息;
该传输单元,还用于经由该第二TCP通道接收该Openflow交换发送的第二通告消息,该第二通告消息携带第二优先级的信息;
确定单元,用于根据该第一通告消息确定该第一TCP通道的优先级为该第一优先级,以及根据该第二通告消息确定该第二TCP通道的优先级为该第二优先级;
该传输单元,还用于根据报文的优先级经由该第一TCP通道或该第二TCP通道传输该报文。
结合本申请第四方面,在本申请第四方面的第一种实施方式中,该第一通告消息是第一会话优先级消息,该第二通告消息是第二会话优先级消息,可以包括:
该传输单元,还用于通过该第一TCP通道向该Openflow交换机发送该第一会话优先级回复消息,该第一会话优先级回复消息用于该确定单元确认该Openflow交换机确定的该第一优先级;
该传输单元,还用于通过该第二TCP通道向该Openflow交换机发送该第二会话优先级回复消息,该第二会话优先级回复消息用于该Openflow控制器确认该Openflow交换机确定的该第二优先级。
结合本申请第四方面的第一种实施方式,在本申请第四方面的第二种实施方式中,该第一通告消息是第一特征回复消息,该第二通告消息是第二特征回复消息,在该传输单元接收该Openflow交换机发送的该第一通告消息和该第二通告消息之前,可以包括:
该传输单元,还用于通过该第一TCP通道向该Openflow交换机发送第一特征请求消息;
该传输单元,还用于通过该第二TCP通道向该Openflow交换机发送第二特征请求消息。
结合本申请第四方面、本申请第四方面的第一种实施方式至本申请第四方面的第二种实施方式中任一实施方式,在本申请第四方面的第三种实施方式中,可以包括:
在该确定单元确定该报文的优先级和该第一优先级相同后,该传输单元具体用于经由该第一TCP通道传输该报文;或者
在该确定单元确定该报文的优先级和该第二优先级相同后,该传输单元具体用于经由该第二TCP通道传输该报文。
结合本申请第四方面、本申请第四方面的第一种实施方式至本申请第四方面的第三种实施方式中任一实施方式,在本申请第四方面的第四种实施方式中,可以包括:
该确定单元,还用于确定该报文的优先级和该第一优先级相同;
该确定单元,还用于确定该第一TCP通道的带宽占用率高于第一阈值,且该第二TCP通道的带宽占用率低于第二阈值;
该传输单元,在该确定单元确定该第一TCP通道的带宽占用率高于第一阈值,且该第二TCP通道的带宽占用率低于第二阈值后,还用于通过该第二TCP通道传输该报文。
本申请实施例第五方面提供一种Openflow交换机,可以包括:
处理器以及存储器,该处理器与该存储器连接;
该存储器,用于存储程序代码;
该处理器调用该存储器中的程序代码时执行本申请第一方面或第一方面任一实施方式提供的Openflow交换机执行的步骤。
本申请实施例第六方面提供一种Openflow控制器,可以包括:
处理器以及存储器,该处理器与该存储器连接;
该存储器,用于存储程序代码;
该处理器调用该存储器中的程序代码时执行本申请第二方面或第二方面任一实施方式提供的Openflow控制器执行的步骤。
本申请实施例第七方面提供一种通信系统,该通信系统包括Openflow交换机以及Openflow控制器,该Openflow交换机为执行本申请第一方面至第二方面中任一实施方式中的Openflow交换机;该Openflow控制器为执行本申请第一方面至第二方面中任一实施方式中的Openflow控制器。
本申请实施例第八方面提供一种存储介质,需要说明的是,本发的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产口的形式体现出来,该计算机软件产品存储在一个存储介质中,用于储存为上述设备所用的计算机软件指令,其包含用于执行上述第一方面至第二方面中任一方面为Openflow交换机或Openflow控制器所设计的程序。
该存储介质包括:U盘、移动硬盘、只读存储器(英文缩写ROM,英文全称:Read-OnlyMemory)、随机存取存储器(英文缩写:RAM,英文全称:Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例第九方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如本申请第一方面或第一方面任一可选实施方式中所述的方法。
本申请实施例第十方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如本申请第二方面或第二方面任一可选实现方式中所述的方法。
本申请第十一方面提供一种通信装置,该通信装置可以包括:处理器、存储器;所述存储器用于存储指令;所述处理器用于执行所述存储器中的所述指令,使得所述通信装置执行如前述第一方面或第一方面中任一项所述的方法。
本申请第十二方面提供一种通信装置,该通信装置可以包括:处理器、存储器;所述存储器用于存储指令;所述处理器用于执行所述存储器中的所述指令,使得所述通信装置执行如前述第二方面或第二方面中任一项所述的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
在本申请实施例中,Openflow交换机与Openflow控制器之间建立了至少两个TCP通道,每个TCP通道都有对应的优先级,然后Openflow交换机根据报文的优先级选择合适的TCP通道传输该报文。因此,本申请中Openflow交换机与Openflow控制器建立了多个TCP通道,相对于现有方案中的一个TCP通道,可以避免报文拥塞在一个TCP通道内。且每个TCP通道都有对应的优先级,可根据报文的优先级选择对应的TCP通道。例如,可以为优先级高的报文选择优先级高的TCP通道进行传输,可以避免优先级高的报文阻塞在TCP通道内,减少报文阻塞在TCP通道内的情况。
附图说明
图1为本申请实施例中的网络架构图;
图2为本申请实施例中数据传输的方法的一种实施例示意图;
图3为本申请实施例中数据传输的方法的另一种实施例示意图;
图4为本申请实施例中数据传输的方法的另一种实施例示意图;
图5为本申请实施例中数据传输的方法的另一种实施例示意图;
图6为本申请实施例中数据传输的方法的另一种实施例示意图;
图7为本申请实施例中Openflow交换机的一种实施例示意图;
图8为本申请实施例中Openflow控制器的一种实施例示意图;
图9为本申请实施例中Openflow交换机的另一种实施例示意图;
图10为本申请实施例中Openflow控制器的另一种实施例示意图。
具体实施方式
本申请实施例提供一种传输数据的方法以及相关设备,用于解决Openflow网络中报文阻塞在传输通道内的问题,减少进行数据传输时的数据丢失,提高数据传输的效率。
请参阅图1,本申请实施例中的网络架构图。Openflow网络主要由Openflow控制器与Openflow交换机组成,一个Openflow控制器可以通过Openflow协议与多个Openflow交换机建立TCP连接,且Openflow交换机之间也可以建立连接。Openflow交换机还可以与终端设备连接,用于转发终端设备的数据或向终端设备下发数据。本申请实施例中的网络架构可以包括多个Openflow控制器或Openflow交换机,图中仅以Openflow交换机1、Openflow交换机2和Openflow交换机3这三个Openflow交换机为例进行示意。为进行Openflow控制器与Openflow交换机之间的数据传输,Openflow控制器与Openflow交换机之间需要建立TCP通道,该TCP通道为Openflow控制器与Openflow交换机直接通过链路连接的通道。其中,Openflow控制器与Openflow交换机1建立了TCP通道1,Openflow控制器与Openflow交换机2建立了TCP通道2,Openflow控制器与Openflow交换机建立了TCP通道3。在实际网络架构中,Openflow交换机的物理位置也可能相距很远,因此,在一个TCP通道上,可能存在中间网络设备。例如,Openflow控制器与Openflow交换机3建立TCP通道3时,还经过了Openflow交换机4(图中未示出),该Openflow交换机4还单独与Openflow控制器建立TCP通道4,该Openflow交换机4仅在TCP通道3上进行数据转发,那么,Openflow交换机4为该TCP通道3的中间网络设备。应理解,该中间网络设备可以是一个,也可以是多个,可以是Openflow交换机,也可以是网络中的其他网络设备,具体此处不作限定。例如,当该TCP通道3内有数据传输时,因Openflow控制器还与Openflow交换机4建立了TCP通道4,因此Openflow交换机4不仅会接收Openflow控制器发送的数据,还需要转发Openflow控制器通过TCP通道3发送至Openflow交换机3的数据,因此,当TCP通道3与TCP通道4内都有大量数据传输时,该大量数据可能会阻塞在Openflow交换机4内,TCP通道3中由Openflow控制器或Openflow交换机3发送的保活报文可能会阻塞在Openflow交换机4,造成TCP通道3协议断开。
因此,为解决大量数据导致的数据阻塞,而造成链路断开,数据发送失败的问题,本申请实施例提供一种数据传输的方法,请参阅图2,本申请实施例中数据传输的方法的一种实施例示意图。
其中,以一个Openflow交换机与一个Openflow控制器为例,一个Openflow控制器与一个Openflow交换机之间建立至少两个TCP通道,该至少两个TCP通道可以是两个TCP通道,也可以是5个TCP通道,此处不作限定。此处仅以2个TCP通道为例,Openflow控制器与Openflow交换机之间建立2个TCP通道,即2个TCP连接,包括TCP通道1以及TCP通道2。建立该TCP通道1以及TCP通道2的具体过程可以是,Openflow交换机在该Openflow交换上的第一端口向Openflow控制器的第三端口发起建立,以及该Openflow交换机在该Openflow交换机上的第二端口向Openflow控制器的第三端口发起建立;当Openflow控制器监听该Openflow控制器上的第三端口时,接收到该Openflow交换机通过第一端口发送的TCP通道1的第一建立请求消息,并进行回复,以及接收到该Openflow交换机通过第二端口发送的TCP通道2的第二建立请求消息,并进行回复;Openflow控制器与Openflow交换机的第一端口完成“三次握手”后,Openflow交换机在第一端口与Openflow控制器的第三端口建立了TCP连接,即TCP通道1,以及Openflow控制器与Openflow交换机的第二端口完成“三次握手”后,Openflow交换机在第二端口与Openflow控制器的第三端口建立了TCP连接,即TCP通道2。该第一端口与第二端口为该Openflow交换机上的不同端口,例如,该第一端口的端口号可以是61647,该第二端口的端口号可以是61648。该第三端口可以是该Openflow控制器上的知名端口,例如,端口号为6653的端口,也可以是该Openflow控制器与该Openflow交换机约定的端口,具体此处不作限定。本申请实施例仅以建立两个TCP通道为例,此外,还可以建立3个TCP通道,4个TCP通道,具体过程可以与本申请实施例提供的建立方式类似,具体此处不再赘述。
该TCP通道1以及TCP通道2可用于传输Openflow控制器与Openflow交换机之间传输的数据。该两个个TCP通道中的每个TCP通道都对应一个优先级,例如,TCP通道1对应第一优先级,TCP通道2对应第二优先级。在该Openflow控制器与Openflow交换机传输的报文也都有对应的优先级,Openflow交换机或Openflow控制器可以根据该报文的优先级选择对应的TCP通道传输该报文。例如,Openflow交换机或Openflow控制器可以为优先级高的报文选择优先级高的TCP通道传输该报文。
在本申请实施例中,Openflow交换机在该Openflow交换机的第一端口与Openflow控制器的第三端口建立的第一TCP通道,即TCP通道1,该Openflow交换机在该Openflow交换机的第二端口与Openflow控制器的第三端口建立的第二TCP通道,即TCP通道2,该第一端口与第二端口为不同端口,除了该TCP通道1与TCP通道2,该Openflow交换机还可以在自身的其他端口与该Openflow控制器的第三端口建立TCP通道,本申请实施例对此不作限定。该Openflow交换机建立的每个TCP通道都有对应的优先级,且该Openflow交换机与该Openflow控制器之间传输的每个报文也具有对应的优先级,该Openflow交换机或该Openflow控制器可以根据该每个报文的优先级为该每个报文选择传输的TCP通道。例如,高优先级的报文可以通过高优先级的TCP通道传输,优先级高的TCP通道内传输的报文可优先被该Openflow交换机或Openflow控制器处理或传输,还可以优先被中间网络设备转发。因此,可以将不同优先级的报文通过不同的TCP通道传输,可以提高Openflow交换机与该Openflow控制器之间数据传输的容量,可以避免优先级高的报文阻塞在TCP通道内。
前述对本申请实施例提供的数据传输的方法进行了说明,下面对本申请实施例提供的数据传输方法的具体流程进行说明,请参阅图3,本申请实施例中数据传输的方法的另一种实施例示意图,可以包括:
301、Openflow交换机与Openflow控制器建立至少两个TCP通道;
该至少两个TCP通道由Openflow交换机发起建立,Openflow交换机在该Openflow交换机上的至少两个端口与该Openflow控制器上的一个端口建立至少两个TCP连接。以建立两个TCP通道为例,Openflow交换机在该Openflow交换机的第一端口和Openflow控制器的第三端口之间建立第一TCP通道,以及该Openflow交换机在该Openflow交换机的第二端口和该Openflow控制器的所述第三端口之间建立第二TCP通道,该第一端口和该第二端口为该Openflow上的不同端口。需要说明的是,该至少两个TCP通道除了可以包括2个TCP通道,还可以包括3个TCP通道,也可以包括6个TCP通道,建立的过程与前述2个TCP通道的建立过程类似,具体此处不再赘述。还需要说明的是,该第三端口可以是知名端口,例如6653,也可以是与Openflow交换机约定的端口,具体此处不作限定。
建立TCP通道的具体过程可以是,以一个TCP通道为例,由Openflow交换机通过该Openflow交换机上的端口向Openflow控制器发起TCP建立请求,Openflow控制器监听该Openflow控制器上的端口,Openflow控制器通过监听端口接收到该Openflow交换机发送的建立请求后,向该Openflow交换机发送第一确认消息,以回复该建立请求,Openflow交换机接收到该第一确认消息后,向Openflow控制器发送第二确认消息,以通知该Openflow控制器接收到该第一确认消息。应理解,建立至少两个TCP通道的具体流程与建立该一个TCP通道的具体流程类似,具体此处不再赘述。
302、Openflow交换机向Openflow控制器发送通告消息;
Openflow交换机可以通过该至少两个TCP通道中的每个TCP通道向Openflow控制器发送至少两个通告消息,例如,Openflow可以通过第一TCP通道向Openflow控制器发送第一通告消息,Openflow交换机还可以通过第二TCP通道向该Openflow控制器发送第二通告消息,Openflow交换机还可以通过第三TCP通道向该Openflow控制器发送第三通告消息等,依次类推,该通告消息的数量与该至少两个TCP通道的数量对应。该至少两个通告消息中可以包括该至少两个通道的优先级信息,例如,第一通告消息中可以包括第一TCP通道的第一优先级,第二通告消息可以包括第二TCP通道的第二优先级等,依次类推。Openflow控制器接收到该至少两个通告消息后,可以通过该至少两个通告消息获取该至少两个TCP通道中每个TCP通道的优先级。若该通告消息中不包括TCP通道的优先级,则该通告消息可以包括该Openflow交换机的信息,例如,地址信息、设备信息或版本信息等。
此外,该至少两个TCP通道的优先级除了可以由Openflow交换机通过通告消息发送至Openflow控制器外,该至少两个TCP通道的优先级还可以是Openflow交换机与Openflow控制器上预置的,本申请实施例对Openflow交换机与Openflow控制器约定优先级,即预置优先级的方式不作限定。例如,Openflow交换机通过第一端口号建立的TCP通道的优先级为第一优先级,Openflow通过第二端口建立的TCP通道的优先级为第二优先级,依次类推。还可以例如,Openflow交换机在第一端口最先发起TCP连接建立请求,则该Openflow在该第一端口与Openflow控制器建立的TCP通道的优先级为第一优先级,Openflow交换机在第二端口发起TCP连接建立请求的时间在该Openflow交换机通过第一端口发起TCP建立之后,则该Openflow在该第二端口与Openflow控制器建立的TCP通道的优先级为第二优先级,依次类推,本申请实施例对Openflow交换机与Openflow控制器约定优先级的方式不作限定。
303、Openflow交换机确定TCP通道优先级;
若Openflow交换机向Openflow控制器发送的至少两个通告消息中包括至少两个TCP通道的优先级,则Openflow交换机可以在发送该至少两个TCP通道的优先级之前确定该至少两个TCP通道的优先级,也可以在发送该至少两个TCP通道之后确定该至少两个TCP通道的优先级。若该至少两个TCP通道的优先级为该Openflow交换机与Openflow控制器提前约定的,则本申请实施例步骤302与步骤303的执行顺序不作限定,可以先执行步骤302,也可以先执行步骤303,还可以同时执行步骤302与步骤303,具体此处不作限定。
304、Openflow控制器确定TCP通道优先级;
当Openflow交换机向Openflow控制器发送的至少两个通告消息中包括至少两个TCP通道的优先级,Openflow控制器可以从该至少两个通告消息中获取该至少两个TCP通道的优先级,例如,Openflow控制器可以从该至少两个通告消息中获取第一通道的第一优先级,以及第二通道的第二优先级。
此外,该至少两个TCP通道的优先级还可以是该Openflow控制器与该Openflow提前约定的。例如,Openflow交换机通过第一端口号建立的TCP通道的优先级为第一优先级,Openflow通过第二端口建立的TCP通道的优先级为第二优先级,依次类推。还可以例如,Openflow交换机在第一端口最先发起TCP连接建立请求,则该Openflow在该第一端口与Openflow控制器建立的TCP通道的优先级为第一优先级,Openflow交换机在第二端口发起TCP连接建立请求的时间在该Openflow交换机通过第一端口发起TCP建立之后,则该Openflow在该第二端口与Openflow控制器建立的TCP通道的优先级为第二优先级。
305、Openflow交换机与Openflow控制器根据报文的优先级传输报文。
Openflow交换机与控制器可以根据报文的优先级传输报文,Openflow交换机可以根据上报报文的优先级选择对应的TCP通道传输该上报报文,Openflow控制器也可以根据下发报文的优先级选择对应的TCP通道传输该下发报文。该报文的优先级可以是Openflow交换机或Openflow控制器为该报文分配的,具体分配的方式可以是根据该报文的类型分配,或根据该报文的长度分配等,具体此处不作限定。例如,Openflow交换机可以为优先级高的上报报文分配优先级高的TCP通道,Openflow控制器也可以为优先级高的下发报文分配优先级高的TCP通道。Openflow交换机或Openflow控制器可以优先发送优先级高的报文,或若TCP通道内存在中间网络设备时,中间网络设备优先转发优先级更高的TCP通道中传输的报文。
在本申请实施例中,Openflow交换机在该Openflow交换机的至少两个端口上建立与Openflow控制器的一个端口之间的至少两个TCP通道,且该至少两个TCP通道都有对应的优先级,每个报文也都具有优先级,Openflow交换机以及Openflow控制器可以根据报文的优先级选择对应的TCP通道传输该报文。因此,优先级高的报文可以选择优先级高的TCP通道传输,优先级高的报文可以优先被传输,例如,中间网络设备优先转发优先级高的报文。优先级高的TCP通道内传输的报文可以优先被传输,例如,中间网络设备优先转发优先级高的TCP通道内传输的报文。
具体地,以一个具体的应用场景为例进行说明,Openflow控制器监听端口6653;Openflow交换机设置源端口号为61647、61648以及61649,并通过该源端口号为61647、61648以及61649的端口向Openflow控制器上目的端口号为6653的端口发起TCP连接建立请求,包括第一建立请求、第二建立请求与第三建立请求,第一建立请求用于请求通过源端口61647与目的端口6623建立第一TCP通道,即第一TCP连接,第二建立请求用于通过源端口61648与目的端口6623建立第二TCP通道,即第二TCP连接,以及第三建立请求用于通过源端口61649与目的端口6623建立第三TCP通道,即第三TCP连接;Openflow控制器接收到第一建立请求、第二建立请求与第三建立请求后,分别通过源端口61647、源端口61648以及源端口61649与该Openflow交换机进行“三次握手”,建立3个TCP连接,即第一TCP通道、第二TCP通道以及第三TCP通道;之后Openflow交换机通过第一TCP通道向Openflow发送第一通告消息、通过第二TCP通道向Openflow发送第二通告消息以及通过第三TCP通道向Openflow发送第三通告消息,该第一通告消息中包括了该第一TCP通道的第一优先级,该第二通告消息中包括了该第二TCP通道的第二优先级,以及该第三通告消息中包括了该第三TCP通道的第三优先级;Openflow控制器接收到该第一通告消息、第二通告消息以及第三通告消息后,获取到第一TCP通道的第一优先级、第二TCP通道的第二优先级以及第三TCP通道的第三优先级;Openflow控制器可以将该第一优先级作为第一TCP通道的第一优先级,也可以为该第一TCP通道重新分配一个优先级,然后将重新分配的优先级告知Openflow交换机,Openflow控制器确定第二TCP通道的优先级与第三TCP通道的优先级与第一TCP通道的优先级类似,具体此处不再赘述;Openflow交换机与Openflow控制器都确定第一TCP通道、第二TCP通道以及第三TCP通道的优先级后,Openflow交换机或Openflow控制器为需要传输的每个报文分配优先级,然后根据该报文的优先级分配TCP通道进行传输,将优先级高的报文分配到优先级高的TCP通道传输,中间网络设备可以优先转发优先级高的TCP通道内传输的报文,因此,将优先级高的报文通过优先级高的TCP通道传输,可以提高优先级高的报文的传输效率,避免优先级高的报文阻塞在TCP通道内。
进一步地,Openflow交换机或Openflow控制器确定TCP通道的优先级可以有不同的方式。下面对本申请实施例提供的数据传输的方法的具体流程进行说明,请参阅图4,本申请实施例中数据传输的方法的另一种实施例示意图,包括:
401、Openflow交换机与Openflow控制器建立至少两个TCP通道;
本申请实施例中的步骤401与前述图3中的步骤301类似,具体此处不再赘述。
402、Openflow交换机向Openflow控制器发送会话优先级消息;
Openflow交换机通过该至少两个TCP通道向Openflow控制器发送至少两个会话优先级消息,Openflow交换机从每个TCP通道向Openflow控制器发送一个会话优先级消息,该至少两个会话优先级消息中包括了该至少两个TCP通道的优先级。例如,第一会话优先级消息中携带第一TCP通道的第一优先级,第二会话优先级消息中携带第二TCP通道的第二优先级,第三会话优先级消息中携带第三TCP通道的第三优先级,依次类推。
此外,应理解,在Openflow交换机向Openflow控制器发送会话优先级消息之前,该Openflow交换机还可以通过该至少两个TCP通道中的每个TCP通道向Openflow控制器发送保活报文,或Openflow控制器向Openflow交换机发送获取Openflow交换机的信息的消息等可选步骤,具体此处不作限定。
403、Openflow控制器确定TCP通道优先级;
Openflow控制器接收到Openflow发送的至少两个会话优先级消息后,Openflow控制器确定该至少两个TCP通道的优先级,Openflow控制器确定该至少两个TCP通道的优先级的具体方式可以是,该至少两个会话优先级中携带了该至少两个TCP通道的优先级,Openflow控制器从该至少两个会话优先级中获取Openflow交换机发送的该至少两个TCP通道的优先级,Openflow控制器可以将该至少两个会话优先级中携带的优先级作为该至少两个TCP通道的优先级,Openflow控制器也可以重新为该至少两个TCP通道分配优先级。
例如,Openflow控制器接收到Openflow交换机通过第一TCP通道发送的第一会话优先级消息,以及Openflow交换机通过第二TCP通道发送的第二会话优先级消息,该第一会话优先级中携带第一TCP通道的第一优先级,该第二会话优先级中携带第二TCP通道的第二优先级;Openflow控制器从该第一会话优先级消息以及第二会话优先级消息中分别获取第一TCP通道的第一优先级与第二TCP通道的第二优先级。Openflow控制器可以将该第一优先级作为第一TCP通道的优先级,将该第二优先级作为第二TCP通道的优先级,Openflow控制器也可以重新为第一TCP通道分配第一优先级,和/或重新为第二TCP通道分配第二优先级,具体此处不作限定。
404、Openflow控制器向Openflow交换机发送会话优先级回复消息;
Openflow控制器确定该至少两个TCP通道的优先级后,生成至少两个会话优先级回复消息,每一个会话优先级回复消息都对应一个Openflow交换机发送的会话优先级消息。该会话优先级回复消息可以包括从该至少两个会话优先级消息中获取的该至少两个TCP通道的优先级,也可以包括该Openflow控制器重新分配的优先级,或该Openflow控制器与该Openflow交换机约定的字段。
具体地,以该至少两个TCP通道中的第一TCP通道为例,在Openflow控制器从第一会话优先级消息中获取了第一TCP通道中的第一优先级,根据该第一会话优先级消息生成了第一优先级回复消息。该第一优先级回复消息中可以包括该第一优先级,也可以是Openflow控制器重新为该第一TCP通道分配的一个第二优先级,还可以是Openflow控制器与Openflow交换机约定的字段等。若该第一优先级回复消息中包括了第一优先级,则Openflow控制器通过该第一优先级回复消息通知Openflow交换机确定该第一优先级为该第一TCP通道的优先级;若该第一会话优先级回复消息中包括该第二优先级,该第二优先级为Openflow控制器重新为第一TCP通道分配的优先级,则Openflow控制器通过第一会话优先级消息通知该Openflow交换机确定该第一TCP通道的优先级为第二优先级;该第一会话优先级回复消息还可以是包括该Openflow控制器与Openflow交换机约定的字段,例如,若该Openflow控制器与Openflow交换机约定,当该第一会话优先级回复消息中的第一个字节为0xFF时,Openflow控制器确认该第一会话优先级中的第一优先级为第一TCP通道的优先级,或当该第一会话优先级回复消息中的第一个字节为0x01时,Openflow控制器确认该第一会话优先级中的第一优先级为第一TCP通道的优先级,还可以是,若该第一会话优先级回复消息中包括0x01,则Openflow控制器确定该第一TCP通道的优先级为第一优先级,若该第一会话优先级回复消息中包括0x02,则Openflow控制器确定该第一TCP通道的优先级为第二优先级,若该第一会话优先级回复消息中包括0x03,则Openflow控制器确定该第一TCP通道的优先级为第三优先级等;还可以是该会话优先级信息中携带一个否定字段,例如,0x00,以通知Openflow交换机该Openflow控制器不同意将该第一优先级作为该第一TCP通道的优先级,之后再由Openflow交换机或Openflow控制器重新为该第一TCP通道分配优先级,具体此处不作限定。
405、Openflow交换机确定TCP通道优先级;
Openflow交换机接收到Openflow控制器发送的会话优先级回复消息后,Openflow交换机可以确定该至少两个TCP通道的优先级。例如,Openflow交换机通过第一TCP通道接收到Openflow控制器发送的第一会话优先级回复消息,该第一会话优先级回复消息用于回复该Openflow交换机向Openflow控制器发送的第一会话优先级消息,该第一会话优先级中包括了第一TCP通道的第一优先级。若该第一会话优先级回复消息中包括了该第一优先级,则该Openflow交换机确认该第一TCP通道的优先级为该第一优先级;若该第一会话优先级回复消息中包括了Openflow交换机与Openflow控制器约定的字符,例如,0xFF,0x01等,则Openflow交换机确定该第一TCP通道的优先级为该第一优先级;若该第一会话优先级回复消息中包括了第二优先级,则该Openflow交换机将该第二优先级作为该第一TCP通道的优先级。
406、Openflow交换机与Openflow控制器根据报文的优先级传输报文。
本申请实施例中的步骤406与前述图3中的步骤305类似,具体此处不再赘述。
在本申请实施例中,Openflow交换机建立与Openflow控制器的至少两个TCP通道后,Openflow交换机通过会话优先级消息将该至少两个TCP通道的优先级发送至Openflow交换机,交换机接收到该至少两个TCP通道的优先级后,向Openflow交换机发送会话优先级回复消息。Openflow控制器可以将接收到的优先级作为该至少两个TCP通道的优先级,也可以重新为该至少两个TCP通道分配优先级,Openflow控制器通过向Openflow交换机发送会话优先级回复消息,使Openflow交换机确定该至少两个TCP通道中每个TCP通道的优先级。Openflow交换机可以与Openflow控制器协商TCP通道的优先级,增加了确定该至少两个TCP通道的优先级的方式。且为每个TCP通道分配优先级,然后根据报文的优先级确定传输该报文的TCP通道,优先级高的报文可以通过优先级高的TCP通道传输,中间网络设备可优先转发或传输优先级高的TCP通道内传输的报文,减少报文阻塞在TCP通道内的情况。
更具体地,以一个具体的应用场景为例对本申请实施例的方案进行说明,Openflow控制器监听端口6653;Openflow交换机设置源端口号为61647、61648以及61649,并通过该源端口号为61647、61648以及61649的端口向Openflow控制器上目的端口号为6653的端口发起TCP连接建立请求,Openflow控制器接收到建立请求后,分别通过源端口61647、源端口61648以及源端口61649与该Openflow交换机进行“三次握手”,建立3个TCP连接,即第一TCP通道、第二TCP通道以及第三TCP通道;之后Openflow交换机通过第一TCP通道向Openflow发送第一会话优先级消息、通过第二TCP通道向Openflow发送第二会话优先级消息以及通过第三TCP通道向Openflow发送第三会话优先级消息,该第一会话优先级消息中包括了该第一TCP通道的第一优先级,该第二会话优先级消息中包括了该第二TCP通道的第二优先级,以及该第三会话优先级消息中包括了该第三TCP通道的第三优先级;Openflow控制器接收到该第一会话优先级消息、第二通告消息以及第三会话优先级消息后,获取到第一TCP通道的第一优先级、第二TCP通道的第二优先级以及第三TCP通道的第三优先级;Openflow控制器可以将该第一优先级作为第一TCP通道的第一优先级,也可以为该第一TCP通道重新分配一个优先级,然后将重新分配的优先级告知Openflow交换机,然后向Openflow交换机发送第一会话优先级回复消息。例如,Openflow控制器向Openflow交换机发送的第一会话优先级回复消息中包括一个字节,例如,0xFF,即通知Openflow交换机该Openflow控制器将该第一优先级作为该第一TCP通道的优先级,或该第一会话优先级回复消息中包括了第一优先级,即通知Openflow交换机该Openflow控制器将该第一优先级作为该第一TCP通道的优先级,或该第一会话优先级回复消息中包括第四优先级,即通知Openflow交换机该Openflow控制器将该第四优先级作为该第一TCP通道的优先级。Openflow控制器确定第二TCP通道的优先级与第三TCP通道的优先级与第一TCP通道的优先级类似,具体此处不再赘述;Openflow交换机与Openflow控制器都确定第一TCP通道、第二TCP通道以及第三TCP通道的优先级后,Openflow交换机或Openflow控制器为需要传输的每个报文分配优先级,然后根据该报文的优先级分配TCP通道进行传输,将优先级高的报文分配到优先级高的TCP通道传输,中间网络设备可以优先转发优先级高的TCP通道内传输的报文,因此,将优先级高的报文通过优先级高的TCP通道传输,可以提高优先级高的报文的传输效率,避免优先级高的报文阻塞在TCP通道内。
前述对通过会话优先级消息确定至少两个TCP通道的优先级进行了阐述,可以由Openflow交换机或Openflow控制器确定该至少两个TCP通道的优先级。此外,Openflow交换机与Openflow控制器还可以通过特征回复消息的方式确定该至少两个TCP通道的优先级。下面对本申请实施例提供的数据传输的方法的另一种具体流程进行说明,请参阅图5,本申请实施例中数据传输的方法的另一种实施例示意图,包括:
501、Openflow交换机与Openflow控制器建立至少两个TCP通道;
本申请实施例中的步骤501与前述图3中的步骤301类似,具体此处不再赘述。
502、Openflow交换机向Openflow控制器发送hello报文;
Openflow交换机在建立与该Openflow控制器的至少两个TCP通道后,通过该至少两个TCP通道中的每个TCP通道向Openflow控制器发送至少两个保活报文,即hello报文,例如,Openflow交换机通过第一TCP通道向Openflow控制器发送第一hello报文,Openflow交换机通过第二TCP通道向Openflow控制器发送第二hello报文等。该hello报文中可以Openflow协议中的OFPT_HELLO消息,该保活报文中可以包括当前Openflow协议的协商版本,以及其他Openflow元素等,以设置该Openflow交换机与该Openflow控制器之间的连接。
503、Openflow控制器向Openflow控制器发送特征请求消息;
Openflow控制器在接收到Openflow交换机发送的hello报文后,Openflow控制器确定该hello报文中的协商版本与该Openflow控制器Openflow协议的协商版本一致后,向Openflow控制器发送特征请求消息,该特征请求消息用于获取该Openflow交换机的地址信息以及设备信息等。该特征请求消息可以是Openflow协议中的OFPT_FEATURES_REQUEST报文。
504、Openflow交换机确定TCP通道优先级;
Openflow交换机确定该至少两个TCP通道中每个TCP通道的优先级,该至少两个TCP通道中每个TCP通道的优先级可以是该Openflow交换机分配的。
需要说明的是,本申请实施例对步骤504与步骤502的执行顺序不作限定,可以先执行步骤502,也可以先执行步骤504,具体此处不作限定。
505、Openflow交换机向Openflow控制器发送特征回复消息;
Openflow交换机在接收到Openflow控制器发送的特征请求消息后,生成特征回复消息,该特征回复消息中包括了该Openflow交换机的地址信息或设备信息等,该特征回复消息中还增加了该至少两个TCP通道的优先级字段,以通知该Openflow控制器该至少两个TCP通道的优先级。该特征回复消息可以是Openflow协议中的OFPT_FEATURES_REPLY报文。例如,该特征回复消息中增加了5个字节,第一个字节代表第一TCP通道的第一优先级,第二个字节代表第二TCP通道的优先级,依次类推,或增加了2个字节,第一位用于标识第一TCP通道的第一优先级,第二为用于标识第二TCP通道的优先级,依次类推等。
506、Openflow控制器确定TCP通道优先级;
Openflow控制器在接收到Openflow交换机发送的特征回复消息后,可以从该特征回复消息中获取该Openflow交换机与该Openflow控制器建立的至少两个TCP通道的优先级。获取的具体方式可以是,该特征回复消息中除了该Openflow交换机的地址以及设备信息等信息外,还增加了5个字节,第一个字节代表第一TCP通道的第一优先级,第二个字节代表第二TCP通道的优先级,依次类推,或增加了8位字符,第一位用于标识第一TCP通道的第一优先级,第二位用于标识第二TCP通道的优先级,依次类推等,具体此处不作限定。
507、Openflow交换机与Openflow控制器根据报文的优先级传输报文。
本申请实施例中的步骤507与前述图3中的步骤305类似,具体此处不再赘述。
在本申请实施例中,Openflow交换机与该Openflow控制器建立至少两个TCP通道后,Openflow交换机通过特征回复消息将该至少两个TCP通道的优先级发送至Openflow控制器,以使Openflow控制器确定该至少两个TCP通道中每个TCP通道的优先级。并根据每个报文的优先级确定对应的TCP通道,通过该对应的TCP通道传输该报文优先级高的报文可以通过优先级高的TCP通道传输,中间网络设备优先转发优先级高的TCP通道内传输的报文,可以避免优先级高的报文阻塞在TCP通道内,减少TCP通道内报文阻塞的情况。
更具体地,以一个具体的应用场景为例进行说明,Openflow控制器监听端口6653;Openflow交换机设置源端口号为61647、61648以及61649,并通过该源端口号为61647、61648以及61649的端口向Openflow控制器上目的端口号为6653的端口发起TCP连接建立请求,Openflow控制器接收到建立请求后,分别通过源端口61647、源端口61648以及源端口61649与该Openflow交换机进行“三次握手”,建立3个TCP连接,即第一TCP通道、第二TCP通道以及第三TCP通道;之后Openflow交换机通过第一TCP通道、第二TCP通道以及第三TCP通道分别向Openflow控制器发送一个hello报文,该hello报文中包括了当前Openflow协议的协商版本;Openflow控制器接收到Openflow交换机通过第一TCP通道、第二TCP通道以及第三TCP通道分别向Openflow控制器发送hello报文后,确定该协商版本与该Openflow控制器上的Openflow协议的协商版本一致,则通过第一TCP通道、第二TCP通道以及第三TCP通道分别向Openflow交换机发送一个特征请求消息,用于请求Openflow交换机的地址信息、设备信息等信息;之后Openflow交换机通过第一TCP通道向Openflow发送第一特征回复消息、通过第二TCP通道向Openflow发送第二特征回复消息以及通过第三TCP通道向Openflow发送第三特征回复消息,该第一特征回复消息中包括了该第一TCP通道的第一优先级,该第二特征回复消息中包括了该第二TCP通道的第二优先级,以及该第三特征回复消息中包括了该第三TCP通道的第三优先级;Openflow控制器接收到该第一特征回复消息、第二特征回复消息以及第三特征回复消息后,获取到第一TCP通道的第一优先级、第二TCP通道的第二优先级以及第三TCP通道的第三优先级;Openflow控制器可以将该第一优先级作为第一TCP通道的第一优先级。Openflow控制器确定第二TCP通道的优先级与第三TCP通道的优先级与第一TCP通道的优先级类似,具体此处不再赘述;Openflow交换机与Openflow控制器都确定第一TCP通道、第二TCP通道以及第三TCP通道的优先级后,Openflow交换机或Openflow控制器为需要传输的每个报文分配优先级,然后根据该报文的优先级分配TCP通道进行传输,将优先级高的报文分配到优先级高的TCP通道传输,中间网络设备可以优先转发优先级高的TCP通道内传输的报文,因此,将优先级高的报文通过优先级高的TCP通道传输,可以提高优先级高的报文的传输效率,避免优先级高的报文阻塞在TCP通道内。
前述对Openflow交换机建立的与Openflow控制器的至少两个TCP通道的优先级的确定进行了说明,可以避免优先级高的报文阻塞在TCP通道内,下面对报文的优先级确定的具体流程进行详细说明,请参阅图6,本申请实施例中数据传输的方法的另一种实施例示意图,包括:
601、Openflow交换机与Openflow控制器建立至少两个TCP通道;
本申请实施例中的步骤601与前述图3中的步骤301类似,具体此处不再赘述。
602、Openflow交换机向Openflow控制器发送通告消息;
本申请实施例中的通告消息可以是前述图3中的通告消息,也可以是前述图4中的会话优先级消息,还可以是前述图5中的特征回复消息,当该通告消息为前述图3中的通告消息时,本申请实施例中的步骤602与前述图3中的步骤302类似,当该通告消息为前述图4中的会话优先级消息时,本申请实施例中的步骤602与前述图4中的步骤402类似,当该通告消息为前述图5中的特征回复消息时,本申请实施例中的步骤602与前述图5中的步骤505类似,具体此处不再赘述。
603、Openflow交换机确定TCP通道优先级;
Openflow交换机在向Openflow控制器发送通告消息前或发送通告消息后,确定该至少两个TCP通道的优先级。当该通告消息为前述图4中的会话优先级消息时,Openflow交换机在接收到该通告消息后确定TCP通道的优先级,当该通告消息为前述图5中的特征回复消息时,该Openflow交换机可以在发送该通告消息前确定该TCP通道的优先级,或当该通告消息中不包括该至少两个TCP通道的优先级时,该至少两个TCP通道的优先级也可以是该Openflow交换机与该Openflow控制器上预置的。
应理解,本申请实施例中的步骤603与前述图3中的步骤303、前述图4中的步骤405或前述图5中的步骤505类似,具体此处不再赘述。
604、Openflow控制器确定TCP通道优先级;
Openflow控制器可以在接收到Openflow交换机发送的消息后确定该至少两个TCP通道的优先级,也可以是该Openflow控制器与该Openflow交换机提前约定该至少两个TCP通道的优先级。
应理解,本申请实施例中的步骤604与前述图3中的步骤304、前述图4中的步骤404或前述图5中的步骤506类似,具体此处不再赘述。
605、Openflow交换机确定报文优先级;
Openflow交换机可以获取Openflow控制器为每个报文分配的优先级。进一步地,该报文的优先级可以包括报文优先级与转发优先级,该报文优先级可以用于Openflow控制器或Openflow交换机处理报文的优先级,Openflow交换机优先处理优先级更高的报文,该转发优先级为中间网络设备转发该报文的优先级,中间网络设备优先转发转发优先级高的报文。在实际应用中,可将报文的转发优先级设置为与报文优先级对应,例如,若报文的报文优先级为第一优先级,则该报文的转发优先级也为第一优先级,若报文的报文优先级为第二优先级,则该报文的转发优先级也为第二优先级。
Openflow交换机也可以根据上报报文的报文类型为上报报文分配优先级,该上报报文为Openflow交换机向Openflow控制器发送的报文,为协议报文分配的优先级可以高于其他报文的优先级,以使在进行报文传输时优先传输协议报文,或为协议报文分配更多的网络资源,预留网络资源的具体方式可以是根据资源预留协议(resource reservationprotocol,RSVP)为该报文预留网络资源,避免协议报文阻塞在TCP通道内,造成协议断链。应理解,该上报报文的优先级还可以是Openflow控制器分配,然后下发至Openflow交换机的,由Openflow控制器下发的流表报文的优先级只能由Openflow控制器分配。
606、Openflow控制器确定报文优先级;
Openflow控制器可以根据每个报文的报文类型为每个报文分配优先级,优先级高的报文可优先传输或分配更多的网络资源。进一步地,该报文的优先级可以包括报文优先级与转发优先级,该报文优先级可以用于Openflow控制器或Openflow交换机处理报文的优先级,Openflow交换机优先处理优先级更高的报文,该转发优先级为中间网络设备转发该报文的优先级,中间网络设备优先转发转发优先级高的报文。在实际应用中,可将报文的转发优先级设置为与报文优先级对应。例如,若报文的报文优先级为第一优先级,则该报文的转发优先级也为第一优先级,若报文的报文优先级为第二优先级,则该报文的转发优先级也为第二优先级。Openflow网络中的报文还分为协议报文与流表报文等,若协议报文阻塞在TCP通道中,将导致Openflow协议断链,造成TCP通道断开,数据转发失败,因此为协议报文分配的优先级可以高于流表报文等报文。例如,为协议报文分配的优先级高于重要的流表报文、为重要的流表报文分配的优先级高于非重要的流表报文等,该协议报文可以包括连接保活的hello报文。为协议报文分配更高的优先级,在传输时优先传输协议报文,或为协议报文分配更多的网络资源,避免协议报文阻塞在TCP通道内,而造成协议断链。此外,流表报文的优先级可以由Openflow控制器配置,流表报文包括多个流表,多个流表之间可能存在依赖性,例如,路由表与接口信息、地址解析协议(address resolution protocol,ARP)信息具有关联关系,接口信息与ARP信息存储于路由表的下级流表,若接口信息与ARP信息未先下发,则当路由表下发时,将会出现无法获取下级表的情况,导致数据丢失,因此流表的优先级可以高于该流表的上一级流表的优先级。
应理解,在实际应用中,报文的优先级可以由Openflow交换机分配,也可以由Openflow控制器分配,可以是Openflow交换机分配上报报文的优先级,Openflow控制器分配下发报文的优先级;也可以是所有报文的优先级都由Openflow控制器分配,例如,生成报文与优先级的对应列表,为每个TCP通道配置传输列表等,然后由该Openflow控制器下发至Openflow交换机,Openflow交换机可根据Openflow控制器分配的优先级传输上报的报文。
需要说明的是,当由Openflow交换机为上报报文分配优先级时,本申请实施例对步骤605与步骤606的执行顺序不作限定,可以先执行步骤605,也可以先执行步骤606,具体此处不作限定。
607、Openflow交换机为报文分配TCP通道;
在Openflow交换机确定上报报文的优先级后,Openflow交换机可以为上报报文从该至少两个TCP通道中分配对应的TCP通道,该上报报文由Openflow交换机向Openflow控制器发送,可以将优先级不同的报文分配到不同的TCP通道。例如,为第一优先级的报文分配第一TCP通道,为第二优先级的报文分配第二TCP通道,第一优先级的报文在第一TCP通道传输,第二优先级的报文在第二TCP通道传输,在分配报文优先级时,若协议报文的优先级高于其他报文,那么,可以为协议报文分配一个TCP通道可以避免协议报文与其他报文阻塞在一个TCP通道内。
具体地,Openflow交换机为每个报文分配TCP通道的方式可以是,Openflow交换机为每个TCP通道配置分别分配一个访问控制列表(Access Control List,ACL),或接收Openflow控制器下发的ACL,每个TCP通道对应的ACL中包括了可以通过该TCP通道传输的报文。当Openflow交换机确定有报文需要传输时,可通过该ACL确定该报文传输的TCP通道。ACL中的报文可以根据报文的优先级分配,例如,第一优先级的报文分配到第一ACL,第二优先级的报文分配到第二ACL,第三优先级的报文分配到第三ACL,以此类推。
具体地,Openflow交换机为每个报文分配TCP通道的方式还可以是,Openflow交换机为优先级高的报文预留网络资源,例如,Openflow交换机传输一个优先级高的报文,那么,Openflow交换机可以提前为该报文预留一个单独的TCP通道,以通过该TCP通道传输该优先级高的报文,避免该优先级高的报文阻塞在TCP通道内。
此外,Openflow交换机还可以获取该至少两个TCP通道中每个通道的带宽占用率,可以将宽带宽占用率高的TCP通道的一部分报文,分配到带宽占用率低的TCP通道中传输。例如,若第一TCP通道的带宽占用率大于第一阈值,且第二TCP通道的带宽占用率低于第二阈值,则可以将即将在在第一TCP通道传输的报文分配到第二TCP通道进行传输。可以提高报文传输的效率,减少数据在TCP通道内的拥塞,还可以合理利用网络资源,避免网络资源浪费。
608、Openflow控制器为报文分配TCP通道;
在Openflow控制器确定下发报文的优先级后,Openflow控制器可以为每个报文从该至少两个TCP通道中分配对应的TCP通道,因为有多个TCP通道,可以将优先级不同的报文分配到不同的TCP通道。例如,该Openflow交换机中可以预置一个映射表,若报文的优先级与第一TCP通道的第一优先级对应,则为该报文分配第一TCP通道,若该报文的优先级与第二TCP通道的第二优先级对应,则为第二优先级的报文分配第二TCP通道。因此,在实际应用中,可以为优先级高的报文单独分配TCP通道,以避免协议报文与其他报文阻塞在一个TCP通道内。
具体地,Openflow控制器为每个报文分配TCP通道的方式可以是,Openflow控制器为每个TCP通道配置分别一个ACL,每个TCP通道对应的ACL中包括了可以通过该TCP通道传输的报文,当Openflow控制器确定有报文需要传输时,可通过该ACL确定该报文传输的TCP通道,ACL中的报文可以根据报文的优先级分配,例如,第一优先级的报文分配到第一ACL,第一优先级通过第一TCP通道传输,第二优先级的报文分配到第二ACL,第二优先级通过第人TCP通道传输,第三优先级的报文分配到第三ACL,第三优先级通过第三TCP通道传输,依次类推。
具体地,Openflow控制器为每个报文分配TCP通道的方式还可以是,Openflow控制器为优先级高的报文预留更多的网络资源,例如,Openflow控制器即将传输一个优先级高的报文,那么,可以提前为该报文预留一个单独的TCP通道,以通过该TCP通道传输该优先级高的报文,避免该优先级高的报文阻塞在TCP通道内。
应理解,本申请实施例中的步骤607是在步骤605之后执行,本申请实施例中的步骤608在步骤606之后执行,本申请实施例对步骤607与步骤608的执行顺序不作限定,可以先执行步骤607,也可以先执行步骤608,具体此处不作限定。
609、Openflow交换机与Openflow控制器根据报文的优先级传输报文。
每个报文可以通过由Openflow控制器或Openflow交换机分配的对应的TCP通道传输。例如,Openflow控制器或Openflow交换机为协议报文分配了第一TCP通道,那么协议报文可以通过第一TCP通道进行传输。Openflow控制器与Openflow交换机之前建立了至少两个TCP通道,该至少两个TCP通道中的每个TCP通道都可以进行数据传输。因此当每个报文按照优先级被分别分配到该至少两个TCP通道中传输时,高优先级的报文可以与低优先级的报文可以分别使用不同的TCP通道进行传输,使高优先级报文能够快速传输,避免高优先级报文与低优先级报文阻塞在一个TCP通道中。还可以为高优先级的报文分配比低优先级报文更多的网络资源,使高优先级报文使用更多的网络资源进行传输,进一步提高高优先级报文传输的效率,以及进一步避免高优先级报文阻塞在TCP通道内的情况。例如,将协议报文与流表报文分不同的通道发送,避免协议报文与流表报文阻塞在一个通道内,或进一步为协议报文分配高于流表报文的网络资源,使协议报文能够快速传输,避免协议报文阻塞在通道内而导致协议断链。
此外,为进一步提高报文传输的效率,Openflow交换机还可以获取该至少两个TCP通道中每个通道的带宽占用率,可以将宽带宽占用率高的TCP通道的一部分报文,分配到带宽占用率低的TCP通道中传输。例如,若第一TCP通道的带宽占用率大于第一阈值,且第二TCP通道的带宽占用率低于第二阈值,则可以将即将在在第一TCP通道传输的报文分配到第二TCP通道进行传输,可以合理利用网络资源,以及提高报文传输的效率。
本申请实施例中,在Openflow控制器与Openflow交换机之间建立至少两个TCP通道,Openflow控制器或Openflow交换机为在该至少两个TCP通道中传输的每个报文分配了优先级,然后Openflow控制器或Openflow交换机根据该优先级为每个报文从该至少两个TCP通道中分配了对应的TCP通道,该每个报文可以通过分配的对应的TCP通道传输,不同优先级的报文可以通过不同的TCP通道传输,避免高优先级的报文与低优先级的报文拥塞在一个TCP通道内,可以避免TCP通道阻塞,而导致报文阻塞,协议断链的情况,提高数据传输的效率以及容量。
具体地,以3个TCP通道为例,具体的数据传输方法的过程可以是,Openflow交换机与Openflow控制器之间建立了3个TCP通道,包括第一TCP通道、第二TCP通道以及第三TCP通道,第一TCP通道对应第一优先级,第二TCP通道对应第二优先级,第三TCP通道对应第三优先级,第一优先级高于第二优先级,第二优先级高于第三优先级。Openflow控制器分别为第一TCP通道、第二TCP通道以及第三TCP通道分配ACL1、ACL2以及ACL3。ACL1列表上的报文在第一TCP通道传输,ACL2列表上的报文在第二TCP通道传输,ACL3列表上的报文在第三TCP通道传输,当中间网络设备接收到第一TCP通道中传输的报文时,优先转发该报文,可以将优先级高的报文在优先级高的TCP通道中传输,避免优先级高的报文阻塞在TCP通道内。若Openflow控制器或Openflow交换机监测到第一TCP通道的带宽占用率为5%,低于30%,第二TCP带宽占用率为99%,高于70%,则可以将第二TCP通道等待传输的部分报文分配到第一TCP通道进行传输,更进一步提高报文传输的效率。
更具体地,在实际应用中,例如,Openflow交换机上当前有60个报文等待发送,因报文数据量过大,使用一个TCP通道将造成报文阻塞。Openflow交换机建立与Openflow控制器之间的4个TCP通道,该第4个TCP通道的优先级分别是,第一TCP通道的优先级为第一优先级,第二TCP通道的优先级也为第一优先级,第三TCP通道的优先级为第二优先级,第四TCP通道的优先级为第三优先级。Openflow交换机也为该60个报文分配优先级,协议报文为第一优先级,重要的流表报文为第二优先级,非重要的流表报文为第三优先级。其中,第一优先级高于第二优先级,第二优先级高于第三优先级。将该60个报文分配到该4个TCP通道上,协议报文分配了2个TCP通道,即第一TCP通道与第二TCP通道,重要的流表报文分配了1个TCP通道,即第三TCP通道,非重要的流表报文分配了一个TCP通道,即第四TCP通道,将高优先级与低优先级的报文通过不同的TCP通道传输,优先传输高优先级报文,避免高优先级的报文与低优先级的报文拥塞在一个TCP通道内,提高数据传输的可靠性。
前述本申请实施例提供的数据传输的方法进行了详细说明,本申请实施例还提供了与该数据传输方法对应的装置,下面对本申请实施例提供的装置进行阐述,请参阅图7,本申请实施例中Openflow交换机的一种实施例示意图,可以包括:
建立单元701,用于在该Openflow交换机的第一端口和Openflow控制器的第三端口之间建立第一TCP通道,以及在该Openflow交换机的第二端口和该Openflow控制器的该第三端口之间建立第二TCP通道,该第一端口和该第二端口为不同端口;
确定单元702,用于确定该第一TCP通道的第一优先级和该第二TCP通道的第二优先级;
传输单元703,用于根据报文的优先级经由该第一TCP通道或该第二TCP通道传输该报文。
可选地,在一些可能的设计中,
该传输单元703,还用于经由该第一TCP通道向该Openflow控制器发送第一通告消息,该第一通告消息携带该第一优先级的信息;
该传输单元703,还用于经由该第二TCP通道向该Openflow控制器发送第二通告消息,该第二通告消息携带该第二优先级的信息。
可选地,在一些可能的设计中,该第一通告消息可以是第一会话优先级消息,该第二通告消息可以是第二会话优先级消息:
该传输单元703,还用于经由该第一TCP通道接收来自Openflow控制器的第一会话优先级回复消息,该第一会话优先级回复消息用于该Openflow控制器确认该Openflow交换机确定的该第一优先级,此外,该第一会话优先级回复消息还可以包括Openflow控制器重新为该第一TCP通道分配的优先级,Openflow控制器通过该第一会话优先级回复消息通知该Openflow交换机将Openflow控制器重新分配的优先级作为该第一TCP通道的优先级;
该传输单元703,还用于经由该第二TCP通道接收来自Openflow控制器的第二会话优先级回复消息,该第二会话优先级回复消息用于该Openflow控制器确认该Openflow交换机确定的该第二优先级,此外,该第二会话优先级回复消息还可以包括Openflow控制器重新为该第二TCP通道分配的优先级,Openflow控制器通过该第二会话优先级回复消息通知该Openflow交换机将Openflow控制器重新分配的优先级作为该第二TCP通道的优先级。
可选地,在一些可能的设计中,该第一通告消息是第一特征回复消息,该第二通告消息是第二特征回复消息,在该传输单元发送该第一通告消息和该第二通告消息之前,包括:
该传输单元703,还用于经由该第一TCP通道接收来自Openflow控制器的第一特征请求消息;
该传输单元703,还用于经由该第二TCP通道接收来自Openflow控制器的第二特征请求消息。
可选地,在一些可能的设计中,
在该确定单元702确定该报文的优先级和该第一优先级相同后,该传输单元703具体用于经由该第一TCP通道传输该报文;或者
在该确定单元702确定该报文的优先级和该第二优先级相同后,该传输单元703具体用于经由该第二TCP通道传输该报文。
可选地,在一些可能的设计中,
该确定单元702,还用于确定该报文的优先级和该第一优先级相同;
该确定单元702,还用于确定该第一TCP通道的带宽占用率高于第一阈值,且该第二TCP通道的带宽占用率低于第二阈值;
该传输单元703,在该确定单元确定该第一TCP通道的带宽占用率高于第一阈值,且该第二TCP通道的带宽占用率低于第二阈值后,还用于经由该第二TCP通道传输该报文。
前述对本申请实施例中的Openflow交换机进行了说明,下面对本申请实施例中的Openflow控制器进行说明,请参阅图8,本申请实施例中Openflow控制器的一种实施方式,可以包括:
传输单元801,用于经由该第一TCP通道接收该Openflow交换发送的第一通告消息,该第一通告消息携带第一优先级的信息;
该传输单元801,还用于经由该第二TCP通道接收该Openflow交换发送的第二通告消息,该第二通告消息携带第二优先级的信息;
确定单元802,用于根据该第一通告消息确定该第一TCP通道的优先级为该第一优先级,以及根据该第二通告消息确定该第二TCP通道的优先级为该第二优先级;
该传输单元801,还用于根据报文的优先级经由该第一TCP通道或该第二TCP通道传输该报文。
可选地,在一些可能的设计中,该第一通告消息是第一会话优先级消息,该第二通告消息是第二会话优先级消息,可以包括:
该传输单元801,还用于通过该第一TCP通道向该Openflow交换机发送该第一会话优先级回复消息,该第一会话优先级回复消息用于通知Openflow交换机:该确定单元802确认该Openflow交换机确定的该第一优先级为该第一TCP通道的优先级;
该传输单元801,还用于通过该第二TCP通道向该Openflow交换机发送该第二会话优先级回复消息,该第二会话优先级回复消息用于通知Openflow交换机:该确定单元802确认该Openflow交换机确定的该第二优先级为该第二TCP通道的优先级。
可选地,在一些可能的设计中,该第一通告消息可以是第一特征回复消息,该第二通告消息可以是第二特征回复消息,在该传输单元801接收该Openflow交换机发送的该第一通告消息和该第二通告消息之前,可以包括:
该传输单元801,还用于通过该第一TCP通道向该Openflow交换机发送第一特征请求消息;
该传输单元801,还用于通过该第二TCP通道向该Openflow交换机发送第二特征请求消息。
可选地,在一些可能的设计中,
在该确定单元802确定该报文的优先级和该第一优先级相同后,该传输单元801具体用于经由该第一TCP通道传输该报文;或者
在该确定单元802确定该报文的优先级和该第二优先级相同后,该传输单元801具体用于经由该第二TCP通道传输该报文。
可选地,在一些可能的设计中,
该确定单元802,还用于确定该报文的优先级和该第一优先级相同;
该确定单元802,还用于确定该第一TCP通道的带宽占用率高于第一阈值,且该第二TCP通道的带宽占用率低于第二阈值;
该传输单元801,在该确定单元确定该第一TCP通道的带宽占用率高于第一阈值,且该第二TCP通道的带宽占用率低于第二阈值后,还用于通过该第二TCP通道传输该报文。
图9是本申请实施例提供的一种Openflow交换机结构示意图,该Openflow交换机900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)922(例如,一个或一个以上处理器)和存储器932,一个或一个以上存储应用程序942或数据944的存储介质930(例如一个或一个以上海量存储设备)。其中,存储器932和存储介质930可以是短暂存储或持久存储。存储在存储介质930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对Openflow交换机中的一系列指令操作。更进一步地,中央处理器922可以设置为与存储介质930通信,在Openflow交换机900上执行存储介质930中的一系列指令操作。
Openflow交换机900还可以包括一个或一个以上电源926,一个或一个以上有线或无线网络接口950,一个或一个以上输入输出接口958,和/或,一个或一个以上操作系统941,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由Openflow交换机所执行的步骤可以基于该图9所示的Openflow交换机结构。
图10是本申请实施例提供的一种Openflow控制器结构示意图,该Openflow控制器1000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1022(例如,一个或一个以上处理器)和存储器1032,一个或一个以上存储应用程序1042或数据1044的存储介质1030(例如一个或一个以上海量存储设备)。其中,存储器1032和存储介质1030可以是短暂存储或持久存储。存储在存储介质1030的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对Openflow控制器中的一系列指令操作。更进一步地,中央处理器1022可以设置为与存储介质1030通信,在Openflow控制器1000上执行存储介质1030中的一系列指令操作。
Openflow控制器1000还可以包括一个或一个以上电源1026,一个或一个以上有线或无线网络接口1050,一个或一个以上输入输出接口1058,和/或,一个或一个以上操作系统1041,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由Openflow控制器所执行的步骤可以基于该图10所示的Openflow控制器结构。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例图2至图6所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。