一、小组成员组成和分工:
1、
2、
3、
二、论文简介
该论文2018年发表在了CCF-A的《IEEE/ACM TRANSACTIONS ON NETWORKING》上,写的很好。同时,我们小组三人都来自声学研究所网络新媒体实验室,进行SDN方面的研究,文章也很符合我们的方向,故和张老师申请了研读这篇文献。
论文的中文翻译可以是:SDN中默认路径流表和组表的联合优化。
主要思想是——针对软件定义网络(SDN)中流表和组表的限制问题,提出了联合优化的方法,以实现默认路径的最佳整体布局。因为在现有的商用交换机中,三元内容寻址存储器的成本和功耗较高,只能支持有限大小的流表和组表。为了解决SDN在大规模网络中的扩展性问题,文中提出了通过通配符交互转发规则来部署聚合默认路径的方法。通过对流表(flow table)和组表(group table)的联合优化,减少交换机中流表和组表的使用,提高网络的承载能力和性能。
三、名词解释和例子
3.1 流表(Flow Table)
流表(Flow Table)是SDN交换机内的一种数据结构,用于存储流条目(Flow Entry)。每个流条目定义了特定流量的匹配条件和相应的操作。流表中的条目决定了如何处理到达交换机的数据包,例如转发到特定的端口、修改数据包头部等。
匹配条件:源IP地址为10.0.0.1,目的IP地址为10.0.0.2
操作:转发到端口2
3.2 组表(Group Table)
组表(Group Table)是SDN交换机内的另一种数据结构,用于管理组操作。组操作用于将数据包从一个输入端口转发到多个输出端口,或者将数据包从多个输入端口聚合到一个输出端口。组表中的条目定义了组操作的行为,例如复制、聚合、分发数据包等。
组表可以匹配不止一条规则。
3.3 默认路径(Default Paths)
在SDN中,"default paths"(默认路径)是指在缺乏明确规则或匹配条件时所采用的预定义(pre-deployed)路径。当数据包到达SDN网络中的交换机或路由器时,如果没有特定的规则或匹配条件与之匹配,它将按照默认路径进行转发。
四、两个例子弄明白论文背景
例子一:流表组表的交互
我们可以通过一个例子说明了流表和组表之间的交互。如图所示,假设服务器u1需要将数据包转发到服务器u3。可以使用两种可行路径u1−v1−v3−v4−u3和u1−v1−v2−v4−u3。对于交换机 v1,有两个下一跳交换机 {v2, v3}。为了实现负载平衡,我们安装了一个流条目和一个组条目。
流表和组表如图所示。具体来说,来自u3的流量条目如下:Match字段为Dst = 3.0.0.1,指令字段为Group: 5566,即组条目的标识符。组条目中的动作桶(Action Bucket)包含两个桶(输出:2 和输出:3),这意味着匹配该组条目的数据包将被转发到端口 2 或端口 3(基于给定权重)。如果端口 2 和 3 的给定权重分别为 0.4 和 0.6、40% 和 60% 的匹配流量将分别转发到端口 2 和端口 3。
数据包处理过程如下:当交换机v1接收到目的地为u3的数据包,IP地址3.0.0.1,此交换机将先找到匹配的流条目。由于它的指令字段指向一个组条目 5566,交换机在组表中查找组标识符 5566 的条目。最后,这些数据包将由匹配的组条目中的动作桶处理,选择转发到交换机的2端口或者3端口。
例子二:默认路径
从Switch的v1到终端u2的预部署路径为v1→v3→u2。从u1到u2有两种可行路径,路径一为p1 = u1→v1→v3→u2和路径二p2 = u1→v1→v2→v3→u2。
那么怎么全局的,在每个交换机上部署流表和组表,然后保证以下三点呢?
1.形成到各个位置的默认路径
2.用到更少的流表和组表
3.实现更好的转发性能
基于上图和一些基本条件和定义,作者提出了RBDP算法解决这个问题。
四、RBDP(Rounding-Based Algorithm for DP-JFG)基于舍入的DP-JFG算法
4.1 算法介绍
基于舍入(Rounding)的DP-JFG算法,是一种用于解决DP-JFG问题的算法。
DP-JFG:Joint Optimization of Flow Table and Group Table for Default Paths in SDN,即文章名称的简写。
该算法
1、将DP-JFG问题转化为一个线性规划问题(就像我们考研的时候,用不等式方程去约束,然后求某个式子的最大值一样)
2、通过对线性规划问题进行舍入(因为流表和组表的条目不可能是分数,就像没有1.2个流表条目一样)来得到一个近似解。
具体来说,该算法将DP-JFG问题中的整数限制放宽,使得每个宏流的流量可以在任何交换机上任意分配,并且允许所需的组表项数量为分数。然后,该算法通过对线性规划问题进行舍入来得到一个整数解,该解可以用于设置流表和组表,以实现默认路径的最佳布局。RBDP算法具有较好的近似性能,并且在实际应用中具有较高的效率。
4.2 算法推导
4.2.1 文章的符号定义
4.2.2 将符号定义、链路情况、流表组表的条目大小,结合起来形成公式
4.2.3 粗略讲述算法的执行过程
4.2.4 根据舍入运算,形成了完善的RBDP(Rounding-Based Algorithm for DP-JFG)算法
五、性能对比
5.1 所比较的算法
RBDP:作者提出的算法
OSPF:开放最短路径协议
ECMP:(Equal-Cost Multipath)等价成本多路径协议
在大规模网络中,ECMP(Equal-Cost Multipath)是一种广泛使用的多路径路由协议,它通过使用组表来实现负载均衡,将流量均匀地分发到具有相同路径成本的路径上。
简单来说,ECMP协议允许网络中的流量通过多条具有相同开销(成本)的路径进行传输,并通过使用组表来决定将流量分发到哪条路径上。这种方式可以有效地分散流量负载,避免某些路径过载,提高网络的性能和容错性。
ECMP存在的不足—— 文章中提到,
1.ECMP在到达终端各个路径跳数相等的时候,效果比较好。但是在跳数不相等的时候,或者跳数相等但是设备链路带宽不一样的时候,每条链路权重会比较难分配。
2.为了分配合适的权重,需要配置流量监控器,消耗更多资源。
ECMP-G:
当存在一些通往目标的等成本路径时,ECMP需要在交换机上安装组条目。否则,流将通过OSPF路径进行转发,而无需提供组条目的帮助。由于组条目的数量是有限的,因此ECMP可能会违反组表的大小约束。实际上,我们只在交换机v上存在一些等成本路径时,在交换机v上安装目标u 的组条目。否则,我们通过流入口通过单路径与目标u转发流。我们将这种改进的方法表示为ECMP-G来区分ECMP。
DevoFlow:
DevoFlow 是由清华大学的研究团队于 2011 年提出的,它是一个开源的项目,可以在 GitHub 上找到
六. 实验一
6.1SDN环境和拓扑
SDN 平台由三部分组成:控制器、7 个启用 SDN 的物理/虚拟交换机和 6 个虚拟机(充当终端)
6.2实验一结果
在每个集合中,默认在网络中生成 300 个流,每个流的预期流量强度为 1Mbps。首先观察到所有交换机上所需的流/组条目的数量。


