Infrastructure protocols like Congestion Control (CC) seek to provide reliable performance across a wide range of Internet environments. Currently, protocol designers assess performance through hand-designed test cases or data sets captured from real environments. However, such approaches may inadvertently overlook critical facets of the algorithm's behavior when they encounter an unanticipated environment or workload. We seek to understand the unanticipated with AdvNet, a system that automatically generates adversarial network environments that cause a target protocol implementation to perform poorly. AdvNet employs machine learning-based optimization to generate environments, and incorporates a robust noise-handling mechanism to mitigate the variability inherent in real-world protocol performance. Although our approach is more general, this paper focuses specifically on transport protocols and their CC implementations. We showcase AdvNet's capability to create adversarial scenarios for 27 kernel-space implementations of both single-path and multi-path CC protocols, for several use cases with different performance goals. AdvNet identifies problematic network conditions that expose previously unnoticed Linux kernel bugs and uncovers hidden limitations in CC implementations, and provides insights about robustness. These results suggest that automated adversarial testing can be a valuable tool in protocol development, and that robustness is a useful new dimension for benchmarking CC protocols.
翻译:基础设施协议(如拥塞控制CC)致力于在广泛的互联网环境中提供可靠的性能表现。当前,协议设计者通过手工设计的测试用例或从真实环境中捕获的数据集来评估性能。然而,此类方法在遇到未预见的运行环境或工作负载时,可能无意中忽略算法行为的关键层面。我们借助AdvNet系统来理解这些未预见的因素——该系统可自动生成导致目标协议实现出现性能低下的对抗性网络环境。AdvNet采用基于机器学习的优化方法生成环境,并配备稳健的噪声处理机制以缓解真实协议性能固有的变异性。尽管我们的方法具有更广泛的通用性,本文重点聚焦于传输协议及其CC实现。我们展示了AdvNet为27个内核空间实现的单路径与多路径CC协议创建对抗性场景的能力,这些场景涵盖多个具有不同性能目标的用例。AdvNet识别出导致先前未察觉的Linux内核漏洞暴露的问题性网络条件,揭示了CC实现中的隐藏局限,并提供了关于鲁棒性的重要见解。这些结果表明,自动化对抗性测试可成为协议开发中的宝贵工具,而鲁棒性为基准测试CC协议提供了富有价值的新维度。