20、软件定义网络、缓存与计算:原理、模型与资源分配

软件定义网络、缓存与计算:原理、模型与资源分配

在当今数字化时代,网络技术的发展日新月异,软件定义网络、缓存与计算(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 架构在未来网络发展中具有广阔的应用前景,有望为构建高效、智能的网络环境做出重要贡献。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值