CN109818864A - 软件定义网络中数据流路径更新方法及装置 - Google Patents
软件定义网络中数据流路径更新方法及装置 Download PDFInfo
- Publication number
- CN109818864A CN109818864A CN201811520036.7A CN201811520036A CN109818864A CN 109818864 A CN109818864 A CN 109818864A CN 201811520036 A CN201811520036 A CN 201811520036A CN 109818864 A CN109818864 A CN 109818864A
- Authority
- CN
- China
- Prior art keywords
- constraint
- data flow
- model
- solution
- node
- 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.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于计算机网络通信技术领域,特别涉及一种软件定义网络中数据流路径更新方法及装置,该方法包含:提取更新过程中一致性约束特征,确定约束逻辑关系,并根据初始网络配置与最终网络配置,建立线性规划模型;求解线性规划模型,若模型无解,则返回约束逻辑关系确定过程对约束逻辑关系进行约束置换,重新建立线性规划模型;若模型有解,则获取执行复制匹配操作节点数目进行数据流拼接。本发明中协同利用源路由与一致性约束提取与置换,通过约束提取与建模、约束置换与模型求解、操作序列校验与源路由拼接,可以在保证一致性特征的前提下,大幅度削减更新过程的TCAM冗余资源开销,对软件定义网络技术发展领域具有重要的指导意义。
Description
技术领域
本发明属于计算机网络通信技术领域,特别涉及一种软件定义网络中数据流路径更新方法及装置。
背景技术
因网络状态的动态变化特性,规则更新是网络中的常见现象,通过网络更新来调整路由表、更改访问权限可以完成网络维护、漏洞修补等网络日常运维操作。网络更新过程的关键在于逐步更改网络中节点的配置直到网络中的所有节点都已经运行其最终配置。而在网络更新过程中节点可以进行的操作有:安装或者删除FIB(Forward InformationBase,FIB)表中的路由规则、数据包添加标签、更改访问权限等。由于现实中同时完成所有的更新操作是不切实际的,所以更新过程是一个增量过程,需要经过一系列中间态。而如何保证更新过程的一致性,维护网络正常功能,避免环路,路由黑洞等异常的发生是网络安全更新的保证,也是更新过程的关键目标。如若不然,可能会导致数据流沿初始路径与最终路径的混合来转发等一系列异常与错误。
目前软件定义网络规则更新技术,有两种基本的更新机制,一种被称之为two-phase commit,其核心原理在于,所有的节点同时维护初始规则与最终规则,并由入口节点所加的标签决定所应采取的转发规则,具体如图1所示,机制在<u v z>三个节点同时维护初始与最终规则,依靠入口节点s所加的标签来决定应采取的规则。这种机制在维护一致性的同时,造成了近乎两倍的TCAM三态内容寻址存储器资源消耗,而TCAM是一种昂贵且高能耗的存储资源,所以这种机制并不实际,而另一种一致性更新机制被称之为orderedscheduling,这种机制的核心机理在于,按照一定的约束条件,计算节点的更新顺序,并按照该顺序更新节点。虽然这种机制并不需要额外的TCAM资源开销,但其只能维持部分一致性更新特性,或求解强一致性更新序列未必一定存在。因此,当前软件定义网络的规则更新技术,迫切需要一种低TCAM开销,且能维系一致性更新特性的数据流路径更新技术。
发明内容
为此,本发明提供一种软件定义网络中数据流路径更新方法及装置,通过协同利用源路由与一致性约束提取与置换,实现软件定义网络的规则低TCAM开销的一致性更新,降低数据流路径更新过程中网络设备负载压力。
按照本发明所提供的设计方案,一种软件定义网络中数据流路径更新方法,包含如下内容:
提取更新过程中一致性约束特征,确定约束逻辑关系,并根据初始网络配置与最终网络配置,建立线性规划模型;
求解线性规划模型,若模型无解,则返回约束逻辑关系确定过程对约束逻辑关系进行约束置换,重新建立线性规划模型;若模型有解,则获取执行复制匹配操作节点数目进行数据流拼接。
上述的,提取更新过程一致性约束特征中,首先,通过更新顺序约束和标签匹配约束将更新过程的一致性特征抽象为系列约束,该系列约束包含无环路约束、无黑洞约束、标签匹配约束和路径正确性约束;然后,确定约束间的逻辑关系,该逻辑关系包含置换关系及依赖关系。
上述的,约束替换过程中,对于限制同一异常的约束,利用标签匹配约束进行顺序更新约束的单向置换,保证其余约束逻辑语义不变,寻找模型的可解约束集合。
优选的,利用标签匹配约束进行顺序更新约束的单向置换,包含如下内容:
移除约束集合中所有与标签匹配约束有替换关系的约束条件;将标签匹配约束的依赖约束加入该约束集合,并重置顺序更新约束。
更进一步,重置顺序更新约束过程中,若顺序更新约束中所涉及的节点r在所加标签匹配约束中需要执行规则复制匹配,则对该节点r顺序更新约束进行重置,使得重置后的顺序更新约束中,原先在节点r之前更新的节点x,在该节点r的关键前置节点z更新或启用最终规则标签之前更新。
上述的,获取执行复制匹配操作节点数目进行数据流拼接中,若节点数目超过一个,则尝试用源路由机制拼接数据流的最终路径,更新数据流路径段拼接序列。
优选的,更新数据流路径段拼接序列中,从现有路径段中寻找所有可能用以拼接数据流最终路径的路径段,形成候选拼接段集合C,假设数据流最终路径的跳数为L,从2到L,依次遍历数值取段标识符序列的长度上界,建立用以寻找段标识符最短序列拼接集的整数线性规划模型,求解该整数线性规划模型,若模型有解,则得到源路由机制更新操作序列;若模型无解,则证明该流不可拼接,则将段标识符序列的长度上界加1,重新建立整数线性规划模型并求解,直到模型有解或者长度上界超过L,若最终求解仍然无解,则以原更新操作序列更新该数据流。
更进一步,整数线性规划模型优化目标是让布尔变量metric取得最大值,该变量代表流f是否可拼接,整数线性规划模型表示为:
Maximize:metric (1)
Subject to:
其中,布尔变量代表拼接段segx,y是否被用于拼接流f的最终路径,布尔变量代表流f最终路径中的任意边e是否在拼接段segx,y中,式2约束拼接路径中必须含有最终路径中的所有边,Lf与代表流f最终路径的跳数与拼接成的流路径的跳数,式3保证拼接路径与流最终路径的长度相同,式4中设定被选取的拼接段数目必须小于等于拼接段数目上界h。
一种软件定义网络中数据流路径更新装置,包含:特征提取模块、模型建立模块、模型求解模块、约束置换模块和数据流拼接模块,其中,
特征提取模块,用于提取更新过程中一致性约束特征,确定约束逻辑关系;
模型建立模块,用于依据一致性约束特征及约束逻辑关系,并根据初始网络配置与最终网络配置,建立线性规划模型;
模型求解模块,用于对建立的线性规划模型进行求解,并将求解结果相应反馈给约束置换模块或数据流拼接模块;
约束置换模块,用于针对模型求解结果中无解情形,返回特征提取模块,对约束逻辑关系进行约束置换,并反馈给模型建立模块重新建立线性规划模型;
数据流拼接模块,用于针对模型求解结果中有解情形,计算执行复制匹配操作节点数目并进行数据流拼接。
上述的装置中,所述特征提取模块包含:约束子模块和逻辑子模块,其中,
约束子模块,用于在提取更新过程一致性约束特征中,通过更新顺序约束和标签匹配约束将更新过程的一致性特征抽象为系列约束,该系列约束包含无环路约束、无黑洞约束、标签匹配约束和路径正确性约束;
逻辑子模块,用于在提取更新过程一致性约束特征中,确定约束间的逻辑关系,该逻辑关系包含置换关系及依赖关系。
本发明的有益效果:
本发明协同利用源路由与一致性约束提取与置换,通过约束提取与建模、约束置换与模型求解、操作序列校验与源路由拼接,可以在保证一致性特征的前提下,大幅度削减更新过程的TCAM冗余资源开销,对软件定义网络技术发展领域具有重要的指导意义。
附图说明:
图1为软件定义网络更新场景示意图;
图2为实施例中数据流路径更新方法流程示意图;
图3为实施例中软件定义网络中再一个更新流程示意图;
图4为实施例中更新场景中具体更新流程与更新序列示意图;
图5为实施例中源路由在网络更新中的应用示意图;
图6为实施例中更新装置示意图;
图7为实施例中特征提取模块示意图。
具体实施方式:
为使本发明的目的、技术方案和优点更加清楚、明白,下面结合附图和技术方案对本发明作进一步详细的说明。
针对目前软件定义网络规则更新中TCAM资源开销等问题,本发明实施例中,参见图2所示,提供一种软件定义网络中数据流路径更新方法,包含如下内容:
S101、提取更新过程中一致性约束特征,确定约束逻辑关系,并根据初始网络配置与最终网络配置,建立线性规划模型;
S102、求解线性规划模型,若模型无解,则返回约束逻辑关系确定过程对约束逻辑关系进行约束置换,重新建立线性规划模型;若模型有解,则获取执行复制匹配操作节点数目进行数据流拼接。
提取更新过程一致性约束特征中,本发明再一个实施例中,首先,通过更新顺序约束和标签匹配约束将更新过程的一致性特征抽象为系列约束,该系列约束包含无环路约束、无黑洞约束、标签匹配约束和路径正确性约束;然后,确定约束间的逻辑关系,该逻辑关系包含置换关系及依赖关系。
将一致性特征抽象为一系列约束,并根据初始网络配置与最终网络配置,将一致性特征的维护转化为一个线性规划模型此外,约束的实现可通过基于ordered scheduling机制的更新顺序约束与基于two-phase commit机制的加标签与复制匹配操作来实现,即标签匹配约束。为了方便说明,记T(a,d)为节点a中到目的节点d规则的更新时刻,其值越大代表节点规则更新时间越晚;记P(b,d,t)为节点b到节点d在时刻t时刻的路径,特别地,初始路径记为P(b,d,0),最终路径记为P(b,d,f)。更新过程的可进行操作为:1.通过SDN机制安装或者删除FIB表中的路由规则sub(x,f)。2.节点给数据包添加匹配标签,add_tag(x,f,θ)。3.同时维护初始与最终两种转发规则并对标签进行匹配转发这些操作都可以针对特定目的节点。以上标记中,x为节点,f为数据流,θ为所加标签,代表无标签。对于数据流路径<s…k…n…d>,定义节点n的关键前置节点中为n的所有前置节点中所有满足性质1与2的节点:(1).节点的更新与否可以中断初始路径或者最终路径的转发;(2).到n路径中如果存在中间节点,则所有中间节点在初始状态与最终状态的下一跳节点相同。如图1中的更新场景所示,在初始网络配置下,节点u与节点z都满足节点v的关键前置节点的性质1,但因为节点u不满足性质2,所以v的关键前置节点为节点z,将关键前置节点集合标记为KN(n,f,θ),其中n为所求节点,f为特定数据流,θ表示网络状态,即初始状态或者最终状态。约束提取与建模过程所采用的约束为:
1)无黑洞约束:对于数据流f,网络配置{Gi,Gf},某节点a在网络初始状态或最终状态中的某一配置S中有到目的节点d的规则,但在另一配置中{Gi,Gf}/S没有到目的节点的规则,对于任意p∈KN(a,f,S),节点a的更新必须遵守以下约束:1.T(a,d)>T(p,d),S代表初始配置;2.T(a,f)<T(p,f),S代表最终配置。
2)无环路约束:对于初始配置Gi与最终配置Gf,算法可以枚举得到Gi∪Gf中数据流f的所有环路。环路L中的节点根据其下一跳节点是初始路径还是最终路径可以分为两类Linit与Lfin,保证更新过程无环有两种约束:
1.集合Linit中的节点必须要在Lfin中的节点之前更新
2.将Linit∪Lfin中所有节点都执行复制匹配操作,且在关键前置节点加标签
显然,约束1为更新顺序约束,而约束2为标签-匹配约束。
3)标签匹配约束:如集合a中节点需要复制匹配,则对于任意待更新节点x且都有T(x,d)>T(a,d),而a中节点的更新可在同一步中完成。
4)路径正确性约束:a)、最终路径中,待更新节点a的下一跳节点b有到目的节点的路由,且P(b,d,0)≠P(b,d,f),则a必须后于b更新,如果a先于b更新,则会造成路径不一致,所以必须有T(a)>T(b)。b)、最终路径中,待更新节点a的下一跳节点b有到目的节点的路由,且P(b,d,0)=P(b,d,f),或a的下一跳节点为目的节点d则a在初始路径中的所有关键前置节点x必须先于a更新,否则会造成路径不一致,所以必须有T(a)>T(x)。同样的,路径一致性也可以由two-phase commit机制保证。
对模型约束进行置换的前提是明确约束之间的逻辑关系,约束之间关系可以归置为依赖关系与替换关系:(1)替换关系,对于同样可以限制同一异常的约束,其关系称之为替换关系。例如,对于图1中的环路<v,z>,基于顺序更新机制的约束与基于two-phasecommit机制的约束,都可以限制环路的产生,所以这两者互为替换关系。实际上,本发明实施例中会存储无环、无黑洞、路径一致等所有一致性特征产生的约束条件的替换条件,用于约束置换。(2)依赖关系,约束依赖关系是针对标签-匹配约束创建的,目的是为了防止节点所加标签在到达匹配节点完成匹配动作前标签被重写或者移除。为了避免标签被恶意重写,将原标签-匹配约束与标签-匹配过程中所涉及的可以更改标签的节点之间建立约束依赖关系,即当一个加标签的数据流在到达匹配节点之前经过一个有能力更改标签的节点a时,算法所建立的约束依赖关系使得节点a仅进行转发动作而不会对标签进行更改。
约束替换过程中,本发明另一个实施例中,对于限制同一异常的约束,利用标签匹配约束进行顺序更新约束的单向置换,保证其余约束逻辑语义不变,寻找模型的可解约束集合。优选的,利用标签匹配约束进行顺序更新约束的单向置换,包含如下内容:移除约束集合中所有与标签匹配约束有替换关系的约束条件;将标签匹配约束的依赖约束加入该约束集合,并重置顺序更新约束。更进一步,重置顺序更新约束过程中,若顺序更新约束中所涉及的节点r在所加标签匹配约束中需要执行规则复制匹配,则对该节点r顺序更新约束进行重置,使得重置后的顺序更新约束中,原先在节点r之前更新的节点x,在该节点r的关键前置节点z更新或启用最终规则标签之前更新。
参见图3所示,若初始模型无解,在明确约束间关系后,对于限制同一异常的约束可以进行置换,以重新建模求解。对于约束间置换,用标签-匹配约束置换顺序更新约束,即置换是单向。这意味着,顺序更新一旦被置换,便永远不会被再次激活,保证收敛性,即极端情况下,激活的约束条件中不存在顺序更新约束,使方案蜕化为two-phase commit机制。通过约束置换来快速寻找可解的约束集合。约束置换环节便是找到一个约束对(R,M),其中R为无解约束模型中的约束条件,而M为标签-匹配约束,用以替换R,一般来讲,M的选取为R的替换条件中所需依赖关系最少的,出于优化角度,也可以回溯法遍历所有置换方式来寻找最优解。在进行约束置换时,会维护原约束的逻辑语义不变。因为在进行条件置换时不仅仅是将被置换约束用标签-匹配约束进行替换,还会对活跃的约束集中其他的约束条件产生影响,所以,约束置换由多个步骤组成。而这些步骤的基本原则为在完成约束置换的基础上,保证其余约束的逻辑语义不变。置换过程的流程可以抽象为:1)移除活跃约束集合中所有与M为替换关系的约束条件。因为这些约束所限制的异常将会被新加的标签-匹配约束所限制。2)将约束M的依赖约束加入活跃约束集合,同样的,这意味着移除与M的依赖规则为置换关系的其余更新约束。3)将重置某些顺序更新约束。如果顺序更新约束中所涉及的节点r在所加标签-匹配约束中需要执行规则复制匹配,则需要对该节点顺序更新约束进行重置。确切的讲,如果节点r在所加标签-匹配约束中需要执行复制匹配操作,则对于约束T(x,d)<T(r,f),会被重置为一系列约束T(x,d)<T(z,f)。其中,z属于r的关键前置节点。这种重置操作可以维护原本约束的语义。原约束要求节点x在节点r之前更新,而在标签-匹配约束添加之后,节点r采取初始路径还是最终路径取决于数据流标签,而修改后的顺序更新约束要求节点x在节点r的关键前置节点更新或启用最终规则标签之前更新,而节点r的关键前置节点更新并启用最终规则标签会直接致使节点r启用最终规则,所以改写后的约束维护原约束的逻辑语义。类似地,T(x,d)>T(r,d)类型的约束也会被采用同样的原理改写。
本发明再一个实施例中,获取执行复制匹配操作节点数目进行数据流拼接中,若节点数目超过一个,则尝试用源路由机制拼接数据流的最终路径,更新数据流路径段拼接序列。优选的,更新数据流路径段拼接序列中,从现有路径段中寻找所有可能用以拼接数据流最终路径的路径段,形成候选拼接段集合C,假设数据流最终路径的跳数为L,从2到L,依次遍历数值取段标识符序列的长度上界,建立用以寻找段标识符最短序列拼接集的整数线性规划模型,求解该整数线性规划模型,若模型有解,则得到源路由机制更新操作序列;若模型无解,则证明该流不可拼接,则将段标识符序列的长度上界加1,重新建立整数线性规划模型并求解,直到模型有解或者长度上界超过L,若最终求解仍然无解,则以原更新操作序列更新该数据流。更进一步,整数线性规划模型优化目标是让布尔变量metric取得最大值,该变量代表流f是否可拼接,整数线性规划模型表示为:
Maximize:metric (1)
Subject to:
其中,布尔变量代表拼接段segx,y是否被用于拼接流f的最终路径,布尔变量代表流f最终路径中的任意边e是否在拼接段segx,y中,式2约束拼接路径中必须含有最终路径中的所有边,Lf与代表流f最终路径的跳数与拼接成的流路径的跳数,式3保证拼接路径与流最终路径的长度相同,式4中设定被选取的拼接段数目必须小于等于拼接段数目上界h。若所建整数线性规划模型有解,则返回拼接路径段集合后,求取相应的段标识符序列,在入口节点加装段标识符序列后,随着逐跳弹出段标识符,数据包可以立即沿着最终路径转发。待新路径规则加装完毕后,可拆除段标识符加装规则,停用源路由机制,启用新路径规则。而若所建模型无解,则将段标识符序列上界加1,重新建模求解,直到模型有解或者上界值h超过最终路径跳数L,即数据流不可拼接。若数据流不可拼接,则以原更新操作序列更新该流。
下面结合附图对本发明做详细说明,为完成图1中的更新案例,需要进行约束提取与建模、约束置换与模型求解、更新序列校验与源路由拼接三个过程。
1.约束提取与建模
表1初始约束模型
具体而言:Tu代表更新节点u到d路由条目的时刻,而match代表节点执行复制匹配操作。为了避免环路<v,z>的出现,根据无环路约束的内容,可提取更新顺序约束T(v,d)>T(z,d),以及三种标签-匹配约束,可作为更新顺序约束的置换约束。同样地,由路径一致性约束1的内容可知,因最终配置中,节点u的下一跳节点v有到目的节点的规则,且初始规则与最终规则不同,所以节点u必须晚于节点v更新,即T(u,d)>T(v,d)。类似地,该更新一致性也可由标签-匹配操作来保证,即在节点v同时维护初始与最终规则,节点u加标签来决定所采取的规则。最后,因最终配置中,节点z的下一跳节点为目的节点,有路径一致性约束2可知,其必须后与其在初始配置中的关键前置节点更新,所以有,T(z,d)>T(u,d)。而该一致性特征同样可以由标签-匹配约束实现。由以上三个约束,可以建立线性规划模型,但显然由于所提取的顺序更新约束无法同时满足,建立的LP模型无解,单一的顺序更新约束无法更新网络。
2.约束置换与模型求解
表2约束置换模型
为了求解操作顺序,需要用标签-匹配约束置换其替换关系的顺序更新约束。这里我们以标签-匹配约束add_tag(z),match(v)替换顺序更新约束T(v,d)>T(z,d)。即首先将约束T(v,d)>T(z,d)移除活跃约束集合,同时将也约束T(u,d)>T(v,d)移除,因为其与match(v)也是替换关系。随后将标签-匹配约束加入活跃约束集合,值得注意的是,因所加约束没有依赖关系的约束并且执行复制复制匹配的节点v在活跃约束集合中已经没有与之相关的顺序更新约束,所以没有其余规则需要增加,也没有规则需要重置。故置换后约束如表2所示。因为标签-匹配约束需成立,所以所建LP模型有约束Tv>Tu,Tz,此时,进行置换后的LP模型有解,求解模型可以得到<u,v,z>三个节点的更新顺序,结合标签-匹配操作,可以得到图4所示的更新操作顺序,网络可以被一致性更新。并且,对于图1中的更新场景,所求操作序列仅在节点v中引入多余的TCAM条目,不需要尝试采用源路由机制来拼接网络。所求操作序列比two-phase commit机制节省了三分二的TCAM冗余。
3.源路由机制拼接数据流最终路径的应用案例
源路由机制应用于网络更新实质上是充分利用现有的路径规则来拼接成最终路径规则,然而这样做的前提是,新路径是可以用现有路径规则拼接成,即数据流可拼接。如果新路径含有当前流表中不包含的新规则,则分段路由无法完成更新,因该流不可拼接。对于可拼接的流,因现有路径在FIB表中有对应的规则,可以简单地利用节点的IP地址作为段标识符来直接匹配相应的转发规则来完成数据包的转发。并且在本发明实施例中,段标识符由所选取拼接段(最后一段除外)的最后一个节点的IP地址构成,如图5中的流fu,d的更新可以选取拼接段集合<uvzw,wd>,则在入口节点处为数据流包头添加的段标识符为<w>,而带段标识符的数据包的处理过程在图5中展示的非常清楚,节点u将数据包通过端口1转发到节点v,因节点u通过段标识符得知数据包目的节点为w而查FIB后得知到节点w的数据包的转发端口为1。类似地,数据包到达节点v后通过端口2转发到节点z,节点z查表转发数据包到节点w,而在节点w,节点检测到段标识符的目的地址就是自己后,将段标识符出栈。随后检测到数据包的实际目的地址为d,通过路径<w d>将数据包转发到目的节点d。总体来说,分段路由使能的数据包更新过程是一个段标识符不断匹配转发出栈的过程,并使得数据包可以立即沿着新路径传播。源路由机制仅在入口节点处引入了额外的TCAM开销,所以当执行复制匹配操作的节点超过一个时,可以尝试用源路由拼接数据流,从而尝试进一步削减TCAM冗余。
基于上述的更新方法,本发明实施例还提供一种软件定义网络中数据流路径更新装置,参见图6所示,包含:特征提取模块101、模型建立模块102、模型求解模块103、约束置换模块104和数据流拼接模块105,其中,
特征提取模块101,用于提取更新过程中一致性约束特征,确定约束逻辑关系;
模型建立模块102,用于依据一致性约束特征及约束逻辑关系,并根据初始网络配置与最终网络配置,建立线性规划模型;
模型求解模块103,用于对建立的线性规划模型进行求解,并将求解结果相应反馈给约束置换模块或数据流拼接模块;
约束置换模块104,用于针对模型求解结果中无解情形,返回特征提取模块,对约束逻辑关系进行约束置换,并反馈给模型建立模块重新建立线性规划模型;
数据流拼接模块105,用于针对模型求解结果中有解情形,计算执行复制匹配操作节点数目并进行数据流拼接。
上述的装置中,参见图7所示,所述特征提取模块101包含:约束子模块1001和逻辑子模块1002,其中,
约束子模块1001,用于在提取更新过程一致性约束特征中,通过更新顺序约束和标签匹配约束将更新过程的一致性特征抽象为系列约束,该系列约束包含无环路约束、无黑洞约束、标签匹配约束和路径正确性约束;
逻辑子模块1002,用于在提取更新过程一致性约束特征中,确定约束间的逻辑关系,该逻辑关系包含置换关系及依赖关系。
本发明实施例中,将更新过程需要维护的一致性特征如:无环、无黑洞、路径一致性等特征抽象为一系列约束,并建立一致性约束模型,并分析约束之间的逻辑关系,在此基础上,若一致性模型无解,则以维护置换关系标签-匹配约束取代模型中对应的更新顺序约束,重新建模求解,直到模型有解,求得数据流更新的操作顺序。随后,若所得更新操作序列中需要执行复制匹配操作的节点数目超过一个,则尝试使用源路由机制以现有的路径段拼接数据流的最终路径,若数据流可拼接,则用源路由更新序列更新数据流,如若数据流不可拼接,则以原更新操作序列更新数据流;可以在保证规则一致性更新的基础上,有效削减更新过程的三态内容寻址存储器(Ternary Content Addressable Memory,TCAM)的冗余开销。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。
基于上述的方法,本发明实施例还提供一种服务器,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述的方法。
基于上述的方法,本发明实施例还提供一种计算机可读介质,其上存储有计算机程序,其中,该程序被处理器执行时实现上述的方法。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种软件定义网络中数据流路径更新方法,其特征在于,包含如下内容:
提取更新过程中一致性约束特征,确定约束逻辑关系,并根据初始网络配置与最终网络配置,建立线性规划模型;
求解线性规划模型,若模型无解,则返回约束逻辑关系确定过程对约束逻辑关系进行约束置换,重新建立线性规划模型;若模型有解,则获取执行复制匹配操作节点数目进行数据流拼接。
2.根据权利要求1所述的软件定义网络中数据流路径更新方法,其特征在于,提取更新过程一致性约束特征中,首先,通过更新顺序约束和标签匹配约束将更新过程的一致性特征抽象为系列约束,该系列约束包含无环路约束、无黑洞约束、标签匹配约束和路径正确性约束;然后,确定约束间的逻辑关系,该逻辑关系包含置换关系及依赖关系。
3.根据权利要求1所述的软件定义网络中数据流路径更新方法,其特征在于,约束替换过程中,对于限制同一异常的约束,利用标签匹配约束进行顺序更新约束的单向置换,保证其余约束逻辑语义不变,寻找模型的可解约束集合。
4.根据权利要求3所述的软件定义网络中数据流路径更新方法,其特征在于,利用标签匹配约束进行顺序更新约束的单向置换,包含如下内容:
移除约束集合中所有与标签匹配约束有替换关系的约束条件;将标签匹配约束的依赖约束加入该约束集合,并重置顺序更新约束。
5.根据权利要求4所述的软件定义网络中数据流路径更新方法,其特征在于,重置顺序更新约束过程中,若顺序更新约束中所涉及的节点r在所加标签匹配约束中需要执行规则复制匹配,则对该节点r顺序更新约束进行重置,使得重置后的顺序更新约束中,原先在节点r之前更新的节点x,在该节点r的关键前置节点z更新或启用最终规则标签之前更新。
6.根据权利要求1所述的软件定义网络中数据流路径更新方法,其特征在于,获取执行复制匹配操作节点数目进行数据流拼接中,若节点数目超过一个,则尝试用源路由机制拼接数据流的最终路径,更新数据流路径段拼接序列。
7.根据权利要求6所述的软件定义网络中数据流路径更新方法,其特征在于,更新数据流路径段拼接序列中,从现有路径段中寻找所有可能用以拼接数据流最终路径的路径段,形成候选拼接段集合C,假设数据流最终路径的跳数为L,从2到L,依次遍历数值取段标识符序列的长度上界,建立用以寻找段标识符最短序列拼接集的整数线性规划模型,求解该整数线性规划模型,若模型有解,则得到源路由机制更新操作序列;若模型无解,则证明该流不可拼接,则将段标识符序列的长度上界加1,重新建立整数线性规划模型并求解,直到模型有解或者长度上界超过L,若最终求解仍然无解,则以原更新操作序列更新该数据流。
8.根据权利要求7所述的软件定义网络中数据流路径更新方法,其特征在于,整数线性规划模型优化目标是让布尔变量metric取得最大值,该变量代表流f是否可拼接,整数线性规划模型表示为:
Maximize:metric(1)
Subject to:
其中,布尔变量代表拼接段segx,y是否被用于拼接流f的最终路径,布尔变量ae x,y代表流f最终路径中的任意边e是否在拼接段segx,y中,式2约束拼接路径中必须含有最终路径中的所有边,Lf与代表流f最终路径的跳数与拼接成的流路径的跳数,式3保证拼接路径与流最终路径的长度相同,式4中设定被选取的拼接段数目必须小于等于拼接段数目上界h。
9.一种软件定义网络中数据流路径更新装置,其特征在于,包含:特征提取模块、模型建立模块、模型求解模块、约束置换模块和数据流拼接模块,其中,
特征提取模块,用于提取更新过程中一致性约束特征,确定约束逻辑关系;
模型建立模块,用于依据一致性约束特征及约束逻辑关系,并根据初始网络配置与最终网络配置,建立线性规划模型;
模型求解模块,用于对建立的线性规划模型进行求解,并将求解结果相应反馈给约束置换模块或数据流拼接模块;
约束置换模块,用于针对模型求解结果中无解情形,返回特征提取模块,对约束逻辑关系进行约束置换,并反馈给模型建立模块重新建立线性规划模型;
数据流拼接模块,用于针对模型求解结果中有解情形,计算执行复制匹配操作节点数目并进行数据流拼接。
10.根据权利要求9所述的软件定义网络中数据流路径更新装置,其特征在于,所述特征提取模块包含:约束子模块和逻辑子模块,其中,
约束子模块,用于在提取更新过程一致性约束特征中,通过更新顺序约束和标签匹配约束将更新过程的一致性特征抽象为系列约束,该系列约束包含无环路约束、无黑洞约束、标签匹配约束和路径正确性约束;
逻辑子模块,用于在提取更新过程一致性约束特征中,确定约束间的逻辑关系,该逻辑关系包含置换关系及依赖关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811520036.7A CN109818864B (zh) | 2018-12-12 | 2018-12-12 | 软件定义网络中数据流路径更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811520036.7A CN109818864B (zh) | 2018-12-12 | 2018-12-12 | 软件定义网络中数据流路径更新方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109818864A true CN109818864A (zh) | 2019-05-28 |
CN109818864B CN109818864B (zh) | 2021-02-23 |
Family
ID=66601596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811520036.7A Active CN109818864B (zh) | 2018-12-12 | 2018-12-12 | 软件定义网络中数据流路径更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109818864B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102946365A (zh) * | 2012-11-09 | 2013-02-27 | 清华大学 | 一种基于软件定义网络的保持流表更新一致性的方法 |
CN104202183A (zh) * | 2014-08-21 | 2014-12-10 | 清华大学深圳研究生院 | 一种解决sdn流级别配置一致性更新的方法和装置 |
WO2015027513A1 (zh) * | 2013-09-02 | 2015-03-05 | 运软网络科技(上海)有限公司 | 交付点跨域迁移系统 |
CN104980431A (zh) * | 2015-05-14 | 2015-10-14 | 南京大学 | 一种sdn中实现流有序的一致性更新方法 |
KR101658824B1 (ko) * | 2015-04-15 | 2016-09-22 | 아토리서치(주) | 소프트웨어 정의 네트워크에서 플로우 룰을 변경하는 방법, 장치 및 컴퓨터 프로그램 |
CN106817741A (zh) * | 2017-03-09 | 2017-06-09 | 中山大学 | 一种软件定义车载网络转发策略的一致性更新方法 |
CN107995118A (zh) * | 2018-01-18 | 2018-05-04 | 电子科技大学 | 一种保证一般一致性的软件定义数据中心网络更新方法 |
CN108075982A (zh) * | 2017-12-14 | 2018-05-25 | 中国科学技术大学苏州研究院 | 软件定义网络中实时的路由更新方法 |
-
2018
- 2018-12-12 CN CN201811520036.7A patent/CN109818864B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102946365A (zh) * | 2012-11-09 | 2013-02-27 | 清华大学 | 一种基于软件定义网络的保持流表更新一致性的方法 |
WO2015027513A1 (zh) * | 2013-09-02 | 2015-03-05 | 运软网络科技(上海)有限公司 | 交付点跨域迁移系统 |
CN104202183A (zh) * | 2014-08-21 | 2014-12-10 | 清华大学深圳研究生院 | 一种解决sdn流级别配置一致性更新的方法和装置 |
KR101658824B1 (ko) * | 2015-04-15 | 2016-09-22 | 아토리서치(주) | 소프트웨어 정의 네트워크에서 플로우 룰을 변경하는 방법, 장치 및 컴퓨터 프로그램 |
CN104980431A (zh) * | 2015-05-14 | 2015-10-14 | 南京大学 | 一种sdn中实现流有序的一致性更新方法 |
CN106817741A (zh) * | 2017-03-09 | 2017-06-09 | 中山大学 | 一种软件定义车载网络转发策略的一致性更新方法 |
CN108075982A (zh) * | 2017-12-14 | 2018-05-25 | 中国科学技术大学苏州研究院 | 软件定义网络中实时的路由更新方法 |
CN107995118A (zh) * | 2018-01-18 | 2018-05-04 | 电子科技大学 | 一种保证一般一致性的软件定义数据中心网络更新方法 |
Non-Patent Citations (2)
Title |
---|
STEFANO VISSICCHIO等: ""Safe Update of Hybrid SDN Networks"", 《IEEE/ACM TRANSACTIONS ON NETWORKING》 * |
于倡和等: ""软件定义网络一致性协同更新算法"", 《电子学报》 * |
Also Published As
Publication number | Publication date |
---|---|
CN109818864B (zh) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Naldi et al. | Dynamically consistent reduction of logical regulatory graphs | |
CN106464530B (zh) | 网络更新的动态调度的方法和系统 | |
CN112470431B (zh) | 使用自动布尔学习的网络的模型的合成 | |
US9286032B2 (en) | Automated software composition | |
Janssens et al. | On sequential and parallel node-rewriting graph grammars | |
US20160292581A1 (en) | Minimized processing of streaming changes into a semantic reasoner | |
WO2018075983A1 (en) | Systems and methods for scalable network modeling | |
Gao et al. | Trident: toward a unified sdn programming framework with automatic updates | |
BR102018004797A2 (pt) | Método implantado por processador para mapear bancos de dados heterogêneos, sistema de mapeamento de dados e um ou mais meios de armazenamento de informações legíveis por máquina não transitórios | |
Guo et al. | Flash: fast, consistent data plane verification for large-scale network settings | |
EP3896908B1 (en) | Event stream processing system, event stream processing method, event stream processing program | |
Henderson et al. | Actor-like cP systems | |
CN109818864A (zh) | 软件定义网络中数据流路径更新方法及装置 | |
US10547565B2 (en) | Automatic determination and just-in-time acquisition of data for semantic reasoning | |
Filou et al. | Towards proved distributed algorithms through refinement, composition and local computations | |
Glover et al. | Basis exchange characterizations for the simplex SON algorithm for LP/embedded networks | |
Lamperti et al. | Diagnosis of complex active systems with uncertain temporal observations | |
Belocchi et al. | Paxos in the NIC: Hardware acceleration of distributed consensus protocols | |
Chen et al. | CompRess: Composing overlay service resources for end‐to‐end network slices using semantic user intents | |
de Silva | HTN acting: A formalism and an algorithm | |
Voellmy | Programmable and scalable software-defined networking controllers | |
Tung | Pregel meets UnCAL: A systematic framework for transforming big graphs | |
CN116187458B (zh) | 量子电路处理方法、装置及电子设备 | |
Liu | Efficient and safe migration of network functions using software-defined networking | |
Delzanno et al. | Specification and validation of link reversal routing via graph transformations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |