CN105430051A - 一种面向sdn的服务功能链构建方法 - Google Patents

一种面向sdn的服务功能链构建方法 Download PDF

Info

Publication number
CN105430051A
CN105430051A CN201510720038.0A CN201510720038A CN105430051A CN 105430051 A CN105430051 A CN 105430051A CN 201510720038 A CN201510720038 A CN 201510720038A CN 105430051 A CN105430051 A CN 105430051A
Authority
CN
China
Prior art keywords
service function
service
synopsis
name
network
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.)
Pending
Application number
CN201510720038.0A
Other languages
English (en)
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.)
Zhejiang Gongshang University
Original Assignee
Zhejiang Gongshang University
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 Zhejiang Gongshang University filed Critical Zhejiang Gongshang University
Priority to CN201510720038.0A priority Critical patent/CN105430051A/zh
Publication of CN105430051A publication Critical patent/CN105430051A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Abstract

本发明公开了一种面向SDN的服务功能链构建方法,它可以针对网络业务请求实现在网络节点部署网络服务功能块实例,首先控制器根据用户提出的网络业务需求创建服务功能链,随后根据网络节点信息创建服务功能实例链,服务功能链由服务功能组成,服务功能实施例链由服务功能块组成。服务功能由服务功能块支撑实现,分类服务功能块类的主要任务是对数据包根据元数据进行分类;调度服务功能块类的主要任务是对数据包进行调度处理,如果有多个数据流都需要从同一端口出去的时候,那么就编排这些流的发送顺序和节奏。这个分类大大简化了现有的服务功能块类,保证了服务功能块类的简洁性。

Description

