CN105515975B - 面向软件定义网络基于应用层转发的实现方法及系统 - Google Patents

面向软件定义网络基于应用层转发的实现方法及系统 Download PDF

Info

Publication number
CN105515975B
CN105515975B CN201510821474.7A CN201510821474A CN105515975B CN 105515975 B CN105515975 B CN 105515975B CN 201510821474 A CN201510821474 A CN 201510821474A CN 105515975 B CN105515975 B CN 105515975B
Authority
CN
China
Prior art keywords
flow table
matching
subfield
processing
matching unit
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
CN201510821474.7A
Other languages
English (en)
Other versions
CN105515975A (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.)
Fiberhome Telecommunication Technologies Co Ltd
Original Assignee
Wuhan FiberHome Networks 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 Wuhan FiberHome Networks Co Ltd filed Critical Wuhan FiberHome Networks Co Ltd
Priority to CN201510821474.7A priority Critical patent/CN105515975B/zh
Publication of CN105515975A publication Critical patent/CN105515975A/zh
Application granted granted Critical
Publication of CN105515975B publication Critical patent/CN105515975B/zh
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/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种面向软件定义网络基于应用层转发的实现方法及系统,涉及软件定义网络领域。该方法包括以下步骤:基于应用层信息转发和对二层到四层协议包头的匹配,设计面向SDN的流表,将SDN架构中的流表扩充到面向应用层;面向SDN的流表的匹配字段包括一个或多个匹配单元,每个匹配单元由五元组来定义,该五元组包括五个子字段:“位置”、“长度”、“数据特性”、“数据信息”和“掩码范围”;流表设计完成后,通过面向SDN的流表转发数据,同时支持基于传统的二到四层的转发和基于应用层的转发。本发明能够同时支持基于传统的二到四层的转发和基于应用层的转发。

Description

