CN104734988B - 软件定义网络中路由控制的方法和开放流控制器 - Google Patents

软件定义网络中路由控制的方法和开放流控制器 Download PDF

Info

Publication number
CN104734988B
CN104734988B CN201310719020.XA CN201310719020A CN104734988B CN 104734988 B CN104734988 B CN 104734988B CN 201310719020 A CN201310719020 A CN 201310719020A CN 104734988 B CN104734988 B CN 104734988B
Authority
CN
China
Prior art keywords
data packet
value
ofc
caching
ofs
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.)
Active
Application number
CN201310719020.XA
Other languages
English (en)
Other versions
CN104734988A (zh
Inventor
满波
李晨吉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Hangzhou Huawei Digital Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Huawei Digital Technologies Co Ltd filed Critical Hangzhou Huawei Digital Technologies Co Ltd
Priority to CN201310719020.XA priority Critical patent/CN104734988B/zh
Priority to EP19183619.6A priority patent/EP3618373B1/en
Priority to PCT/CN2014/092021 priority patent/WO2015096574A1/zh
Priority to EP14875772.7A priority patent/EP3073690B1/en
Publication of CN104734988A publication Critical patent/CN104734988A/zh
Priority to US15/189,828 priority patent/US10237181B2/en
Application granted granted Critical
Publication of CN104734988B publication Critical patent/CN104734988B/zh
Priority to US16/273,784 priority patent/US10757021B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/42Centralised routing

Abstract

本发明公开了一种软件定义网络中路由控制的方法和开放流控制器。该方法包括:开放流控制器OFC接收开放流交换机OFS上报的数据包;OFC根据缓存中存储的关键值,确定数据包是否为重复包,其中,关键值包括数据包特征值;若数据包为重复包,OFC向OFS下发数据包,并指示OFS匹配已存储的流表处理数据包或者指示OFS从对应的端口传输数据包;若数据包不是重复包,OFC计算数据包的路由策略,并根据路由策略向OFS下发流表,以便于OFS根据下发的流表处理数据包。本发明实施例的方法中,如果数据包为重复包,就直接向OFS下发该数据包,并指示OFS匹配已存储的流表处理该数据包。这样,对于重复包,OFC可以仅计算一次路由策略,从而降低了OFC的计算量。

Description

软件定义网络中路由控制的方法和开放流控制器
技术领域
本发明涉及通信领域,并且更具体地,涉及一种软件定义网络中路由控制的方法和开放流控制器。
背景技术
在SDN(Software Defined Networking,软件定义网络)中,控制面与转发面相分离。控制面基于全网制定路由策略,转发面根据收到的路由决策处理数据包。在主机发起请求的过程中,请求由OFS(Open Flow Switch,开放流交换机)将数据包上报给OFC(OpenFlow Controller,开放流控制器)。在OFC完成相应的逻辑后,会针对该请求生成对应的N个路径上的OFS下发流表项。
过程中,可能会存在两个问题。第一,在主机发起请求到对应的流表项在与主机连接的第一个OFS中生效的时间段内,可能会有重复M个同样的请求包上报。对于这M个重复的请求,OFC端会无差别地对待,计算M次,并针对路径上的N个OFS下发M个重复流表项。第二,在OFC向N个路径上的OFS下发流表项的过程中,由于OFC到各个OFS的网络传输时间和各个OFS对于该条流表项的指令生效的时间不一致,还会造成在OFC针对路径上的OFS下发流表项以后,数据包再次在路径中不同的OFS重复上报的问题,OFC仍然会重复计算一次或多次。
目前的解决方案是在OFS端做一个缓存,对于一定时间内的重复包,交换机只会上报处理第一个,当OFC下发流表项的时候再把缓存中的对应的同一批的数据包给转发出去。这种方案只能对路由策略路径中首个OFS上报的重复包生效,对于路由策略路径中其它OFS上报的重复包不能生效,仍然造成OFC的重复计算量增加以及下发大量的重复流表项。
发明内容
本发明实施例提供了一种软件定义网络中路由控制的方法和开放流控制器,能够减小开放流控制器的计算量和重复流表项的下发量。
第一方面,提供了一种软件定义网络中路由控制的方法,包括:开放流控制器OFC接收开放流交换机OFS上报的数据包;OFC根据缓存中存储的关键值,确定数据包是否为重复包,其中,关键值包括数据包特征值;若数据包为重复包,OFC向OFS下发数据包,并指示OFS匹配已存储的流表处理数据包或者指示OFS从对应的端口传输数据包;若数据包不是重复包,OFC计算数据包的路由策略,并根据路由策略向OFS下发流表,以便于OFS根据下发的流表处理数据包。
结合第一方面,在第一方面的第一种实现方式中,OFC根据缓存中存储的关键值,确定数据包是否为重复包,包括:OFC将数据包的特征值与关键值中的数据包特征值进行比较,以确定数据包是否命中缓存;若数据包命中缓存,OFC确定数据包为重复包;若数据包没命中缓存,OFC确定数据包不是重复包。
结合第一方面及其上述实现方式,在第一方面的第二种实现方式中,关键值还包括处理时刻,OFC根据缓存中存储的关键值,确定数据包是否为重复包,包括:OFC将数据包的特征值与关键值中的数据包特征值进行比较,以确定数据包是否命中缓存;若数据包命中缓存,OFC确定当前时刻与关键值中的处理时刻之间的时间间隔是否小于或等于预设的时间值,预设的时间值为小于或等于流表有效时间的时间值;若时间间隔小于或等于预设的时间值,OFC确定数据包为重复包;若数据包没命中缓存,或者时间间隔大于预设的时间值,OFC确定数据包不是重复包。
结合第一方面及其上述实现方式,在第一方面的第三种实现方式中,关键值还包括处理时刻和计数器值,OFC根据缓存中存储的关键值,确定数据包是否为重复包,包括:OFC将数据包的特征值与关键值中的数据包特征值进行比较,以确定数据包是否命中缓存;若数据包命中缓存,OFC确定当前时刻与关键值中的处理时刻之间的时间间隔是否小于或等于预设的时间值,并确定关键值中的计数器值是否为零,预设的时间值为小于或等于流表有效时间的时间值;若时间间隔小于或等于预设的时间值,且计数器值不为零,OFC确定数据包为重复包,并将关键值中的计数器值减一;若数据包没命中缓存,或者时间间隔大于预设的时间值,或者计数器值为零,OFC确定数据包不是重复包。
结合第一方面及其上述实现方式,在第一方面的第四种实现方式中,预设的时间值为根据OFS对OFC下发的消息的响应时间确定的时间值。
结合第一方面及其上述实现方式,在第一方面的第五种实现方式中,特征值包括源媒体接入控制MAC地址、目的MAC地址、源互联网协议IP地址、目的IP地址、源端口号、目的端口号或虚拟局域网VLAN标识及优先级中的一种或多种。
结合第一方面及其上述实现方式,在第一方面的第六种实现方式中,缓存是基于最近最少使用LRU算法维护的固定大小的缓存。
结合第一方面及其上述实现方式,在第一方面的第七种实现方式中,OFC根据缓存中存储的关键值,确定数据包是否为重复包,包括:OFC的多线程分配器根据数据包的特征值分配线程,以便于OFC在线程上,根据缓存中存储的关键值,确定数据包是否为重复包。
结合第一方面及其上述实现方式,在第一方面的第八种实现方式中,若数据包不是重复包,OFC计算数据包的路由策略之后,该方法还包括:OFC在缓存中存储数据包的关键值。
第二方面,提供了一种开放流控制器,包括接收单元、确定单元、处理单元和发送单元,其中,接收单元,用于接收开放流交换机OFS上报的数据包;确定单元,用于根据缓存中存储的关键值,确定数据包是否为重复包,其中,关键值包括数据包特征值;若数据包为重复包,发送单元用于向OFS发送数据包,以及处理单元用于指示OFS匹配已存储的流表处理数据包或者指示OFS从对应的端口传输数据包;若数据包不是重复包,处理单元用于计算数据包的路由策略,以及发送单元用于根据路由策略向OFS下发流表,以便于OFS根据下发的流表处理数据包。
结合第二方面,在第二方面的第一种实现方式中,确定单元具体用于,将数据包的特征值与关键值中的数据包特征值进行比较,以确定数据包是否命中缓存;若数据包命中缓存,确定数据包为重复包;若数据包没命中缓存,确定数据包不是重复包。
结合第二方面及其上述实现方式,在第二方面的第二种实现方式中,关键值还包括处理时刻,确定单元具体用于,将数据包的特征值与关键值中的数据包特征值进行比较,以确定数据包是否命中缓存;若数据包命中缓存,确定当前时刻与关键值中的处理时刻之间的时间间隔是否小于或等于预设的时间值,预设的时间值为小于或等于流表有效时间的时间值;若时间间隔小于或等于预设的时间值,确定数据包为重复包;若数据包没命中缓存,确定数据包不是重复包。
结合第二方面及其上述实现方式,在第二方面的第三种实现方式中,关键值还包括处理时刻和计数器值,确定单元具体用于,将数据包的特征值与关键值中的数据包特征值进行比较,以确定数据包是否命中缓存;若数据包命中缓存,确定当前时刻与关键值中的处理时刻之间的时间间隔是否小于或等于预设的时间值,并确定关键值中的计数器值是否为零,预设的时间值为小于或等于流表有效时间的时间值;若时间间隔小于或等于预设的时间值,且计数器值不为零,确定数据包为重复包,并将关键值中的计数器值减一;若数据包没命中缓存,或者时间间隔大于预设的时间值,或者计数器值为零,确定数据包不是重复包。
结合第二方面及其上述实现方式,在第二方面的第四种实现方式中,预设的时间值为根据OFS对开放流控制器下发的消息的响应时间确定的时间值。
结合第二方面及其上述实现方式,在第二方面的第五种实现方式中,特征值包括源媒体接入控制MAC地址、目的MAC地址、源互联网协议IP地址、目的IP地址、源端口号、目的端口号或虚拟局域网VLAN标识及优先级中的一种或多种。
结合第二方面及其上述实现方式,在第二方面的第六种实现方式中,缓存是基于最近最少使用LRU算法维护的固定大小的缓存。
结合第二方面及其上述实现方式,在第二方面的第七种实现方式中,该开放流控制器还包括:分配单元,用于根据数据包的特征值分配线程;确定单元具体用于,在线程上根据缓存中存储的关键值,确定数据包是否为重复包。
结合第二方面及其上述实现方式,在第二方面的第八种实现方式中,该开放流控制器还包括:存储单元,若数据包不是重复包,在开放流控制器计算数据包的路由策略之后,用于在缓存中存储数据包的关键值。
基于上述技术方案,本发明实施例的方法中,OFC可以根据缓存中存储的关键值,判断上报的数据包是否为重复包。如果为重复包,就直接向OFS下发该数据包,并指示OFS匹配已存储的流表处理该数据包。这样,对于传输路径上的首个或其它OFS上报的重复数据包,OFC可以仅计算一次路由策略,从而降低了OFC的计算量。同时,可以减小OFC对重复流表项的下发量,进而缓解了OFC出口的带宽压力。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例可应用的通信系统的示意性结构图。
图2是本发明一个实施例的软件定义网络中路由控制的方法的示意性流程图。
图3是本发明实施例的开放流控制器多线程处理的示意性流程图。
图4是本发明另一实施例的软件定义网络中路由控制的方法的示意性流程图。
图5是本发明一个实施例的开放流控制器的示意性框图。
图6是本发明另一实施例的开放流控制器的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
图1是本发明实施例可应用的通信系统的示意性结构图。图1的通信系统包括开放流控制器OFC101、开放流交换机OFS(102a,102b,102c)和计算机(103a,103b,103c)。在该通信系统中,计算机(103a,103b,103c)通过开放流交换机OFS(102a,102b,102c)接入网络,开放流交换机OFS(102a,102b,102c)与开放流控制器OFC101相连。开放流控制器OFC101基于全网视图制定路由策略,开放流交换机OFS(102a,102b,102c)根据接收到的路由策略处理从计算机(103a,103b,103c)接收的数据包。本发明实施例对通信系统中的计算机和OFS的数量不作限定。
假设计算机103a作为主机发起数据传输请求,请求将数据包传输到计算机103c。该数据包经由OFS102a上报给OFC101,OFC101计算出该数据包的路由策略后,生成对应的N个路径上的OFS流表项,并下发到这N个路径上的OFS。但是在这个过程中,计算机103a可能会有重复M个相同的请求(例如,都是请求将数据包传输到计算机103c上报给OFS102a。这种情况下,OFC101会重复计算M次路由策略,计算量较大。
对于短时间内相同的数据传输请求,在不命中真实的流表项和模拟的假流表项的情况下,可以在OFS102a端做一个假流表项。具体地,将第一个数据包上报给OFC101,同时生成一个假的流表项。对于后续的M-1个相同的传输请求,在OFC101下发的流表项还未在OFS102a上面生效的时间段内,会命中假的流表项,并进入缓存,不会上报给OFC101。OFC101针对该相同请求的流表项生效后,OFS102a按照生效的流表项处理缓存中的数据。这样,OFC101针对计算机103a的M个相同的请求仅计算一次路由策略,而不用计算M次,减小了计算量。
但是,由于OFC到各个OFS的网络传输时间和各个OFS对于该条流表项的指令生效的时间不一致,对于传输路径中OFS可能还会上报数据包请求路由策略。这种情况下,OFC101还会重复计算路由策略。另外,如果由OFS处理重复包,增加了OFS处理数据包的复杂度,一定程度上违背了SDN网络的设计思路,也不利于实现OFS的标准化。并且,在OFS缓存耗尽以后,会按照开放流OpenFlow协议全包上报,上述处理机制就会失效,仍然造成OFC的重复计算量增加以及下发大量的重复流表项。
在本发明实例中,在OFC101设置缓存,并在计算出路由策略后存储对应数据包的关键值。这样,OFC101可以根据缓存中存储的关键值,判断上报的数据包是否为重复包。如果为重复包,就直接向OFS下发该数据包,并指示OFS匹配流表进行传输。这样,对于传输路径上的首个或其它OFS上报的重复数据包,OFC可以仅计算一次路由策略,从而降低了OFC的计算量。同时,可以减小OFC对重复流表项的下发量,进而缓解了OFC出口的带宽压力。
图2是本发明一个实施例的软件定义网络中路由控制的方法的示意性流程图。图2的方法200可以由OFC执行,例如,图1所示的OFC101。
201,开放流控制器OFC接收开放流交换机OFS上报的数据包。
202,OFC根据缓存中存储的关键值,确定数据包是否为重复包,其中,关键值包括数据包特征值。
203,若数据包为重复包,OFC向OFS下发数据包,并指示OFS匹配已存储的流表处理数据包或者指示OFS从对应的端口传输数据包。
例如,确定数据包为重复包后,OFC直接向OFS下发该数据包,并指示OFS匹配已存储的流表处理该数据包,具体地,OFS根据OFC的指示,可以按照匹配的流表先将该数据包的包头信息进行变更之后,再根据流表中指示的端口传输该数据包,也可以根据流表中指示的端口直接传输该数据包,或者在不需要对数据包的包头信息进行其它处理的情况下,OFC直接指示OFS从对应的端口传输数据包。
204,若数据包不是重复包,OFC计算数据包的路由策略,并根据路由策略向OFS下发流表,以便于OFS根据下发的流表处理数据包。
基于上述技术方案,本发明实施例的方法中,OFC可以根据缓存中存储的关键值,判断上报的数据包是否为重复包。如果为重复包,就直接向OFS下发该数据包,并指示OFS匹配已存储的流表处理该数据包。这样,对于传输路径上的首个或其它OFS上报的重复数据包,OFC可以仅计算一次路由策略,从而降低了OFC的计算量。同时,可以减小OFC对重复流表项的下发量,进而缓解了OFC出口的带宽压力。
另外,通过OFC对重复包进行识别和处理,OFS端不需要改变数据包的处理逻辑。这符合SDN网络的设计思路,OFC负责控制层面的路由策略制定,OFS实现转发层面的数据转发,也利于实现SDN网络的标准化。
应理解,关键值为OFC计算出路由策略时存储的数据包的信息,例如,该数据包的信息可以包括数据包的特征值和附属值。特征值为表示该数据包区别于其它数据包的传输源和目的地的信息。附属值为处理该数据包时的一些其它信息,例如,处理该数据包的时刻或为该数据包设置的计数器初始值等。具体地,可以提取出数据包包头中的12元组(例如,OpenFlow协议规定的12元组),除去入端口对应的元组,将剩余的11元组封装作为特征值。也可以将处理该数据包的处理时刻、与该数据包对应的预设时间值、处理该数据包的线程标识和计数器初始值等其它必要的信息作为附属值。
还应理解,重复包是指根据OFC的处理逻辑确定为不需要重复计算路由策略的数据包。
可选地,作为一个实施例,步骤202中,在OFC根据缓存中存储的关键值,确定数据包是否为重复包时,OFC可以将数据包的特征值与关键值中的数据包特征值进行比较,以确定数据包是否命中缓存。若数据包命中缓存,OFC确定数据包为重复包。若数据包没命中缓存,OFC确定数据包不是重复包。
例如,若数据包命中缓存,OFC确定该数据包为重复包,然后按照重复包的处理流程,直接将该数据包下发到OFS,并指示OFS匹配已存储的流表处理该数据包。若数据包没有命中缓存,OFC可以认为该数据包不是重复包。这时,OFC可以按照正常流程处理该数据包,计算该数据包的路由策略,再向路径中的OFS下发流表项,以便于OFS按照下发的流表处理该数据包,同时存储该数据包的关键值。
可选地,作为另一实施例,关键值还包括处理时刻,步骤202中,在OFC根据缓存中存储的关键值,确定数据包是否为重复包时,OFC可以将数据包的特征值与关键值中的数据包特征值进行比较,以确定数据包是否命中缓存。若数据包命中缓存,OFC确定当前时刻与关键值中的处理时刻之间的时间间隔是否小于或等于预设的时间值,预设的时间值为小于或等于流表有效时间的时间值。若时间间隔小于或等于预设的时间值,OFC确定数据包为重复包。若数据包没命中缓存,或者时间间隔大于预设的时间值,OFC确定数据包不是重复包。
例如,若没有同时满足命中缓存和时间间隔小于预设的时间值时,OFC可以确定该数据不是重复包,按照正常流程处理该数据包,并在缓存中存储该数据包的关健值。
这样,可以防止由于不设时间限制或者设置的时间值过长而引起的网络错误,可以进一步提升SDN网络性能。
例如,如果OFC对流表项设置的空闲超时时间动态过期时间(Idle time out)时间为5s,那么预设的时间值应该小于5s。一般情况下,流表的静态过期时间(Hard time out)的时间会大于Idle time out的时间,如果不是,预设的时间值应小于则这两者中最小的数值。
可选地,作为另一实施例,关键值还包括处理时刻和计数器值,步骤202中,在OFC根据缓存中存储的关键值,确定数据包是否为重复包时,OFC将数据包的特征值与关键值中的数据包特征值进行比较,以确定数据包是否命中缓存。若数据包命中缓存,OFC确定当前时刻与关键值中的处理时刻之间的时间间隔是否小于或等于预设的时间值,并确定关键值中的计数器值是否为零,预设的时间值为小于或等于流表有效时间的时间值。若时间间隔小于或等于预设的时间值,且计数器值不为零,OFC确定数据包为重复包,并将关键值中的计数器值减一。若数据包没命中缓存,或者时间间隔大于预设的时间值,或者计数器值为零,OFC确定数据包不是重复包。
为计数器预先设置初始值,在OFC确定数据包为重复包后,将计数器值减一。若没有同时满足命中缓存、时间间隔小于预设的时间值和计数器值不为零时,OFC可以确定该数据不是重复包,按照正常流程处理该数据包,并在缓存中存储该数据包的关健值。若计数器值为零,重置计数器为初始值。
这样,可以防止由于不设时间限制或者设置的时间值过长而引起的网络错误,可以进一步提升SDN网络性能。例如,在OFC向OFS下发的流表项的过程中,出现偶然的错误,通讯错误、校验错误或生效错误等,导致流表项没有生效。
另外,在出现网络错误时,OFC可能会不断地确定数据包为重复包,并指示OFS匹配流表项进行传输。然而,OFS不断地匹配不到流表,向OFC上报数据包,造成传输风暴。增加计数器的约束条件,按照前述的处理流程,当OFC不断下发数据包的次数超过计数器初始值后,OFC会重新计算路由策略,从而可以避免或者减小上述传输风暴。
可选地,作为另一实施例,缓存是基于最近最少使用LRU算法维护的固定大小的缓存。这样,在缓存容量不够时,可以自动删除最近使用最少的关键值,以实现自管理。
可选地,作为另一实施例,步骤202中,在OFC根据缓存中存储的关键值,确定数据包是否为重复包时,OFC的多线程分配器可以根据数据包的特征值分配线程,以便于OFC在该线程上,根据缓存中存储的关键值,确定数据包是否为重复包。
这样,OFC可以根据数据包的特征值粗略将可能会命中缓存的数据包分配给同一个线程处理,从而可以避免不同线程处理近似的数据包而不能识别重复包的问题,进一步提高了重复包的处理效率,减小了OFC的计算量。
如图3所示,图3是本发明实施例的开放流控制器多线程处理的示意性流程图,阴影所示的上报给OFC的PI(Packet in)包为近似的数据包。OFC的缓存中存储处理PI包的线程标识,多线程分配器根据存储的线程标识,将这些近似的数据包分配给同一个线程处理。
可选地,作为另一实施例,特征值包括源媒体接入控制MAC地址、目的MAC地址、源互联网协议IP地址、目的IP地址、源端口号、目的端口号或虚拟局域网VLAN标识及优先级中的一种或多种。
可选地,作为另一实施例,预设的时间值为根据OFS对OFC下发的消息的响应时间确定的时间值
例如,可以参考OFC和OFS之间的一些协议消息的回复消息或者流表项生成成功与否的返回消息的时间间隔,确定预设的时间值。这个间隔可以取平均值或者取上一次的值。
可选地,作为另一实施例,若数据包不是重复包,OFC计算数据包的路由策略之后,OFC在缓存中存储数据包的关键值。
可选地,在出现网络不稳定的情况时,OFC还可以进行如下处理,当网络拓扑震荡时,也就是链路发生变化时,全部清空缓存中的数据。或者,当主机的挂载点删除或变化时,删除和该主机有关系的缓存对象。
下面将结合具体的例子详细描述本发明实施例。应注意,这些例子只是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。
图4是本发明另一实施例的软件定义网络中路由控制的方法的示意性流程图。
401,OFS向OFC上报PI包。
402,OFC根据缓存中存储的关键值确定PI包是否命中缓存。OFC可以将数PI包的特征值与关键值中的特征值进行比较,以确定该PI包是否命中缓存。若命中缓存,进入步骤403;若没有命中缓存,进入步骤407。
403,OFC确定当前时刻与关键值中的处理时刻之间的时间间隔是否小于预设的时间值。若时间间隔小于预设的时间值,进入步骤404;若没有命中缓存,进入步骤407。
404,OFC确定关键值中的计数器值是否为零。若计数器值为零,重置计数器为初始值,并进入步骤407;若计数器值不为零,进入步骤405。
405,按照重复包处理流程处理PI包,并更新缓存。OFC直接将该PI包下发到OFS,并指示OFS匹配已有的流表进行传输或者指示OFS从对应的端口传输数据包,并更新缓存,也即将计数器减一。
406,按照普通流程处理PI包,并存储关键值。OFC计算该PI包的路由策略,再向路径中的OFS下发流表项,以便于OFS按照下发的流表传输该数据包。同时,提取该PI包包头的12元组,存储该数据包的关键值。
在本发明实施例的方法中,OFC可以根据缓存中存储的关键值,判断上报的数据包是否为重复包。如果为重复包,就直接向OFS下发该数据包,并指示OFS匹配已存储的流表处理该数据包。这样,对于传输路径上的首个或其它OFS上报的重复数据包,OFC可以仅计算一次路由策略,从而降低了OFC的计算量。同时,可以减小OFC对重复流表项的下发量,进而缓解了OFC出口的带宽压力。
图5是本发明一个实施例的开放流控制器的示意性框图。图4的开放流控制器50包括接收单元501、确定单元502、处理单元503和发送单元504。
接收单元501,用于接收开放流交换机OFS上报的数据包;
确定单元502,用于根据缓存中存储的关键值,确定数据包是否为重复包,其中,关键值包括数据包特征值;
若数据包为重复包,发送单元504用于向OFS发送数据包,以及处理单元503用于指示OFS匹配已存储的流表处理数据包或者指示OFS从对应的端口传输数据包;
若数据包不是重复包,处理单元503用于计算数据包的路由策略,以及发送单元504用于根据路由策略向OFS下发流表,以便于OFS根据下发的流表处理数据包。
基于上述技术方案,本发明实施例的OFC可以根据缓存中存储的关键值,判断上报的数据包是否为重复包。如果为重复包,就直接向OFS下发该数据包,并指示OFS匹配已存储的流表处理该数据包。这样,对于传输路径上的首个或其它OFS上报的重复数据包,OFC可以仅计算一次路由策略,从而降低了OFC的计算量。同时,可以减小OFC对重复流表项的下发量,进而缓解了OFC出口的带宽压力。
另外,通过OFC对重复包进行识别和处理,OFS端不需要改变数据包的处理逻辑。这符合SDN网络的设计思路,OFC负责控制层面的路由策略制定,OFS实现转发层面的数据转发,也利于实现SDN网络的标准化。
应理解,关键值为OFC计算出路由策略时存储的数据包的信息,例如,该数据包的信息可以包括数据包的特征值和附属值。特征值为表示该数据包区别于其它数据包的传输源和目的地的信息。附属值为处理该数据包时的一些其它信息,例如,处理该数据包的时刻或为该数据包设置的计数器初始值等。具体地,可以提取出数据包包头中的12元组(例如,OpenFlow协议规定的12元组),除去入端口对应的元组,将剩余的11元组封装作为特征值。也可以将处理该数据包的处理时刻、与该数据包对应的预设时间值、处理该数据包的线程标识和计数器初始值等其它必要的信息作为附属值。
还应理解,重复包是指根据OFC的处理逻辑确定为不需要重复计算路由策略的数据包。
可选地,作为一个实施例,确定单元502具体用于,将数据包的特征值与关键值中的数据包特征值进行比较,以确定数据包是否命中缓存;若数据包命中缓存,确定数据包为重复包;若数据包没命中缓存,确定数据包不是重复包。
例如,若数据包命中缓存,OFC确定该数据包为重复包,然后按照重复包的处理流程,直接将该数据包下发到OFS,并指示OFS匹配已有的流表进行传输。若数据包没有命中缓存,OFC可以认为该数据包不是重复包。这时,OFC可以按照正常流程处理该数据包,计算该数据包的路由策略,再向路径中的OFS下发流表项,以便于OFS按照下发的流表传输该数据包,同时存储该数据包的关键值。
可选地,作为另一实施例,关键值还包括处理时刻,确定单元502具体用于,将数据包的特征值与关键值中的数据包特征值进行比较,以确定数据包是否命中缓存;若数据包命中缓存,确定当前时刻与关键值中的处理时刻之间的时间间隔是否小于或等于预设的时间值,预设的时间值为小于或等于流表有效时间的时间值;若时间间隔小于或等于预设的时间值,确定数据包为重复包;若数据包没命中缓存,确定数据包不是重复包。
例如,若没有同时满足命中缓存和时间间隔小于预设的时间值时,OFC可以确定该数据不是重复包,按照正常流程处理该数据包,并在缓存中存储该数据包的关健值。
这样,可以防止由于不设时间限制或者设置的时间值过长而引起的网络错误,可以进一步提升SDN网络性能。
例如,如果OFC对流表项设置的空闲超时时间动态过期时间(Idle time out)时间为5s,那么预设的时间值应该小于5s。一般情况下,流表的静态过期时间(Hard time out)的时间会远大于Idle time out的时间,如果不是,预设的时间值应小于则这两者中最小的数值。
可选地,作为另一实施例,关键值还包括处理时刻和计数器值,确定单元502具体用于,将数据包的特征值与关键值中的数据包特征值进行比较,以确定数据包是否命中缓存;若数据包命中缓存,确定当前时刻与关键值中的处理时刻之间的时间间隔是否小于或等于预设的时间值,并确定关键值中的计数器值是否为零,预设的时间值为小于或等于流表有效时间的时间值;若时间间隔小于或等于预设的时间值,且计数器值不为零,确定数据包为重复包,并将关键值中的计数器值减一;若数据包没命中缓存,或者时间间隔大于预设的时间值,或者计数器值为零,确定数据包不是重复包。
为计数器预先设置初始值,在OFC确定数据包为重复包后,将计数器值减一。若没有同时满足命中缓存、时间间隔小于预设的时间值和计数器值不为零时,OFC可以确定该数据不是重复包,按照正常流程处理该数据包,并在缓存中存储该数据包的关健值。若计数器值为零,重置计数器为初始值。
这样,可以防止由于不设时间限制或者设置的时间值过长而引起的网络错误,可以进一步提升SDN网络性能。例如,在OFC向OFS下发的流表项的过程中,出现偶然的错误,通讯错误、校验错误或生效错误等,导致流表项没有生效。
另外,在出现网络错误时,OFC可能会不断地确定数据包为重复包,并指示OFS匹配流表项进行传输。然而,OFS不断地匹配不到流表,向OFC上报数据包,造成传输风暴。增加计数器的约束条件,按照前述的处理流程,当OFC不断下发数据包的次数超过计数器初始值后,OFC会重新计算路由策略,从而可以避免或者减小上述传输风暴。
可选地,作为另一实施例,缓存是基于最近最少使用LRU算法维护的固定大小的缓存。这样,在缓存容量不够时,可以自动删除最近使用最少的关键值,以实现自管理。
可选地,作为另一实施例,该开放流控制器50还可以包括,分配单元505,用于根据数据包的特征值分配线程;这时候,确定单元502具体用于,在线程上根据缓存中存储的关键值,确定数据包是否为重复包。
这样,OFC可以根据数据包的特征值粗略将可能会命中缓存的数据包分配给同一个线程处理,这样可以避免不同线程处理近似的数据包而不能识别重复包的问题,进一步提高了重复包的处理效率,减小了OFC的计算量。
可选地,作为另一实施例,特征值包括源媒体接入控制MAC地址、目的MAC地址、源互联网协议IP地址、目的IP地址、源端口号、目的端口号或虚拟局域网VLAN标识及优先级中的一种或多种。
可选地,作为另一实施例,预设的时间值为根据OFS对开放流控制器下发的消息的响应时间确定的时间值。
例如,可以参考OFC和OFS之间的一些协议消息的回复消息或者流表项生成成功与否的返回消息的时间间隔,确定预设的时间值。这个间隔可以取平均值或者取上一次的值。
可选地,作为另一实施例,该开放流控制器50还包括,存储单元506,若数据包不是重复包,在开放流控制器计算数据包的路由策略之后,用于在缓存中存储数据包的关键值。
可选地,在出现网络不稳定的情况时,该开放流控制器50还可以进行如下处理,当网络拓扑震荡时,也就是链路发生变化时,全部清空缓存中的数据。或者,当主机的挂载点删除或变化时,删除和该主机有关系的缓存对象。
图6是本发明另一实施例的开放流控制器的示意性框图。
图6的开放流控制器60可用于实现上述方法实施例中各步骤及方法。图6的实施例中,开放流控制器60包括发射电路602、接收电路603、处理器604、存储器605及接口601。处理器604控制开放流控制器60的操作,并且可用于处理信号。处理器604还可以称为CPU(Central Processing Unit,中央处理单元)。存储器605可以包括只读存储器和随机存取存储器,并向处理器604提供指令和数据。存储器605的一部分还可以包括非易失行随机存取存储器(NVRAM)。具体的应用中,开放流控制器60可以嵌入或者本身可以就是例如移动电话之类的无线通信设备。发射电路602和接收电路603可以耦合到接口601。开放流控制器60的各个组件通过总线系统609耦合在一起,其中总线系统609除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都标为总线系统609。
具体地,存储器605可存储使得处理器604执行以下操作的指令:
接收开放流交换机OFS上报的数据包;根据缓存中存储的关键值,确定数据包是否为重复包,其中,关键值包括数据包特征值;若数据包为重复包,向OFS下发数据包,并指示OFS匹配已存储的流表处理数据包;若数据包不是重复包,计算数据包的路由策略,并根据路由策略向OFS下发流表,以便于OFS根据下发的流表处理数据包。
基于上述技术方案,在本发明实施例中,OFC可以根据缓存中存储的关键值,判断上报的数据包是否为重复包。如果为重复包,就直接向OFS下发该数据包,并指示OFS匹配已存储的流表处理该数据包。这样,对于传输路径上的首个或其它OFS上报的重复数据包,OFC可以仅计算一次路由策略,从而降低了OFC的计算量。同时,可以减小OFC对重复流表项的下发量,进而缓解了OFC出口的带宽压力。
另外,通过OFC对重复包进行识别和处理,OFS端不需要改变数据包的处理逻辑。这符合SDN网络的设计思路,OFC负责控制层面的路由策略制定,OFS实现转发层面的数据转发,也利于实现SDN网络的标准化。
应理解,关键值为OFC计算出路由策略时存储的数据包的信息,例如,该数据包的信息可以包括数据包的特征值和附属值。特征值为表示该数据包区别于其它数据包的传输源和目的地的信息。附属值为处理该数据包时的一些其它信息,例如,处理该数据包的时刻或为该数据包设置的计数器初始值等。具体地,可以提取出数据包包头中的12元组(例如,OpenFlow协议规定的12元组),除去入端口对应的元组,将剩余的11元组封装作为特征值。也可以将处理该数据包的处理时刻、与该数据包对应的预设时间值、处理该数据包的线程标识和计数器初始值等其它必要的信息作为附属值。
还应理解,重复包是指根据OFC的处理逻辑确定为不需要重复计算路由策略的数据包。
可选地,作为一个实施例,存储器605还可存储使得处理器604执行以下操作的指令:
将数据包的特征值与关键值中的数据包特征值进行比较,以确定数据包是否命中缓存;若数据包命中缓存,OFC确定数据包为重复包;若数据包没命中缓存,确定数据包不是重复包。
若数据包没有命中缓存,可以认为该数据包不是重复包。这时,可以按照正常流程处理该数据包,计算该数据包的路由策略,再向路径中的OFS下发流表项,以便于OFS按照下发的流表传输该数据包,同时存储该数据包的关键值。
可选地,作为一个实施例,关键值还包括处理时刻,存储器605还可存储使得处理器604执行以下操作的指令:
将数据包的特征值与关键值中的数据包特征值进行比较,以确定数据包是否命中缓存;若数据包命中缓存,确定当前时刻与关键值中的处理时刻之间的时间间隔是否小于或等于预设的时间值,预设的时间值为小于或等于流表有效时间的时间值;若时间间隔小于或等于预设的时间值,确定数据包为重复包;若数据包没命中缓存,或者时间间隔大于预设的时间值,确定数据包不是重复包。
若没有同时满足命中缓存和时间间隔小于预设的时间值时,可以确定该数据不是重复包,按照正常流程处理该数据包,并在缓存中存储该数据包的关健值。
这样,可以防止由于不设时间限制或者设置的时间值过长而引起的网络错误,可以进一步提升SDN网络性能。
可选地,作为一个实施例,关键值还包括处理时刻和计数器值,存储器605还可存储使得处理器604执行以下操作的指令:
将数据包的特征值与关键值中的数据包特征值进行比较,以确定数据包是否命中缓存;若数据包命中缓存,确定当前时刻与关键值中的处理时刻之间的时间间隔是否小于或等于预设的时间值,并确定关键值中的计数器值是否为零,预设的时间值为小于或等于流表有效时间的时间值;若时间间隔小于或等于预设的时间值,且计数器值不为零,确定数据包为重复包,并将关键值中的计数器值减一;若数据包没命中缓存,或者时间间隔大于预设的时间值,或者计数器值为零,确定数据包不是重复包。
为计数器预先设置初始值,在OFC确定数据包为重复包后,将计数器值减一。若没有同时满足命中缓存、时间间隔小于预设的时间值和计数器值不为零时,OFC可以确定该数据不是重复包,按照正常流程处理该数据包,并在缓存中存储该数据包的关健值。若计数器值为零,重置计数器为初始值。
这样,可以防止由于不设时间限制或者设置的时间值过长而引起的网络错误,可以进一步提升SDN网络性能。例如,在OFC向OFS下发的流表项的过程中,出现偶然的错误,通讯错误、校验错误或生效错误等,导致流表项没有生效。
另外,在出现网络错误时,OFC可能会不断地确定数据包为重复包,并指示OFS匹配流表项进行传输。然而,OFS不断地匹配不到流表,向OFC上报数据包,造成传输风暴。增加计数器的约束条件,按照前述的处理流程,当OFC不断下发数据包的次数超过计数器初始值后,OFC会重新计算路由策略,从而可以避免或者减小上述传输风暴。
可选地,作为一个实施例,存储器605还可存储使得处理器604执行以下操作的指令:
缓存是基于最近最少使用LRU算法维护的固定大小的缓存。
这样,在缓存容量不够时,可以自动删除最近使用最少的关键值,以实现自管理。
可选地,作为一个实施例,存储器605还可存储使得处理器604执行以下操作的指令:
在根据缓存中存储的关键值,确定数据包是否为重复包时,可以根据该开放流控制器60的多线程分配器根据数据包的特征值分配线程,以便于OFC在线程上,根据缓存中存储的关键值,确定数据包是否为重复包。
这样,OFC可以根据数据包的特征值粗略将相近似的数据包分配给同一个线程处理,从而可以避免不同线程处理近似的数据包而不能识别重复包的问题,进一步提高了重复包的处理效率,减小了OFC的计算量。
可选地,作为一个实施例,存储器605还可存储使得处理器604执行以下操作的指令:
特征值包括源媒体接入控制MAC地址、目的MAC地址、源互联网协议IP地址、目的IP地址、源端口号、目的端口号或虚拟局域网VLAN标识及优先级中的一种或多种。
可选地,作为一个实施例,存储器605还可存储使得处理器604执行以下操作的指令:
预设的时间值为根据OFS对OFC下发的消息的响应时间确定的时间值。
可选地,作为一个实施例,存储器605还可存储使得处理器604执行以下操作的指令:
若数据包不是重复包,计算数据包的路由策略之后,在缓存中存储数据包的关键值。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (18)

1.一种软件定义网络中路由控制的方法,其特征在于,包括:
开放流控制器OFC接收开放流交换机OFS上报的数据包;
所述OFC根据缓存中存储的关键值,确定所述数据包是否为重复包,其中,所述关键值包括数据包特征值,所述重复包是指根据所述OFC的处理逻辑确定为不需要重复计算路由策略的数据包;
若所述数据包为重复包,所述OFC向所述OFS下发所述数据包,并指示所述OFS匹配已存储的流表处理所述数据包或者指示所述OFS从对应的端口传输所述数据包;
若所述数据包不是重复包,所述OFC计算所述数据包的路由策略,并根据所述路由策略向所述OFS下发流表,以便于所述OFS根据下发的流表处理所述数据包。
2.根据权利要求1所述的方法,其特征在于,所述OFC根据缓存中存储的关键值,确定所述数据包是否为重复包,包括:
所述OFC将所述数据包的特征值与所述关键值中的数据包特征值进行比较,以确定所述数据包是否命中缓存;
若所述数据包命中缓存,所述OFC确定所述数据包为重复包;
若所述数据包没命中缓存,所述OFC确定所述数据包不是重复包。
3.根据权利要求1所述的方法,其特征在于,所述关键值还包括处理时刻,所述OFC根据缓存中存储的关键值,确定所述数据包是否为重复包,包括:
所述OFC将所述数据包的特征值与所述关键值中的数据包特征值进行比较,以确定所述数据包是否命中缓存;
若所述数据包命中缓存,所述OFC确定当前时刻与所述关键值中的处理时刻之间的时间间隔是否小于或等于预设的时间值,所述预设的时间值为小于或等于流表有效时间的时间值;
若所述时间间隔小于或等于所述预设的时间值,所述OFC确定所述数据包为重复包;
若所述数据包没命中缓存,或者所述时间间隔大于所述预设的时间值,所述OFC确定所述数据包不是重复包。
4.根据权利要求1所述的方法,其特征在于,所述关键值还包括处理时刻和计数器值,所述OFC根据缓存中存储的关键值,确定所述数据包是否为重复包,包括:
所述OFC将所述数据包的特征值与所述关键值中的数据包特征值进行比较,以确定所述数据包是否命中缓存;
若所述数据包命中缓存,所述OFC确定当前时刻与所述关键值中的处理时刻之间的时间间隔是否小于或等于预设的时间值,并确定所述关键值中的计数器值是否为零,所述预设的时间值为小于或等于流表有效时间的时间值;
若所述时间间隔小于或等于所述预设的时间值,且所述计数器值不为零,所述OFC确定所述数据包为重复包,并将所述关键值中的计数器值减一;
若所述数据包没命中缓存,或者所述时间间隔大于所述预设的时间值,或者所述计数器值为零,所述OFC确定所述数据包不是重复包。
5.根据权利要求3或4所述的方法,其特征在于,所述预设的时间值为根据OFS对OFC下发的消息的响应时间确定的时间值。
6.根据权利要求2至4中任一项所述的方法,其特征在于,所述特征值包括源媒体接入控制MAC地址、目的MAC地址、源互联网协议IP地址、目的IP地址、源端口号、目的端口号或虚拟局域网VLAN标识及优先级中的一种或多种。
7.根据权利要求1至4中任一项所述的方法,其特征在于,所述缓存是基于最近最少使用LRU算法维护的固定大小的缓存。
8.根据权利要求1至4中任一项所述的方法,其特征在于,所述OFC根据缓存中存储的关键值,确定所述数据包是否为重复包,包括:
所述OFC的多线程分配器根据所述数据包的特征值分配线程,以便于所述OFC在所述线程上,根据缓存中存储的关键值,确定所述数据包是否为重复包。
9.根据权利要求1至4中任一项所述的方法,其特征在于,若所述数据包不是重复包,所述OFC计算所述数据包的路由策略之后,所述方法还包括:
所述OFC在所述缓存中存储所述数据包的关键值。
10.一种开放流控制器,其特征在于,包括接收单元、确定单元、处理单元和发送单元,其中,
所述接收单元,用于接收开放流交换机OFS上报的数据包;
所述确定单元,用于根据缓存中存储的关键值,确定所述数据包是否为重复包,其中,所述关键值包括数据包特征值,所述重复包是指根据所述OFC的处理逻辑确定为不需要重复计算路由策略的数据包;
若所述数据包为重复包,所述发送单元用于向所述OFS发送所述数据包,以及所述处理单元用于指示所述OFS匹配已存储的流表处理所述数据包或者指示所述OFS从对应的端口传输所述数据包;
若所述数据包不是重复包,所述处理单元用于计算所述数据包的路由策略,以及所述发送单元用于根据所述路由策略向所述OFS下发流表,以便于所述OFS根据下发的流表处理所述数据包。
11.根据权利要求10所述的开放流控制器,其特征在于,所述确定单元具体用于,将所述数据包的特征值与所述关键值中的数据包特征值进行比较,以确定所述数据包是否命中缓存;若所述数据包命中缓存,确定所述数据包为重复包;若所述数据包没命中缓存,确定所述数据包不是重复包。
12.根据权利要求10所述的开放流控制器,其特征在于,所述关键值还包括处理时刻,所述确定单元具体用于,将所述数据包的特征值与所述关键值中的数据包特征值进行比较,以确定所述数据包是否命中缓存;若所述数据包命中缓存,确定当前时刻与所述关键值中的处理时刻之间的时间间隔是否小于或等于预设的时间值,所述预设的时间值为小于或等于流表有效时间的时间值;若所述时间间隔小于或等于所述预设的时间值,确定所述数据包为重复包;若所述数据包没命中缓存,确定所述数据包不是重复包。
13.根据权利要求10所述的开放流控制器,其特征在于,所述关键值还包括处理时刻和计数器值,所述确定单元具体用于,将所述数据包的特征值与所述关键值中的数据包特征值进行比较,以确定所述数据包是否命中缓存;若所述数据包命中缓存,确定当前时刻与所述关键值中的处理时刻之间的时间间隔是否小于或等于预设的时间值,并确定所述关键值中的计数器值是否为零,所述预设的时间值为小于或等于流表有效时间的时间值;若所述时间间隔小于或等于所述预设的时间值,且所述计数器值不为零,确定所述数据包为重复包,并将所述关键值中的计数器值减一;若所述数据包没命中缓存,或者所述时间间隔大于所述预设的时间值,或者所述计数器值为零,确定所述数据包不是重复包。
14.根据权利要求12或13所述的开放流控制器,所述预设的时间值为根据所述OFS对所述开放流控制器下发的消息的响应时间确定的时间值。
15.根据权利要求11至13中任一项所述的开放流控制器,其特征在于,所述特征值包括源媒体接入控制MAC地址、目的MAC地址、源互联网协议IP地址、目的IP地址、源端口号、目的端口号或虚拟局域网VLAN标识及优先级中的一种或多种。
16.根据权利要求10至13中任一项所述的开放流控制器,其特征在于,所述缓存是基于最近最少使用LRU算法维护的固定大小的缓存。
17.根据权利要求10至13中任一项所述的开放流控制器,其特征在于,还包括:
分配单元,用于根据所述数据包的特征值分配线程;
所述确定单元具体用于,在所述线程上根据缓存中存储的关键值,确定所述数据包是否为重复包。
18.根据权利要求10至13中任一项所述的开放流控制器,其特征在于,所述开放流控制器还包括:
存储单元,若所述数据包不是重复包,在所述开放流控制器计算所述数据包的路由策略之后,用于在所述缓存中存储所述数据包的关键值。
CN201310719020.XA 2013-12-23 2013-12-23 软件定义网络中路由控制的方法和开放流控制器 Active CN104734988B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201310719020.XA CN104734988B (zh) 2013-12-23 2013-12-23 软件定义网络中路由控制的方法和开放流控制器
EP19183619.6A EP3618373B1 (en) 2013-12-23 2014-11-24 Routing control method in software defined networking and openflow controller
PCT/CN2014/092021 WO2015096574A1 (zh) 2013-12-23 2014-11-24 软件定义网络中路由控制的方法和开放流控制器
EP14875772.7A EP3073690B1 (en) 2013-12-23 2014-11-24 Routing control method in software defined network and open flow controller
US15/189,828 US10237181B2 (en) 2013-12-23 2016-06-22 Routing control method in software defined networking and openflow controller
US16/273,784 US10757021B2 (en) 2013-12-23 2019-02-12 Routing control method in software defined networking and OpenFlow controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310719020.XA CN104734988B (zh) 2013-12-23 2013-12-23 软件定义网络中路由控制的方法和开放流控制器

Publications (2)

Publication Number Publication Date
CN104734988A CN104734988A (zh) 2015-06-24
CN104734988B true CN104734988B (zh) 2018-10-30

Family

ID=53458435

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310719020.XA Active CN104734988B (zh) 2013-12-23 2013-12-23 软件定义网络中路由控制的方法和开放流控制器

Country Status (4)

Country Link
US (2) US10237181B2 (zh)
EP (2) EP3073690B1 (zh)
CN (1) CN104734988B (zh)
WO (1) WO2015096574A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104734988B (zh) * 2013-12-23 2018-10-30 杭州华为数字技术有限公司 软件定义网络中路由控制的方法和开放流控制器
CN106603406B (zh) * 2015-10-16 2020-05-26 中兴通讯股份有限公司 一种bier网络中流量工程信息通告的方法和装置
US11146985B2 (en) * 2015-10-28 2021-10-12 Apple Inc. Quality of service provisioning framework for a SDN-based cellular network architecture
CN108353037A (zh) * 2015-11-13 2018-07-31 华为技术有限公司 具有流过期扩展的openflow兼容网络
WO2017118875A1 (en) * 2016-01-05 2017-07-13 Telefonaktiebolaget Lm Ericsson (Publ) Mechanism to detect control plane loops in a software defined networking (sdn) network
CN107566277B (zh) * 2016-06-30 2020-09-25 华为技术有限公司 拓扑确定方法、消息响应方法、控制器以及交换机
US10491503B2 (en) * 2017-04-03 2019-11-26 Dell Products L.P. Application-policy-based virtual SDN controller system
CN107277858B (zh) * 2017-07-20 2020-05-12 西安电子科技大学 一种基于sdn的多信道传输的5g网络及传输数据的方法
JP2020005051A (ja) * 2018-06-26 2020-01-09 富士通株式会社 制御プログラム、制御装置、及び制御方法
KR102165864B1 (ko) * 2019-07-22 2020-10-14 성균관대학교산학협력단 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법 및 장치
CN112398735B (zh) * 2020-10-22 2022-06-03 烽火通信科技股份有限公司 一种对报文进行批量处理的方法和装置
US11899585B2 (en) 2021-12-24 2024-02-13 Western Digital Technologies, Inc. In-kernel caching for distributed cache
US11934663B2 (en) 2022-01-10 2024-03-19 Western Digital Technologies, Inc. Computational acceleration for distributed cache
US11797379B2 (en) 2022-02-04 2023-10-24 Western Digital Technologies, Inc. Error detection and data recovery for distributed cache

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103095701A (zh) * 2013-01-11 2013-05-08 中兴通讯股份有限公司 开放流表安全增强方法及装置
CN103209121A (zh) * 2013-03-15 2013-07-17 中兴通讯股份有限公司 基于开放流协议的控制面设备的发现处理方法及装置
CN103259728A (zh) * 2013-05-24 2013-08-21 华为技术有限公司 一种ofs带内通信方法及ofs

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101127691A (zh) 2006-08-17 2008-02-20 王玉鹏 一种在网络处理器上实现的基于流的策略路由的方法
WO2008134590A1 (en) * 2007-04-26 2008-11-06 Mushroom Networks Link aggregation methods and devices
EP2477362A4 (en) * 2009-09-10 2013-12-04 Nec Corp RELAY CONTROL DEVICE, RELAY CONTROL SYSTEM, RELAY CONTROL METHOD, AND RELAY CONTROL PROGRAM
JP5446040B2 (ja) * 2009-09-28 2014-03-19 日本電気株式会社 コンピュータシステム、及び仮想マシンのマイグレーション方法
JP5300076B2 (ja) * 2009-10-07 2013-09-25 日本電気株式会社 コンピュータシステム、及びコンピュータシステムの監視方法
JP5717164B2 (ja) * 2009-10-07 2015-05-13 日本電気株式会社 コンピュータシステム、及びコンピュータシステムのメンテナンス方法
CN102714628B (zh) * 2010-01-05 2015-11-25 日本电气株式会社 通信系统、控制装置、处理规则设置方法和分组传输方法
JP5382451B2 (ja) * 2010-01-29 2014-01-08 日本電気株式会社 フロントエンドシステム、フロントエンド処理方法
JP5648926B2 (ja) * 2010-02-01 2015-01-07 日本電気株式会社 ネットワークシステム、コントローラ、ネットワーク制御方法
ES2609521T3 (es) * 2010-12-13 2017-04-20 Nec Corporation Sistema de control de ruta de comunicación, dispositivo de control de ruta, método de control de ruta de comunicación, y programa de control de ruta
JP5884822B2 (ja) * 2011-02-17 2016-03-15 日本電気株式会社 フロー通信システム
WO2012133290A1 (ja) * 2011-03-31 2012-10-04 日本電気株式会社 コンピュータシステム、及び通信方法
US8918502B2 (en) * 2011-11-28 2014-12-23 Nec Laboratories America, Inc. FlowSense: light-weight networking sensing with openflow
WO2013108761A1 (ja) * 2012-01-16 2013-07-25 日本電気株式会社 ネットワークシステム、及び経路情報同期方法
CN102685006A (zh) 2012-05-03 2012-09-19 中兴通讯股份有限公司 一种转发数据报文的方法及装置
CN102946365B (zh) 2012-11-09 2015-06-17 清华大学 一种基于软件定义网络的保持流表更新一致性的方法
US9210074B2 (en) * 2013-05-03 2015-12-08 Alcatel Lucent Low-cost flow matching in software defined networks without TCAMs
US9118571B2 (en) * 2013-07-08 2015-08-25 Telefonaktiebolaget L M Ericsson (Publ) Methods of operating load balancing switches and controllers using matching patterns with unrestricted characters
CN104734988B (zh) * 2013-12-23 2018-10-30 杭州华为数字技术有限公司 软件定义网络中路由控制的方法和开放流控制器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103095701A (zh) * 2013-01-11 2013-05-08 中兴通讯股份有限公司 开放流表安全增强方法及装置
CN103209121A (zh) * 2013-03-15 2013-07-17 中兴通讯股份有限公司 基于开放流协议的控制面设备的发现处理方法及装置
CN103259728A (zh) * 2013-05-24 2013-08-21 华为技术有限公司 一种ofs带内通信方法及ofs

Also Published As

Publication number Publication date
US10237181B2 (en) 2019-03-19
US20190182159A1 (en) 2019-06-13
CN104734988A (zh) 2015-06-24
EP3073690A4 (en) 2016-11-23
WO2015096574A1 (zh) 2015-07-02
EP3073690B1 (en) 2019-07-10
US20160301607A1 (en) 2016-10-13
EP3618373B1 (en) 2023-10-25
EP3618373A1 (en) 2020-03-04
US10757021B2 (en) 2020-08-25
EP3073690A1 (en) 2016-09-28

Similar Documents

Publication Publication Date Title
CN104734988B (zh) 软件定义网络中路由控制的方法和开放流控制器
US10218618B2 (en) Method and apparatus for processing operation request in storage system
US8976669B2 (en) Switch fabric end-to-end congestion avoidance mechanism
Hong et al. Finishing flows quickly with preemptive scheduling
US7200144B2 (en) Router and methods using network addresses for virtualization
CN104660565B (zh) 恶意攻击的检测方法和装置
CN105721300B (zh) 用于网络设备流查找管理的方法及设备
US8095686B2 (en) Method and system for communicating information between a switch and a plurality of servers in a computer network
US7792140B2 (en) Reflecting the bandwidth assigned to a virtual network interface card through its link speed
WO2019068017A1 (en) RESILIENT NETWORK COMMUNICATION USING SELECTIVE PULVER FLOW SPRAY BY MULTIPATH PATH
US20080008202A1 (en) Router with routing processors and methods for virtualization
CN108353029A (zh) 用于管理计算网络中的数据业务的方法和系统
US20110225168A1 (en) Hash processing in a network communications processor architecture
US20220303217A1 (en) Data Forwarding Method, Data Buffering Method, Apparatus, and Related Device
US8929372B2 (en) Grid router
CN101714947B (zh) 一种可扩展的全流优先级调度方法及系统
US10581762B2 (en) Packet scheduling in a switch for reducing cache-miss rate at a destination network node
US7469295B1 (en) Modified round robin load balancing technique based on IP identifier
US7342883B2 (en) Method and apparatus for managing network traffic
US11736417B2 (en) Devices and methods for network message sequencing
CN109861931A (zh) 一种高速以太网交换芯片的存储冗余系统
Dong et al. Low-cost datacenter load balancing with multipath transport and top-of-rack switches
US9137158B2 (en) Communication apparatus and communication method
CN110191068A (zh) 检测网络设备流缓存的陈旧存储器地址
CN113472670A (zh) 网络装置的路由一致性检查器

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
TR01 Transfer of patent right

Effective date of registration: 20200417

Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee after: HUAWEI TECHNOLOGIES Co.,Ltd.

Address before: 301, A building, room 3, building 301, foreshore Road, No. 310052, Binjiang District, Zhejiang, Hangzhou

Patentee before: Huawei Technologies Co.,Ltd.

TR01 Transfer of patent right