一种面向SDN的服务功能链构建方法
技术领域
本发明涉及SDN(SoftwareDefinedNetwork,软件定义网络)以及服务功能链领域,具体涉及一种服务功能块类的划分以及基于这种划分的服务功能块(ServiceFunctionBlock)描述方法。
背景技术
新型数据中心网络和网络云架构需要更为灵活的部署模式以支持各种各样的应用和相关的网络服务。这其中包括传统的网络服务比如防火墙、服务负载均衡器以及对网络数据进行操作的应用等等。而且,由于每个单独的租户是一个连接到数据中心的孤立的客户端组织,因此在多租户的背景下,这些服务在交付时必须满足所有租户的需求,同时,每个租户还有可能需要独特的能力,或者量身定制的服务特点。
过去也有服务功能链的概念,但传统网络的服务功能链和网络拓扑紧密耦合、部署复杂,在服务功能链变更、扩容时,都需要改动网络拓扑,重新进行网络设备的配置。而云计算环境广泛使用虚拟化技术,具有动态性、高流动性、规模易变化、多租户等特点,传统网络的服务功能链无法满足这些需求,SDN的出现让服务功能链又焕发了生机。因此,当前在谈及服务功能链时,默认指的是SDN服务功能链。目前对服务功能链的研究有很多,比较主流的有,基于源路由的实现,即在数据源,就决定好需要经过哪些服务节点,然后把这些服务节点的标识都封装在报文中,形成类似MPLS的叠加隧道封装。中间网络节点,根据报文的指定标识进行转发处理,该功能需要在路由中增加服务处理标识,服务节点在收到报文后,检查到有自己的服务标识后,进行服务处理。
现如今的网络服务部署模式是相对静态的,并且受限于***和策略选择的拓扑架构。而且,在虚拟化的大环境下,他们还不适应灵活的策略环境。同时,传统的一些网络设备比如流量限制和负载均衡器的部署,都与网络拓扑紧密相关,而且需要根据报文路径来放置,这显然与虚拟网络所要求的与物理网络分离背道而驰。
在这样的前提下,产生了虚拟限速器和负载均衡器等新型中间件,这些中间件被部署在网络边缘,通常由标准服务器来实现。我们把这些虚拟防火墙/限速器/负载均衡器/网关等服务处理功能,称为ServiceFunction,即服务功能。而流量经过一系列的ServiceFunction的处理,形成ServiceFunctionChaining,即服务功能链。
从整体实现方式来看,目前对于服务功能链的研究可以分为增强网关、静态ServiceChaining部署、动态ServiceChaining部署三种实现方式。增强网关主要是考虑到所有的用户数据都需要汇聚到分组域网关,然后才能路由到Internet的特性,将数据流复杂处理功能及增值业务部署到网关上。华为提出的SBR(ServiceBasedRouting,基于服务的路由)就属于此类。静态ServiceChaining是将增值业务服务器及复杂流处理中间件部署在网关后面,采用串行方式进行处理。SFCviaNSH就论述了一个使用网络服务头来构建一个完整的静态ServiceChaining部署服务平台的方法。动态ServiceChaining以一种Overlay的方式将MiddleBox从路由拓扑中抽离出来,使得MiddleBox的部署不再依赖拓扑而能够自由移动、***或删除,同时采用虚拟化技术使得MiddleBox根据流量弹性化地完成扩容缩容,而SDN技术结合策略控制根据不同维度不同粒度需求编排不同的ServiceChaining及ServiceChaining路径。在这方面的研究有很多,《FormalMethodsforServiceComposition》中介绍了在生成服务功能链时的几个服务组合方法,指出了他们的弊端,并提出了自己的形式化方法。Cloud-based给出了一个在云虚拟平台上构建动态服务功能链的框架,为动态服务功能链提出了一个在流长度层面的性能优化方案,Steering则介绍了一个集中控制的控制器下发动态策略来控制用户以及流种类从而动态生成服务功能链的过程。目前为止设备制造商已经做出了服务功能链实例,比如前面提到的SBR以及爱立信公司介绍的一个基于SDN的,在ODL控制器下的一个动态服务功能链。
在当前网络中,诸如防火墙、过滤器、冲突检测***、深度包检测、网络地址转换、内容缓存、负载均衡等网络应用,现在都是用一些中间件或者内部服务——因为它们对端用户是透明的。中间件在大带宽的网络中是不可缺少的(固定的或者可以移动的),比如在企业网络中,还有最近出现在数据中心和云环境中。虽说这个话题近年来非常火热,但是对于中间件的摆放和管理迄今仍没有很好的解决方案。现有的研究中,从功能上来看,拥有流表的OpenFlow和利用LFB进行转发的ForCES都是服务功能链的实现方式之一。OpenFlow中,数据包通过对一条条流表的匹配最后执行相应动作,在ForCES中,数据包经过在组成特定功能的LFB拓扑,最终被决定是重定向、转发或是丢弃。流表和LFB都是服务功能的一种,其中OpenFlow流表应用的比较广泛,而ForCES的LFB则更加灵活。
发明内容
为了克服现有技术的不足,本发明提供了一种面向SDN的服务功能链构建方法。本发明提出了一个新的概念SFB(ServiceFunctionBlock,服务功能块),并提出了使用分类服务功能块和调度服务功能块来构建服务功能链的方法以及对上述两个服务功能块的建模。服务功能块相对于OpenFlow流表具有更高的描述能力,而对比于ForCES的LFB也具有更好的概括性,大大简化了服务功能的种类。
技术方案如下所述。
一种面向SDN的服务功能链构建方法,具体内容为,在SDN网络结构中,针对网络业务请求实现在网络节点部署网络服务功能块实例,包括以下步骤:
1-1)控制器根据用户提出的网络业务需求创建服务功能链,服务功能链由若干个服务功能首尾相接组成;
1-2)服务功能是由服务功能块支撑实现的,服务功能块分为两大类,分别为分类服务功能块类和调度服务功能块类;
1-3)网络节点向控制器上报该网络节点资源状况,包括有哪些可选的次要功能元素、元数据和调度算法;
1-4)控制器根据网络节点的资源状况和服务功能链信息设计服务功能实例链,服务功能实例链是由服务功能块首尾相接组成;
1-5)对于支持服务功能块的网络节点,控制器将服务功能实例链的描述直接下发到相关的网络节点并要求预留资源,对于支持OpenFlow的网络节点,控制器将服务功能实例链的描述转化为流表再下发;
1-6)网络节点部署服务功能实例链。
步骤1-2)所述的服务功能是由服务功能块支撑实现的,服务功能块分为两大类,分别为分类服务功能块类和调度服务功能块类:
2-1)服务功能块类中包含了该类中的服务功能块共同拥有的主功能元素;
2-2)服务功能块中除了主功能元素值之外,还有输入输出端口、输入输出数据包、输入输出元数据、次功能元素值等;
2-3)分类服务功能块类的主要任务是对数据包根据元数据进行分类;
2-4)调度服务功能块类的主要任务是对数据包进行调度处理,如果有多个数据流都需要从同一端口出去的时候,那么就编排这些流的发送顺序和节奏。
附图说明
图1是本发明一个实施例中H学院的网络现实拓扑;
图2是本发明一个实施例中根据H学院业务需求构建的服务功能链;
图3是本发明一个实施例中根据H学院业务需求构建的服务功能实例链。
具体实施方式
以下通过附图和具体实施方式对本发明做进一步的说明。
图1中所示H学院需要建立一种面向SDN的服务功能链,因此需要针对网络业务请求实现在网络节点部署网络服务功能块实例,具体步骤如下:
1-1)控制器根据用户提出的网络业务需求创建服务功能链,服务功能链由若干个服务功能首尾相接组成;
1-2)服务功能是由服务功能块支撑实现的,服务功能块分为两大类,分别为分类服务功能块类和调度服务功能块类;
1-3)网络节点向控制器上报该网络节点资源状况,包括有哪些可选的次要功能元素、元数据和调度算法;
1-4)控制器根据网络节点的资源状况和服务功能链信息设计服务功能实例链,服务功能实例链是由服务功能块首尾相接组成;
1-5)对于支持服务功能块的网络节点,控制器将服务功能实例链的描述直接下发到相关的网络节点并要求预留资源,对于支持OpenFlow的网络节点,控制器将服务功能实例链的描述转化为流表再下发;
1-6)网络节点部署服务功能实例链。
图2和图3即为需要的构建服务功能链和服务功能实例链,它们分别由服务功能和服务功能块组成,服务功能是由服务功能块支撑实现的。服务功能块分为两大类,分别为分类服务功能块类和调度服务功能块类:
2-1)服务功能块类中包含了该类中的服务功能块共同拥有的主功能元素;
2-2)服务功能块中除了主功能元素值之外,还有输入输出端口、输入输出数据包、输入输出元数据、次功能元素值等;
2-3)分类服务功能块类的主要任务是对数据包根据元数据进行分类;
2-4)调度服务功能块类的主要任务是对数据包进行调度处理,如果有多个数据流都需要从同一端口出去的时候,那么就编排这些流的发送顺序和节奏。
实施例
下面以A大学H学院部署负载均衡数据中心和配置网络流量监控业务为例,对转发策略转换方法过程进行说明。
如图1所示,本实施例网络拓扑由1台核心交换机,2台SDN交换机S1和S2,5台服务器,和若干主机/终端设备组成。全网分为六个网段,网段1:网络研究所(10.20.4.0/24);网段2:研究生实验室(10.20.5.0/24);网段3:云实验室(10.20.6.0/24);网段4:云实验室服务器组(10.20.7.0/24)。网段4中的4台服务器是用来运行云实验室操作***的。网段5:审计服务器(10.20.8.0/24),可以根据管理员需要选择性地备份数据包,进行事后审计。网段6:数据服务器(10.20.9.0/24),这台数据服务器负责整个学院的数据存储。云实验室服务器组网段通过一台SDN交换机与学院主干网络连接,可实现云实验室流量的均衡分配。网段1-3通过一台SDN交换机实现互联,所有六个网段通过学院核心交换机与学院主干网络连通。
第一步,控制器根据用户提出的网络业务需求创建服务功能链,服务功能链由若干个服务功能首尾相接组成。本实施例的业务需求是:提高云平台的服务质量。根据此业务需求,控制器将建立一条服务功能链。该服务功能链中包含三种服务功能:“认证”、“流量管理”和“负载均衡”。
服务功能链中包含的三种服务功能描述具体如下:
(一)“认证”服务功能用于管理和授权上网人员,只有通过授权物理端口进来的流量才能访问网络信息。H学院网络对网段1,网段2,网段3实行用户认证,备份访问数据服务器(10.20.9.1)的流量并将之发往审计服务器(10.20.8.1)进行审计,该服务功能可以减少“非法”流量,同时方便管理用户权限;
(二)“流量管理”服务功能在网段1和网段2访问数据服务器(10.20.9.1)的流量超过一定范围时对它们进行管理,流量过高时禁止连接到数据服务器,以此来确保运行云平台运行的安全和效率;
(三)“负载均衡”服务功能根据云实验室服务器的延时情况,将云实验室终端连接到延时最小的服务器上。
根据业务需求建立的服务功能链结构如图2所示。
第二步,服务功能是由服务功能块支撑实现的,服务功能块分为两大类,分别为分类服务功能块类和调度服务功能块类。具体方法为:
1、服务功能块类中包含了该类中的服务功能块共同拥有的主功能元素;
描述服务功能块类的模板:
<SFBClassDefSFBClassID="…">
<!--服务功能块类的编号-->
<name>…</name>
<!--服务功能块类的名称-->
<synopsis>…</synopsis>
<!--服务功能块类的简介-->
<components>
<componentaccess="…"componentID="…">
<!—主功能元素编号以及主功能元素的提供的操作权限:可读可写、只读、清除读操作等-->
<name>…</name>
<!--主功能元素名称-->
<synopsis>…</synopsis>
<!--对主功能元素的简介-->
<typeRef>…</typeRef>
<!--主功能元素的格式-->
</component>
</components>
</SFBClassDef>
2、服务功能块中除了主功能元素值之外,还有输入输出端口、输入输出数据包、输入输出元数据、次功能元素值等;
描述服务功能块的模板:
<SFBInstanceDefInstanceID="…"><!--服务功能块的编号-->
<name>…</name>
<!--服务功能块的名称-->
<synopsis>…</synopsis>
<!--服务功能块的简介-->
<version>…</version>
<!--服务功能块的版本-->
<ClassID>…</ClassID>
<!--服务功能块所属类的编号-->
<inputPorts>
<inputPort>
<name>…</name>
<!--输入端口名称-->
<ID>…</ID>
<!--输入端口ID-->
<synopsis>…</synopsis>
<!--输入端口简介-->
<expectation>
<frameExpected>
<ref>…</ref>
<!--输入包的参考格式-->
</frameExpected>
<metadataExpected>
<ref>…</ref>
<!--输入元数据的参考格式-->
</metadataExpected>
</expectation>
</inputPort>
</inputPorts>
<outputPorts>
<outputPort>
<name>…</name>
<!--输出端口名称-->
<ID>…</ID>
<!--输出端口编号-->
<synopsis>…</synopsis>
<!--输出端口简介-->
<product>
<nextInstanceID>…</nextInstanceID>
<!--下个实例ID-->
<nextPortID>…</nextPortID>
<!--下个物理端口ID-->
<frameProduced>
<ref>…</ref>
<!--输出包的参考格式-->
</frameProduced>
<metadataProduced>
<ref>…</ref>
<!--输出元数据的参考格式-->
</metadataProduced>
</product>
<nextInstanceID>..</nextInstanceID>
<!--下一个服务功能块的编号-->
</outputPort>
</outputPorts>
<componentValues>
<componentValuecomponentID="…">…</componentValue>
<!--服务功能块元素的值-->
</componentValues>
</SFBInstanceDef>
3、分类服务功能块类的主要任务是对数据包根据元数据进行分类,具体描述为:
<SFBClassDefSFBClassID="1">
<components>
<componentaccess="read-write"componentID="1">
<name>adminStatus</name>
<!--服务功能块的操作状态-->
<synopsis>TheSFBstatusadministrativelyrequested.</synopsis>
<typeRef>SFBStatusType</typeRef>
<defaultValue>2</defaultValue>
</component>
<componentaccess="read-only"componentID="2">
<name>operStatus</name>
<!--服务功能块的实际状态-->
<synopsis>TheSFBactualoperationalstatus.</synopsis>
<typeRef>SFBStatusType</typeRef>
<defaultValue>2</defaultValue>
</component>
<componentaccess="read-write"componentID="3">
<name>metadataDispatchTable</name>
<!--分类表-->
<synopsis>
ThemetadataDispatchTablecomponent,whichcontainsentriesofametadatavalue,acomparator,athresholdValueandanoutputindex,specifyingthatapacketwiththemetadatavaluemustgooutfromtheinstancewiththeoutputindexoftheSFBgroupoutputport.
</synopsis>
<typeRef>metadataDispatchTableType</typeRef>
</component>
</components>
</SFBClassDef>
4、调度服务功能块类的主要任务是对数据包进行调度处理,如果有多个数据流都需要从同一端口出去的时候,那么就编排这些流的发送顺序和节奏,具体描述如下:
<SFBClassDefSFBClassID="2">
<components>
<componentaccess="read-write"componentID="1">
<name>adminStatus</name>
<synopsis>TheSFBstatusadministrativelyrequested.</synopsis>
<typeRef>SFBStatusType</typeRef>
<defaultValue>2</defaultValue>
</component>
<componentaccess="read-only"componentID="2">
<name>operStatus</name>
<synopsis>TheSFBactualoperationalstatus.</synopsis>
<typeRef>SFBStatusType</typeRef>
<defaultValue>2</defaultValue>
</component>
<componentaccess="read-write"componentID="3">
<name>currentSchedulingDiscipline</name>
<!--调度策略-->
<synopsis>
ThecurrentSchedulingDisciplinecomponent,whichisforthe
controllertospecifyaschedulingdisciplinetotheSFB.
</synopsis>
<typeRef>schdDisciplineEntryType</typeRef>
</component>
</components>
</SFBClassDef>
上述类描述中用到的数据格式分列如下:
<dataTypeDef>
<name>SFBStatusType</name>
<!--服务功能块状态类型-->
<synopsis>
TypeforSFBstatus,usedforbothadministrativeandoperativestatus.
</synopsis>
<atomic>
<baseType>uint32</baseType>
<specialValues>
<specialValuevalue="0">
<name>Disabled</name>
<synopsis>Portdisabled.</synopsis>
</specialValue>
<specialValuevalue="1">
<name>Up</name>
<synopsis>Portup.</synopsis>
</specialValue>
<specialValuevalue="2">
<name>Down</name>
<synopsis>Portdown.</synopsis>
</specialValue>
</specialValues>
</atomic>
</dataTypeDef>
<dataTypeDef>
<name>metadataDispatchTableType</name>
<!--分类表类型-->
<synopsis>Datatypeformetadatadispatchtable.</synopsis>
<arraytype="variable-size">
<typeRef>metadataDispatchEntryType</typeRef>
</array>
</dataTypeDef>
<dataTypeDef>
<name>metadataDispatchEntryType</name>
<!--分类条目类型-->
<synopsis>DatatypeformetadatadispatchtableusedinBasicMetadataDispatchSFB.Metadatavalueofthetableisalsodefinedasacontentkeyfield.</synopsis>
<struct>
<componentcomponentID="1">
<name>condition</name>
<!--条件-->
<synopsis>Theconditionwhichthemetadatamustfollows.</synopsis>
<typeRef>metadataTableType</typeRef>
</component>
<componentcomponentID="2">
<name>action</name>
<!--动作-->
<synopsis>Indexofagroupoutputportforoutgoingpackets.</synopsis>
<typeRef>portGroupType</typeRef>
</component>
</struct>
</dataTypeDef>
<dataTypeDef>
<name>metadataTableType</name>
<!--元数据表类型-->
<synopsis>TypeofthemetadataTable.</synopsis>
<arraytype="variable-size">
<typeRef>metadataEntryType</typeRef>
</array>
</dataTypeDef>
<dataTypeDef>
<name>portGroupType</name>
<!--端口动作类型-->
<synopsis>Typeoftheportgroups.</synopsis>
<arraytype="variable-size">
<typeRef>portType</typeRef>
</array>
</dataTypeDef>
<dataTypeDef>
<name>metadataEntryType</name>
<!--元数据条目类型-->
<synopsis>TypeofthemetadataEntry.</synopsis>
<struct>
<componentcomponentID="1">
<name>metadataID</name>
<synopsis>TheIDwhichrepresentsadispatchmetadata.</synopsis>
<typeRef>uint32</typeRef>
</component>
<componentcomponentID="2">
<name>comparator</name>
<synopsis>Thecomparatorcanbechoseandcanuseastherelationofmetadataandthresholdvalue.</synopsis>
<typeRef>comparatorEnum</typeRef>
</component>
<componentcomponentID="3">
<name>thresholdValue</name>
<synopsis>Thethresholdvaluethatthemetadatamustcomparewith.</synopsis>
<typeRef>arbitrary</typeRef>
</component>
</struct>
</dataTypeDef>
<dataTypeDef>
<name>comparatorEnum</name>
<!--比较器种类-->
<synopsis>Thecomparatorkinds.</synopsis>
<atomic>
<baseType>uint32</baseType>
<rangeRestriction>
<allowedRangemin="0"max="5"/>
</rangeRestriction>
<specifiedValues>
<specifiedValuevalue="0">
<name>equal</name>
<!--等于-->
<synopsis>aequalsb.</synopsis>
</specifiedValue>
<specifiedValuevalue="1">
<name>greater</name>
<!--大于-->
<synopsis>aisgreaterthanb.</synopsis>
</specifiedValue>
<specifiedValuevalue="2">
<name>less</name>
<!--小于-->
<synopsis>aislessthanb.</synopsis>
</specifiedValue>
<specifiedValuevalue="3">
<name>equalOrGreater</name>
<!--大于等于-->
<synopsis>aequalsorgreaterthanb.</synopsis>
</specifiedValue>
<specifiedValuevalue="4">
<name>equalOrLess</name>
<!--小于等于-->
<synopsis>aequalsorlessthanb.</synopsis>
</specifiedValue>
<specifiedValuevalue="5">
<name>notEqual</name>
<!--不等于-->
<synopsis>aisnotequalwithb.</synopsis>
</specifiedValue>
</specifiedValues>
</atomic>
</dataTypeDef>
<dataTypeDef>
<name>portType</name>
<!--端口动作类型-->
<synopsis>Typeoftheportactions.</synopsis>
<atomic>
<baseType>int32</baseType>
<rangeRestriction>
<allowedRangemin="-1"max="32"/>
</rangeRestriction>
<specialValues>
<specialValuevalue="-1">
<name>drop</name>
<!--丢包-->
<synopsis>Packetsdropped.</synopsis>
</specialValue>
<specialValuevalue="0">
<name>redirect</name>
<!--重定向-->
<synopsis>Packetsredirecttocontrollers.</synopsis>
</specialValue>
</specialValues>
</atomic>
</dataTypeDef>
<dataTypeDef>
<name>schdDisciplineEntryType</name>
<!--调度策略条目类型-->
<synopsis>TypeofschedulingdisciplineEntry.</synopsis>
<struct>
<componentcomponentID="1">
<name>schdDisciplineID</name>
<!--调度策略种类-->
<synopsis>TheschedulingDisciplinecategory.</synopsis>
<typeRef>int32</typeRef>
</component>
<componentcomponentID="2">
<name>schdParamValue</name>
<!--参数值-->
<synopsis>Parametervaluesineachschedulingdiscipline.</synopsis>
<typeRef>schdParamValueType</typeRef>
</component>
<componentcomponentID="3">
<name>flowWeight</name>
<!--调度算法中每个流的权重-->
<synopsis>Weightofeachflow.</synopsis>
<typeRef>flowWeightType</typeRef>
</component>
</struct>
</dataTypeDef>
<dataTypeDef>
<name>schdParamValueType</name>
<!--参数值类型-->
<synopsis>
schdParamValue[0]:ThepointerofRoundRobinschedulingdiscipline.<!--循环调度算法的头指针-->
schdParamValue[1]:TheschedulegaptimeofRoundRobinschedulingdiscipline.<!--循环调度算法的间隔时间-->
</synopsis>
<arraytype="variable-size">
<typeRef>arbitrary</typeRef>
</array>
</dataTypeDef>
<dataTypeDef>
<name>flowWeightType</name>
<!--流的权重-->
<synopsis>
flowWeight[1~n]:theweightofflow1toflown,flow1meanstheflowcomesfromport1.
</synopsis>
<arraytype="variable-size">
<typeRef>float16</typeRef>
</array>
</dataTypeDef>
第三步,网络节点向控制器上报该网络节点资源状况,包括有哪些可选的次要功能元素、元数据和调度算法。本实施例中,网络节点S1和S2上报相同的次要功能元素库,即:
<SFBComponentLib>
<dataTypeDef>
<name>rateStatsTableType</name>
<!--流量统计表类型-->
<synopsis>
</synopsis>
<arraytype="variable-size">
<typeRef>rateStatsEntryType</typeRef>
</array>
</dataTypeDef>
<dataTypeDef>
<name>rateStatsEntryType</name>
<!--流量统计条目类型-->
<synopsis>
</synopsis>
<struct>
<componentcomponentID="1">
<name>metadataID</name>
<!--元数据值-->
<synopsis>
</synopsis>
<typeRef>uint32</typeRef>
</component>
<componentcomponentID="2">
<name>comparator</name>
<!--比较器-->
<synopsis>
</synopsis>
<typeRef>comparatorEnum</typeRef>
</component>
<componentcomponentID="3">
<name>thresholdValue</name>
<!--阈值-->
<synopsis>
</synopsis>
<typeRef>arbitrary</typeRef>
</component>
<componentcomponentID="4">
<name>rateNum</name>
<!--速率值-->
<synopsis>
</synopsis>
<typeRef>float16</typeRef>
</component>
</struct>
</dataTypeDef>
<dataTypeDef>
<name>queueStatsTableType</name>
<!--排队状态表类型-->
<synopsis>Datatypeforqueuestatisticstable.</synopsis>
<arraytype="variable-size">
<typeRef>queueStatsType</typeRef>
</array>
</dataTypeDef>
<dataTypeDef>
<name>queueStatsType</name>
<!--排队状态类型-->
<synopsis>DatatypeforentryofqueuestatisticstableinSFB.</synopsis>
<struct>
<componentcomponentID="1">
<name>queueID</name>
<!--队列标识-->
<synopsis>TheinputqueueID.</synopsis>
<typeRef>uint32</typeRef>
</component>
<componentcomponentID="2">
<name>queueDepthInPackets</name>
<!--队列长度(以数据包计)-->
<synopsis>Currentqueuedepthinpackets.</synopsis>
<typeRef>uint32</typeRef>
</component>
<componentcomponentID="3">
<name>queueDepthInBytes</name>
<!--队列长度(以字节包计)-->
<synopsis>Currentqueuedepthinbytes.</synopsis>
<typeRef>uint32</typeRef>
</component>
</struct>
</dataTypeDef>
<SFBComponentsClassID="1">
<componentaccess="read-only"componentID="4">
<name>rateStats</name>
<!--速率状态查询-->
<synopsis>TherateStatscomponent,whichisdefinedtoallowthecontrollertoqueryeveryratestatisticsinthescheduler.</synopsis>
<typeRef>rateStatsTableType</typeRef>
</component>
<componentaccess="read-only"componentID="5">
<name>rateLimit</name>
<!--速率限制-->
<synopsis>TherateLimitcomponent,whichspecifiesthemaximumrateofeachflowinafixedtime.</synopsis>
<typeRef>uint32</typeRef>
</component>
<componentaccess="read-write"componentID="6">
<name>redirection</name>
<!--重定向动作-->
<synopsis>Theredirectioncomponent,whichcanredirecttheoverloadedflowtootherfreeservers.</synopsis>
<typeRef>uint32</typeRef>
<componentaccess="read-only"componentID="7">
<name>infoStats</name>
<!--信息统计-->
<synopsis>Thestatisticalinformationofthenetwork.</synopsis>
<typeRef>rateStatsTableType</typeRef>
</SFBComponents>
<SFBComponentsClassID="2">
<componentaccess="read-only"componentID="4">
<name>queueStats</name>
<!--排队状态-->
<synopsis>ThequeueStatscomponent,whichisdefinedtoallowthecontrollertoqueryeveryqueuestatisticsinthescheduler.</synopsis>
<!--排队状态标识每个输入队列的长度,控制器通过查询排队状态来决定使用哪种调度策略-->
<typeRef>queueStatsTableType</typeRef>
</component>
<componentaccess="read-write"componentID="5">
<name>queueLenLimit</name>
<!--队长限制-->
<synopsis>ThequeueLenLimitcomponent,whichspecifiesmaximumlengthofeachqueue.Thelengthunitisinpackets.</synopsis>
<!--控制器可以根据是否超过队长限制来决定启动调度策略-->
<typeRef>uint32</typeRef>
</component>
</SFBComponents>
</SFBComponentLib>
网络节点S1上报元数据:
<metadataLib>
<componentcomponentID="1">
<name>ingressPort</name>
<!--输入端口-->
<synopsis>Theinputportofthepackets.</synopsis>
</component>
<componentcomponentID="2">
<name>EtherSrcAddress</name>
<!--源以太网地址-->
<synopsis>TheEthernetsourceaddress.</synopsis>
</component>
<componentcomponentID="3">
<name>EtherDstAddress</name>
<!--目的以太网地址-->
<synopsis>TheEthernetdestinationaddress.</synopsis>
</component>
<componentcomponentID="4">
<name>EtherType</name>
<!--以太网包类型-->
<synopsis>ThetypeofanEthernetpacketheader.</synopsis>
</component>
<componentcomponentID="5">
<name>VlanID</name>
<!--Vlan编号-->
<synopsis>TheidentificationofaVlan.</synopsis>
</component>
<componentcomponentID="6">
<name>VlanPriority</name>
<!--Vlan优先级-->
<synopsis>Thepriorityofavlan.</synopsis>
</component>
<componentcomponentID="7">
<name>IPSrcAddress</name>
<!--源IP地址-->
<synopsis>TheIPsourceaddress.</synopsis>
</component>
<componentcomponentID="8">
<name>IPDstAddress</name>
<!--目的IP地址-->
<synopsis>TheIPdestinationaddress.</synopsis>
</component>
<componentcomponentID="9">
<name>IPProto</name>
<!--IP协议类型-->
<synopsis>TheidentificationofanIPprotocol.</synopsis>
</component>
<componentcomponentID="10">
<name>IPTos</name>
<!--IP服务质量类型-->
<synopsis>Thetypeofservicebit.</synopsis>
</component>
<componentcomponentID="11">
<name>TCP/UDPSrcPort</name>
<!--TCP/UDP源端口-->
<synopsis>ThesourceportofTCP/UDP.</synopsis>
</component>
<componentcomponentID="12">
<name>TCP/UDPDstPort</name>
<!--TCP/UDP目的端口-->
<synopsis>ThedestinationportofTCP/UDP.</synopsis>
</component>
</metadataLib>
网络节点S1上报的调度算法:
<schdDisciplineLib>
<componentcomponentID="1">
<name>FCFS</name>
<!--先到先服务算法-->
<synopsis>FirstComeFirstServedschedulingdiscipline.</synopsis>
</component>
<componentcomponentID="2">
<name>RR</name>
<!--循环调度算法-->
<synopsis>RoundRobinschedulingdiscipline.</synopsis>
</component>
<componentcomponentID="3">
<name>WRR</name>
<!--加权循环调度算法-->
<synopsis>WeightedRoundRobinschedulingdiscipline.</synopsis>
</component>
<componentcomponentID="4">
<name>SP</name>
<!--严格优先级算法-->
<synopsis>StrictPriorityschedulingdiscipline.</synopsis>
</component>
</schdDisciplineLib>
网络节点S2上报元数据:
<metadataLib>
<componentcomponentID="1">
<name>ingressPort</name>
<synopsis>Theinputportofthepackets.</synopsis>
</component>
<componentcomponentID="2">
<name>EtherSrcAddress</name>
<synopsis>TheEthernetsourceaddress.</synopsis>
</component>
<componentcomponentID="3">
<name>EtherDstAddress</name>
<synopsis>TheEthernetdestinationaddress.</synopsis>
</component>
<componentcomponentID="4">
<name>EtherType</name>
<synopsis>ThetypeofanEthernetpacketheader.</synopsis>
</component>
<componentcomponentID="5">
<name>VlanID</name>
<synopsis>TheidentificationofaVlan.</synopsis>
</component>
<componentcomponentID="6">
<name>VlanPriority</name>
<synopsis>Thepriorityofavlan.</synopsis>
</component>
<componentcomponentID="7">
<name>IPSrcAddress</name>
<synopsis>TheIPsourceaddress.</synopsis>
</component>
<componentcomponentID="8">
<name>IPDstAddress</name>
<synopsis>TheIPdestinationaddress.</synopsis>
</component>
<componentcomponentID="9">
<name>IPProto</name>
<synopsis>TheidentificationofanIPprotocol.</synopsis>
</component>
<componentcomponentID="10">
<name>IPTos</name>
<synopsis>Thetypeofservicebit.</synopsis>
</component>
<componentcomponentID="11">
<name>TCP/UDPSrcPort</name>
<synopsis>ThesourceportofTCP/UDP.</synopsis>
</component>
<componentcomponentID="12">
<name>TCP/UDPDstPort</name>
<synopsis>ThedestinationportofTCP/UDP.</synopsis>
</component>
<componentcomponentID="13">
<name>serverLatency</name>
<synopsis>Thelatencyofeachserver.</synopsis>
</component>
</metadataLib>
第四步,控制器根据网络节点的资源状况和服务功能链信息设计服务功能实例链,服务功能实例链是由服务功能块首位相接组成。如图3所示,本实施例中的服务功能实例链包括网络节点S1上的认证服务功能块、流量管理服务功能块和网络节点S2上的负载均衡服务功能块。
第五步,对于支持服务功能块的网络节点,控制器将服务功能实例链的描述直接下发到相关的网络节点并要求预留资源,对于支持OpenFlow的网络节点,控制器将服务功能实例链的描述转化为流表再下发。本实施例中,网络节点S1、S2都支持服务功能块,因此服务功能实例链的描述可以直接下发。
网络节点S1上的认证服务功能块的描述如下:
<SFBInstanceDefs>
<SFBInstanceDefSFBInstanceID="1">
<name>Authentication</name>
<!--认证-->
<synopsis>aSFBtodividetheauthenticatedflowandnon-authenticatedflow.</synopsis>
<version>1.0</version>
<classID>1</classID>
<inputPorts>
<inputPort>
<name>pktsIn</name>
<ID>1</ID>
<synopsis>
Inputportofpackets.EachinputporthasanuniqueID.
</synopsis>
<expectation>
<frameExpected>
<ref>IPv4</ref>
</frameExpected>
<metadataExpected>
<ref>PHYPortID</ref>
</metadataExpected>
</expectation>
</inputPort>
</inputPorts>
<outputPorts>
<outputPort>
<name>normalPort1</name>
<ID>2</ID>
<synopsis>
Thenormalportinwhichtheflowwillbesenttothefollowingnetworkdevices.
</synopsis>
<product>
<frameProduced>
<ref>IPv4</ref>
</frameProduced>
</product>
<nextInstanceID>2</nextInstanceID>
<nextPortID>1</nextPortID>
<!--连接到编号为2的服务功能块的1端口-->
</outputPort>
<outputPort>
<name>normalPort2</name>
<ID>3</ID>
<synopsis>
Thenormalportinwhichtheflowwillbesenttothefollowingnetworkdevices.
</synopsis>
<product>
<frameProduced>
<ref>IPv4</ref>
</frameProduced>
</product>
<nextInstanceID>2</nextInstanceID>
<nextPortID>2</nextPortID>
<!--表示连接到编号为2的服务功能块的2端口-->
</outputPort>
<outputPort>
<name>auditPort</name>
<ID>4</ID>
<synopsis>Anauditportinwhichtheflowwillbesentforauditing.</synopsis>
<product>
<frameProduced>
<ref>IPv4</ref>
</frameProduced>
</product>
<nextInstanceID>-1</nextInstanceID>
<nextPortID>5</nextPortID>
<!--5表示连接到编号为5的物理端口,-1表示不连接到服务功能块-->
</outputPort>
</outputPorts>
<componentValues>
<componentValuecomponentID="1">
<value>1</value>
<!--表示本服务功能块已经被控制器设置成工作状态-->
</componentValue>
<componentValuecomponentID="2">
<value>1</value>
<!--表示本服务功能块处于正常工作状态-->
</componentValue>
<componentValuecomponentID="3">
<metadataDispatchEntryType>
<!--该表项表示源IP地址为10.20.4.0/24网段,目标地址不是10.20.4.0/24网段,目标IP地址为10.20.9.1和输入端口为4的数据包发往该服务功能块的normalPort和auditPort-->
<condition>
<metadataEntryType>
<metadataID>7</metadataID>
<!--表示使用IP源地址作为元数据-->
<comparator>0</comparator>
<!--表示比较器为等于-->
<thresholdValue>10.20.4.0/24</thresholdValue>
<!--比较阈值为10.20.4.0/24-->
</metadataEntryType>
<metadataEntryType>
<metadataID>8</metadataID>
<!--表示使用IP目的地址作为元数据-->
<comparator>5</comparator>
<!--表示比较器为不等于-->
<thresholdValue>10.20.4.0/24</thresholdValue>
</metadataEntryType>
<metadataEntryType>
<metadataID>1</metadataID>
<!--表示使用输入端口作为元数据-->
<comparator>0</comparator>
<!--表示比较器为等于-->
<thresholdValue>4</thresholdValue>
</metadataEntryType>
<metadataEntryType>
<metadataID>7</metadataID>
<comparator>0</comparator>
<thresholdValue>10.20.9.1</thresholdValue>
</metadataEntryType>
</condition>
<action>
<portType>2</portType>
<portType>3</portType>
<!--表示动作分别是转发到本服务功能块中编号为2和3的端口-->
</action>
</metadataDispatchEntryType>
<metadataDispatchEntryType>
<!--该表项表示源IP地址为10.20.4.0/24网段,目标地址不是10.20.4.0/24网段以及输入端口为4的数据包发往该服务功能块的normalPort-->
<condition>
<metadataEntryType>
<metadataID>7</metadataID>
<comparator>0</comparator>
<thresholdValue>10.20.4.0/24</thresholdValue>
</metadataEntryType>
<metadataEntryType>
<metadataID>8</metadataID>
<comparator>5</comparator>
<thresholdValue>10.20.4.0/24</thresholdValue>
</metadataEntryType>
<metadataEntryType>
<metadataID>1</metadataID>
<comparator>0</comparator>
<thresholdValue>4</thresholdValue>
</metadataEntryType>
</condition>
<action>
<portType>2</portType>
</action>
</metadataDispatchEntryType>
<metadataDispatchEntryType>
<!--该表项表示源IP地址为10.20.5.0/24网段,目标地址不是10.20.5.0/24网段,目标IP地址为10.20.9.1和输入端口为3的数据包发往该服务功能块的normalPort和auditPort-->
<condition>
<metadataEntryType>
<metadataID>7</metadataID>
<comparator>0</comparator>
<thresholdValue>10.20.5.0/24</thresholdValue>
</metadataEntryType>
<metadataEntryType>
<metadataID>8</metadataID>
<comparator>5</comparator>
<thresholdValue>10.20.5.0/24</thresholdValue>
</metadataEntryType>
<metadataEntryType>
<metadataID>1</metadataID>
<comparator>0</comparator>
<thresholdValue>3</thresholdValue>
</metadataEntryType>
<metadataEntryType>
<metadataID>7</metadataID>
<comparator>0</comparator>
<thresholdValue>10.20.9.1</thresholdValue>
</metadataEntryType>
</condition>
<action>
<portType>2</portType>
<portType>3</portType>
</action>
</metadataDispatchEntryType>
<metadataDispatchEntryType>
<!--该表项表示源IP地址为10.20.5.0/24网段,目标地址不是10.20.5.0/24网段和输入端口为3的数据包发往该服务功能块的normalPort-->
<condition>
<metadataEntryType>
<metadataID>7</metadataID>
<comparator>0</comparator>
<thresholdValue>10.20.5.0/24</thresholdValue>
</metadataEntryType>
<metadataEntryType>
<metadataID>8</metadataID>
<comparator>5</comparator>
<thresholdValue>10.20.5.0/24</thresholdValue>
</metadataEntryType>
<metadataEntryType>
<metadataID>1</metadataID>
<comparator>0</comparator>
<thresholdValue>3</thresholdValue>
</metadataEntryType>
</condition>
<action>
<portType>2</portType>
</action>
</metadataDispatchEntryType>
<metadataDispatchEntryType>
<!--该表项表示源IP地址为10.20.6.0/24网段,目标地址不是10.20.6.0/24网段,目标IP地址为10.20.9.1和输入端口为2的数据包发往该服务功能块的normalPort和auditPort-->
<condition>
<metadataEntryType>
<metadataID>7</metadataID>
<comparator>0</comparator>
<thresholdValue>10.20.6.0/24</thresholdValue>
</metadataEntryType>
<metadataEntryType>
<metadataID>8</metadataID>
<comparator>5</comparator>
<thresholdValue>10.20.6.0/24</thresholdValue>
</metadataEntryType>
<metadataEntryType>
<metadataID>1</metadataID>
<comparator>0</comparator>
<thresholdValue>2</thresholdValue>
</metadataEntryType>
<metadataEntryType>
<metadataID>7</metadataID>
<comparator>0</comparator>
<thresholdValue>10.20.9.1</thresholdValue>
</metadataEntryType>
</condition>
<action>
<portType>2</portType>
<portType>3</portType>
</action>
</metadataDispatchEntryType>
<metadataDispatchEntryType>
<!--该表项表示源IP地址为10.20.6.0/24网段,目标地址不是10.20.6.0/24网段和输入端口为2的数据包发往该服务功能块的normalPort-->
<condition>
<metadataEntryType>
<metadataID>7</metadataID>
<comparator>0</comparator>
<thresholdValue>10.20.6.0/24</thresholdValue>
</metadataEntryType>
<metadataEntryType>
<metadataID>8</metadataID>
<comparator>5</comparator>
<thresholdValue>10.20.6.0/24</thresholdValue>
</metadataEntryType>
<metadataEntryType>
<metadataID>1</metadataID>
<comparator>0</comparator>
<thresholdValue>2</thresholdValue>
</metadataEntryType>
</condition>
<action>
<portType>2</portType>
</action>
</metadataDispatchEntryType>
<metadataDispatchEntryType>
<!--该表项表示目标地址为10.20.7.0/24的数据包发往该服务功能块的2号端口-->
<condition>
<metadataEntryType>
<metadataID>8</metadataID>
<comparator>0</comparator>
<thresholdValue>10.20.7.0/24</thresholdValue>
</metadataEntryType>
</condition>
<action>
<portType>2</portType>
</action>
</metadataDispatchEntryType>
<metadataDispatchEntryType>
<!--该表项表示目标地址为10.20.7.0/24的数据包发往该服务功能块的3号端口-->
<condition>
<metadataEntryType>
<metadataID>8</metadataID>
<comparator>0</comparator>
<thresholdValue>10.20.9.1</thresholdValue>
</metadataEntryType>
</condition>
<action>
<portType>3</portType>
</action>
</metadataDispatchEntryType>
</componentValue>
</componentValues>
</SFBInstanceDef>
网络节点S1上的流量管理服务功能块描述如下:
<SFBInstanceDefSFBInstanceID="2">
<name>TrafficManagement</name>
<!--流量管理-->
<synopsis>ASFBtomanagethetraffic.</synopsis>
<version>1.0</version>
<ClassID>2</ClassID>
<inputPorts>
<inputPort>
<name>pktsIn1</name>
<ID>1</ID>
<synopsis>
ThegroupinputportoftheSFB.EachinputporthasanuniqueID.
</synopsis>
<expectation>
<frameExpected>
<ref>IPv4</ref>
</frameExpected>
</expectation>
</inputPort>
<inputPort>
<name>pktsIn2</name>
<ID>2</ID>
<synopsis>
ThegroupinputportoftheSFB.EachinputporthasanuniqueID.
</synopsis>
<expectation>
<frameExpected>
<ref>IPv4</ref>
</frameExpected>
</expectation>
</inputPort>
</inputPorts>
<outputPorts>
<outputPort>
<name>pksOut</name>
<ID>3</ID>
<!--该端口的编号为2-->
<synopsis>
TheoutputportoftheSFB.Scheduledpacketsareoutputfromtheport.
</synopsis>
<product>
<frameProduced>
<ref>IPv4</ref>
</frameProduced>
</product>
<nextInstanceID>-1</nextInstanceID>
<nextPortID>1</nextPortID>
</outputPort>
</outputPorts>
<componentValues>
<componentValuecomponentID="1">1</componentValue>
<componentValuecomponentID="2">1</componentValue>
<componentValuecomponentID="3">
<!--该表项表示使用严格优先级策略,在该服务功能块的pksOut端口根据流的权重来按先后顺序进行发送,不需要参数-->
<schdDisciplineEntryType>
<schdDisciplineID>4</schdDisciplineID>
<!--4表示使用严格优先级策略-->
<schdParamValue>
<schdParamValueType>null</schdParamValueType>
<schdParamValueType>null</schdParamValueType>
<!--null表示该策略不需要参数-->
</schdParamValue>
<flowWeight>
<flowWeightType>5</flowWeightType>
<flowWeightType>2</flowWeightType>
</flowWeight>
</schdDisciplineEntryType>
</componentValue>
<componentValuecomponentID="5">50</componentValue>
<!--该表项表示在队列长度超过50个数据包时启动调度算法-->
</componentValues>
</SFBInstanceDef>
网络节点S2上的负载均衡服务功能块描述如下:
<SFBInstanceDefSFBInstanceID="3">
<name>Server_LB</name>
<!--负载均衡-->
<synopsis>ASFBforbalancingtheloadofeachserver.</synopsis>
<version>1.0</version>
<classID>1</classID>
<inputPorts>
<inputPort>
<name>pktsIn</name>
<ID>1</ID>
<synopsis>
ThegroupinputportoftheSFB.EachinputporthasanuniqueID.
</synopsis>
<expectation>
<frameExpected>
<ref>arbitrary</ref>
</frameExpected>
</expectation>
</inputPort>
</inputPorts>
<outputPorts>
<outputPort>
<name>pktsOut1</name>
<ID>2</ID>
<synopsis>Theoutputport1oftheSFB.Scheduledpacketsareoutputfromthephysicalport1.</synopsis>
<product>
<nextInstanceID>-1</nextInstanceID>
<nextPortID>1</nextPortID>
<frameProduced>
<ref>arbitrary</ref>
</frameProduced>
</product>
</outputPort>
<outputPort>
<name>pktsOut2</name>
<ID>3</ID>
<synopsis>Theoutputport2oftheSFB.Scheduledpacketsareoutputfromthephysicalport2.</synopsis>
<product>
<nextInstanceID>-1</nextInstanceID>
<nextPortID>2</nextPortID>
<frameProduced>
<ref>arbitrary</ref>
</frameProduced>
</product>
</outputPort>
<outputPort>
<name>pktsOut3</name>
<ID>4</ID>
<synopsis>Theoutputport3oftheSFB.Scheduledpacketsareoutputfromthephysicalport3.</synopsis>
<product>
<nextInstanceID>-1</nextInstanceID>
<nextPortID>3</nextPortID>
<frameProduced>
<ref>arbitrary</ref>
</frameProduced>
</product>
</outputPort>
<outputPort>
<name>pktsOut4</name>
<ID>5</ID>
<synopsis>Theoutputport4oftheSFB.Scheduledpacketsareoutputfromthephysicalport4.</synopsis>
<product>
<nextInstanceID>-1</nextInstanceID>
<nextPortID>4</nextPortID>
<frameProduced>
<ref>arbitrary</ref>
</frameProduced>
</product>
</outputPort>
<outputPort>
<name>pktsOut5</name>
<ID>6</ID>
<synopsis>Theoutputport5oftheSFB.Scheduledpacketsareoutputfromthephysicalport5.</synopsis>
<product>
<nextInstanceID>-1</nextInstanceID>
<nextPortID>5</nextPortID>
<frameProduced>
<ref>arbitrary</ref>
</frameProduced>
</product>
</outputPort>
</outputPorts>
<componentValues>
<componentValuecomponentID="1">
<value>1</value>
</componentValue>
<componentValuecomponentID="2">
<value>1</value>
</componentValue>
<componentValuecomponentID="3">
<metadataDispatchEntryType>
<!--该表项表示根据当前策略,访问云服务器的流量应当走前时延最小的pksOut1-->
<condition>
<metadataEntryType>
<metadataID>8</metadataID>
<comparator>0</comparator>
<thresholdValue>10.20.7.0/24</thresholdValue>
</metadataEntryType>
</condition>
<action>
<portType>2</portType>
</action>
</metadataDispatchEntryType>
<metadataDispatchEntryType>
<!--该表项表示目标地址为10.20.9.1的流量发往pksOut5-->
<condition>
<metadataEntryType>
<metadataID>8</metadataID>
<comparator>0</comparator>
<thresholdValue>10.20.9.1</thresholdValue>
</metadataEntryType>
</condition>
<action>
<portType>6</portType>
</action>
</metadataDispatchEntryType>
</componentValue>
</componentValues>
</SFBInstanceDef>
</SFBInstanceDefs>
最后,网络节点部署网络服务功能实例链。

Claims (2)

1.一种面向SDN的服务功能链构建方法,其特征在于,在SDN网络结构中,针对网络业务请求实现在网络节点部署网络服务功能块实例,包括以下步骤:
1-1)控制器根据用户提出的网络业务需求创建服务功能链,服务功能链由若干个服务功能首尾相接组成;
1-2)服务功能是由服务功能块支撑实现的,服务功能块分为两大类,分别为分类服务功能块类和调度服务功能块类;
1-3)网络节点向控制器上报该网络节点资源状况,包括有可选的次要功能元素、元数据和调度算法;
1-4)控制器根据网络节点的资源状况和服务功能链信息设计服务功能实例链,服务功能实例链是由服务功能块首尾相接组成;
1-5)对于支持服务功能块的网络节点,控制器将服务功能实例链的描述直接下发到相关的网络节点并要求预留资源,对于支持OpenFlow的网络节点,控制器将服务功能实例链的描述转化为流表再下发;
1-6)网络节点部署服务功能实例链。
2.根据权利要求1所述的一种面向SDN的服务功能链构建方法,其特征在于,所述步骤1-2)服务功能是由服务功能块支撑实现的,服务功能块分为两大类,分别为分类服务功能块类和调度服务功能块类,具体方法为:
2-1)服务功能块类中包含了该类中的服务功能块共同拥有的主功能元素;
2-2)服务功能块中除了主功能元素值之外,还有输入输出端口、输入输出数据包、输入输出元数据、次功能元素值等;
2-3)分类服务功能块类的主要任务是对数据包根据元数据进行分类;
2-4)调度服务功能块类的主要任务是对数据包进行调度处理,如果有多个数据流都需要从同一端口出去的时候,那么就编排这些流的发送顺序和节奏。
CN201510720038.0A 2015-10-30 2015-10-30 一种面向sdn的服务功能链构建方法 Pending CN105430051A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510720038.0A CN105430051A (zh) 2015-10-30 2015-10-30 一种面向sdn的服务功能链构建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510720038.0A CN105430051A (zh) 2015-10-30 2015-10-30 一种面向sdn的服务功能链构建方法

Publications (1)

Publication Number Publication Date
CN105430051A true CN105430051A (zh) 2016-03-23

Family

ID=55507988

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510720038.0A Pending CN105430051A (zh) 2015-10-30 2015-10-30 一种面向sdn的服务功能链构建方法

Country Status (1)

Country Link
CN (1) CN105430051A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106789241A (zh) * 2016-12-20 2017-05-31 浙江工商大学 一种基于本体的lfb自动组合方法
CN107196807A (zh) * 2017-06-20 2017-09-22 清华大学深圳研究生院 网络中间设备及其部署方法
CN107332913A (zh) * 2017-07-04 2017-11-07 电子科技大学 一种5g移动网络中服务功能链的优化部署方法
CN107819662A (zh) * 2017-11-23 2018-03-20 电子科技大学 一种应用于云雾计算网络的服务功能链实时迁移方法
CN110309877A (zh) * 2019-06-28 2019-10-08 北京百度网讯科技有限公司 一种特征图数据的量化方法、装置、电子设备及存储介质
CN111224872A (zh) * 2018-11-24 2020-06-02 南宁富桂精密工业有限公司 封包转送方法与装置
CN111654541A (zh) * 2020-06-02 2020-09-11 中国联合网络通信集团有限公司 面向边缘计算业务的服务功能链编排方法、***及编排器
CN111756632A (zh) * 2020-06-22 2020-10-09 中国电子科技集团公司第五十四研究所 一种基于mpls封装的安全服务链动态编排方法
CN112887134A (zh) * 2021-01-21 2021-06-01 中山大学 一种网络服务网格编排方法、装置、设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104301212A (zh) * 2014-09-26 2015-01-21 浙江工商大学 一种功能链组合方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104301212A (zh) * 2014-09-26 2015-01-21 浙江工商大学 一种功能链组合方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
J.HALPERN ET AL: "Service Function Chaining (SFC) Architecture draft-ietf-sfc- architecture-10", 《NETWORK WORKING GROUP INTERNET-DRAFT》 *
段通等: "基于元能力的SDN功能组合机制", 《通信学报》 *
盛权: "基于性能模型的服务链构建方法及自动化研究", 《中国优秀硕士学位论文全文数据库》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106789241B (zh) * 2016-12-20 2019-10-29 浙江工商大学 一种基于本体的lfb自动组合方法
CN106789241A (zh) * 2016-12-20 2017-05-31 浙江工商大学 一种基于本体的lfb自动组合方法
CN107196807A (zh) * 2017-06-20 2017-09-22 清华大学深圳研究生院 网络中间设备及其部署方法
CN107332913A (zh) * 2017-07-04 2017-11-07 电子科技大学 一种5g移动网络中服务功能链的优化部署方法
CN107332913B (zh) * 2017-07-04 2020-03-27 电子科技大学 一种5g移动网络中服务功能链的优化部署方法
CN107819662A (zh) * 2017-11-23 2018-03-20 电子科技大学 一种应用于云雾计算网络的服务功能链实时迁移方法
CN107819662B (zh) * 2017-11-23 2019-10-18 电子科技大学 一种应用于云雾计算网络的服务功能链实时迁移方法
CN111224872A (zh) * 2018-11-24 2020-06-02 南宁富桂精密工业有限公司 封包转送方法与装置
CN110309877A (zh) * 2019-06-28 2019-10-08 北京百度网讯科技有限公司 一种特征图数据的量化方法、装置、电子设备及存储介质
CN111654541A (zh) * 2020-06-02 2020-09-11 中国联合网络通信集团有限公司 面向边缘计算业务的服务功能链编排方法、***及编排器
CN111654541B (zh) * 2020-06-02 2021-12-07 中国联合网络通信集团有限公司 面向边缘计算业务的服务功能链编排方法、***及编排器
CN111756632A (zh) * 2020-06-22 2020-10-09 中国电子科技集团公司第五十四研究所 一种基于mpls封装的安全服务链动态编排方法
CN112887134A (zh) * 2021-01-21 2021-06-01 中山大学 一种网络服务网格编排方法、装置、设备及介质
CN112887134B (zh) * 2021-01-21 2022-03-15 中山大学 一种网络服务网格编排方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
CN105430051A (zh) 一种面向sdn的服务功能链构建方法
US11625154B2 (en) Stage upgrade of image versions on devices in a cluster
Wang et al. A survey on data center networking for cloud computing
CN104780088B (zh) 一种业务报文的传输方法和设备
CN102255903B (zh) 一种云计算虚拟网络与物理网络隔离安全方法
EP3549313B1 (en) Group-based pruning in a software defined networking environment
CN107819742B (zh) 一种动态部署网络安全服务的***架构及其方法
CN103763367A (zh) 一种云计算数据中心分布式虚拟网络设计方法及***
CN105051688A (zh) 经扩展的标记联网
Kim et al. A research on dynamic service function chaining based on reinforcement learning using resource usage
CN108092934A (zh) 安全服务***及方法
JP5993817B2 (ja) キャリア網における経路制御システム及び方法
Davoli et al. Implementation of service function chaining control plane through OpenFlow
CN105471907A (zh) 一种基于Openflow的虚拟防火墙传输控制方法及***
KR101841026B1 (ko) 최적 경로 설정을 위한 서비스 기능 체이닝 네트워크 시스템
Vyakaranal et al. Weighted round-robin load balancing algorithm for software-defined network
TWI636679B (zh) 虛擬區域網路配置系統與方法及其電腦程式產品
CN103873338A (zh) 一种利用绑定和vlan实现网络虚拟化的方法
Sill Standards underlying cloud networking
Cai et al. Survey on converged data center networks with DCB and FCoE: standards and protocols
CN113395183B (zh) 网络仿真平台vlan互联的虚拟节点调度方法与***
CN110661732A (zh) 基于mac划分vlan的工作组间流量调度装置及方法
Chou et al. Design of SFC Management System based on SDN and NFV
Cortes Simulation of Software Defined Networks With Open Network Operating System and Mininet
Paul et al. Service chaining for NFV and delivery of other applications in a global multi-cloud environment

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20160323