软件定义网络、缓存与计算:原理、模型与资源分配
在当今数字化时代,网络技术的发展日新月异,软件定义网络、缓存与计算(SD - NCC)作为一种新兴的网络架构,正逐渐成为研究和应用的热点。本文将深入探讨SD - NCC的相关内容,包括其控制平面、管理平面、工作流程、系统模型以及资源分配问题。
1. SD - NCC的控制平面与管理平面
SD - NCC的控制平面具有重要作用,它能够以更细粒度考虑不同服务的策略。控制器通过南向API定义流表管道来安装控制命令,每个流表项包含匹配规则、匹配数据包执行的动作以及记录匹配数据包统计信息的计数器。新的匹配规则字段包括数据包类型、名称前缀和服务名称。基于这些字段,可定义转发、缓存和计算行为。当新到达的数据包找不到匹配规则时,将采用默认规则,即发送到本地处理管道。控制平面新增的缓存和计算管理功能,可减少冗余流量,提高物理资源利用率,同时还维持着网络状态、拓扑信息、设备发现和配置分发等通用功能。
管理平面运行在控制平面之上,用于定义网络策略。它包含一组利用北向API实现网络操作和控制的软件应用。基于网络信息输入,有流量工程、网络虚拟化、测量和监控以及移动性等多种网络应用。结合用户需求和缓存/计算能力分布的额外信息,管理平面还能支持大数据分析、内容分发和分布式计算等应用。
-
大数据分析
:在大数据时代,不同来源的数据量呈指数级增长。将大量数据传输到远程数据中心进行处理可能既不可行也不经济。SD - NCC的管理平面借助网络内计算能力,可促进网络内大数据分析。
-
内容分发
:随着数字媒体、电子商务、社交网络和智能手机应用的发展,内容分发成为当前互联网的主要应用。主流内容提供商建立自己的内容分发网络(CDN)系统,但与CDN的边缘缓存技术不同,SD - NCC的网络内缓存能力和内容路由可编程控制,使管理平面能够定义合适的内容分发策略,实现数据的有效传输。
-
分布式计算
:计算密集型应用的大量涌现,对用户和企业设备的计算能力提出了挑战。虽然云计算系统可通过卸载技术解决部分问题,但可能无法为低延迟应用提供性能保证。SD - NCC的管理平面凭借可编程的网络和计算能力,可通过全局协调计算提供分布式计算服务。
2. SD - NCC的工作流程
SD - NCC的工作流程主要包括以下几个步骤:
1.
信息通告与注册
:数据平面设备(如交换机、路由器等)向控制器通告本地信息,包括缓存、计算能力和网络连接性。远程服务器(内容提供商或计算服务提供商)也向控制器注册。
2.
规则与策略安装
:控制器根据收集到的信息,在流表和数据平面设备的本地策略中安装静态规则。静态规则规定了每个匹配数据包的具体转发和处理行为,而网络、缓存和计算的本地策略则更具灵活性。
3.
内容请求处理
:内容的兴趣请求首次进入网络时,将直接转发到原始目标服务器。是否缓存内容由预设规则或本地策略决定。若控制器决定新缓存的内容需要向其注册,后续请求将通过新增规则转发到更近的缓存节点。
4.
计算服务请求处理
:若控制器或本地策略决定,计算服务的兴趣请求将在具有计算能力的中间设备上处理。
5.
未匹配请求处理
:若传入的兴趣请求找不到匹配规则和FIB条目,设备将封装并转发该请求到控制器,等待相应规则。规则创建后,该兴趣数据包将转发到能满足请求的设备。
以下是SD - NCC工作流程的mermaid流程图:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(数据平面设备通告信息):::process --> B(远程服务器注册):::process
B --> C(控制器安装规则和策略):::process
C --> D(内容请求首次进入网络):::process
D --> E{是否缓存内容}:::process
E -- 是 --> F(注册新缓存内容):::process
F --> G(后续请求转发到缓存节点):::process
E -- 否 --> H(请求到原始服务器):::process
C --> I(计算服务请求):::process
I --> J{是否在中间设备处理}:::process
J -- 是 --> K(中间设备处理请求):::process
J -- 否 --> L(请求到目标服务器):::process
D --> M{是否找到匹配规则}:::process
M -- 否 --> N(封装转发到控制器):::process
N --> O(等待规则创建):::process
O --> P(请求转发到满足设备):::process
3. SD - NCC的系统模型
SD - NCC的系统模型包括网络模型、缓存/计算模型、服务器选择模型、路由模型和能量模型。
|模型名称|描述|相关参数|
| ---- | ---- | ---- |
|网络模型|用图G = {V, E}表示网络,V为节点集,E为有向物理链路集。节点可以是路由器、用户或服务器。|S(网络内服务器节点集)、o(虚拟源节点)、U(用户集)、K(服务元素集)、M(用户需求矩阵)、(λA
k1
, oA
k1
)(内容属性)、(λA
k2
, oB
k2
, cB
k2
)(计算属性)|
|缓存/计算模型|用H表示缓存/计算策略矩阵,hk
i
表示服务器i是否能提供服务k。缓存和计算容量有相应约束。|cA
i
(缓存容量)、cB
i
(计算容量)|
|服务器选择模型|用P表示服务器选择矩阵,ρk
i,u
表示用户u的服务请求k由服务器i服务的比例。结合缓存/计算策略,可得到流量分配矩阵X。|X(流量分配矩阵)|
|路由模型|用R表示路由矩阵,ri,u
l
表示用户u到服务器i的流量经过链路l的比例。路由选择策略需满足流量守恒和链路容量约束。|cl(链路容量)|
|能量模型|能量主要消耗在内容缓存、数据计算和流量传输上,分别有相应的能量模型。|EA
ca
(缓存能量)、EB
active
(计算动态能量)、EB
static
(计算静态能量)、Etr(传输能量)|
4. 缓存/计算/带宽资源分配
在资源分配方面,考虑联合缓存、计算和带宽资源分配问题,将其表述为联合缓存/计算策略和服务器选择问题(CCS - SS),这是一个混合整数非线性规划(MINLP)问题。通过放松缓存、计算和链路约束,重点关注每个服务元素的缓存/计算容量分配,将其表述为非线性规划(NLP)问题。
-
问题表述
-
目标函数
:选择平衡能量成本和网络使用成本的组合目标。成本函数包括缓存能量、计算能量、传输能量和网络流量,通过权重γ平衡两者成本。
-
约束条件
:包括用户需求由多个服务器同时满足、缓存/计算资源容量限制以及链路容量约束。
-
缓存/计算容量分配
:关注每个服务的最优缓存/计算容量分配,忽略整数约束。通过半解析方法得到平均跳数与服务器数量的幂律函数关系,进而得到网络流量和总能量消耗的表达式。通过拉格朗日对偶方法,可推导出最优的缓存副本数n∗
k1
和计算虚拟机副本数m∗
k2
。
-
穷举搜索算法
:CCS - SS问题可表示为在缓存、计算和链路约束下最小化f (H, P|M, R)。若缓存/计算策略矩阵B已知,问题将转化为在链路约束下最小化f (P|M, R, H)的线性问题。
综上所述,SD - NCC作为一种创新的网络架构,在网络性能优化和资源有效利用方面具有巨大潜力。通过深入研究其系统模型和资源分配问题,有望为未来网络的发展提供有力支持。
软件定义网络、缓存与计算:原理、模型与资源分配
5. 资源分配问题的具体分析与求解思路
在资源分配问题中,联合缓存、计算和带宽资源分配的 CCS - SS 问题虽然复杂,但通过以下详细分析可以更好地理解和求解。
5.1 目标函数的深入理解
目标函数的构建是为了平衡能量成本和网络使用成本。各项能量成本和网络流量的计算如下:
-
传输能量
:$fe,tr = \sum_{k\in K}\sum_{i\in S\cup{o}}\sum_{u\in U}a_{i,u}m_{k}^{u}\rho_{k}^{i,u}h_{k}^{i}$,其中$a_{i,u} = p_{tr,link}d_{i,u} + p_{tr,node}(d_{i,u} + 1)$,表示从服务器节点$i$到用户$u$传输每比特的能量,$d_{i,u}$是两者之间的跳数距离,$p_{tr,link}$和$p_{tr,node}$分别是链路和节点的能量效率参数。
-
缓存能量
:$fe,ca = \sum_{k1\in K_A}\sum_{i\in S_A}h_{k1}^{i}o_{A}^{k1}p_{A}^{ca}t$,$p_{A}^{ca}$是缓存的功率效率,$o_{A}^{k1}$是内容$k1$的大小。
-
计算能量
:$fe,com = \sum_{k2\in K_B}\sum_{i\in S_B}h_{k2}^{i}p_{B}^{static}t + \sum_{k2\in K_B}\lambda_{A}^{k2}c_{B}^{k2}p_{B}^{active}$,$p_{B}^{active}$和$p_{B}^{static}$分别是虚拟机在活动和静态状态下的平均功率效率。
-
网络流量
:$f_{tr} = \sum_{k\in K}\sum_{i\in S\cup{o}}\sum_{u\in U}D_{i,u}m_{k}^{u}\rho_{k}^{i,u}h_{k}^{i}$,$D_{i,u}$是服务器节点$i$和用户$u$之间的端到端延迟。
成本函数$f = fe,ca(h_{k}^{i}) + fe,com(h_{k}^{i}) + fe,tr(\rho_{k}^{i,u}h_{k}^{i}) + \gamma f_{tr}(\rho_{k}^{i,u}h_{k}^{i})$,通过权重$\gamma$平衡能量成本和网络使用成本。
5.2 约束条件的意义
- 用户需求满足约束 :$\sum_{i}\rho_{k}^{i,u}h_{k}^{i} = 1$,表示用户$u$对服务$k$的需求率可以由多个服务器同时满足,具体取决于缓存/计算策略和服务器选择策略。
- 缓存/计算资源容量限制 :$\sum_{k}h_{k}^{i}o_{A}^{k} \leq c_{A}^{i}$(对于缓存节点$i\in S_A$)和$\sum_{k}h_{k}^{i}c_{B}^{k} \leq c_{B}^{i}$(对于计算节点$i\in S_B$),确保服务器节点的缓存和计算资源不超过其容量。
- 链路容量约束 :$x_{l} = \sum_{k,i,u}m_{k}^{u}\rho_{k}^{i,u}h_{k}^{i}r_{i,u}^{l} \leq c_{l}$,保证链路的流量不超过其容量。
然而,由于目标函数和可行集因二进制变量$h_{k}^{i}$以及$h_{k}^{i}$和$\rho_{k}^{i,u}$的乘积关系而不凸,且问题规模大,求解该 MINLP 问题具有挑战性。
6. 缓存/计算容量分配的详细推导
在缓存/计算容量分配中,忽略服务器容量约束,重点关注每个服务的最优缓存/计算容量。
-
平均跳数与服务器数量的关系
:对于不规则和非对称网络,通过半解析方法得到平均跳数$d$与服务器数量$n$的幂律函数关系$d(n) = A(N/n)^{\alpha}$,其中$N$是网络节点总数。对于内容$k1$和计算$k2$,分别有$d_{A}^{k1} = A(N/n_{k1})^{\alpha}$和$d_{B}^{k2} = A(N/m_{k2})^{\alpha}$。
-
网络流量和总能量消耗的表达式
- 网络流量$T_{total} = \eta (\sum_{k1\in K_A}\lambda_{A}^{k1}o_{A}^{k1}d_{A}^{k1} + \sum_{k2\in K_B}\lambda_{B}^{k2}o_{B}^{k2}d_{B}^{k2})$,其中$\eta$是平均端到端延迟与平均跳数的比例因子。
- 总能量消耗$E_{total} = \sum_{k1\in K_A}(E_{A}^{ca,k1}(n_{k1}) + E_{A,k1}^{tr}(n_{k1})) + \sum_{k2\in K_B}(E_{B,k1}^{static}(m_{k2}) + E_{B,k2}^{active} + E_{B,k2}^{tr}(m_{k2}))$。
-
最优缓存/计算容量的推导
:通过拉格朗日对偶方法,可推导出最优的缓存副本数$n_{k1}^
= max[1, min[n_{o}^{k1}, N]]$和计算虚拟机副本数$m_{k2}^
= max[1, min[m_{o}^{k2}, N]]$,其中$n_{o}^{k1} = [\frac{A\lambda_{A}^{k1}\alpha (p_{tr,link} + p_{tr,node} + \gamma\eta)}{p_{A}^{ca}t}]^{\frac{1}{\alpha + 1}}N^{\frac{\alpha}{\alpha + 1}}$,$m_{o}^{k2} = [\frac{A\lambda_{A}^{k2}o_{B}^{k2}\alpha (p_{tr,link} + p_{tr,node} + \gamma\eta)}{p_{B}^{static}t}]^{\frac{1}{\alpha + 1}}N^{\frac{\alpha}{\alpha + 1}}$。
以下是缓存/计算容量分配的流程 mermaid 图:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(确定网络参数 N、α、A 等):::process --> B(获取服务请求信息 λ、o、c 等):::process
B --> C(计算 n_{o}^{k1} 和 m_{o}^{k2}):::process
C --> D(根据取值范围确定 n_{k1}^* 和 m_{k2}^*):::process
D --> E(完成缓存/计算容量分配):::process
7. 穷举搜索算法的应用与意义
穷举搜索算法在求解 CCS - SS 问题中具有重要意义。当缓存/计算策略矩阵$B$已知时,问题转化为在链路约束下最小化$f (P|M, R, H)$的线性问题,这使得问题的求解变得相对简单。虽然穷举搜索算法在问题规模较大时可能计算量较大,但它为找到最优的缓存/计算策略和服务器选择提供了一种可行的方法。
| 步骤 | 操作 |
|---|---|
| 1 | 确定缓存/计算策略矩阵$B$ |
| 2 | 在链路约束下,对服务器选择矩阵$P$进行穷举搜索 |
| 3 | 计算每个可能的$P$对应的目标函数值$f (P |
| 4 | 选择目标函数值最小的$P$作为最优服务器选择 |
8. 总结与展望
SD - NCC 架构通过其独特的控制平面、管理平面和工作流程,实现了网络功能的灵活配置和资源的有效利用。系统模型的建立为资源分配问题的研究提供了理论基础,而资源分配问题的求解方法为实际应用中的网络优化提供了指导。
尽管目前在求解 CCS - SS 问题上存在挑战,但通过对缓存/计算容量分配的研究和穷举搜索算法的应用,为解决资源分配问题提供了思路。未来,可以进一步研究更高效的算法来求解 MINLP 问题,同时结合实际网络场景,验证和优化 SD - NCC 架构的性能,以更好地满足不断增长的网络需求。
总之,SD - NCC 架构在未来网络发展中具有广阔的应用前景,有望为构建高效、智能的网络环境做出重要贡献。
超级会员免费看

被折叠的 条评论
为什么被折叠?



