CN106063202B - 取决于状态的数据转发方法、控制器和存储介质 - Google Patents
取决于状态的数据转发方法、控制器和存储介质 Download PDFInfo
- Publication number
- CN106063202B CN106063202B CN201480076760.9A CN201480076760A CN106063202B CN 106063202 B CN106063202 B CN 106063202B CN 201480076760 A CN201480076760 A CN 201480076760A CN 106063202 B CN106063202 B CN 106063202B
- Authority
- CN
- China
- Prior art keywords
- data packet
- data
- state
- packet
- state machine
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000003860 storage Methods 0.000 title claims description 28
- 238000007726 management method Methods 0.000 claims abstract description 16
- 238000004891 communication Methods 0.000 claims abstract description 12
- 230000006870 function Effects 0.000 claims description 48
- 230000015654 memory Effects 0.000 claims description 13
- 230000008859 change Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 7
- 238000005538 encapsulation Methods 0.000 claims description 7
- 238000012423 maintenance Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 claims description 4
- 230000005055 memory storage Effects 0.000 claims 1
- 230000006855 networking Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 19
- 238000012545 processing Methods 0.000 description 16
- 230000005540 biological transmission Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 239000000470 constituent Substances 0.000 description 5
- 239000000463 material Substances 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 210000004209 hair Anatomy 0.000 description 2
- 239000004615 ingredient Substances 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000013558 reference substance Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/64—Routing or path finding of packets in data switching networks using an overlay routing layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/20—Network management software packages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/44—Distributed routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种用于根据用于软件定义网络(software‑defined networking,SDN)架构中的本地管理数据转发的协议转发多个数据包的数据流的方法,所述方法包含将多个数据包的所述数据流中的每个数据包输入到数据通信转发实体(forwarding entity,FE)。在所述转发实体处,通过将状态机逻辑应用到所述数据包的至少一个字段以及应用到在所述数据包被接收之前所述转发实体所追踪的状态信息来选择所述数据包的下一个目的地。所述状态机逻辑包含转发所述数据包的规则。
Description
技术领域
无
背景技术
在本发明的一些实施例中,本发明涉及取决于状态的数据转发,并且具体而言但非排他地,涉及在软件定义网络中取决于状态的数据转发。
OpenFlow是用于创建软件定义网络(software-defined network,SDN) 的新兴标准和协议。OpenFlow协议包含可编程转发元件,所述元件以它们可通过外部控制器编程的能力为特征。通过添加表项到也由OpenFlow 协议定义其结构的转发表,控制器对也被称为转发实体的OpenFlow转发元件(Forwarding Element,FE)进行编程。OpenFlow和SDN中的前提是每个新数据流的第一帧被发送到控制器,控制器又在分析帧头之后向所有的参与FE发送转发规则。同一流的所有后续帧均由OpenFlow FE来处理而不被发送到控制器,因此降低了控制器资源的负担。
然而,当需要监测给定数据流的状态(或多种状态)时会破坏所述前提。实施于OpenFlow表中的规则是无状态的,意味着每个帧的转发决策仅取决于所述帧中包含的信息(例如,帧头的值)。任何取决于当前或历史状态的决策必须发送到控制器,因此控制器需要处理比最初设计所要求的更多的包。
此外此外,由于在OpenFlow中仅存在无状态的转发规则,因此不存在流作为在参与主机之间的一组相关入和出业务流的概念,即,当A被允许与B通信时,则存在两个规则,一个用于A->B(出),一个用于A<-B (入)。另外,不存在针对流的流上下文的概念,例如流所来自的端口,发送流的虚拟机(virtual machine,VM)等。
在一个解决方案中,对于数据流上的任何取决于状态的操作,所有与给定流相关的帧被发送到控制器,其中使用控制器或相关的SDN应用程序来处理所有帧。因此,代替就位置而言且就适应性而言均针对包处理优化过的在FE级的有效操作,需要将帧输送到远程地点,所有无效性均由输送而引起。
此外,存在主要用例,无论如何在OpenFlow中都不存在针对这些情况的解决方案,甚至通过发送数据帧到控制器也不存在,因为它们是基于逐帧决策。实例包含1):
1)取决于状态的防火墙;
2)链路聚合(Link Aggregation,LAG);
3)操作、管理和维护(Operation,Administration,and Management, OAM)(例如,802.3ah链路OAM);
4)自动保护倒换(Automatic Protection Switching,APS);
5)负载均衡;以及
6)带宽(Bandwidth,BW)封顶。
在其中数据转发是基于逐帧决策的情况下,目前不存在用于数据转发的有效SDN解决方案。
在一些情况下,将外部组件添加到OpenFlow开关,例如用于防火墙的IP表,用于LAG的端口组。然而,这些解决方案针对特定用例而调整,不连接到SDN框架。这由于开关和外部组件上的冗余功能而导致非最优资源利用。另外,此类解决方案对于基于硬件的OpenFlow开关并不相关。
其它解决方案将取决于状态的应用程序的完全功能添加到FE(例如防火墙SDN应用程序)。这种方法颇为浪费,因为所有帧都需要被发送到 SDN控制器并返回FE,由此因需要追踪大量数据流而限制了SDN控制器的规模。
额外的背景技术包含:
开放网络基金会OpenFlow开关规制;以及
关于“基于SDN、NFV和网络智能的可感知服务的网络架构”的架构处理器白皮书。
发明内容
根据本发明的第一方面,提供一种根据用于软件定义网络 (software-definednetworking,SDN)架构中的本地管理数据转发的协议转发多个数据包的数据流的方法。所述方法包含将多个数据包的数据流中的每个数据包输入到数据通信转发实体。在转发实体处,通过将状态机逻辑应用到数据包的至少一个字段以及应用到在数据包被接收之前转发实体所追踪的状态信息来选择数据包的下一个目的地。状态机逻辑包含转发数据包的规则。
在根据第一方面的第一可能实施方案中,应用状态机逻辑确定转发实体将对数据包执行的动作,并且所述方法进一步包含在转发之前对包执行所述动作。
在根据如此第一方面或根据第一方面的第一实施形式的第二可能实施形式中,状态信息包含以下各项中的至少一者:将数据包从包的发送者传送到包的目的地的网络的网络状态、数据通信转发实体的转发实体状态、输入数据包的包状态、包括输入数据包的数据流的数据流状态、网络的策略数据、在数据包被接收之前记录的事件的事件信息、识别应用于数据包的相应状态机逻辑的状态机标识符(ID),以及数据流的流上下文。
在根据如此第一方面或根据第一方面的任何前述实施形式的第三可能实施形式中,所述方法进一步包含在数据流开始时定义应用于数据流的数据包的相应状态机逻辑。
在根据如此第一方面或根据第一方面的任何前述实施形式的第四可能实施形式中,所述方法进一步包含确定当前状态机逻辑需要更新,并且在将状态机逻辑应用到数据包之前更新状态机逻辑。
在根据如此第一方面或根据第一方面的任何前述实施形式的第五可能实施形式中,所述方法进一步包含在转发之前用数据包封装至少一些状态信息。
在根据如此第一方面或根据第一方面的任何前述实施形式的第六可能实施形式中,所述方法进一步包含在转发实体处根据状态机逻辑的指令产生用于转发到下一个目的地的帧。
在根据如此第一方面或根据第一方面的任何前述实施形式的第七可能实施形式中,所述方法进一步包含通过匹配数据包的至少一个字段与转发实体维持的流表来确定应用于数据包的状态机逻辑,其中流表包含用于数据包的相应状态机逻辑的标识符。
在根据如此第一方面或根据第一方面的任何前述实施形式的第八可能实施形式中,流表包含用于存储状态信息的至少一个字段,并且所述方法进一步包括在数据流期间追踪状态信息以及当检测到所追踪的状态信息的改变时更新流表中用于存储状态信息的至少一个字段。
在根据如此第一方面或根据第一方面的任何前述实施形式的第九可能实施形式中,协议是OpenFlow协议。
根据本发明的第二方面,提供一种用于取决于状态的数据转发的软件定义网络(Software-defined network,SDN)控制器,其中根据用于SDN 架构中的本地管理数据转发的协议转发多个数据包的数据流。将所述多个数据包中的每个数据包输入到数据通信转发实体(forwarding entity,FE)。在所述FE处,通过将状态机逻辑应用到所述数据包的至少一个字段以及应用到在所述数据包被接收之前所述FE所追踪的状态信息来选择所述数据包的下一个目的地,其中所述状态机逻辑包括转发所述数据包的规则;以及将所述数据包转发到所述选定的下一个目的地。
在根据第二方面的第一可能实施方案中,应用状态机逻辑确定转发实体将对数据包执行的动作,并且所述方法进一步包含在转发之前对包执行所述动作。
在根据如此第二方面或根据第二方面的第一实施形式的第二可能实施形式中,状态信息包含以下各项中的至少一者:将数据包从包的发送者传送到包的目的地的网络的网络状态、数据通信转发实体的转发实体状态、输入数据包的包状态、包括输入数据包的数据流的数据流状态、网络的策略数据、在数据包被接收之前记录的事件的事件信息、识别应用于数据包的相应状态机逻辑的状态机标识符(ID),以及数据流的流上下文。
在根据如此第二方面或根据第二方面的任何前述实施形式的第三可能实施形式中,所述方法进一步包含在数据流开始时定义应用于数据流的数据包的相应状态机逻辑。
在根据如此第二方面或根据第二方面的任何前述实施形式的第四可能实施形式中,所述方法进一步包含确定当前状态机逻辑需要更新,并且在将状态机逻辑应用到数据包之前更新状态机逻辑。
在根据如此第二方面或根据第二方面的任何前述实施形式的第五可能实施形式中,所述方法进一步包含在转发之前用数据包封装至少一些状态信息。
在根据如此第二方面或根据第二方面的任何前述实施形式的第六可能实施形式中,所述方法进一步包含在转发实体处根据状态机逻辑的指令产生用于转发到下一个目的地的帧。
在根据如此第二方面或根据第二方面的任何前述实施形式的第七可能实施形式中,所述方法进一步包含通过匹配数据包的至少一个字段与转发实体维持的流表来确定应用于数据包的状态机逻辑,其中流表包含用于数据包的相应状态机逻辑的标识符。
在根据如此第二方面或根据第二方面的任何前述实施形式的第八可能实施形式中,流表包含用于存储状态信息的至少一个字段,并且所述方法进一步包括在数据流期间追踪状态信息以及当检测到所追踪的状态信息的改变时更新流表中用于存储状态信息的至少一个字段。
在根据如此第二方面或根据第二方面的任何前述实施形式的第九可能实施形式中,协议是OpenFlow协议。
根据本发明的第三方面,提供一种用于转发数据包的计算机程序产品,所述计算机程序产品包括计算机可读存储媒体,所述计算机可读存储媒体具有与其实施的程序指令,所述程序指令可由数据网络转发实体执行以使得所述转发实体:经由所述转发实体的入端口输入数据包;通过所述转发实体的处理器根据用于软件定义网络(software-defined networking, SDN)架构中的本地管理数据转发的协议处理输入数据包,从而识别数据包的相应下一个目的地;以及经由所述转发实体的出端口将数据包转发到相应下一个目的地。所述处理器通过使用在数据包被接收之前转发实体所追踪的状态信息将状态机逻辑应用到数据包的至少一个字段来选择数据包的下一个目的地。状态机逻辑包含用于以下各项中的至少一者的规则:转发数据包以及确定转发实体将对数据包执行的动作。
在根据第三方面的第一可能实施方案中,状态信息包含以下各项中的至少一者:将数据包从包的发送者传送到包的目的地的网络的网络状态、数据通信转发实体的转发实体状态、输入数据包的包状态、包括输入数据包的数据流的数据流状态、网络的策略数据、在数据包被接收之前记录的事件的事件信息、识别应用于数据包的相应状态机逻辑的状态机标识符 (ID),以及数据流的流上下文。
在根据如此第三方面或根据第三方面的第一实施形式的第二可能实施形式中,可由数据网络转发实体执行的程序指令使得转发实体从封装有数据包的数据中产生状态机逻辑。
在根据如此第一方面或根据第一方面的任何前述实施形式的第三可能实施形式中,可由数据网络转发实体执行的程序指令使得转发实体:使用用户界面从定义状态机的用户输入信息;以及通过处理器从用户定义状态机产生状态机逻辑。
在根据如此第一方面或根据第一方面的任何前述实施形式的第三可能实施形式中,可由数据网络转发实体执行的程序指令使得转发实体:经由处理器通过匹配数据包的至少一个字段与转发实体维持的流表来选择应用于数据包的状态机逻辑,其中流表包含状态机逻辑的标识符。
除非另外规定,否则本文中所用的所有技术和/或科学术语都具有与本发明所涉及的领域的技术人员通常所理解相同的含义。尽管与本文所述的方法和材料类似或等效的材料和方法可以用于本发明的实施例的实践或测试,但下文描述示例性方法和/或材料。倘若有冲突,本说明书(包括定义)将为主。另外,材料、方法和实例仅为说明性的且并不意图为必定限制性的。
附图说明
本文中仅借助于实例参考附图描述本发明的一些实施例。现特定详细地参考附图,强调细节借助于实例且出于对本发明的实施例的说明性论述的目的示出。就此而言,结合图式进行的描述使所属领域的技术人员显而易见如何来实践本发明的实施例。
在图式中:
图1是根据本发明实施例的转发数据包的数据流的方法的简化流程图;
图2是根据本发明实施例的对FE上的状态机进行编程的方法的简化流程图;
图3A是根据本发明实施例的用于转发数据包的数据网络FE的简化图;
图3B示出将状态机的逻辑表示转译为程序代码的示例性状态机产生器;
图4A是与OpenFlow协议兼容的示例性无状态流表;
图4B是根据本发明的实施例的包含状态信息的示例性流表;
图5是根据本发明实施例的具有取决于状态的转发的扩展OpenFlow 转发实体的简化框图;
图6是根据本发明实施例的用于配置新数据流的方法的简化流程图;
图7是根据本发明实施例的用于转发数据流的方法的简化流程图;以及
图8是在三层Web应用程序上实施扩展OpenFlow协议的示意性实例。
具体实施方式
软件定义网络(Software-defined networking,SDN)是其中将控制从硬件解耦并且提供到硬件元件上运行的软件应用程序的组网方法。在SDN 下,转发元件可以包含在FE上运行的可编程应用程序,其确定数据包通过网络的路径。
如本文所使用,短语“转发元件”(本文中还表示为FE)意指输入数据包并且朝向数据包的最终目的地将数据包输出到数据包的路线中的下一个目的地的任何硬件、软件或固件元件。术语“转发实体”和FE不局限于任何具体类型的网络元件或协议。开关和路由器是FE的非限制性实例。
本文中的实施例提供通过转发元件(forwarding element,FE)进行的数据的取决于状态的转发。FE追踪与给定数据流相关的状态信息。通过在FE内追踪状态信息,FE有可能任选地在不具有来自控制器和/或其它外部网络元件的进一步输入的情况下作出考虑状态信息的转发决策。可以使用应用于数据包或帧中的信息以及所追踪的状态信息的状态机逻辑来进行这些决策。状态机逻辑确定应如何朝向最终目的地转发数据包,并且可以指定应执行的其它动作。
在详细解释本发明的至少一个实施例之前,应理解,本发明在其申请案中不必限于在以下描述中阐述和/或在附图和/或实例中所说明的组件和 /或方法的结构以及布置的细节。本发明能够具有其它实施例或以各种方式实践或进行。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包含计算机可读存储媒体(或多种媒体),其上具有计算机可读程序指令以使处理器执行本发明的各方面。
计算机可读存储媒体可以是有形装置,其可以保持和存储指令以供指令执行装置使用。计算机可读存储媒体可以是(例如但不限于):电子存储装置、磁性存储装置、光学存储装置、电磁存储装置、半导体存储装置或前述各者的任何合适组合。计算机可读存储媒体的更多具体实例的非穷尽性列表包含以下各者:便携式计算机磁盘、硬盘、随机存取存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmable read-only memory, EPROM或闪存存储器)、静态随机存取存储器(static random access memory,SRAM)、便携式压缩光盘只读存储器(compactdisc read-only memory,CD-ROM)、数字通用光盘(digital versatile disk,DVD)、记忆棒、软盘、机械编码装置(例如其上记录有指令的凹槽中的打孔卡片或凸起结构)以及前述各者的任何合适组合。如本文所使用的计算机可读存储媒体本身不应被解释为暂时性信号,例如无线电波或其它自由传播的电磁波、通过波导或其它传输媒体传播的电磁波(例如,通过光缆传递的光脉冲),或通过导线传输的电信号。
本文中所描述的计算机可读程序指令可以从计算机可读存储媒体下载到相应计算/处理装置或通过网路(例如,因特网、局域网、广域网和/ 或无线网络)下载到外部计算机或外部存储装置。所述网络可以包括铜传输电缆、光学传输光纤、无线传输、路由器、防火墙、开关、网间连接计算机和/或边缘服务器。
用于执行本发明的操作的计算机可读程序指令可以是以一种或多种编程语言的任何组合编写的汇编指令、指令集架构 (instruction-set-architecture,ISA)指令、机器指令、机器相关指令、微码、固件指令、状态设定数据或源代码或目标代码,所述一种或多种编程语言包含例如Smalltalk、C++或其类似者的面向对象的编程语言,以及例如“C”编程语言或类似编程语言的常规程序编程语言。计算机可读程序指令可以完全在用户的计算机上执行、部分地在用户的计算机上执行、作为独立软件包执行、部分地在用户的计算机上且部分地在远程计算机上执行,或完全在远程计算机或服务器上执行。在后一种场景中,远程计算机可以通过任何类型的网络(包含局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以连接到外部计算机(举例来说,使用因特网服务提供方通过因特网)。在一些实施例中,包含例如可编程逻辑电路、现场可编程门阵列(field-programmable gate array,FPGA)或可编程逻辑阵列(programmable logic array,PLA)的电子电路可以通过利用计算机可读程序指令的状态信息将电子电路个人化而执行计算机可读程序指令,以便执行本发明的各方面。
本文参考根据本发明的实施例的方法、设备(系统)和计算机程序产品的流程图图示和/或框图来描述本发明的各方面。应理解,可以通过计算机可读程序指令实施流程图图示和/或框图中的每个块,以及流程图图示和 /或框图中的块的组合。
可以将这些计算机可读程序指令提供到通用计算机、专用计算机或其它可编程数据处理设备的处理器以产生机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令创建用于实施在流程图和/或框图框中指定的功能/动作的构件。这些计算机可读程序指令还可以存储在计算机可读存储媒体中,所述计算机可读程序指令可以引导计算机、可编程数据处理设备和/或其它装置以特定方式起作用,使得其中存储有指令的计算机可读存储媒体包括制品,所述制品包含实施在流程图和/或框图块中指定的功能/动作的方面的指令。
计算机可读程序指令还可以加载到计算机、其它可编程数据处理设备或其它装置上,以致使在计算机、其它可编程设备或其它装置上执行一系列操作步骤,以产生计算机实施的过程,使得在计算机、其它可编程设备或其它装置上执行的指令实施在流程图和/或框图块中指定的功能/动作。
图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实施方案的架构、功能性和操作。就此而言,流程图或框图中的每个块可以表示模块、区段或指令的部分,其包括用于实施指定逻辑功能的一个或多个可执行指令。在一些替代实施方案中,各个块中提及的功能可以不按图中所提及的次序发生。例如,取决于所涉及的功能,连续展示的两个框实际上可大体同时执行,或所述框有时可能以相反次序执行。还将注意到,框图和/或流程图图示中的每个块,以及框图和/ 或流程图图示中的块的组合可以通过专用的基于硬件的系统实施,所述系统执行指定功能或动作,或实行专用硬件和计算机指令的组合。
如本文所使用,术语“有状态”意指取决于状态。在非限制性实例中,有状态流表是基于流表的至少一个字段的状态来实施不同规则的流表,如下文所述。
如本文所使用,术语“控制器”意指数据网络的对FE中的转发规则进行编程且在FE外部的任何硬件、软件或固件元件。控制器可以在数据网络中呈集中式或分布式。
如本文所使用,短语“下一个目的地”意指紧接在FE之后的转发数据包的网络元件或节点。在一些情况下,下一个目的地是沿数据包路线的随后的转发元件。在其它情况下,下一个目的地是数据包的最终目的地。
如本文所使用,短语“本地管理路由”和“本地管理转发”意指转发元件针对数据流的至少一些数据包确定数据包的下一个目的地和/或动作而不需要来自控制器的显式信息。应理解,本地管理转发可以至少部分地基于由控制器提供的规则和/或由控制器在接收数据包之前编程到转发元件中的规则。
如本文所使用,短语“状态机”意指模块、区段或指令的部分,其包括用于实施状态机逻辑的一个或多个可执行指令。
现在参考图1,图1是根据本发明实施例的基于状态信息转发数据包的数据流的方法的简化流程图。通过用于SDN架构中的本地管理数据转发的协议实施数据流。OpenFlow是此类协议的非限制性实例。
图1是关于可以任选地在无需发送到控制器的情况下在转发元件处决定其下一个目的地的数据包。在某些情况下,例如,对于新数据流的初始数据包,可以必需执行基本步骤以便实施本地管理路由,如下文所述。
在100中,数字网中路由的数据包进入数据通信FE。所述数据包是经由一个或多个FE通过数据网络从发送者转发到目的地的一连串数据包 (在本文中表示为数据流)的部分。转发规则可以独立地应用于每个数据包;因此形成数据流的数据包可以未必遵循相同路线通过数据网络和/或可以不进行相同动作。数据包可以包含元数据和用以确定数据包的下一个目的地的其它字段。然而,在本发明的实施例中,并非每一个数据包可以包含FE为确定数据包的下一个目的地和/或相关动作所需的所有信息。FE 追踪额外数据(本文中表示为状态信息),以便使得FE能够选择数据包的下一个目的地和/或相关动作而无需将数据包发送到控制器或其它外部元件。
如本文所使用,短语“状态信息”意指关于FE内部和/或外部参数的状态的信息和/或关于流上下文的信息。状态信息中的至少一些由FE追踪并且充当状态机逻辑的参数。
在本发明的一些实施例中,状态信息包含以下各项中的一项或多项:
a)将数据包从包的发送者传送到包的目的地的网络的状态;
b)FE的状态;
c)输入数据包的状态;
d)数据流的状态;
e)网络策略数据;
f)在数据包被接收之前记录的事件的信息;
g)识别应用于给定数据包的相应状态机逻辑的状态机标识符(ID);以及
h)流上下文(本文中还表示为流上下文信息),其是关于数据流的元信息。流上下文对于给定数据流固定,并且并不基于与所述数据流相关的当前状态和/或历史信息。
用于给定数据流的流上下文可以包含以下各项中的一项或多项:
a)发起用户;
b)流的入部分和出部分;
c)文字字段;
d)用户ID;
e)服务质量(Quality of Service,QoS)策略;
f)服务水平协议(Service-level agreement,SLA)策略;
g)流保护策略;以及
h)经由同一用户的其它流。
任选地,在FE处通过以下各项中的一项或多项来获得状态信息:
a)通过控制器或其它网络元件推送;
b)通过FE从控制器或其它网络元件拉动;
c)网络中的包嗅探器(硬件和/或软件);
d)对用户或数据库的查询;以及
e)数据包和/或帧中的元数据。
状态信息中的一些可能是FE外部的任何元件无法获得的。例如,FE 内的有效负载均衡需要了解FE出端口之中的电流负载分布,而这仅在FE 处知晓。
在110中,在FE处通过将状态机逻辑应用到数据包的至少一个字段以及应用到状态信息来选择数据包的下一个目的地。状态机逻辑包含转发数据包的规则。在本发明的一些实施例中,在不考虑状态信息的情况下执行转发决策中的一些,并且状态机逻辑仅实施取决于状态的方面。
任选地,FE还使用状态机逻辑以确定FE在转发数据包之前对数据包执行的一组动作(本文中表示为动作集)。动作的实例包含选择数据包的出端口、用数据包封装至少一些状态信息、选择闲置时间、产生与数据包相关的帧并且将所述所产生的帧插入到数据流中、丢弃数据包以及此项技术中已知的其它动作。
在120中,FE将数据包转发到识别的下一个目的地。
任选地,状态机逻辑可通过控制器和/或通过用户界面从外部进行编程。任选地,当开始新的数据流并且在FE处不存在适当状态机时,通过用于新数据流的状态机对FE进行外部编程。在本发明的一些实施例中,通过FE将数据流中的第一数据包发送到控制器。控制器确定FE何时需要以新的状态机逻辑进行编程并且用所需状态机逻辑对所述FE进行编程。在数据流期间当需要更新状态机逻辑时可以重复所述过程。任选地,控制器用新的状态机逻辑对其它网络FE进行编程。
任选地,针对任何业务控制器先验地用状态机逻辑对相关联FE进行编程(表示为主动模式)。在替代或额外实施例中,控制器仅当检测到第一帧时才对相关联FE进行编程(表示为被动模式)。
现在参考图2,图2是根据本发明实施例的对FE上的状态机进行编程的方法的简化流程图。在200中,在FE处接收数据包。
在210中,FE将数据包发送到控制器。例如,输入数据包可以是新数据流的第一包。在另一实例中,FE并不能够用目前编程的状态机处理包,因此在FE处需要新的状态机逻辑。并非所有数据包都通过FE发送到控制器。
在220中,控制器确定新的状态机逻辑并且发送编程指令和可能的额外数据(例如初始状态信息)到FE。
在230中,在FE处接收编程指令。在240中,在FE内编程新状态机或按需要更新现存状态机。在250中,FE根据所建立的新状态机转发数据流中的数据包。
FE可以包含多个状态机,其中每个状态机追踪与相应数据流相关的状态。FE必需确定应针对给定数据包使用哪个状态机。在本发明的一些实施例中,FE通过匹配至少一个数据包字段与包含相应状态机标识符的流表来确定状态机。
任选地,FE将所追踪的状态信息存储在相应状态机使用的流表中。当检测到改变时更新状态信息。
现在参考图3A,图3A是根据本发明实施例的用于转发数据包的FE 的简化图。在FE处使用的协议用于软件定义网络(software-defined networking,SDN)架构中的本地管理数据转发。FE 300包含具有由处理器310执行的程序指令的计算机可读存储媒体。FE 300包含用于输入数据包的至少一个入端口并且用于输出数据包的至少一个出端口。FE 300如上所述使用状态机逻辑330对数据包中的至少一些执行取决于状态的路由。
在本发明的一些实施例中,FE包含以下各项中的至少一者:
a)状态机工厂340,其是维持和运行用户定义的各种状态机的模块。任选地,经由用户通过用户界面对状态机工厂进行编程。在额外或替代实施例中,通过控制器等外部系统元件对状态机工厂340进行编程;
b)状态机产生器350,其提供使用户能够以逻辑方式定义状态机且接着使用内部解释器创建状态机的用户界面。图3B示出了将状态机的逻辑表示转译为程序代码的示例性状态机产生器;以及
c)帧产生器360,其根据状态机指令产生帧。与仅能够操控从其它源发送的帧的OpenFlow协议截然相反,FE具有产生用于包含在数据流中的帧的能力。这可以有利于需要以特定间隔产生和发送帧的操作、管理和维护(operation,administration andmaintenance,OAM)操作。
具有取决于状态的转发的扩展OpenFlow协议
OpenFlow协议是用于SDN的FE配置协议。在OpenFlow协议中,流表是可编程的并且可以针对每个数据流指定。术语“流表”表示根据 OpenFlow协议的需要存储信息的任何类型的数据集并且不限于形式为表的数据。
任选地,OpenFlow流表的概念扩展为追踪状态信息的有状态流表。由此有可能将流和状态处理的全部或部分分流到FE而同时保持在转发实体处对本地管理转发的SDN全局查看。通过将状态信息分流到FE,就帧处理而言减小了SDN控制器和应用程序上的负载。由于存在的FE比存在的控制器或应用程序更少,结果是更有效的分布式帧处理。此外,通过使用多核心CPU、GPU等可以针对状态机处理更优化FE。
与无状态OpenFlow协议兼容的无状态流表的实例包含如图4A中所示的流表项。
图4A中的每个流表项包含:
a)匹配字段:针对包进行匹配。这些匹配字段由入端口和包报头以及任选地由前述表指定的元数据构成。
b)优先级:流表项的匹配优先级。
c)计数器:当包匹配时更新。
d)指令:用以修改动作集或队列处理。
e)超时:FE超过的流到期之前的最大时间量或闲置时间。
f)Cookie:由控制器选择的不透明的数据值。可以由控制器用来过滤流统计、流修改和流删除。当处理包时不使用。
在本发明的一些实施例中,在由FE使用的的至少一个流表(本文中表示为“有状态流表”)中包含额外字段。额外字段包含追踪状态信息的至少一个表项和针对相应状态机的至少一个指针。
示例性的有状态流表在图4B中示出。图4B中的每个有状态流表的表项包含以下:
a)匹配字段:可以包含任何类型的帧信息,包含元数据、已知报头、可编程报头、针对帧有效负载的指针等;
b)流概念(入流表项和出流表项两者联系在一起成为通用流上下文);
c)流上下文:可扩展的基于类型长度值(Type-Length-Value,TLV) 的流信息,其表示用户信息、策略信息等外部信息;
d)状态信息:表示所追踪的状态的至少一个基于TLV的表项;以及
e)状态机ID:针对追踪相应数据流的特定状态的至少一个状态机的至少一个指针。
FE可以使用有状态流表和无状态流表两者来转发给定数据包。当数据包不需要取决于状态的转发时,仅使用无状态流表。
任选地,配置的流表中的至少一个是无状态流表。因此并非所有数据流都必须由计算密集型有状态流表来处理。这能实现流表和状态机的优化实施方案。例如,专用集成电路(application-specific integrated circuit, ASIC)通常针对固定表比针对动态状态机更为优化。因此,可以通过ASIC 执行无状态流表处理,并且可以通过同一FE上的中央处理单元(Central processing unit,CPU)(而不是通过特定ASIC)来执行有状态流表处理。
现在参考图5,图5是根据本发明实施例的具有取决于状态的转发的扩展OpenFlowFE的简化框图。如本文所描述,扩展OpenFlow转发实体 500可以用OpenFlow无状态流表以及用有状态流表处理给定数据包。
在FE处通过至少一个有状态流表处理输入数据包。任选地,FE进一步包含一个或多个无状态流表。
在图5的非限制性实例中,单个有状态流表是流表链中的最后一个流表。然而,其它实施例可以包含多个有状态流表。任选地,有状态流表出现在流表链的中间,之前是和/或随后是无状态流表。
FE还包含用于执行由流表处理引起的执行动作集的模块。
有状态流表通过由状态机工厂维持和运行的状态机处理输入数据包。
关于每个状态改变的信息可以提供到控制器和/或保存在FE中以用于异步查询。
现在参考图6,图6是根据本发明实施例的用于配置新数据流的方法的简化流程图。当用户初始地配置用于新流的控制器时,用户可以包含至少一个有状态流表和/或状态机信息。可以作为直接代码包含状态机或使用状态机产生器产生状态机。
在600中,管理员开始配置新的流表项。管理员可以在控制器处或在能够将新流表项发送到此流表项所相关的相关联FE的任何网络元件处配置所述新流表项。在610中,配置新的流。在620中,管理员确定是否应包含流上下文。当应包含流上下文时,在630中定义流上下文TLV表项。在640中,管理员确定是否应包含状态机。当应包含状态机时,在650中定义状态机和相关联TLV表项。可以通过此项技术中已知的任何方法执行所述定义,包含如本文所描述的状态机产生器或作为代码。
接着在660中存储新的流表项。
在主动模式中,控制器先验于任何业务将整个配置发送到相关联FE。在被动模式中,仅当检测到第一帧时才发送此信息。
现在参考图7,图7是根据本发明实施例的用于转发数据流的方法的简化流程图。图7包含在FE和控制器处执行的操作。取决于是否存在状态信息(见735),流程图包含无状态和取决于状态的转发两者。
在700中,第一数据包进入FE,在705中通过FE将所述第一数据包发送到控制器。
在710中,控制器确定是否存在针对所述数据包的流表项。当不存在针对所述数据包的流表项时,在715中,应用丢弃策略和/或通知管理系统。当存在流表项时,在720中通过控制器收集所述流表项。
在725中,控制器确定是否存在流上下文信息。当存在流上下文信息时,在730中控制器包含具有数据包的所述流上下文。
在735中,控制器确定是否存在状态机信息。当存在状态机信息时,在745中控制器包含具有数据包的所述状态机信息,并且在750中将数据包和所有包含的信息返回到FE。当不存在状态机信息时,在740中由FE 根据无状态协议(例如,OpenFlow)处理数据包。
FE执行的取决于状态的转发在755到780中示出。
在755中,FE追踪状态信息。在本发明的一些实施例中,当从控制器接收到数据流的第一数据包时,将至少一些状态信息的初始值输入到相应的有状态流表字段中。
在760中,通过FE将一个或多个流表应用到数据包。流表包含至少一个有状态流表并且可以进一步包含一个或多个无状态流表。
在765中,FE确定状态信息是否已经改变。当没有状态信息已经改变时,在755处,处理继续。当状态信息已经改变时,在770中,FE执行所需动作。这些动作可以包含更新有状态流表。任选地,通知控制器。
在775中,FE开关确定状态是否已达到终止。当状态已达到终止时,在780中,应用任何进一步的所需操作,丢弃后续帧并且可以通知控制器。当状态尚未达到终止时,在755处,处理继续。
现在参考图8,图8是在三层Web应用程序上实施扩展OpenFlow协议的示意性实例。当前实例展示本文中描述的实施例的有状态数据转发如何针对通过无状态OpenFlow协议无法解决的问题提供解决方案。
共用云应用程序是由三层组成的Web应用程序:
a)web服务器810;
b)应用逻辑820;以及
c)数据库830。
在图8的实例中,出于安全性原因,Web服务器810可以启动到应用逻辑820的连接,但是应用逻辑820不可以启动到Web服务器810的连接。这意味着VMa可以启动到VMb的连接,但反之则不然。
在防火墙的无状态OpenFlow实施方案中,有可能包含这样的规则:当第一帧来自VMa且目的地为VMb时,允许在两个方向上的通信;然而,当第一帧来自VMb且到VMa时,不允许通信。当允许在两个方向上从 VMa到VMb的业务而不论传输控制协议(TransmissionControl Protocol, TCP)连接的状态时,无状态防火墙的问题发生。在这种情况下,甚至在TCP会话已经结束之后VMb也可以与VMa通信。
如此项技术中已知,TCP连接具有若干状态,例如:关闭、收听、同步接收、已建立等。在当前实例中,需要仅当“已建立”TCP连接状态时才允许从VMb到VMa的业务。为了实现这一点,作为有状态流表中的 TLV表项追踪TCP状态。所使用的状态机是在有状态流表中识别的TCP 状态机。可以根据TCP标志(例如,syn、ack、fin等)和它们在业务中出现的顺序推断TCP连接状态。
如上文所描述的方法可以用于制造集成电路芯片。
诸图中的流程图及框图说明根据本发明的各种实施例的系统、方法及计算机程序产品的可能实施方案的架构、功能性及操作。就此而言,流程图或框图中的每个块可以表示模块、区段或代码的部分,其包括用于实施指定逻辑功能的一个或多个可执行指令。还应该注意,在一些替代的实施方案中,在所述框中提及的功能可以不按图中所提及的顺序出现。例如,取决于所涉及的功能,连续展示的两个框实际上可大体同时执行,或所述框有时可能以相反次序执行。还将注意到,框图和/或流程图图示中的每个块,以及框图和/或流程图图示中的块的组合可以通过专用的基于硬件的系统实施,所述系统执行指定功能或动作,或专用硬件和计算机指令的组合。
已出于说明的目的呈现本发明的各种实施例的描述,但所述描述并不意欲为详尽的或限于所公开的实施例。在不脱离所描述实施例的范围和精神的情况下,对所属领域的技术人员而言多个修改和变化将是显而易见的。本文中所使用的术语经选择以最佳解释实施例的原理、实际应用或对市场中发现的技术的技术改进,或使所属领域的一般技术人员能够理解本文所公开的实施例。
在从本申请案走向成熟的专利的专利期限期间,将预期开发许多相关网路、协议、SDN、网络元件、转发元件、开关、路由器、状态机逻辑和状态机,并且术语网络、协议、SDN、网络元件、转发元件、开关、路由器、状态机逻辑和状态机的范围意图先验包含所有此类新技术。
如本文所用,术语“约”是指±10%。
术语“包括”、“包含”、“具有”及其同源词意指“包含但不限于”。这一术语涵盖术语“由……组成”和“基本上由……组成”。
短语“基本上由……组成”意指组成物或方法可以包含额外成分和/ 或步骤,但是仅在额外成分和/或步骤不会实质上改变所要求的组成物或方法的基本和新颖特性的情况下。
除非上下文另外明确规定,否则如本文中所使用,单数形式“一”和“所述”包含多个参考物。例如,术语“组成物”或“至少一种组成物”可以包含多个组成物,包含其混合物。
本文中使用的词语“示例性”意指“充当实例、例子或说明”。描述为“示例性”的任何实施例不一定解释为比其它实施例优选或有利,和/ 或排除来自其它实施例的特征的并入。
本文中使用的词语“任选地”意指“在一些实施例中提供且在其他实施例中不提供”。本发明的任何具体实施例都可以包括多个“任选”特征,除非此类特征相矛盾。
本申请案中,本发明的各种实施例可以以范围格式呈现。应理解,范围格式中的描述仅为了方便和简洁起见,并且不应该被解释为对本发明范围的固定限制。因此,范围的描述应被认为是已经确切地公开了所有可能的子范围以及所述范围内的单个数字值。例如,对例如从1到6的范围的描述应被认为是已经具体地公开子范围,例如从1到3、从1到4、从1到5、从2到4、从2到6、从3到6等,以及所述范围内的个别的数字,例如1、2、3、4、5和6。不管范围的宽度如何,这都适用。
每当在本文中指示数字范围时,所述数字范围都意图包含所指示范围内的任何引用数字(分数或整数)。短语“在第一指示数字与第二指示数字之间的范围/范围”以及“从第一指示数字到第二指示数字的范围/范围”在本文中互换使用并表示包含第一指示数字和第二指示数字以及其间的所有分数和整数数字。
应了解,本发明出于清楚的目的在分开的实施例的情形中描述的某些特征还可以组合形式在单个实施例中提供。相反,本发明出于简洁的目的在单个实施例的情形中描述的各个特征还可以单独地或以任何合适的子组合提供或在本发明的任何其他描述的实施例中提供为合适的。在各种实施例的情形中描述的某些特征并非被认为是那些实施例的基本特征,除非所述实施例在不具有那些元件的情况下不起作用。
尽管已结合本发明的具体实施例描述本发明,但显而易见的是,对于所属领域的技术人员而言许多替代方案、修改以及变化将是清楚的。因此,预期涵盖落入所附权利要求书的精神和广泛范围内的所有此类替代方案、修改以及变化。
本说明书中所提及的所有公开、专利和专利申请都在本文中以全文引用的方式并入本说明书中,程度如同每一单独的公开、专利或专利申请被专门并且单独地指示以引用的方式并入本文中一般。此外,本申请中对任何参考文件的引用或鉴别不应理解为承认该参考文件是作为本发明的现有技术可获得的。在使用章节标题的程度上,它们不应被解释为必定限制性的。
Claims (14)
1.一种取决于状态的数据转发的方法,其特征在于,包括:
根据协议转发多个数据包的数据流,其中,所述协议用于在软件定义网络SDN架构中本地管理数据的转发;
将所述多个数据包中的每个数据包输入到数据通信转发实体FE(100);其中
在所述FE处,通过将状态机逻辑应用到所述数据包的至少一个字段来选择所述数据包的下一个目的地,其中,所述应用是通过使用在所述数据包被接收之前所述FE所追踪的状态信息完成的;以及
转发所述数据包之前,用所述数据包封装所述状态信息的至少一部分;
将所述数据包转发到选定的所述下一个目的地。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:转发所述数据包之前,根据所述状态机逻辑执行以下动作中的一个或多个:确定数据包的出端口、选择闲置时间、产生与数据包相关的帧并且将所述产生的帧插入到数据流中、丢弃数据包。
3.根据权利要求1或权利要求2所述的方法,其特征在于,所述状态信息包括以下各项中的至少一者:将所述数据包从所述数据包的发送者传送到所述数据包的目的地的网络的网络状态、所述数据通信转发实体FE的状态、输入的所述数据包的状态、所述数据流的状态、所述网络的策略数据、在所述数据包被接收之前记录的事件的事件信息、识别应用于数据包的相应状态机逻辑的状态机标识符ID,以及所述数据流的流上下文。
4.根据权利要求1或2所述的方法,其特征在于,进一步包括在所述数据流开始时定义应用于所述数据流的所述数据包的相应状态机逻辑。
5.根据权利要求1或2所述的方法,其特征在于,进一步包括确定当前状态机逻辑需要更新,并且在将所述状态机逻辑应用到所述数据包之前更新所述状态机逻辑。
6.根据权利要求1或2所述的方法,其特征在于,进一步包括在所述FE处根据所述状态机逻辑的指令产生用于转发到所述下一个目的地的帧。
7.根据权利要求1或2所述的方法,其特征在于,进一步包括通过匹配所述数据包的至少一个字段与所述FE维持的流表来确定应用于所述数据包的所述状态机逻辑,其中所述流表包含用于所述数据包的相应状态机逻辑的标识符。
8.根据权利要求7所述的方法,其特征在于,所述流表包含用于存储状态信息的至少一个字段,并且所述方法进一步包括在所述数据流持续期间追踪状态信息以及当检测到所述所追踪的状态信息的改变时更新所述流表中用于存储状态信息的所述至少一个字段。
9.一种用于取决于状态的数据转发的软件定义网络SDN控制器,其特征在于,所述软件定义网络SDN控制器包括处理器和存储器,所述处理器读取所述存储器存储的计算机指令以执行:
根据协议转发多个数据包的数据流,其中,所述协议用于在SDN架构中本地管理数据的转发;
将所述多个数据包中的每个数据包输入到数据通信转发实体FE;
在所述FE处,通过将状态机逻辑应用到所述数据包的至少一个字段来选择所述数据包的下一个目的地,其中,所述应用是通过使用在所述数据包被接收之前所述FE所追踪的状态信息完成的;以及
转发所述数据包之前,用所述数据包封装所述状态信息的至少一部分;
将所述数据包转发到选定的所述下一个目的地。
10.一种用于转发数据包的计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序指令,所述程序指令可由数据网络转发实体FE执行以使得所述FE:
经由所述FE的入端口输入数据包;
通过所述FE的处理器根据协议处理所述输入数据包,从而识别所述数据包的相应下一个目的地,其中,所述协议用于在软件定义网络SDN架构中本地管理数据的转发;以及
转发所述数据包之前,用所述数据包封装状态信息的至少一部分;
经由所述FE的出端口将所述数据包转发到所述相应下一个目的地;其中
所述处理器将状态机逻辑应用到所述数据包的至少一个字段来选择所述数据包的所述相应下一个目的地,其中,所述应用是通过使用在所述数据包被接收之前所述FE所追踪的所述状态信息完成的。
11.根据权利要求10所述的计算机可读存储介质,其特征在于,所述状态信息包括以下各项中的至少一者:将所述数据包从所述数据包的发送者传送到所述数据包的目的地的网络的网络状态、所述数据通信转发实体FE的状态、输入的所述数据包的状态、所述数据流的状态、所述网络的策略数据、在所述数据包被接收之前记录的事件的事件信息、识别应用于数据包的相应状态机逻辑的状态机标识符ID,以及所述数据流的流上下文。
12.根据权利要求10或11所述的计算机可读存储介质,其特征在于,可由所述FE执行的所述程序指令使得所述FE:根据所述数据包封装的所述状态信息产生所述状态机逻辑。
13.根据权利要求10或11所述的计算机可读存储介质,其特征在于,可由所述FE执行的所述程序指令使得所述FE:
通过所述处理器从用户定义的状态机产生所述状态机逻辑,其中,所述用户定义状态机由所述用户通过用户界面完成。
14.根据权利要求10或11所述的计算机可读存储介质,其特征在于,可由所述FE执行的所述程序指令使得所述FE:经由所述处理器通过匹配所述数据包的至少一个字段与所述FE维持的流表来选择应用于所述数据包的所述状态机逻辑,其中所述流表包含所述状态机逻辑的标识符。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2014/054141 WO2015131929A1 (en) | 2014-03-04 | 2014-03-04 | State-dependent data forwarding |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106063202A CN106063202A (zh) | 2016-10-26 |
CN106063202B true CN106063202B (zh) | 2019-10-25 |
Family
ID=50280358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480076760.9A Active CN106063202B (zh) | 2014-03-04 | 2014-03-04 | 取决于状态的数据转发方法、控制器和存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10389627B2 (zh) |
EP (1) | EP3047613B1 (zh) |
CN (1) | CN106063202B (zh) |
WO (1) | WO2015131929A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015131929A1 (en) | 2014-03-04 | 2015-09-11 | Huawei Technologies Co., Ltd. | State-dependent data forwarding |
CN105812365B (zh) * | 2016-03-12 | 2018-09-28 | 武汉芯泰科技有限公司 | 一种可编程可重构的帧处理器 |
ITUA20162301A1 (it) * | 2016-04-05 | 2017-10-05 | Consorzio Naz Interuniversitario Per Le Telecomunicazioni | Metodo per trattare pacchetti dati attraverso una tabella di transizione di stato condizionale ed apparato che lo utilizza |
WO2018015792A1 (en) * | 2016-07-22 | 2018-01-25 | Telefonaktiebolaget Lm Ericsson (Publ) | User data isolation in software defined networking (sdn) controller |
JP6857248B2 (ja) * | 2016-10-12 | 2021-04-14 | エヌイーシー ラボラトリーズ ヨーロッパ ゲーエムベーハー | Tcp接続の確立を加速する方法及びシステム |
US20180124183A1 (en) * | 2016-11-03 | 2018-05-03 | Futurewei Technologies, Inc. | Method and Apparatus for Stateful Control of Forwarding Elements |
US10481943B2 (en) * | 2016-12-30 | 2019-11-19 | Winmore, Inc. | System and method for state machine management |
CN107249047B (zh) * | 2017-06-09 | 2020-11-17 | 区动(上海)网络科技有限公司 | 基于网络协议的数据传送方法、装置及计算机处理设备 |
US11874845B2 (en) * | 2017-06-28 | 2024-01-16 | Fortinet, Inc. | Centralized state database storing state information |
US11190458B2 (en) * | 2017-11-15 | 2021-11-30 | Vmware, Inc. | Network functions support for serverless and granular computing environments |
US11140200B1 (en) * | 2017-12-29 | 2021-10-05 | Juniper Networks, Inc. | Distributing a network policy using connectivity fault management |
CN109582398B (zh) * | 2018-11-23 | 2022-02-08 | 创新先进技术有限公司 | 一种状态处理方法、装置及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101971664A (zh) * | 2008-03-11 | 2011-02-09 | 汤姆森特许公司 | 无线多跳网状网络中的联合的关联、路由和速率分配 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6034963A (en) | 1996-10-31 | 2000-03-07 | Iready Corporation | Multiple network protocol encoder/decoder and data processor |
US6853620B2 (en) * | 2001-07-17 | 2005-02-08 | Intel Corporation | Bus protocol |
CA2578467A1 (en) * | 2004-08-25 | 2006-03-09 | Padcom Holdings, Inc. | Multi-network seamless roaming through a software-defined-radio |
EP2309680B1 (en) * | 2009-10-08 | 2017-07-19 | Solarflare Communications Inc | Switching API |
US8958292B2 (en) * | 2010-07-06 | 2015-02-17 | Nicira, Inc. | Network control apparatus and method with port security controls |
CN102123082A (zh) * | 2011-01-14 | 2011-07-13 | 中兴通讯股份有限公司 | 数据包转发方法和设备 |
EP2541851A1 (en) * | 2011-06-30 | 2013-01-02 | Astrium Limited | Apparatus and method for use in a spacewire-based network |
EP2748714B1 (en) * | 2011-11-15 | 2021-01-13 | Nicira, Inc. | Connection identifier assignment and source network address translation |
CN110011869B (zh) * | 2012-06-06 | 2022-07-19 | 瞻博网络公司 | 控制器装置、方法及计算机可读存储介质 |
US9356871B2 (en) * | 2013-03-15 | 2016-05-31 | Cisco Technology, Inc. | Programmable management engine for networks |
US9226333B2 (en) * | 2013-06-07 | 2015-12-29 | Alcatel Lucent | Virtualization of control plane functions of a wireless core packet network |
WO2015131929A1 (en) * | 2014-03-04 | 2015-09-11 | Huawei Technologies Co., Ltd. | State-dependent data forwarding |
-
2014
- 2014-03-04 WO PCT/EP2014/054141 patent/WO2015131929A1/en active Application Filing
- 2014-03-04 CN CN201480076760.9A patent/CN106063202B/zh active Active
- 2014-03-04 EP EP14710213.1A patent/EP3047613B1/en active Active
-
2016
- 2016-09-02 US US15/256,229 patent/US10389627B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101971664A (zh) * | 2008-03-11 | 2011-02-09 | 汤姆森特许公司 | 无线多跳网状网络中的联合的关联、路由和速率分配 |
Also Published As
Publication number | Publication date |
---|---|
WO2015131929A1 (en) | 2015-09-11 |
US10389627B2 (en) | 2019-08-20 |
EP3047613A1 (en) | 2016-07-27 |
US20160373349A1 (en) | 2016-12-22 |
EP3047613B1 (en) | 2019-08-21 |
CN106063202A (zh) | 2016-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106063202B (zh) | 取决于状态的数据转发方法、控制器和存储介质 | |
US9923817B2 (en) | Redirecting network traffic based on content | |
CN106656801B (zh) | 业务流的转发路径的重定向方法、装置和业务流转发系统 | |
CN106209490B (zh) | 选择和监控多个服务关键性能指标的方法和系统 | |
CN107078957B (zh) | 通信网络中的网络服务功能的链接 | |
CN105337857B (zh) | 一种基于软件定义网络的多路径传输方法 | |
CN105337881B (zh) | 一种数据报文的处理方法、业务节点以及引流点 | |
CN108809857A (zh) | 一种基于sdn的流量监控与业务服务质量保障策略的方法 | |
CN110708248B (zh) | 软件定义网络的服务质量控制方法及设备 | |
CN106105115A (zh) | 网络环境中由服务节点始发的服务链 | |
Machado et al. | Towards SLA policy refinement for QoS management in software-defined networking | |
CN105516025B (zh) | 端到端的路径控制和数据传输方法、OpenFlow控制器和交换机 | |
CN110351286A (zh) | 一种软件定义网络中链路洪泛攻击检测响应机制 | |
KR20140052847A (ko) | 소프트웨어 정의 네트워킹 기반 네트워크에서 서비스 품질 제공 방법 및 그 장치 | |
Vilalta et al. | Hierarchical SDN orchestration of wireless and optical networks with E2E provisioning and recovery for future 5G networks | |
CN105637806B (zh) | 网络拓扑确定方法和装置、集中式网络状态信息存储设备 | |
Mizrahi et al. | On the Necessity of Time-based Updates in {SDN} | |
Ricart-Sanchez et al. | P4-NetFPGA-based network slicing solution for 5G MEC architectures | |
CN103236944A (zh) | 基于OpenFlow网络的QoS集中管理系统 | |
Nakao et al. | Application and device specific slicing for MVNO | |
RU2675212C1 (ru) | Адаптивная балансировка нагрузки при обработке пакетов | |
KR101679224B1 (ko) | Sdn 기반의 트래픽 분배 가능한 네트워크 시스템 | |
Zhang et al. | A dual price-based congestion control mechanism for optical burst switching networks | |
Liaskos et al. | Analysis and Evaluation of Fully TCP-Compatible Backpressure-Driven Traffic Engineering | |
Karrakchou et al. | EP4: An application-aware network architecture with a customizable data plane |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220304 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters building, Longgang District, Shenzhen City, Guangdong Province, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |