文献阅读
SDN 相关论文(网络监控相关方向不在当前页面)
IPro: An approach for intelligent SDN monitoring
发表期刊:Computer Networks
发表时间:7 April 2020
DOI:10.1016/j.comnet.2020.107108
研究背景
- 研究问题: 这篇文章要解决的问题是如何在 SDN 中进行智能流量监控,以保持控制通道开销(CCO,Control Channel Overhead)和控制器额外 CPU 使用率(CUC,CPU Usage of the Controller)在可接受范围内,同时保持较高的监控准确性(MA,Monitoring Accuracy)。
- 研究难点: 该问题的研究难点包括:如何在探测间隔和监控准确性之间找到平衡;如何通过智能机制(如机器学习)来优化这种平衡,以适应网络行为的变化。
- 相关工作: 相关工作包括基于推式和拉式的流量监控方法,但这些方法存在一些缺点,如高控制通道开销、高控制器 CPU 使用率、灵活性和可扩展性差等。已有的研究尝试通过自适应技术、通配符、阈值方法等来减少控制通道开销,但这些方法往往以牺牲监控准确性为代价。
研究方法
这篇论文提出了一个名为 IPro 的智能 SDN 监控方法,用于解决上述问题。具体来说,IPro 包括以下几个方面:
- 知识定义网络(KDN,Knowledge-Defined Networking)架构: IPro 基于 KDN 范式,利用机器学习技术来优化 SDN 的监控过程。KDN 架构包括控制平面(CP)、数据平面(DP)、管理平面(MP,Management Plane)和知识平面(KP,Knowledge Plane)。KP 利用 ML 技术从网络中提取有用知识,并做出决策。
强化学习(RL)算法: IPro 使用基于强化学习的算法来确定探测间隔。RL 算法通过与环境的交互学习最优策略,以最小化 CCO 和 CUC,同时保持较高的 MA。RL 算法的核心是 Q-learning,其目标是通过最大化累积奖励来确定最优动作策略。
IPro 原型: 论文还提出了一个 IPro 原型,用于实现所提出的架构和算法。该原型包括以下几个主要组件:
- 知识平面(KP): 负责学习和决策。
- 控制平面(CP): 负责收集和处理流量统计信息。
- 管理平面(MP): 负责提取和分析网络状态信息。
- 数据平面(DP): 负责转发数据包。
实验设计
为了评估 IPro 的性能,论文设计了一个实验环境,具体如下:
- 测试环境: 实验在一个校园网络拓扑上进行,包括 11 个 OpenFlow 交换机、230 个主机和一个 Web 服务器及文件服务器。实验使用了 Mininet 仿真器和 Ryu 控制器。
- 数据收集: 实验生成了视频和 Web 流量,分别占 75% 和 25%。使用 VLC 媒体播放器和 Apache 服务器生成流量,并通过 http-clients 进行请求。
- 样本选择: 实验手动测试了不同的探测间隔(1 到 15 秒),并对每种间隔进行了 600 秒的测试。实验结果具有 95% 以上的置信水平。
- 参数配置: 实验中使用了 Q-learning 算法,并设置了学习因子 α、折扣因子 γ 和探索参数 ε。通过调整这些参数来优化探测间隔。
结果与分析
实验结果表明,IPro 在控制通道开销(CCO)、控制器额外 CPU 使用率(CUC)和监控准确性(MA)方面表现出色:
- 控制通道开销(CCO): IPro 的 CCO 保持在 1.23% 以下,显著低于周期性探测方法(PPA,Periodic Probing Approach)的 17.40%。
- 控制器额外 CPU 使用率(CUC): IPro 的 CUC 保持在 7.4% 以下,而 PPA 的 CUC 高达 20.60%。
- 监控准确性(MA): IPro 的 MA 在吞吐量测量中达到 96.17%,显著高于 PPA 的 83.59%。
- 收敛时间: IPro 在学习过程中需要大约 238 秒的时间来收敛到最优策略。收敛后,CCO、CUC 和 MA 的变化趋于稳定。
- 收敛前对比:
Probing Interval [s] | MA of Throughput [%] | MA of Delay [%] | CUC [%] | CCO [%] |
---|---|---|---|---|
IPro | 85.58 | 84.60 | 7.56 | 1.23 |
PPA with 4 | 87.05 | 85.30 | 22.32 | 17.40 |
PPA with 5 | 90.63 | 91.50 | 10.12 | 11.45 |
PPA with 6 | 89.44 | 86.02 | 11.08 | 11.33 |
- 收敛后对比:
Probing Interval [s] | MA of Throughput [%] | MA of Delay [%] | CUC [%] | CCO [%] |
---|---|---|---|---|
IPro | 96.17 | 94.78 | 7.40 | 1.23 |
PPA with 4 | 83.59 | 82.50 | 20.60 | 17.40 |
PPA with 5 | 91.38 | 89.50 | 11.70 | 11.45 |
PPA with 6 | 86.35 | 81.03 | 10.10 | 11.33 |
总体结论
这篇论文提出了一个基于知识定义网络和强化学习的智能 SDN 监控方法 IPro。实验结果表明,IPro 能够在保持较高监控准确性的同时,有效控制控制通道开销和控制器额外 CPU 使用率。未来的工作将探索无模型方法和基于模型的方法(如深度强化学习)来进一步减少收敛时间,并在奖励函数中引入其他参数(如交换机的计算资源)来改进探测间隔的估计。
P4CONSIST: Toward Consistent P4 SDNs
发表期刊:IEEE Journal on Selected Areas in Communications
发表时间:05 June 2020
DOI:10.1109/JSAC.2020.2999653
研究背景
- 研究问题: 这篇文章要解决的问题是如何检测 P4 SDN 中控制平面和数据平面之间的一致性问题。具体来说,研究目标是验证在给定的源-目标对之间,控制平面的预期行为是否与数据平面的实际行为一致。
- 研究难点: 该问题的研究难点包括:控制平面和数据平面之间的状态不一致可能由多种原因引起,如硬件故障、配置错误、软件缺陷或攻击;现有的监控和验证方法大多依赖于静态分析,无法在运行时验证网络一致性;P4 程序的动态性和灵活性增加了验证的复杂性。
- 相关工作: 相关工作主要集中在静态分析和动态验证两个方面。静态分析方法通过分析 P4 程序的源代码来检测错误,但容易产生误报。动态验证方法则通过生成主动探测流量来检测数据平面的行为,但这些方法通常只能检测单个交换机的一致性,无法检测整个网络的一致性。
研究方法
这篇论文提出了一个名为 P4CONSIST 的系统,用于检测 P4 SDN 中控制平面和数据平面之间的一致性问题。具体来说,
- 控制平面模块: 控制平面模块提供当前 SDN 控制器的信息,如拓扑结构和配置信息,并生成预期的报告。该报告包含给定数据包和源-目标对的可达性图。
数据平面模块: 数据平面模块利用带内网络遥测(INT,In-band Network Telemetry)技术实时收集每个交换机的遥测数据,并生成实际的报告。该报告编码了输入流量的转发行为。
输入流量生成器: 输入流量生成器生成主动探测流量,涵盖所有关键流(5 元组流),以测试网络在给定源-目标对之间的行为。
分析器: 分析器是 P4CONSIST 的核心组件。它通过比较控制平面模块生成的预期报告和数据平面模块生成的实际情况报告来检测不一致性。分析器使用深度优先搜索(DFS)和符号执行技术来遍历所有可能的路径,并模拟符号包的转发过程。
实验设计
论文设计了多个实验来评估 P4CONSIST 的性能和有效性。实验包括:
- 原型实现: 使用 P4-16 的 BMv2 软件交换机和 P4Runtime API 实现 P4CONSIST 的原型。
- 实验设置: 在四种不同的拓扑结构(4 交换机网格、9 交换机网格、16 交换机网格和数据中心 4 叉胖树拓扑)上进行了实验,每种拓扑结构有不同数量的规则(15k、30k 和 60k 条规则)。
- 流量生成: 使用 Scapy 生成 IPv4 数据包,并通过 Tcpreplay 以 103 pps 的速率重放流量。
- 错误注入: 在每次实验中随机注入 20 个错误,以测试 P4CONSIST 的检测能力。
结果与分析
- 单源-目标对的不一致性检测时间: 实验结果表明,P4CONSIST 能够在 4 分钟内检测到所有 20 个错误,其中 75% 的错误在 4 分钟内被检测到。对于 16 交换机拓扑,检测时间在 3 到 13 分钟之间。
- 多源-目标对的不一致性检测时间: 在 4 叉胖树拓扑上,P4CONSIST 能够同时处理多个源-目标对,并在合理的时间内检测到所有错误。对于 3 个源-目标对和 60k 条规则的情况,50% 的错误在约 1 小时内被检测到。
- 图遍历时间: 使用 DFS 算法进行图遍历时,使用截止值可以显著减少遍历时间。对于 4 交换机拓扑,使用截止值可以将路径数量从 2 条减少到 2 条,而对于 16 交换机拓扑,路径数量从 184 条减少到 20 条。
符号执行时间: 符号执行时间随着规则数量的增加而增加,但在所有情况下均保持在合理范围内。对于 60k 条规则的 16 交换机拓扑,符号执行时间不超过 5 分钟。
数据平面开销: INT 数据包在快速路径上处理,不会对数据平面造成显著开销。生成的流量约为 1 Gbps 链路的 0.05%,几乎可以忽略不计。
总体结论
这篇论文提出了 P4CONSIST 系统,用于检测 P4 SDN 中控制平面和数据平面之间的一致性问题。通过实验验证,P4CONSIST 能够在复杂的数据中心拓扑中高效地检测到各种类型的错误,且对数据平面的开销极小。论文的贡献在于提供了一种自动化、可扩展的方法来验证 P4 SDN 的控制-数据平面一致性,为未来的网络验证工具提供了新的思路和方法。
SDN-Defend: A Lightweight Online Attack Detection and Mitigation System for DDoS Attacks in SDN
发表期刊:sensors
发表时间:28 October 2022
DOI:10.3390/s22218287
研究背景
- 研究问题: 本文研究了在 SDN 中针对 DDoS 攻击的轻量级在线检测和缓解系统。SDN 由于其集中管理和可编程的特性,容易受到 DDoS 攻击,导致控制器和交换机的内存被占用,网络带宽和服务器资源耗尽,影响正常用户的使用。
- 研究难点: SDN 的集中式拓扑结构使其容易受到 DDoS 攻击,传统的 DDoS 攻击检测方法在处理高维和大规模数据时存在局限性。此外,现有的 DDoS 防御方法大多只注重攻击识别,较少研究缓解策略。
- 相关工作: 目前,DDoS 攻击检测方法主要分为基于信息统计、机器学习和深度学习三类。基于信息统计的方法依赖于单一固定阈值,容易误判;基于机器学习的方法适合处理低维和小样本数据,但不适用于高维和大样本数据;基于深度学习的方法虽然能自动提取特征,但大多数使用单一模型,无法根据异常流量的特征进行有效检测,且缺乏实时性和准确性。
研究方法
这篇论文提出了一个基于 SDN 的轻量级在线 DDoS 攻击检测和缓解系统 SDN-Defend。具体来说,
- 异常检测模块: 该模块采用了一种轻量级的混合深度学习方法——卷积神经网络(CNN)和极限学习机(ELM)(CNN-ELM)进行流量异常检测。CNN 用于提取网络流量的层次化特征,ELM 用于分类。CNN-ELM 结合了 CNN 的特征提取能力和 ELM 的快速训练和泛化能力。
- 特征构建: 为了提高模型的检测精度和可靠性,论文手动构建了四个统计特征来区分 DDoS 攻击的异常流量。这些特征包括平均流速、平均流持续时间、平均数据包大小和非对称流比率。
- 缓解模块: 该模块采用基于 IP 溯源的方法来定位攻击源,并通过发送流规则命令从控制器中有效过滤异常流量。具体步骤包括:
- 使用改进的 IP 溯源方法检查黑名单库中的异常流量信息,找出攻击者所在的控制域。
- 通过发送流规则命令到控制域,关闭攻击源端口,从而减少 DDoS 攻击对 SDN 的影响。
实验设计
- 环境设置: 实验在 Mininet 2.2.1 和 OpenFlow 1.3 环境下进行,使用 Open vSwitch 2.7.0 和 RYU 4.22 作为控制器。操作系统为 Windows 10,硬件配置为 Intel I5-6300HQ 处理器、8GB 内存和 NVIDIA GTX960 显卡。
- 数据集: 实验使用了两个数据集:CICIDS-2017 和 InSDN。CICIDS-2017 数据集包含了多种攻击类型和正常流量,InSDN 数据集模拟了真实的攻击场景,包含了多种攻击类型和正常流量。
- 特征选择: 从 CICIDS-2017 和 InSDN 数据集中选择了 12 个特征子集进行实验,这些特征包括前向数据包长度均值、后向数据包长度均值、总前向数据包数、总后向数据包数、源端口、目的端口、协议、数据包大小均值、流持续时间、流字节/秒和流数据包/秒。
- 数据预处理: 对数据进行归一化处理,将数据映射到 0 到 1 之间。数据集按 80% 训练和 20% 测试的比例划分,并使用独热编码技术将标签转换为整数。
结果与分析
- 检测机制结果: 实验结果表明,CNN-ELM 混合模型在检测准确率、召回率、精确率和 F1 值方面均优于其他机器学习模型。在 CICIDS-2017 数据集上,CNN-ELM 模型的准确率为 98.92%,测试时间为 3.65 秒;在 InSDN 数据集上,CNN-ELM 模型的准确率为 99.91%,测试时间为 1.57 秒。
- 缓解机制结果: 通过基于 IP 溯源的缓解方法,成功追踪到攻击源并过滤了异常流量。实验结果显示,在攻击发生后,受害主机的流量迅速恢复正常,表明防御机制有效。
总体结论
本文提出了一种基于 SDN 的轻量级在线 DDoS 攻击检测和缓解系统 SDN-Defend。该系统结合了 CNN-ELM 混合模型和 IP 溯源方法,能够在实时性和准确性方面有效检测和缓解 DDoS 攻击。实验结果表明,CNN-ELM 模型在检测性能上优于其他机器学习模型,且 SDN-Defend 系统能够有效追踪攻击源并过滤异常流量。未来的工作将探索无监督学习方法和基于图神经网络的攻击溯源方法。
Cyber-Secure SDN: A CNN-Based Approach for Efficient Detection and Mitigation of DDoS attacks
发表期刊:Computers & Security
发表时间:April 2024
DOI:10.1016/j.cose.2024.103716
研究背景
- 研究问题: 这篇文章要解决的问题是 DDoS 攻击对现代网络安全的威胁。DDoS 攻击通过大量流量淹没网络或服务器,使其无法为合法用户提供服务。传统的 DDoS 检测方法存在依赖预定义规则和签名、计算效率低、检测率低和通知机制低效等问题。
- 研究难点: 该问题的研究难点包括:如何在 SDN 环境中高效检测和缓解 DDoS 攻击,同时保持较低的计算成本和较高的检测率;如何在不影响正常流量的情况下,有效地识别和阻止伪造的 IP 地址。
- 相关工作: 该问题的研究相关工作包括基于深度学习的 DDoS 检测方法,如使用卷积神经网络(CNN)和长短期记忆网络(LSTM)等模型。然而,现有的解决方案在检测率和计算效率方面仍有改进空间。
研究方法
这篇论文提出了一个基于平衡随机采样(BRS,Balanced Random Sampling)和卷积神经网络(CNN)的高效 DDoS 检测和缓解方法。具体来说,
- 数据预处理和模型构建: 首先,使用 CICDDoS2019 数据集进行数据预处理,包括去除噪声、空值和重复行,并通过平衡随机采样方法平衡数据集。然后,使用信息增益算法进行特征选择,最终提取了 58 个特征。接着,应用最小-最大归一化处理数据集,并将其划分为训练集、验证集和测试集。
- 模型架构: 提出的 CNN 模型包含 2 个 Conv1D 层、1 个 MaxPooling1D 层、ReLU 激活函数和 2 个 Dense 层。模型使用 Adam 优化器,学习率为 3e-4,批量大小为 256,训练 50 个周期。
DDoS 检测系统: 在 SDN 控制器中使用 CNN 算法检测 DDoS 攻击。如果检测到攻击,交换机将应用规则阻止攻击者并移除其流条目。为了避免误阻合法流量,引入了一个监控系统来监督被阻止的 IP 地址。
DDoS 缓解和监控系统: 采用过滤、速率限制和 iptables 规则来阻止伪造的 IP 地址。监控系统持续监控被阻止的 IP 地址,确保合法流量不被误阻。
- 电子邮件通知系统: 当检测到 DDoS 攻击时,系统会向管理员发送详细的上下文信息,帮助管理员了解攻击情况。
实验设计
数据收集: 使用 CICDDoS2019 数据集进行实验。该数据集包含 500631120 条记录和 88 个属性,分为正常流量和攻击流量。
实验环境: 实验在 Windows 11 工作站上进行,配备 Intel Xeon W-2155 CPU、32GB RAM 和 NVIDIA Quadro P4000 GPU。使用 PyCharm Community IDE 和 Python 3.9.13 进行开发,虚拟机采用 Ubuntu 18.04,模拟环境基于 Mininet 和 POX 控制器。
样本选择: 通过平衡随机采样方法创建平衡数据集,确保每个类别的样本数量相等。使用信息增益算法进行特征选择,提取 58 个特征。
参数配置: CNN 模型使用 Adam 优化器,学习率为 3e-4,批量大小为 256,训练 50 个周期。损失函数为分类交叉熵,输出层使用 softmax 激活函数。
结果与分析
- 性能分析: 实验结果表明,提出的模型在二分类任务中达到了 99.99% 的准确率、精确率、召回率和 F1 分数;在多分类任务中达到了 98.64% 的准确率。
计算成本: 模型在训练和推理阶段的计算成本较低,二分类任务的推理时间为 0.2633 秒,多分类任务的推理时间为 0.3697 秒。
实验验证: 通过 Mininet 和 POX 控制器模拟了三种场景:无攻击、有攻击无缓解、有攻击有缓解。实验结果显示,提出的缓解系统能有效降低 CPU 利用率和总 IP 流量,保持网络正常运行。
- 可视化分析: 使用 Wireshark 和 Netdata 工具进行实时监控,结果显示提出的系统能有效检测和缓解 DDoS 攻击,保持网络的稳定性和安全性。
总体结论
这篇论文提出了一个基于平衡随机采样和卷积神经网络的高效 DDoS 检测和缓解方法,能够在 SDN 环境中实现高精度的 DDoS 攻击检测和缓解。实验结果表明,该方法在二分类和多分类任务中均表现出色,具有较高的准确率和较低的计算成本。未来的研究可以进一步优化模型的可扩展性和灵活性,以应对大规模 SDN 网络中的 DDoS 攻击。
GRAN: a SDN intrusion detection model based on graph attention network and residual learning
发表期刊:The Computer Journal
发表时间:24 October 2024
DOI:10.1093/comjnl/bxae108
研究背景
- 研究问题: 这篇文章要解决的问题是如何在 SDN 中检测异常行为并识别不同类型的网络攻击。SDN 作为一种新兴的网络架构,虽然提供了更高的灵活性和控制能力,但也带来了新的安全挑战。
- 研究难点: 该问题的研究难点包括:SDN 架构的特殊性使得传统的安全防御系统难以满足其安全需求;网络流量的高维性和复杂性增加了入侵检测的难度;数据不平衡问题可能导致某些类型的攻击难以被检测到。
- 相关工作: 相关工作主要包括传统的入侵检测方法(如基于机器学习和深度学习的方法)以及在 SDN 环境中应用的入侵检测方法。已有的研究大多使用传统的公开数据集(如 KDD Cup99 和 NSL-KDD)进行实验验证,但这些数据集无法准确反映 SDN 环境的特殊性。
研究方法
这篇论文提出了基于图注意力网络和残差学习的 SDN 入侵检测模型(GRAN)。具体来说,
- 特征处理: 首先,提出了一种针对 SDN 网络流量高维数据的特征处理方法。该方法通过提取目标 ID 和源 ID 来识别图节点,并将剩余的流数据作为边特征,从而将入侵检测问题编码为边分类任务。
- GRAN 模型: 其次,引入了一种新的基于图神经网络的模型,即改进的图残差注意力网络(GRAN)。该模型主要利用可用的图信息将残差学习整合到图神经网络(GNN)中,并采用残差连接来促进层间的高效信息流动。
- 模型架构: GRAN 模型的核心在于注意力层,通过动态调整相邻节点对目标节点的贡献权重,使模型能够关注最相关的信息。此外,模型还采用了多头注意力机制,以增强模型的表达能力和鲁棒性。
实验设计
- 数据收集: 使用 InSDN 数据集进行实验,该数据集模拟了 SDN 环境中的真实攻击场景。数据集包含七种攻击类型,每种攻击类型可能影响 SDN 的不同组件。
- 数据预处理: 对数据进行预处理,包括提取和识别图节点、去除不必要的列、标准化特征列、处理缺失值等。此外,采用随机欠采样方法来解决数据不平衡问题。
- 实验设置: 实验在配备 12 代 Intel Core i7-12700H CPU 和 Nvidia GeForce RTX 3060 GPU 的环境中进行。模型使用 PyTorch 库实现,并采用 Adam 优化器,学习率为 0.001,训练和测试集分为 500 个批次进行处理。
结果与分析
- 消融实验: 通过消融实验比较了纯 GAT 模型和集成残差网络的 GRAN 模型的性能。结果表明,GRAN 模型在多类分类场景中表现更优,特别是在检测正常流量时,F1 得分为 96.4%,准确率为 99.1%。
与传统机器学习模型的比较: 在与传统机器学习模型(如 SVM、决策树、随机森林和 KNN)的比较中,GRAN 模型在多类分类场景中表现出显著优势。例如,在 SDN 入侵识别中,GRAN 模型的精确度为 97.2%,F1 得分为 96.2%,准确率为 97.1%。
与深度学习和 GCN 模型的比较: 在与标准深度学习模型(如 CNN 和 LSTM)以及 GCN 模型的比较中,GRAN 模型在多个检测指标上表现优异。例如,在检测 U2R 攻击时,GRAN 模型的精确度显著高于 CNN 和 LSTM,提高了 40% 以上。
总体结论
这篇论文提出了一种新颖的混合入侵检测模型 GRAN,并将其应用于 SDN 环境中。实验结果表明,GRAN 模型在准确性和精确性方面优于其他模型,特别是在处理高流量类型和数据不平衡问题时表现出色。未来的工作将进一步探索如何在 SDN 控制器中部署 GRAN 模型。
Advancing SDN from OpenFlow to P4: A Survey
发表期刊:ACM Computing Surveys
发表时间:16 January 2023
DOI:10.1145/3556973
研究背景
研究问题
本文旨在探讨如何通过从 OpenFlow 协议向 P4 语言的演进,推动 SDN 的发展。SDN 的核心目标是通过解耦控制平面和数据平面,实现网络的灵活编程和集中管理。然而,传统的 OpenFlow 协议存在固定头字段支持和扩展性限制,而 P4 作为一种新兴的领域特定语言(DSL,Domain-specific Language),通过提供可编程数据平面(PDP,Programmable Data Plane)的抽象能力,解决了这些问题。研究难点
- 协议无关性: 传统 SDN 数据平面受限于 OpenFlow 的固定头字段,难以适应新型协议和应用需求。
- 灵活性与性能的平衡: 如何在保证高性能的同时,实现数据平面的高度可编程性。
- 安全与监控: 如何在动态变化的网络环境中实现高效的安全策略和实时监控。
相关工作
- 传统 SDN: 基于 OpenFlow 的 SDN 架构在早期得到了广泛应用,但其灵活性不足。
- P4 的兴起: P4 通过提供可编程的数据平面,支持自定义协议和灵活的流量处理,逐渐成为下一代 SDN 的核心技术。
数据平面编程解决方案:
P4 | eBPF/XDP | DPDK | POF | ODP | Click | PX | |
---|---|---|---|---|---|---|---|
Abstraction level | High | Low | Low | Low | High | High | High |
Loops | Not allowed | Allowed | Allowed | Not allowed | Unknown | Allowed | Not allowed |
Pipeline forwarding | Match-Action | N/A | N/A | Match-Action | Match | N/A | Match-Action |
Syntax | C-like | C restricted | C restricted | N/A | C restricted | C++ | C++ |
P4 的核心概念
P4 语言的特性
- 协议无关性: P4 允许用户定义任意协议头格式和解析流程,突破了 OpenFlow 的固定头字段限制。
- 目标无关性: P4 程序可以通过编译器生成适用于不同硬件(如 FPGA、ASIC、软件交换机)的目标代码。
- 可编程流水线: 支持动态加载和更新数据平面处理逻辑,无需重启设备。
P4 的应用领域
论文将 P4 的应用分为六大类,并通过图表(图 2)进行了分类展示:- 网络监控: 如 In-band Network Telemetry(INT)用于实时收集网络流量统计信息。
- 流量工程: 包括负载均衡、路由优化和拥塞控制。
- 功能卸载: 将网络功能(如防火墙、负载均衡器)从控制平面卸载到数据平面。
- 跨领域应用: 如工业控制、物联网(IoT)和 5G 网络。
- 安全: 实现防火墙、入侵检测系统和加密协议。
- 目标特定优化: 针对不同硬件平台的性能优化。
技术挑战
- 验证与调试: P4 程序的复杂性和硬件依赖性导致验证和调试困难。
- 资源限制: 数据平面设备的计算和存储资源有限,需高效利用。
- 安全性: 如何在开放的可编程环境中防止恶意攻击。
关键技术与应用案例
网络监控
- INT(In-band Network Telemetry): 通过在数据包中嵌入元数据,实时收集网络状态信息。例如,Niou 等人设计的 ML-INT 系统通过采样方法减少 INT 开销,实验结果显示其在 IP-over-Optical 网络中有效降低了 INT 头的大小。
- Sketch-based 方法: 如 Hanf 等人提出的交错草图(Interleaved Sketch)系统,通过分散式架构实现低延迟的网络监控。
Solution | Monitoring Technique | FPGA | Software | ASIC | Simulation | Validation |
---|---|---|---|---|---|---|
Niou et al. [123] | INT | No | No | Tofino, NFP-4000 NPU | No | Measure INT header overhead and the effectiveness of the sampling method |
Hanf et al. [56] | Sketch | No | No | Tofino | No | Measure memory throughput and compare them against similar solutions |
SWAP [54] | — | No | BMv2 | No | No | The authors measure the relative error SWAP introduces |
Pereira et al. [133] | — | No | BMv2 | No | No | Measure latency, throughput, estimations error against similar approaches |
TurboFlow [155] | — | No | No | Tofino, NFP-4000 | No | Cost estimation of monitoring, overhead introduced on various load scenarios |
Elastic Sketch [177] | Sketch | Stratix V | OvS | Tofino | No | Compare to state-of-the-art solution, measure error rate, accuracy and time delays |
BitMatrix [110] | Sketch | No | BMv2 | No | No | Measure the accuracy of BitMatrix approximation |
BurstRadar [74] | — | No | No | Tofino | No | Compare agains INT and Oracle, measure RAM utilization |
Gent et al. [47] | INT | No | BMV2 | No | No | Compare estimated congestion with actual value |
UniROPE [46] | INT-like | No | PISCES | No | No | Evaluate on multiple topologies, compare against CherryPick |
Khan et al. [83] | INT | No | No | No | No | — |
InOpt [10] | INT | NetFPGA | No | No | No | Measure latency and delays introduced |
Choi et al. [26] | INT | No | No | No | No | — |
FlowSpy [51] | — | No | BMV2 | No | No | Measure the mean deviation and completeness rate for various evaluation metrics |
Wang et al. [169] | INT | No | No | Tofino | No | Measure the reduction rate of INT reports in various threshold values |
P4-InTel [21] | INT | No | No | BMv2 | No | Throughput variation when the number of switches in a path increases |
FS-INT [159] | INT | No | No | No | Yes | Compare the INT header in varaying path lengths using FS-INT and alternative methods |
TBSW [55] | — | No | BMv2∗ | No | No | Accuracy loss in each stage and resource consumption |
Elastic Trie [94] | — | Xilinx Virtex, Xilinx Ul-trScale+ | No | No | No | Measure accuracy in detecting variations in traffic patterns |
SpreadSketch [160] | Sketch | No | No | Tofino | No | Measure preceision, recall, f1 score and relative error against state-of-the-art solutions |
FEAL [139] | — | No | BMv2 | No | No | Measure precision, recall |
∗Flow [156] | — | No | No | Tofino | No | Resource utilization and throughput |
Laraba et al. [98] | — | No | BMv2 | No | No | Fair Bandwidth sharing and switch processing time |
Hyun et al. [70] | INT | No | BMv2 | No | No | CPU usage, processing time of INT data and bandwidth overhead of INT appended data |
上表中的论文索引:
[10] D. Bhamare, A. Kassler, J. Vestin, M. A. Khoshkholghi, and J. Taheri. 2019. IntOpt: In-band network telemetry optimization for NFV service chain monitoring. In Proceedings ofthe IEEE International Conference on Communications (ICC’19). IEEE, 1–7. https://doi.org/10.1109/ICC.2019.8761722
[21] Lucas Castanheira, Alberto Schaeffer-Filho, and Theophilus A. Benson. 2019. P4-InTel: Bridging the gap between ICF diagnosis and functionality. In Proceedings ofthe 1stACMCoNEXTWorkshop on Emerging In-network Computing Paradigms (ENCP’19). Association for Computing Machinery, New York, NY, 21–26. https://doi.org/10.1145/3359993.3366648
[26] N. Choi, L. Jagadeesan, Y. Jin, N. N. Mohanasamy, M. R. Rahman, K. Sabnani, and M. Thottan. 2019. Run-time performance monitoring, verification, and healing ofend-to-end services. In Proceedings ofthe IEEE Conference on Network Softwarization (NetSoft’19). IEEE, Paris, France, 30–35. https://doi.org/10.1109/NETSOFT.2019.8806660
[46] Yi Gao, Yuan Jing, andWei Dong. 2018. UniROPE: Universal and robust packet trajectory tracing for software-defined networks. IEEE/ACMTrans. Netw. 26, 6 (Dec. 2018), 2515–2527. https://doi.org/10.1109/TNET.2018.2871213
[47] Junjie Geng, Jinyao Yan, Yangbiao Ren, and Yuan Zhang. 2018. Design and implementation of network monitoring and scheduling architecture based on P4. In Proceedings of the 2nd International Conference on Computer Science and Application Engineering (CSAE’18). Association for Computing Machinery, New York, NY, Article 182, 6 pages. https://doi.org/10.1145/3207677.3278059
[51] B. Guan and S. Shen. 2019. FlowSpy: An efficient network monitoring framework using P4 in software-defined networks. In Proceedings ofthe IEEE 90th Vehicular Technology Conference (VTC’19). IEEE, 1–5. https://doi.org/10.1109/VTCFall.2019.8891487
[54] Zijun Hang, Yang Shi, Mei Wen, Wei Quan, and Chunyuan Zhang. 2019. SWAP: A sliding window algorithm for in-network packet measurement. In Proceedings ofthe 3rd International Conference on High Performance Compilation, Computing andCommunications (HP3C’19). Association for Computing Machinery, New York, NY, 84–89. https://doi.org/10.1145/3318265.3318280
[55] Z. Hang, Y. Shi, M. Wen, and C. Zhang. 2019. TBSW: Time-based sliding window algorithm for network traffic measurement. In Proceedings of the IEEE 21st International Conference on High Performance Computing and Communications; IEEE 17th International Conference on Smart City; IEEE 5th International Conference on Data Science and Systems (HPCC/SmartCity/DSS’19). IEEE, 1305–1310. https://doi.org/10.1109/HPCC/SmartCity/DSS.2019.00182
[56] Z. Hang, M.Wen, Y. Shi, and C. Zhang. 2019. Interleaved sketch: Toward consistent network telemetry for commodity programmable switches. IEEE Access 7 (2019), 146745–146758. https://doi.org/10.1109/ACCESS.2019.2946704
[70] J. Hyun, N. Van Tu, and J. W. Hong. 2018. Towards knowledge-defined networking using in-band network telemetry. In Proceedings ofthe IEEE/IFIP Network Operations and Management Symposium (NOMS’18). IEEE, 1–7. https://doi.org/10.1109/NOMS.2018.8406169
[74] Raj Joshi, Ting Qu, Mun Choon Chan, Ben Leong, and Boon Thau Loo. 2018. BurstRadar: Practical real-time microburst monitoring for datacenter networks. In Proceedings ofthe 9th Asia-Pacific Workshop on Systems (APSys’18). Association for Computing Machinery, New York, NY, Article 8, 8 pages. https://doi.org/10.1145/3265723.3265731
[83] Jehandad Khan and Peter Athanas. 2018. Query language for large-scale P4 network debugging. In Proceedings of the Symposium on Architectures forNetworking and Communications Systems (ANCS’18). Association for Computing Machinery, New York, NY, 162–164. https://doi.org/10.1145/3230718.3232108
[94] Jan Kučera, Diana Andreea Popescu, Han Wang, Andrew Moore, Jan Kořenek, and Gianni Antichi. 2020. Enabling event-triggered data plane monitoring. In Proceedings ofthe Symposium on SDNResearch (SOSR’20). Association for Computing Machinery, New York, NY, 14–26. https://doi.org/10.1145/3373360.3380830
[98] Abir Laraba, Jérôme François, Isabelle Chrisment, Shihabur Rahman Chowdhury, and Raouf Boutaba. 2020. Defeating protocol abuse with P4: Application to explicit congestion notification. In Proceedings of the IFIP Networking Conference (Networking). IEEE, 431–439.
[110] R. F. T. Martins, F. L. Verdi, R. Villaça, and L. F. U. Garcia. 2018. Using probabilistic data structures for monitoring of multi-tenant P4-based networks. In Proceedings ofthe IEEE Symposium on Computers andCommunications (ISCC’18). IEEE, 00204–00207. https://doi.org/10.1109/ISCC.2018.8538352
[123] B. Niu, J. Kong, S. Tang, Y. Li, and Z. Zhu. 2019. Visualize your IP-over-optical network in realtime: A P4-based flexible multilayer in-band network telemetry (ML-INT) system. IEEE Access 7 (2019), 82413–82423. https://doi.org/10.1109/ACCESS.2019.2924332
[133] F. Pereira, N. Neves, and F. M. V. Ramos. 2017. Secure network monitoring using programmable data planes. In Proceedings ofthe IEEE Conference on Network Function Virtualization and Software Defined Networks (NFV-SDN’17). IEEE, 286–291. https://doi.org/10.1109/NFV-SDN.2017.8169867
[139] M. Rahali, J. Sanner, and G. Rubino. 2020. FEAL: A source routing Framework for Efficient Anomaly Localization. In Proceedings ofthe IEEE International Conference on Communications (ICC’20). IEEE, 1–7. https://doi.org/10.1109/ICC40277.2020.9148725
[155] John Sonchack, Adam J. Aviv, Eric Keller, and Jonathan M. Smith. 2018. Turboflow: Information rich flow record generation on commodity switches. In Proceedings ofthe 13th EuroSys Conference (EuroSys’18). Association for Computing Machinery, New York, NY, Article 11, 16 pages. https://doi.org/10.1145/3190508.3190558
[156] John Sonchack, Oliver Michel, Adam J. Aviv, Eric Keller, and Jonathan M. Smith. 2018. Scaling hardware accelerated network monitoring to concurrent and dynamic queries with *flow. In Proceedings of the USENIX Annual Technical Conference (USENIX ATC’18). USENIX Association, 823–835. Retrieved from https://www.usenix.org/conference/atc18/presentation/sonchack.
[159] Dongeun Suh, Seokwon Jang, Sol Han, Sangheon Pack, and Xiaofei Wang. 2020. Flexible sampling-based in-band network telemetry in programmable data plane. ICTExpress 6, 1 (2020), 62–65. https://doi.org/10.1016/j.icte.2019.08.005
[160] L. Tang, Q. Huang, and P. P. C. Lee. 2020. SpreadSketch: Toward invertible and network-wide detection of superspreaders. In Proceedings of the IEEE Conference on Computer Communications (INFOCOM’20). IEEE, 1608–1617. https://doi.org/10.1109/INFOCOM41043.2020.9155541
[169] S. Wang, Y. Chen, J. Li, H. Hu, J. Tsai, and Y. Lin. 2019. A bandwidth-efficient INT system for tracking the rules matched by the packets of a flow. In Proceedings ofthe IEEE Global Communications Conference (GLOBECOM’19). IEEE, 1–6. https://doi.org/10.1109/GLOBECOM38437.2019.9013581
[177] Tong Yang, Jie Jiang, Peng Liu, Qun Huang, Junzhi Gong, Yang Zhou, Rui Miao, Xiaoming Li, and Steve Uhlig. 2018. Elastic sketch: Adaptive and fast network-wide measurements. In Proceedings ofthe Conference ofthe ACM Special InterestGroup on Data Communication (SIGCOMM’18). Association for Computing Machinery, 561–575. https://doi.org/10.1145/3230543.3230544
流量工程
- 负载均衡: Olteanu 等人开发的 Beamer 系统通过一致性哈希实现无状态的负载均衡,性能优于 Google Maglev。
- 路径优化: HULA 和 MP-HULA 算法通过动态探测最佳路径,减少网络拥塞。
功能卸载
- VNF 卸载: P4NFV 框架将网络功能虚拟化(NFV)服务卸载到数据平面,实现线速处理。
- 服务链创建: P4SC 框架通过定义服务功能链(SFC)的 P4 原语,简化了服务链的管理和部署。
安全应用
- 防火墙: CoFilter 框架通过哈希表和服务器协作,实现高性能的状态 ful 包过滤。
- 入侵检测: POSEIDON 系统利用 P4 的可编程性,实现分布式拒绝服务(DDoS)攻击的快速检测和缓解。
技术挑战与未来方向
验证与调试
- 工具支持: 如 Vera 和 P4Box 等验证工具通过符号执行和动态监控,帮助开发者发现 P4 程序中的错误。
- 测试框架: P4Tester 和 NS4 等工具通过生成测试用例和模拟网络环境,提高 P4 程序的可靠性。
资源优化
- 编译器优化: MATReduce 和 P4LLVM 等编译器通过减少冗余匹配操作和优化中间表示,提升 P4 程序的性能。
- 内存管理: B-Cache 框架通过缓存行为模式,减少数据平面处理延迟。
未来方向
- 集成计算: 将数据平面设备作为计算节点,支持机器学习和加密算法的加速。
- 多协议栈支持: 实现多种网络架构(如 NDN、RINA)的共存和互操作。
- 端到端监控: 标准化网络监控指标和数据结构,支持 6G 和边缘计算的精细化需求。
- 硬件创新: 设计支持更低功耗和更高灵活性的可编程芯片,满足中小规模网络的需求。
结论
本文全面回顾了 P4 语言在 SDN 中的应用和发展,展示了其在灵活性、可编程性和性能上的优势。通过丰富的应用案例和技术分析,论文证明了 P4 在解决传统 SDN 局限性中的关键作用。未来的研究方向包括进一步扩展 P4 的应用领域、优化硬件支持以及提升安全性和验证能力。P4 的持续演进将为下一代 SDN 提供强大的技术基础,推动网络向更智能、更灵活的方向发展。
A Survey on P4 Challenges in Software Defined Networks: P4 Programming
发表期刊:IEEE Access
发表时间:22 May 2023
DOI:10.1109/access.2023.3275756
研究背景
- 研究问题: 这篇文章要讨论的是如何在 SDN 中实现数据平面的可编程性。传统的 SDN 架构中,数据平面缺乏灵活性,无法适应快速变化的网络需求和技术创新。
- 研究难点: 该问题的研究难点包括:如何在数据平面实现灵活的协议和功能扩展,如何在不影响网络性能的情况下进行数据包处理,以及如何确保数据平面的安全性和可管理性。
- 相关工作: 相关工作包括传统的 SDN 架构、OpenFlow 协议、以及近年来出现的P4编程语言。P4 语言作为一种新兴的数据平面编程语言,旨在解决传统 SDN 架构中数据平面灵活性不足的问题。
研究方法
这篇论文呼吁使用 P4 编程语言来实现 SDN 数据平面的可编程性。具体来说,
P4 语言特性: P4 是一种领域特定语言,用于控制发送到数据平面的数据包。它具有以下特性:
- 目标无关性: P4 编译器在将目标无关的 P4 描述转换为特定目标的程序时,会考虑交换机的功能。
- 协议无关性: 交换机不需要绑定到特定的数据包格式,控制器可以指定数据包的解析和处理方式。
- 可重构性: 控制器可以动态调整数据包的分析和处理过程。
P4 架构: P4 架构分为 P414 和 P416 两种版本。P414 架构采用单管道转发架构,而 P416 架构支持多阶段匹配-动作过程,可以在串行或并行执行。
P4 组件: P4 程序包含以下几个关键组件:
- 头部: 描述数据包头部的结构和顺序。
p4/* HEADERS */ struct metadata { ... } struct headers { ethernet_t ethernet; ipv4_t ipv4; }
- 解析器: 定义如何识别数据包头部的有效序列。
p4/* PARSER */ parser MyParser(packet_in packet, out headers hdr, inout metadate meta, inout standard_metadata_t smeta) { ... }
- 表: 包含匹配-动作表的机制,用于数据包处理。
p4/* TABLE */ table source_check { reads { mtag: valid; metadata.ingress_port: exact; } /* ACTIONS */ actions { fault_to_cpu; strip_mtag; pass; } max_size: 64; }
- 动作: 由简单、协议无关的原语构成的复杂操作。
- 反解析器: 将修改后的头部重新序列化为数据包。
p4/* DEPARSER */ control MyDeparser(inout headers hdr, inout metadata meta) { ... }
- 控制程序
p4/* CONTROL PROGRAM */ control main() { table(source_check); if (!defined(metadata.ingress_error)) { table(local_switching); if (!defined(metadata.egress_spec)) { table(mTag_table); } } table(egress_check); }
P4 工作流程: P4 程序的工作流程包括配置和交付两个阶段。配置阶段确定每个处理阶段的顺序和协议头部区域,交付阶段则添加或移除匹配-动作表中的条目。
工作设计
论文中通过对 75 篇相关研究论文的综述,分析了 P4 在不同应用场景中的表现。实验设计包括以下几个方面:
- 文献收集: 收集了从 1999 年到 2023 年的 75 篇研究论文,涵盖了 SDN、P4、大规模网络、数据平面编程等多个领域。
- 论文选择: 选择了具有代表性的研究论文,重点关注其在性能、安全、负载均衡等方面的成果和不足。
- 阅读分析: 对每篇论文的研究目标、方法、结果和技术进行了详细的分类和分析。
结果与分析
- SDN 与数据平面可编程性: 研究表明,SDN 和数据平面可编程性的结合可以显著提高网络的灵活性和动态性。然而,现有的 SDN 平台在处理复杂和高精度流量方面仍存在挑战。
- 数据平面架构: 现代数据平面硬件和软件的支持使得低级别可编程性成为可能。可编程数据平面不仅可以用于包交换,还可以用于中间盒(如防火墙和负载均衡器)和通用网络处理。
- 数据平面抽象: 研究发现,可编程数据平面可以通过多种抽象模型来实现,包括匹配-动作管道抽象和数据流图抽象。这些抽象模型为复杂的数据包处理提供了灵活的解决方案。
- 网络监控: P4 在网络监控中的应用表现出色,特别是在需要严格性能标准和高流量处理的应用中。P4 可以与现代网络工具结合,提供高效的网络测量和调试能力。
- P4 挑战: 研究指出,P4 在设计、成本、安全性、抽象、可重构性、可扩展性和数据平面漏洞等方面仍面临诸多挑战。例如,P4 不支持循环构造和动态内存分配,这使得某些算法的实现变得困难。
总体结论
这篇论文通过对 P4 编程语言及其在 SDN 中的应用进行综述,展示了 P4 在实现数据平面可编程性方面的巨大潜力。尽管 P4 在灵活性和动态性方面具有显著优势,但仍需在多个方面进行进一步研究和优化。未来的研究趋势将集中在开源架构和数据网络编程上,SDN 与 P4 的结合将成为未来网络领域的主流方向。