图1显示DevoFlow和RBDP最多需要24和6个流条目。这是因为 DevoFlow 结合了聚合路由和每个流路由,而 RBDP 只采用聚合路由。
图 2显示 RBDP 和 ECMP 最多需要 5 和 2 个组条目。这是因为 RBDP 算法考虑了组表大小约束。

第二组测试通过改变每个交换机上可用组条目的数量来观察链路负载。
图 3 显示,与 ECMP-G 相比,RBDP 将链路负载减少了约 42%,同时使用相同数量的流/组条目。此外,随着组条目数量的增加,RBDP 的链接负载低于 DevoFlow。

最后一组测试通过改变流的数量来显示链路负载。图 64中的测试结果表明,与 ECMP、ECMP-G 和 OSPF 相比,RBDP 将链路负载分别降低了约 28%、45% 和 60%,并实现了与 DevoFlow 类似的路由性能。
七、实验二——ISP骨干网络和校园拓扑仿真
在两种不同的拓扑上运行四组模拟,以检查算法的有效性。第一组模拟显示了网络中不同算法所需的流/组条目,其中包含 300k 个流(每个 VM 大约 150 个流)。
我们在两种不同的拓扑上执行四种算法,仿真结果如表II和表III所示。从表II可以看出,与DevoFlow相比,RBDP平均减少了约60%的流条目。例如,对于拓扑 (a),RBDP 只需要超过 2k 个流条目,而 DevoFlow 平均需要大约 5k 个流条目和 4.3k 个流条目。请注意,DevoFlow 所需的条目数量会随着流的数量而增加,并且在某些大型网络中可能包含数百万个流。因此,减少用于支持路由的流条目的数量非常有意义,以便可以为支持其他策略保留更多的流条目。由于只有 ECMP、ECMP-G 和 RBDP 需要在交换机上安装组条目,然后比较了两种拓扑上 ECMP、ECMP-G 和 RBDP 的组条目的使用。
表 III 显示 RBDP 所需的组条目数量与 ECMP-G 相同,小于 ECMP 组条目的数量。例如,当拓扑 (b) 中有 300k 个流时,ECMP 最多需要大约 1.4k 个组条目,平均需要大约 0.9k 个组条目,而 RBDP 最多只需要大约 0.3k 个组条目,平均需要 0.23k 个组条目。换句话说,与 ECMP 相比,RBDP可以减少大约 74% 的组条目。