Patchwork: A Traffic Capture and Analysis Platform for Network Experiments on a Federated Testbed¶
Patchwork 是一个用户部署的, 开源的流量捕获与分析平台, 专为像 FABRIC 这样最先进的联邦制网络测试床 (Federated Testbed) 设计.
(1) 核心问题:
现有的联邦测试床 (如 FABRIC) 虽然提供了TB级别的链路和可编程基础设施, 但缺乏精细的, 易用的流量捕获工具.
现有的测量框架 (e.g. MFlib) 主要基于 SNMP, 粒度太粗; 而底层的端口镜像 (Port Mirroring) 功能又太原始, 用户难以直接使用.
(2) 解决方案:
Patchwork 作为 FABRIC 上的一个普通实验运行 (无需修改 Testbed 底层), 利用 FABRIC 的现有功能 (端口镜像, FPGA 网卡) 来提供可扩展的, 线性速度 的流量分析服务.
(3) 主要贡献:
- 对 FABRIC 基础设施和资源利用率进行了详细研究. 设计并实现了 Patchwork 平台
- 基于 Patchwork 运行一年 (2023.12 - 2024.12) 的数据, 发布了 FABRIC 的流量画像 (Traffic Profile)
Introduction 核心内容
- 背景与问题: 现有的联邦网络测试床虽然规模巨大, 但仅提供基础的流量捕获原语, 迫使研究人员重复劳动以开发定制的解决方案来诊断和评估实验.
- 技术挑战: 由于联邦测试床的自治结构以及高容量链路对加速处理的需求, 构建一个通用的, 可复用的系统具有很大挑战性.
- 解决方案 Patchwork: 本文介绍了 Patchwork, 这是一个开源的流量捕获与分析平台, 运行在最先进的 FABRIC 测试床上. 它既支持单个实验的流量分析, 也支持对测试床上同时发生的所有实验进行分析.
- 设计特点: 为了实现通用性, Patchwork 本身作为 FABRIC 上的一个实验运行, 无需修改测试床底层架构; 为了可扩展性, 它利用 FPGA 网卡 (NICs) 进行逻辑卸载并使用了 DPDK 技术.
- 部署与成果: Patchwork 已被个人用户使用并在 FABRIC 上运行超过一年, 论文展示了基于此生成的全网流量使用情况分析, 并讨论了其对未来测量研究的意义.
Related Work 核心内容
| 比较维度 | Related Work | 本文 Patchwork |
|---|---|---|
| 1. 研究重点 |
终端主机资源与响应速度 关注 CPU, 内存负载, 简单的网卡吞吐量, 或测试床配置实验的速度, 链路延迟等. |
网络数据平面 (Data Plane) 专注于测试床网络本身的流量分析, 而非基础设施的响应速度或终端主机的计算资源. |
| 2. 数据粒度 |
粗粒度计数器 主要依赖终端主机网卡的计数器数值 (Counter values). |
细粒度采样与画像 跨站点对数据平面进行流量采样, 构建详细的流量画像 (如帧大小分布, 流的组成结构等). |
| 3. 工具能力 |
基础测量资源创建 例如 GENI 的 INSTOOLS 系统, 支持创建测量资源对数据平面采样. |
全网级, 高性能, 异构支持 可跨所有正在运行的实验工作 (也可针对单个实验), 支持异构硬件, 且能以线速 (Line rate) 运行. |
| 4. 网络类型与特征 |
传统/商业网络 针对互联网骨干网, 住宅宽带, 校园网, 数据中心或卫星网络进行画像. |
联邦科研测试床 (FABRIC) 流量特征独特: 大量使用巨型帧 (Jumbo frames), 且因承载多样化实验导致流量变异性极高. |
| 5. 贡献总结 |
—— | 1. 最新的共享测试床资源与利用率分析. 2. 首个针对联邦测试床的网络画像工具. 3. FABRIC 运行首年的网络流量画像分析. 4. 首个用户部署的, 服务于其他研究者的测试床服务. |
Background: FABRIC Testbed 核心内容
FABRIC 的核心架构与机制概括如下:

(1) Federated Structure:
FABRIC 是一个联邦制的测试床, 由嵌入在不同机构 (如大学和互联网交换点) 网络中的机架组成.
这些机架虽然实行集中管理, 但在地理上跨越了亚洲, 欧洲和美国.
(2) Resources & Terminology:
- 硬件: 机架包含以太网交换机和连接的工作节点, 节点托管虚拟机 (VMs) 并配备多种网卡 (NICs).
- 预留机制: 研究人员创建 Slice (切片) 来预留实验资源, 被预留的具体资源称为 Slivers.
- 资源类型: 可用的 Slivers 包括虚拟机, 各种 GPU, Mellanox ConnectX 网卡, Alveo FPGA 网卡以及 Tofino 交换机.
(3) Site Heterogeneity & Connectivity:
- 不同站点提供的资源类型和数量各不相同 (例如 NCSA 站点拥有数百个核心和特定类型的网卡).
- 站点通过交换机上的专用上行端口 (Uplink ports) 相互连接, 链路包含发送 (Tx) 和接收 (Rx) 通道.
- 站点间的链路容量不同且不保证可用性, 所有链路均由用户共享.
(4) Switch Management & Telemetry:
- 使用 Cisco 5700 系列或 Ciena 8190 作为机架顶端 (ToR) 交换机.
- FABRIC 提供了抽象 API, 用于网络配置, 基于 SNMP 的端口级遥测 (通过 MFlib 查询) 以及端口镜像功能.
(5) Port Mirroring Primitive:

- 这是网络剖析的重要低级原语, 需要用户代码来管理.
- 其原理是选择一个 ToR 端口, 将其 Tx 或 Rx 流量镜像到另一个端口, 并分配专用的网卡和虚拟机来接收这些流量.
- 关键特性: 默认情况下, 接收端会收到流经被镜像端口的所有帧, 而不仅仅是特定用户的流量.