面向软件定义网络基于应用层转发的实现方法及系统
技术领域
本发明涉及软件定义网络领域,具体是涉及一种面向软件定义网络基于应用层转发的实现方法及系统。
背景技术
互联网目前已成为世界上覆盖范围最广、规模最大、拥有信息和知识海洋的全球基础设置。同时,互联网也已成为人们无法离开的强有力的信息获取工具,在人们的工作和生活中扮演着极其重要的角色。另一方面,互联网在发展过程中也存在很多问题,面临各种挑战。互联网的体系架构存在复杂度高、可扩展性差、对硬件设备依赖性强、虚拟化能力弱等问题,但是,用户对网络应用的要求是:高效、智能、开放、灵活、低成本,导致用户需求与互联网目前所提供的服务之间的矛盾日渐尖锐,难以调和。
SDN(Software Defined Networking,软件定义网络)为互联网存在的上述问题带来了解决契机。它正好是针对现有互联网的各种网络体系架构上的不足而生,基于软件定义的网络能够满足未来应用对网络的各种需求。
目前,ONF(Open Network Foundation,开放网络基金会)组织发布的Openflow系列标准是当前SDN网络的主要南向接口协议,也是目前使用得最广泛的南向接口协议,转发设备的流表结构定义是该系列标准的核心之一,其它南向接口协议从架构和功能上与Openflow类似,但是,已发布的Openflow系列标准均未超脱传统的路由转发 模式,其规定的流表设计均基于数据包的包头信息,也就是基于ISO(International StandardOrganized,国际标准化组织)/OSI(Open System Interconnect,开放系统互连)定义的二到四层协议结构。这与传统的交换机、路由器产品的转发信息结构基本相似。
而现在的网络正在发展和演进的过程中,网络服务质量保障、网络应用感知、网络安全等都迫切要求网络不仅能感知二到四层协议,而且要感知四层以上协议或信息,甚而要求基于四层以上协议进行转发。这种要求是现有以Openflow为代表的SDN流表结构不能满足的。
ICN/CCN(Information Centric Network/Content Centric Network,信息中心网络/内容中心网络)的出现更是加强了上述需求的迫切性,ICN/CCN是现有网络展现从以主机为中心发展到以内容和信息为中心的趋势的产物,它已成为未来网络发展的一个方向和当前的一个研究热点。当前,ICN/CCN的研究现状是:ICN/CCN的FIB(ForwardInformation Base,转发信息库)与传统的交换机路由器的FIB具有相似的结构,但这只是ICN/CCN发展过程中的一种过渡状态。既然网络以信息/内容为中心,那么在ICN/CCN网络中,重要的网络技术之一——路由技术的终极发展目标也是基于信息和内容。在数据包中,信息和内容都是处于四层协议之上。那么,SDN应用于ICN/CCN网络中,就需要具备以信息和内容为中心设计流表的能力。
图1、2、3给出了Openflow系列标准定义的流表结构的样例。从图1、2、3中可知:基本的流表表项至少包含Match Fields(匹配字段)、Counters(计数器)和Instructions(指令)等信息,Match Fields包含一组用于标识流的字段,是处理和标识数据包的基础。
从图1、2、3中可以看出,这些流表的Match Fields信息基本对应于传统的网络二到四层协议的数据包头信息,未涉及任何应用层信 息,这是Openflow系列标准不足的地方。因此,目前的流表无法满足上述要求。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种面向软件定义网络基于应用层转发的实现方法及系统,能够同时支持基于传统的二到四层的转发和基于应用层的转发。
本发明提供一种面向软件定义网络基于应用层转发的实现方法,包括以下步骤:
基于应用层信息转发和对二层到四层协议包头的匹配,设计面向SDN的流表,将SDN架构中的流表扩充到面向应用层;所述面向SDN的流表的逻辑结构如下:所述面向SDN的流表的匹配字段包括一个或多个匹配单元,这些匹配单元不与二到四层协议关联,每个匹配单元由五元组来定义,该五元组包括五个子字段:“位置”子字段、“长度”子字段、“数据特性”子字段、“数据信息”子字段和“掩码范围”子字段;流表设计完成后,通过所述面向SDN的流表转发数据,同时支持基于传统的二到四层的转发和基于应用层的转发。
在上述技术方案的基础上,所述五个子字段的具体含义分别是:
所述“位置”子字段表示该匹配单元对应数据包的起始位置;
所述“长度”子字段表示该匹配单元的数据长度;
所述“数据特性”子字段定义该匹配单元的特殊属性;
所述“数据信息”子字段表示该匹配单元中需要用于匹配数据包的特征数据;
所述“掩码范围”子字段用来帮助“数据信息”子字段实现单个匹配单元匹配上多种数据包;
所述五个子字段综合起来表示任何一个用来匹配数据包的字段, 包括传统的二到四层协议的字段。
在上述技术方案的基础上,所述“位置”子字段中的0x0000-0xfffe表示具体的位置信息,但是,其中的0xffff是一个特殊的值,用来指示该匹配单元需要匹配数据包的任意位置,用于应对特征经常漂移的应用或流。
在上述技术方案的基础上,所述匹配单元的特殊属性包括:匹配单元是否有掩码信息;匹配单元是否有范围信息;匹配单元的“数据信息”子字段是存放具体数据,还是存放指向具体数据的指针;匹配单元的“掩码范围”子字段是存放具体的掩码或范围,还是存放指向掩码或范围的指针,在实施过程中,“数据特性”子字段根据需要进行扩充。
在上述技术方案的基础上,所述“掩码范围”子字段表示“数据信息”子字段对应的掩码或范围,掩码和范围的应用使得表项复用,适合于多种数据包,如果用作掩码,则“数据信息”子字段对应的数据在匹配时与掩码对应的某些位不作匹配检查;如果用作范围,则“数据信息”子字段对应的数据在匹配时不只是匹配上一个特定的值,而是匹配上一组连续的值。
在上述技术方案的基础上,所述面向SDN的流表的存储结构有2种:随机存储的流表存储结构和顺序存储的流表存储结构,所述随机存储的流表存储结构为:各个匹配单元聚合在一起,适合于匹配单元个数恒定的流表,适合于多处理单元并行处理各匹配单元;所述顺序存储的流表存储结构为:各个匹配单元通过链表串接在一起,适合于匹配单元个数不固定的流表,适合于单处理单元串行处理各匹配单元。
在上述技术方案的基础上,通过所述面向SDN的流表转发数据 时,单级流表的流表表项处理过程有以下3种情况:
(1)单流表单处理单元串行处理过程:
单个处理单元串行处理单个流表的过程如下:收到一个数据包时,处理单元检索流表中是否存在未处理的表项,如果存在,则依次处理该表项的各匹配单元,如果在处理某一匹配单元时得到未匹配成功的结果,则该表项处理结束;如果在处理某一匹配单元时得到匹配成功的结果,则判断是否还有未处理的匹配单元,如果有未处理的匹配单元,则继续处理下一个匹配单元;如果所有的匹配单元处理完毕,且都匹配成功,则执行该表项指定的转发行为,该流表处理结束;当某表项处理完毕,且存在未匹配成功的匹配单元,则继续按照上述流程处理流表的下一表项,直到表项匹配成功或流表处理完毕;
(2)单流表多处理单元并行处理过程:
多个处理单元并行处理单个流表的过程如下:多个处理单元同时处理某一个流表表项的各个匹配单元,根据应用需要和资源情况决定:一个处理单元只处理某一流表表项的某一个匹配单元,或者一个处理单元处理某一流表表项的某几个匹配单元,这样各个匹配单元的匹配工作是并发进行的,缩短数据包的处理时间;在这种情况下,流表中的各个表项的处理仍然是串行的,与“单流表单处理单元串行处理过程”的处理过程类似;
(3)多流表多处理单元并行处理过程:
多个处理单元并行处理多个流表的过程如下:多个处理单元同时处理多个流表中的表项,一个处理单元只处理一个流表中的表项,在这种情况下,各个流表中的表项的处理是通过多个处理单元并发进行的,当某一数据包在多个流表中都有能匹配上的表项时,这样表项指定的转发行为如果没有冲突,则都能得到执行,如果存在冲突,则按 照流表的优先级决定执行哪个转发行为;
多流表的表项的并行处理方式,不影响某个表项内部各匹配单元的处理方式,表项内部各匹配单元的处理方式采用单流表单处理单元串行处理方式,或者采用单流表多处理单元并行处理方式,根据资源的配置来确定选用哪种处理方式,以上3种情况都是单级流表的情形,所述多流表是指单级流表内部的多流表;
多级流表的处理过程为上述3种情况和Openflow1.3定义的多级流表处理过程的结合,其中,每一级流表的处理根据实际需要从上述3种情况中选择,各级流表之间的处理过程遵守Openflow1.3及其以后的标准。
本发明还提供一种面向软件定义网络基于应用层转发的实现系统,该系统包括流表设计装置和转发装置,其中:
所述流表设计装置用于:基于应用层信息转发和对二层到四层协议包头的匹配,设计面向SDN的流表,将SDN架构中的流表扩充到面向应用层;所述面向SDN的流表的逻辑结构如下:所述面向SDN的流表的匹配字段包括一个或多个匹配单元,这些匹配单元不与二到四层协议关联,每个匹配单元由五元组来定义,该五元组包括五个子字段:“位置”子字段、“长度”子字段、“数据特性”子字段、“数据信息”子字段和“掩码范围”子字段;
所述转发装置用于:通过所述面向SDN的流表转发数据,同时支持基于传统的二到四层的转发和基于应用层的转发。
与现有技术相比,本发明的优点如下:
(1)本发明将SDN架构中的流表扩充到面向应用层,设计面向SDN的流表时,不但考虑二层到四层协议包头,而且还考虑基于应用层转发信息。流表的匹配字段包括一个或多个匹配单元,定义流表 的匹配字段时,不再显式与二到四层协议关联,而是采取特定的五元组来定义匹配单元,该五元组包括五个子字段:“位置”子字段、“长度”子字段、“数据特性”子字段、“数据信息”子字段和“掩码范围”子字段,这样定义的流表既能实现传统的以二层到四层协议包头为中心的网络的转发信息库,也能实现演进中的以应用为中心的网络的转发信息库。本发明的方法能够同时支持基于传统的二到四层的转发和基于应用层的转发,使得SDN可应用于ICN/CCN等基于信息和内容的网络,能够提升网络服务质量保障、网络应用感知、网络安全,对ICN/CCN网络的发展非常有意义。
(2)对应上述方法的实现系统基于匹配单元来实现流表的组织、存储和检索,并基于上述流表来实现数据的转发,该系统同时支持基于传统的二到四层的转发和基于应用层转发,这是由流表中的信息所决定的。该系统既可用来实现传统的基于协议包头的转发,也可实现新兴的以信息和内容为中心的网络的转发。
(3)本发明虽然以面向应用层转发为目标,但其同样涵盖了传统的网络协议二到四层的内容,因此也适用于传统的基于二到四层协议包头转发的场景,因为上述的“位置”子字段可以处于二到四层协议包头中。可以说,本方法是Openflow系列标准定义的方法的超集。
附图说明
图1为Openflow V 1.1流表的结构示意图。
图2为Openflow V 1.3流表的结构示意图。
图3为Openflow V 1.3以及以后的标准定义的流表所包含的匹配协议头字段的归纳示意图。
图4是本发明实施例中设计的面向SDN的流表的逻辑结构图。
图5是本发明实施例中随机存储的流表存储结构示意图。
图6是本发明实施例中顺序存储的流表存储结构示意图。
图7是本发明实施例中单流表单处理单元串行处理的流程图。
图8是本发明实施例中单流表多处理单元并行处理的流程图。
图9是本发明实施例中多流表多处理单元并行处理的流程图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
本发明实施例提供一种面向软件定义网络基于应用层转发的实现方法,包括以下步骤:
基于应用层信息转发和对二层到四层协议包头的匹配,设计面向SDN的流表,将SDN架构中的流表扩充到面向应用层;
流表设计完成后,通过上述面向SDN的流表转发数据,同时支持基于传统的二到四层的转发和基于应用层的转发。
本发明实施例设计流表时,不只是考虑对二层到四层协议包头的匹配,而且更侧重于对基于应用层信息转发的考虑。
面向SDN的流表的逻辑结构如下:
参见图4所示,面向SDN的流表的Match Fields(匹配字段)包括一个或多个MatchCell(匹配单元),这些匹配单元不与二到四层协议关联,每个匹配单元由五元组来定义,该五元组包括五个子字段:“位置”子字段、“长度”子字段、“数据特性”子字段、“数据信息”子字段和“掩码范围”子字段。
这五个子字段的具体含义分别是:
“位置”子字段表示该匹配单元对应数据包的起始位置;
“长度”子字段表示该匹配单元的数据长度;
“数据特性”子字段定义该匹配单元的特殊属性;
“数据信息”子字段表示该匹配单元中需要用于匹配数据包的特 征数据;
“掩码范围”子字段用来帮助“数据信息”子字段实现单个匹配单元匹配上多种数据包;
上述五个子字段综合起来可以很方便的表示任何一个用来匹配数据包的字段,包括传统的二到四层协议的那些字段。
值得注意的是:“位置”子字段的值表示该匹配单元在匹配数据包时的对应数据包的起始位置。“位置”子字段中的0x0000-0xfffe表示具体的位置信息,但是,其中的0xffff是一个特殊的值,用来指示该匹配单元需要匹配数据包的任意位置。这一点用于应对某些特征经常漂移的应用或流是非常有效的。例如,某病毒流和它的变体都包括特征“ebola”,但其位置随着变体的不同而不同,用这种特征来设计流表将该病毒流和它的变体重定向到分析服务器就很方便。
“数据特性”子字段用来定义匹配单元的特殊属性,匹配单元的特殊属性包括:匹配单元是否有掩码信息;匹配单元是否有范围信息;匹配单元的“数据信息”子字段是存放具体数据,还是存放指向具体数据的指针;匹配单元的“掩码范围”子字段是存放具体的掩码或范围,还是存放指向掩码或范围的指针等等。在实施过程中,“数据特性”子字段可以根据需要进行扩充。
“掩码范围”子字段表示“数据信息”子字段对应的掩码或范围,掩码和范围的应用使得表项可以复用,可以适合于多种数据包。如果用作掩码,则“数据信息”子字段对应的数据在匹配时与掩码对应的某些位不作匹配检查。例如,“数据信息”子字段是“ABCD”,掩码为“0xffff00ff”,则数据包中包含的“AB*D”都能匹配上。如果用作范围,则“数据信息”子字段对应的数据在匹配时不只是匹配上一个特定的值,而是匹配上一组连续的值。例如,“数据信息”子字段是 1000(数字),范围为120,则数据包中包含的1000到1119都能匹配上。
需要强调的是:本发明实施例设计的面向SDN的流表的逻辑结构不再像Openflow系列标准所定义的那样:将Match Fields与标准协议包头关联起来。本发明虽然以面向应用层转发为目标,但其同样涵盖了传统的网络协议二到四层的内容,因此也适用于传统的基于二到四层协议包头转发的场景,因为上述的“位置”子字段可以处于二到四层协议包头中。可以说,本方法是Openflow系列标准定义的方法的超集。
上文已说明了流表的逻辑结构,还必须将流表的逻辑结构转换成合适的存储结构,才能方便的使用上述方法。
本发明实施例设计的面向SDN的流表的存储结构有2种:随机存储的流表存储结构和顺序存储的流表存储结构。
参见图5所示,随机存储的流表存储结构为:各个匹配单元聚合在一起,与数组类似。就应用场景来说,这种存储方式适合于匹配单元个数恒定的流表。就流表处理过程来说,这种存储方式,采用多处理单元(或引擎,下同)并行处理各匹配单元比较方便。
参见图6所示,顺序存储的流表存储结构为:各个匹配单元通过链表串接在一起。就应用场景来说,这种存储方式适合于匹配单元个数不固定的流表。就流表处理过程来说,这种方式更适合于单处理单元串行处理各匹配单元。
具体实施时,可以将“位置”子字段、“长度”子字段、“数据特性”子字段、“数据信息”子字段和“掩码范围”子字段用能快速访问检索的存储器来存储。而“数据信息”子字段或“掩码范围”子字段是指针时,意味着真正的数据信息或掩码范围信息存储可与前面的五元组存放在不同的地方,为实现代价考虑,可将这二者存储在低成本的存储器中。当然,针对实现代价能够接受的应用场景,可将这二者与前面的五元组存放在一起。
通过上述面向SDN的流表转发数据时,单级流表的流表表项处理过程有以下3种情况:
(1)单流表单处理单元串行处理过程:
参见图7所示,单个处理单元串行处理单个流表的过程如下:
收到一个数据包时,处理单元检索流表中是否存在未处理的表项,如果存在,则依次处理该表项的各匹配单元,如果在处理某一匹配单元时得到未匹配成功的结果,则该表项处理结束;如果在处理某一匹配单元时得到匹配成功的结果,则判断是否还有未处理的匹配单元,如果有未处理的匹配单元,则继续处理下一个匹配单元;如果所有的匹配单元处理完毕,且都匹配成功,则执行该表项指定的转发行为,该流表处理结束;当某表项处理完毕,且存在未匹配成功的匹配单元,则继续按照上述流程处理流表的下一表项,直到表项匹配成功或流表处理完毕。
如果流表处理完毕但未有表项匹配成功,那么该数据包未找到合适的路由,只能走缺省路由或送控制器处理。
上述单个处理单元串行处理流表的各个表项以及表项中的各个匹配单元的过程,可以看做最基本的处理过程。
(2)单流表多处理单元并行处理过程:
参见图8所示,多个处理单元并行处理单个流表的过程如下:
多个处理单元同时处理某一个流表表项的各个匹配单元,可根据应用需要和资源情况决定:一个处理单元只处理某一流表表项的某一个匹配单元,或者一个处理单元处理某一流表表项的某几个匹配单 元,这样各个匹配单元的匹配工作是并发进行的,能够有效缩短数据包的处理时间。在这种情况下,流表中的各个表项的处理仍然是串行的,与“单流表单处理单元串行处理过程”的处理过程类似。换句话说,处理某一流表表项时,该表项中各匹配单元是由不同的处理单元并行处理的,但各表项的处理仍是串行的。
(3)多流表多处理单元并行处理过程
参见图9所示,多个处理单元并行处理多个流表的过程如下:
多个处理单元同时处理多个流表中的表项,一个处理单元只处理一个流表中的表项。因此,在这种情况下,各个流表中的表项的处理是通过多个处理单元并发进行的。当某一数据包在多个流表中都有能匹配上的表项时,这样表项指定的转发行为如果没有冲突,则都能得到执行,如果存在冲突,则按照流表的优先级决定执行哪个转发行为。当然,如果上述数据包在某一流表未能有匹配上的表项,则该流表不对数据包的转发行为产生实质影响。
多流表的表项的并行处理方式,并不影响某个表项内部各匹配单元的处理方式,表项内部各匹配单元的处理方式既可采用单流表单处理单元串行处理方式,也可采用单流表多处理单元并行处理方式,根据资源的配置来确定选用哪种处理方式。
需要强调的是,这里的多流表不同于Openflow1.3以及更高版本规定的多级流表的处理过程,以上3种情况都是单级流表的情形,上述多流表是指单级流表内部的多流表。
多级流表的处理过程可以看作上述3种情况和Openflow1.3定义的多级流表处理过程的结合。其中,每一级流表的处理根据实际需要从上述3种情况中选择,各级流表之间的处理过程可遵守Openflow1.3及其以后的标准。
本发明实施例还提供一种面向软件定义网络基于应用层转发的实现系统,该系统包括流表设计装置和转发装置,其中:
流表设计装置用于:基于应用层信息转发和对二层到四层协议包头的匹配,设计上述面向SDN的流表,将SDN架构中的流表扩充到面向应用层;
转发装置用于:通过所述面向SDN的流表转发数据,同时支持基于传统的二到四层的转发和基于应用层的转发,这是由流表中的信息所决定的。
由于本发明旨在解决基于应用层信息的路由问题,而应用层信息相比于二到四层协议包头多样性更强,复杂性更高,因此处理起来对灵活性要求更高。
该系统以多核处理器为核心处理单元,综合利用多核处理器数据处理方面的优势、可编程逻辑器件和TCAM(Ternary Content Addressable Memory,三态内容寻址存储器)的速度优势,正好与前述的多样性、复杂性、灵活性等所带来的要求相吻合。
本领域的技术人员可以对本发明实施例进行各种修改和变型,倘若这些修改和变型在本发明权利要求及其等同技术的范围之内,则这些修改和变型也在本发明的保护范围之内。
说明书中未详细描述的内容为本领域技术人员公知的现有技术。

Claims (5)

1.一种面向软件定义网络基于应用层转发的实现方法,其特征在于,包括以下步骤:
基于应用层信息转发和对二层到四层协议包头的匹配,设计面向SDN的流表,将SDN架构中的流表扩充到面向应用层;所述面向SDN的流表的逻辑结构如下:所述面向SDN的流表的匹配字段包括一个或多个匹配单元,这些匹配单元不与二到四层协议关联,每个匹配单元由五元组来定义,该五元组包括五个子字段:“位置”子字段、“长度”子字段、“数据特性”子字段、“数据信息”子字段和“掩码范围”子字段;流表设计完成后,通过所述面向SDN的流表转发数据,同时支持基于传统的二到四层的转发和基于应用层的转发;
所述五个子字段的具体含义分别是:
所述“位置”子字段表示该匹配单元对应数据包的起始位置;
所述“长度”子字段表示该匹配单元的数据长度;
所述“数据特性”子字段定义该匹配单元的特殊属性;
所述“数据信息”子字段表示该匹配单元中需要用于匹配数据包的特征数据;
所述“掩码范围”子字段用来帮助“数据信息”子字段实现单个匹配单元匹配上多种数据包;所述“掩码范围”子字段表示“数据信息”子字段对应的掩码或范围,掩码和范围的应用使得表项复用,适合于多种数据包,如果用作掩码,则“数据信息”子字段对应的数据在匹配时与掩码对应的某些位不作匹配检查;如果用作范围,则“数据信息”子字段对应的数据在匹配时不只是匹配上一个特定的值,而是匹配上一组连续的值;
所述五个子字段综合起来表示任何一个用来匹配数据包的字段,包括传统的二到四层协议的字段;
通过所述面向SDN的流表转发数据时,单级流表的流表表项处理过程有以下3种情况:
(1)单流表单处理单元串行处理过程:
单个处理单元串行处理单个流表的过程如下:收到一个数据包时,处理单元检索流表中是否存在未处理的表项,如果存在,则依次处理该表项的各匹配单元,如果在处理某一匹配单元时得到未匹配成功的结果,则该表项处理结束;如果在处理某一匹配单元时得到匹配成功的结果,则判断是否还有未处理的匹配单元,如果有未处理的匹配单元,则继续处理下一个匹配单元;如果所有的匹配单元处理完毕,且都匹配成功,则执行该表项指定的转发行为,该流表处理结束;当某表项处理完毕,且存在未匹配成功的匹配单元,则继续按照上述流程处理流表的下一表项,直到表项匹配成功或流表处理完毕;
(2)单流表多处理单元并行处理过程:
多个处理单元并行处理单个流表的过程如下:多个处理单元同时处理某一个流表表项的各个匹配单元,根据应用需要和资源情况决定:一个处理单元只处理某一流表表项的某一个匹配单元,或者一个处理单元处理某一流表表项的某几个匹配单元,这样各个匹配单元的匹配工作是并发进行的,缩短数据包的处理时间;在这种情况下,流表中的各个表项的处理仍然是串行的,与“单流表单处理单元串行处理过程”的处理过程类似;
(3)多流表多处理单元并行处理过程:
多个处理单元并行处理多个流表的过程如下:多个处理单元同时处理多个流表中的表项,一个处理单元只处理一个流表中的表项,在这种情况下,各个流表中的表项的处理是通过多个处理单元并发进行的,当某一数据包在多个流表中都有能匹配上的表项时,这样表项指定的转发行为如果没有冲突,则都能得到执行,如果存在冲突,则按照流表的优先级决定执行哪个转发行为;
多流表的表项的并行处理方式,不影响某个表项内部各匹配单元的处理方式,表项内部各匹配单元的处理方式采用单流表单处理单元串行处理方式,或者采用单流表多处理单元并行处理方式,根据资源的配置来确定选用哪种处理方式,以上3种情况都是单级流表的情形,所述多流表是指单级流表内部的多流表;
多级流表的处理过程为上述3种情况和Openflow1.3定义的多级流表处理过程的结合,其中,每一级流表的处理根据实际需要从上述3种情况中选择,各级流表之间的处理过程遵守Openflow1.3及其以后的标准。
2.如权利要求1所述的面向软件定义网络基于应用层转发的实现方法,其特征在于:所述“位置”子字段中的0x0000-0xfffe表示具体的位置信息,但是,其中的0xffff是一个特殊的值,用来指示该匹配单元需要匹配数据包的任意位置,用于应对特征经常漂移的应用或流。
3.如权利要求1所述的面向软件定义网络基于应用层转发的实现方法,其特征在于:所述匹配单元的特殊属性包括:匹配单元是否有掩码信息;匹配单元是否有范围信息;匹配单元的“数据信息”子字段是存放具体数据,还是存放指向具体数据的指针;匹配单元的“掩码范围”子字段是存放具体的掩码或范围,还是存放指向掩码或范围的指针,在实施过程中,“数据特性”子字段根据需要进行扩充。
4.如权利要求1至3中任一项所述的面向软件定义网络基于应用层转发的实现方法,其特征在于:所述面向SDN的流表的存储结构有2种:随机存储的流表存储结构和顺序存储的流表存储结构,所述随机存储的流表存储结构为:各个匹配单元聚合在一起,适合于匹配单元个数恒定的流表,适合于多处理单元并行处理各匹配单元;所述顺序存储的流表存储结构为:各个匹配单元通过链表串接在一起,适合于匹配单元个数不固定的流表,适合于单处理单元串行处理各匹配单元。
5.一种面向软件定义网络基于应用层转发的实现系统,其特征在于:该系统包括流表设计装置和转发装置,其中:
所述流表设计装置用于:基于应用层信息转发和对二层到四层协议包头的匹配,设计面向SDN的流表,将SDN架构中的流表扩充到面向应用层;所述面向SDN的流表的逻辑结构如下:所述面向SDN的流表的匹配字段包括一个或多个匹配单元,这些匹配单元不与二到四层协议关联,每个匹配单元由五元组来定义,该五元组包括五个子字段:“位置”子字段、“长度”子字段、“数据特性”子字段、“数据信息”子字段和“掩码范围”子字段;
所述转发装置用于:通过所述面向SDN的流表转发数据,同时支持基于传统的二到四层的转发和基于应用层的转发;
所述五个子字段的具体含义分别是:
所述“位置”子字段表示该匹配单元对应数据包的起始位置;
所述“长度”子字段表示该匹配单元的数据长度;
所述“数据特性”子字段定义该匹配单元的特殊属性;
所述“数据信息”子字段表示该匹配单元中需要用于匹配数据包的特征数据;
所述“掩码范围”子字段用来帮助“数据信息”子字段实现单个匹配单元匹配上多种数据包;所述“掩码范围”子字段表示“数据信息”子字段对应的掩码或范围,掩码和范围的应用使得表项复用,适合于多种数据包,如果用作掩码,则“数据信息”子字段对应的数据在匹配时与掩码对应的某些位不作匹配检查;如果用作范围,则“数据信息”子字段对应的数据在匹配时不只是匹配上一个特定的值,而是匹配上一组连续的值;
所述五个子字段综合起来表示任何一个用来匹配数据包的字段,包括传统的二到四层协议的字段;
通过所述面向SDN的流表转发数据时,单级流表的流表表项处理过程有以下3种情况:
(1)单流表单处理单元串行处理过程:
单个处理单元串行处理单个流表的过程如下:收到一个数据包时,处理单元检索流表中是否存在未处理的表项,如果存在,则依次处理该表项的各匹配单元,如果在处理某一匹配单元时得到未匹配成功的结果,则该表项处理结束;如果在处理某一匹配单元时得到匹配成功的结果,则判断是否还有未处理的匹配单元,如果有未处理的匹配单元,则继续处理下一个匹配单元;如果所有的匹配单元处理完毕,且都匹配成功,则执行该表项指定的转发行为,该流表处理结束;当某表项处理完毕,且存在未匹配成功的匹配单元,则继续按照上述流程处理流表的下一表项,直到表项匹配成功或流表处理完毕;
(2)单流表多处理单元并行处理过程:
多个处理单元并行处理单个流表的过程如下:多个处理单元同时处理某一个流表表项的各个匹配单元,根据应用需要和资源情况决定:一个处理单元只处理某一流表表项的某一个匹配单元,或者一个处理单元处理某一流表表项的某几个匹配单元,这样各个匹配单元的匹配工作是并发进行的,缩短数据包的处理时间;在这种情况下,流表中的各个表项的处理仍然是串行的,与“单流表单处理单元串行处理过程”的处理过程类似;
(3)多流表多处理单元并行处理过程:
多个处理单元并行处理多个流表的过程如下:多个处理单元同时处理多个流表中的表项,一个处理单元只处理一个流表中的表项,在这种情况下,各个流表中的表项的处理是通过多个处理单元并发进行的,当某一数据包在多个流表中都有能匹配上的表项时,这样表项指定的转发行为如果没有冲突,则都能得到执行,如果存在冲突,则按照流表的优先级决定执行哪个转发行为;
多流表的表项的并行处理方式,不影响某个表项内部各匹配单元的处理方式,表项内部各匹配单元的处理方式采用单流表单处理单元串行处理方式,或者采用单流表多处理单元并行处理方式,根据资源的配置来确定选用哪种处理方式,以上3种情况都是单级流表的情形,所述多流表是指单级流表内部的多流表;
多级流表的处理过程为上述3种情况和Openflow1.3定义的多级流表处理过程的结合,其中,每一级流表的处理根据实际需要从上述3种情况中选择,各级流表之间的处理过程遵守Openflow1.3及其以后的标准。
CN201510821474.7A 2015-11-24 2015-11-24 面向软件定义网络基于应用层转发的实现方法及系统 Active CN105515975B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510821474.7A CN105515975B (zh) 2015-11-24 2015-11-24 面向软件定义网络基于应用层转发的实现方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510821474.7A CN105515975B (zh) 2015-11-24 2015-11-24 面向软件定义网络基于应用层转发的实现方法及系统

