OpenTM:OpenFlow网络流量矩阵估计器的探索与实践
1. 引言
在OpenFlow网络中,准确估计流量矩阵(TM)对于网络管理和优化至关重要。OpenTM作为一种流量矩阵估计器,旨在实时、高精度地推导OpenFlow网络的流量矩阵,同时尽量减少对网络的开销。本文将深入探讨OpenTM的工作原理、实现细节、实验结果以及不同查询策略的分析。
2. 开关查询策略
OpenTM提出了多种开关查询策略,每种策略在准确性和负载分布方面各有特点:
-
查询最后一个开关
:能得到最准确的TM,但会给边缘开关带来较大负载。
-
均匀随机查询
:在所有开关能力相同的情况下,能将负载均匀分布在开关之间,但会损失一些准确性。
-
轮询查询
:按顺序确定性地查询开关。平均而言,其表现与均匀随机查询相似,但可能会导致查询同步问题。
-
非均匀随机查询
:以较高概率查询靠近目的地的开关,可在准确性和负载之间取得较好的平衡。在实验中,会随机选择两个开关并查询更靠近目的地的那个。
-
查询负载最轻的开关
:能将查询均匀分布在网络中的所有开关上,与仅在单个流路径上的开关之间分配查询的均匀随机查询方法不同。
查询频率也是影响TM估计准确性和开销的重要因素。查询频率越高,TM越准确,但会增加开销。这里仅考虑固定长度的查询间隔,实际上查询间隔可以根据流和网络动态自适应调整。
3. 实现细节
OpenTM被实现为一个用于NOX的C++应用程序。NOX是一个开源的OpenFlow控制器,可简化网络应用的开发。OpenTM的实现步骤如下:
1.
网络事件感知
:NOX应用程序可以接收所有网络事件的通知,访问路由信息,并与网络中的开关进行交互。
2.
统计查询
:在每个查询间隔内,OpenTM查询网络中所有活动IP对的统计信息。TM中的元素 (i, j) 通过对从开关i发起并目的地为开关j的流速率求和来计算。
3.
流计数跟踪
:OpenTM通过计算IP对之间的TCP/UDP流数量来跟踪活动IP对的数量。当接收到Flow in事件时,计数器加1;接收到Flow expired事件时,计数器减1。
4.
路径获取与查询
:当IP对的流计数变为1时,OpenTM从路由应用程序获取流路径(开关列表),并根据所需的查询策略向流路径中的一个开关发送聚合统计查询。
5.
TM更新与回调
:当收到聚合查询统计回复时,OpenTM更新TM。如果IP对的流计数不为零,则注册一个回调函数,以便在一定时间后再次查询网络的流统计信息。
6.
开关负载跟踪
:OpenTM通过记录每个开关上未完成查询的数量来跟踪开关负载。查询开关时,相应的计数器加1;收到回复后,计数器减1。
graph LR
A[接收网络事件通知] --> B[查询统计信息]
B --> C[计算活动IP对数量]
C --> D{流计数是否为1}
D -- 是 --> E[获取流路径]
D -- 否 --> B
E --> F[根据策略查询开关]
F --> G[接收回复并更新TM]
G --> H{流计数是否为零}
H -- 否 --> I[注册回调函数]
H -- 是 --> J[停止查询]
I --> B
4. 实验设置与初步结果
为了评估OpenTM的性能,进行了一系列实验。实验使用了HP DL320 G5p服务器、HP NC326i PCIe双端口千兆网卡、运行Debian Lenny的系统以及支持OpenFlow的NEC IP8800/S3640开关。实验设置如下:
-
网络配置
:使用TCP cubic协议,最大TCP窗口大小设置为20MB,路径MTU为1500字节,服务器发送最大尺寸的数据包。使用NetEm模拟网络延迟和丢包,使用Iperf生成输入流量。
-
拓扑结构
:包含10个主机、10个OpenFlow开关和3个丢包模拟器。创建了5个OD对(H1 - H10、H2 - H9、H3 - H4、H5 - H6、H7 - H8),每个OD对之间有10个TCP流。每个流的前向路径添加了100ms的延迟,并配置丢包模拟器模拟1%的丢包率。
-
数据记录与分析
:为了评估,OpenTM每5秒记录所有开关的流统计信息,持续两小时。由于要研究系统的平衡状态,去除了前15分钟的数据作为预热期。
首先研究了OpenTM速率测量的收敛速度。定义收敛点为第一个查询,使得后续所有查询的速率都在总体平均速率的3%以内。实验结果表明,在所有情况下,收敛点都在50秒内,即仅10次查询。其中,H1 - H10和H2 - H9由于经过最长路径和三个丢包模拟器,速率最低;而H3 - H4、H5 - H6和H7 - H8只经历1%的丢包率,速率较高。
不同OD对的平均速率情况如下表所示:
| OD对 | 平均速率 (Mbps) |
| ---- | ---- |
| H1 - H10 | 较低 |
| H2 - H9 | 较低 |
| H3 - H4 | 较高 |
| H5 - H6 | 较高 |
| H7 - H8 | 较高 |
OpenTM:OpenFlow网络流量矩阵估计器的探索与实践
5. 不同查询策略的对比实验
在接下来的实验中,对比了不同的开关查询策略。以H1和H10之间的流量为例,当查询间隔为5秒时,对各种查询策略进行了测试。
-
可视化对比
:图2(a)展示了不同查询策略下测量的平均吞吐量随时间的变化情况。为了更清晰展示,图进行了局部放大,仅显示了100秒的测量数据。从图中可以看出,“负载最轻的开关查询”方法几乎总是报告比“查询最后一个开关”方法更高的速率,且估计误差最大。这是因为在实验设置中,负载最轻的开关通常是流路径上的第一个开关,位于所有三个丢包模拟器之前,所以该方法的准确性最差。但在其他网络拓扑中,情况可能不同,这取决于开关的流量负载。
-
CDF分析
:图2(b)通过展示每个查询策略与“查询最后一个开关”策略所测速率的差异的累积分布函数(CDF),更直观地说明了不同查询策略之间的差异。理想情况下,应始终测量最后一个开关的速率,即差异为零,图中用垂直于零的直线表示。正如之前分析的那样,“非均匀随机查询”方法表现最佳,因为它更倾向于查询靠近目的地的开关。“轮询查询”和“均匀随机查询”方法的表现非常接近,且比“非均匀随机查询”方法差。“负载最轻的开关查询”方法在这种情况下表现最差。
不同查询策略的性能对比如下:
| 查询策略 | 准确性 | 负载分布 | 备注 |
| ---- | ---- | ---- | ---- |
| 查询最后一个开关 | 高 | 边缘开关负载大 | 作为对比基准 |
| 均匀随机查询 | 中等 | 均匀分布在流路径开关 | 可能损失准确性 |
| 轮询查询 | 中等 | 类似均匀随机查询 | 可能出现查询同步 |
| 非均匀随机查询 | 高 | 倾向最后开关负载大 | 平衡准确性和负载较好 |
| 负载最轻的开关查询 | 低 | 均匀分布在所有开关 | 取决于开关负载情况 |
总体而言,所有查询策略之间的差异相对较小。例如,H1和H10之间的实际速率为86Mbps,最佳和最差查询策略之间的最大差异约为2Mbps,仅占实际速率的2.3%。这表明当不需要极高精度的TM时,可以使用任何一种查询策略。在这种情况下,“负载最轻的开关查询”策略可能是首选,因为它能最小化开关之间的最大负载。但对于高精度要求的情况,可能需要使用更倾向于查询路径上最后几个开关的策略。
6. 查询策略的理论分析
从理论上对不同查询策略在估计源和目的地之间流量速率的准确性进行了分析。
-
无丢包情况
:在网络中没有数据包丢失的情况下,所有开关的测量结果应该相同,因此所有查询策略的表现应该非常接近,实验结果也证实了这一点。
-
有丢包情况
:当网络中存在数据包丢失时,不同查询策略会出现差异。考虑一个类似于图1(a)的拓扑结构,假设网络中有M个均匀随机分布的拥塞点,每个拥塞点的丢包率为d。下面分别分析不同查询策略的预期速率:
-
查询最后一个开关
:定义OD对之间的速率为目的地所看到的速率。假设连接最后一个开关和目的地节点的链路丢包率可忽略不计,查询最后一个开关能得到目的地所看到的速率,将其作为与其他随机查询技术对比的基准。
-
均匀随机查询
:当网络中只有一个拥塞链路时,在时间槽i,该方法的测量速率Rr(i)与最后一个开关的速率Rt(i)有两种情况:若随机选择的开关在拥塞链路和目的地前的最后一个开关之间,则Rr(i) = Rt(i);若在源和拥塞链路之间,则Rr(i) = Rt(i) / (1 - d)。当有M个拥塞点时,预期速率为:
[R_{ur}=\frac{R_t}{M + 1}\sum_{m = 0}^{M}\frac{1}{(1 - d)^m}=\frac{R_t}{M + 1}\times\frac{1-(1 - d)^{M + 1}}{d(1 - d)^M}]
-
非均匀随机查询
:该方法通过生成两个随机数i和j(1 ≤ i, j ≤ N,N为流路径上的开关数量),查询ID为max(i, j)的开关(ID越大越靠近目的地)。在有M个拥塞点的情况下,经过大量查询取平均值后,预期平均速率为:
[R_{nr}=\frac{R_t}{(M + 1)^2}\left(1 + 2\sum_{m = 0}^{M - 1}\frac{M - m}{(1 - d)^m}+\frac{1}{(1 - d)^M}\right)]
-
轮询查询
:该方法的平均速率预期值与“均匀随机查询”方法相似,因为平均而言,(\frac{1}{M + 1})的查询速率为Rt(i),(\frac{1}{M + 1})的查询速率为Rt(i) / (1 - d) 等。
-
负载最轻的开关查询
:该方法的性能高度依赖于网络开关的数据包处理能力以及网络负载的分布情况。如果开关的处理能力和负载相同,该方法的表现与“均匀随机查询”方法非常相似。但在最坏情况下,负载最轻的开关可能是路径上的第一个开关,导致速率估计最差。
graph LR
A[网络情况] --> B{有无丢包}
B -- 无丢包 --> C[所有策略相近]
B -- 有丢包 --> D[分析各策略预期速率]
D --> E[查询最后一个开关]
D --> F[均匀随机查询]
D --> G[非均匀随机查询]
D --> H[轮询查询]
D --> I[负载最轻的开关查询]
7. 结论
OpenTM作为一种用于OpenFlow网络的流量矩阵估计器,通过直接测量实时、高精度地推导网络的流量矩阵,且无需数据包采样。它能将统计查询均匀分布在网络中的所有开关上,从而将对网络的开销降至最低。在测试平台上的评估表明,OpenTM能在10次开关查询间隔内得出准确的流量矩阵,比现有的TM估计技术快得多。尽管评估存在一定局限性,需要更全面的评估,但OpenTM可以以极低的开销部署在OpenFlow网络中。在实际应用中,可以根据对准确性和负载的不同需求,选择合适的查询策略。对于高精度要求,可选择倾向于查询路径最后几个开关的策略;对于对准确性要求不高的情况,“负载最轻的开关查询”策略可有效平衡开关负载。
超级会员免费看
5646

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