Publications (2)

Publication Number Publication Date
CN105515975A CN105515975A (zh) 2016-04-20
CN105515975B true CN105515975B (zh) 2019-01-04

Family

ID=55723631

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510821474.7A Active CN105515975B (zh) 2015-11-24 2015-11-24 面向软件定义网络基于应用层转发的实现方法及系统

Country Status (1)

Country Link
CN (1) CN105515975B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108075977B (zh) * 2016-11-10 2020-10-16 英业达科技有限公司 网络系统控制方法及网络系统
CN107104896A (zh) * 2017-05-26 2017-08-29 南京元融信息技术有限公司 高可用高性能灵敏的sdn控制器与sdn交换机架构
CN109495387A (zh) * 2017-09-13 2019-03-19 中兴通讯股份有限公司 流表匹配方法、装置、系统及计算机可读存储介质
CN108922203B (zh) * 2018-07-26 2020-09-18 泉州装备制造研究所 一种基于软件定义网络的区域交通信号控制系统
CN113347090B (zh) * 2020-02-18 2023-06-20 华为技术有限公司 报文处理方法、转发设备以及报文处理系统
CN113238717B (zh) * 2021-06-30 2022-03-15 湖南师范大学 软件定义的机载装备数据存储系统及存储方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8443100B1 (en) * 2004-10-27 2013-05-14 Marvell International Ltd. Method and apparatus for using multiple links at a handheld
CN103200102A (zh) * 2012-01-09 2013-07-10 中兴通讯股份有限公司 一种业务路由方法、装置和系统
CN103326884A (zh) * 2013-05-30 2013-09-25 烽火通信科技股份有限公司 Sdn网络中结合流检测和包检测的业务流感知系统及方法
CN104168203A (zh) * 2014-09-03 2014-11-26 上海斐讯数据通信技术有限公司 一种基于流表的处理方法及系统
CN104836753A (zh) * 2015-03-27 2015-08-12 清华大学 Sdn数据平面带状态交换设备、系统及转发处理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8443100B1 (en) * 2004-10-27 2013-05-14 Marvell International Ltd. Method and apparatus for using multiple links at a handheld
CN103200102A (zh) * 2012-01-09 2013-07-10 中兴通讯股份有限公司 一种业务路由方法、装置和系统
CN103326884A (zh) * 2013-05-30 2013-09-25 烽火通信科技股份有限公司 Sdn网络中结合流检测和包检测的业务流感知系统及方法
CN104168203A (zh) * 2014-09-03 2014-11-26 上海斐讯数据通信技术有限公司 一种基于流表的处理方法及系统
CN104836753A (zh) * 2015-03-27 2015-08-12 清华大学 Sdn数据平面带状态交换设备、系统及转发处理方法

Also Published As

Publication number Publication date
CN105515975A (zh) 2016-04-20

Similar Documents

Publication Publication Date Title
CN105515975B (zh) 面向软件定义网络基于应用层转发的实现方法及系统
CN104580027B (zh) 一种OpenFlow报文转发方法及设备
US10432745B2 (en) Accelerated network packet processing
US10476794B2 (en) Efficient caching of TCAM rules in RAM
US6950434B1 (en) Arrangement for searching packet policies using multi-key hash searches in a network switch
US7872993B2 (en) Method and system for classifying data packets
US7894451B2 (en) Method of providing virtual router functionality
US11418632B2 (en) High speed flexible packet classification using network processors
US8472452B2 (en) Lookup cluster complex
CN104243315B (zh) 用于唯一枚举解析树中的路径的装置和方法
EP3293929B1 (en) Efficient matching of tcam rules using hash tables in ram
TWI360978B (en) Network message processing using inverse pattern m
Pan et al. The flowadapter: Enable flexible multi-table processing on legacy hardware
US20150288700A1 (en) Phased bucket pre-fetch in a network processor
CN110324245A (zh) 一种基于集成流表转发报文的方法及装置
CN107222496B (zh) 基于现场层设备的报文的安全策略匹配方法和现场层设备
JP6359111B2 (ja) 並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する方法および装置
US8605732B2 (en) Method of providing virtual router functionality
CN106411892B (zh) Ddos系统地址信息传输、访问请求过滤方法、装置及服务器
CN102739537B (zh) 以太网数据包的转发方法及装置
CN107077578A (zh) 机器人指令的处理方法、装置及电子设备
US20170230246A1 (en) Method and apparatus for processing service node ability, service classifier and service controller
CN105227420B (zh) 数据帧的处理方法、装置与系统
CN112667640A (zh) 一种路由地址存储方法及装置
US11929837B2 (en) Rule compilation schemes for fast packet classification

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: 20190125

Address after: 430074 No. 6, High-tech Fourth Road, Donghu High-tech Development Zone, Wuhan City, Hubei Province

Patentee after: Fenghuo Communication Science &. Technology Co., Ltd.

Address before: 430074 Guandong Optical Communication Industry Building, No. 5 Donghu High-tech Dongxin Road, Wuhan City, Hubei Province

Patentee before: Wuhan Fenghuo Network Co., Ltd.