In-network computing (INC) offloads parts of the functionality of a distributed system to programmable switches. Once we move the computation into the network, failures may cause loss of essential information and disrupt the operation of these systems. To ensure high availability in the event of switch failures, the current state-of-the-art replicates state across multiple INCs. They achieve this by using state-machine replication, ensuring that INC replicas are consistent by coordinating the replication between multiple INC nodes. In this paper, we demonstrate that decoupling the consistency guarantees from the replication reduces the overhead of INC fault tolerance. We present RESIST, a system for building fault-tolerant INC using asynchronous replication and replay-based recovery. We propose new techniques for logging information and different replay techniques to restore INC systems according to consistency semantics. Furthermore, we apply RESIST techniques to existing INC functionalities, including event synchronization for distributed simulations and aggregation for distributed training. Our prototype of RESIST enables fault tolerance for INC applications on BMv2 and in a testbed with Tofino ASICs. Experiments show that the system provides fault tolerance with negligible overhead for non-failure scenarios and recovers from failures in less than 0.2 s.
Ensuring consistent performance becomes increasingly challenging with the growing complexity of applications in data centers. This is where load balancing emerges as a vital component. A load balancer distributes network or application traffic across various servers, resources, or pathways. In this article, we present P4WISE, a load balancer designed for software-defined networks. Operating on both the data and control planes, it employs reinforcement learning to distribute computational loads with granularity at inter and intra-server levels. Evaluation results demonstrate a remarkable 90% accuracy in predicting the optimal load balancing strategy of P4WISE in dynamic scenarios. Notably, unlike supervised or unsupervised methods, it eliminates the need for retraining when the environment undergoes minor or major changes. Instead, P4WISE autonomously adjusts and retrains itself based on observed states within the data center.
The performance benefits of data plane programmability have motivated many researchers to offload the computation of applications that previously operated only on servers to the network, creating the notion of in-network computing (INC). Because failures can occur in the data plane, fault tolerance mechanisms are essential for INC. However, INC operators and developers must manually set fault tolerance requirements using domain knowledge to change the source code. These manually set requirements may take time and lead to errors in case of misconfiguration. In this work, we present ARAUCARIA, a system that composes fault tolerance building blocks for INC based on high-level intents. The system allows the specification of requirements using an intent language, which allows the expression of consistency and availability requirements in a constrained natural language. A refinement process translates the intent and instruments the INC with essential building blocks and configurations. Our prototype of ARAUCARIA enables fault tolerance for INC applications on BMv2 and in a testbed with Tofino ASICs. Experiments show that the system provides fault tolerance with negligible overhead.
Load balancing solutions monitor the infrastructure and redistribute network traffic or application requests in order to adapt to variations in network or server loads. However, these schemes rely on monitoring mechanisms that observe only specific segments of the infrastructure, i.e., network core or end-hosts, which may lead them to make suboptimal decisions. In this paper, we present P4eBalancer, a system that leverages an advanced monitoring mechanism capable of observing the entire distributed infrastructure to make loadbalancing decisions. P4eBalancer incorporates an intelligent offline control loop, operating in the control plane, making global decisions with a reinforcement learning agent, and an online control loop in edge switches, which makes quick decisions and reacts to network variations. We implemented a prototype using the BMv2 P4 software switch. Our results show that P4eBalancer can make better load balancing decisions using end-to-end metrics.
Network anomaly detection based on Deep Learning has already achieved outstanding performance results. However, the performance obtained by deep learning solutions is partially explained by the large scale of such underlying models. This paper studies the energy and performance trade-offs for deep learning models and their hyperparameter configurations when applied to network anomaly detection. The paper proposes an energy and performance profiling mechanism to observe the results obtained from different configurations of a given model, using a combination of statistical and instrumented profiling.
Achieving high‐performance aggregation is essential to scaling data‐parallel distributed machine learning (ML) training. Recent research in in‐network computing has shown that offloading the aggregation to the network data plane can accelerate the aggregation process compared to traditional server‐only approaches, reducing the propagation delay and consequently speeding up distributed training. However, the existing literature on in‐network aggregation does not provide ways to deal with slower workers (called stragglers). The presence of stragglers can negatively impact distributed training, increasing the time it takes to complete. In this paper, we present Serene, an in‐network aggregation system capable of circumventing the effects of stragglers. Serene coordinates the ML workers to cooperate with a programmable switch using a hybrid synchronization approach where approaches can be changed dynamically. The synchronization can change dynamically through a control plane API that translates high‐level code into switch rules. Serene switch employs an efficient data structure for managing synchronization and a hot‐swapping mechanism to consistently change from one synchronization strategy to another. We implemented and evaluated a prototype using BMv2 and a Proof‐of‐Concept in a Tofino ASIC. We ran experiments with realistic ML workloads, including a neural network trained for image classification. Our results show that Serene can speed up training by up to 40% in emulation scenarios by reducing drastically the cumulative waiting time compared to a synchronous baseline.
Network programmability allows modification of fine-grain data plane functionality. The performance benefits of data plane programmability have motivated many researchers to offload computation that previously operated only on servers to the network, creating the notion of in-network computing (INC). Because failures can occur in the data plane, fault tolerance mechanisms are essential for INC. However, INC operators and developers must manually set fault tolerance requirements using domain knowledge to change the source code. These manually set requirements may take time and lead to errors in case of misconfiguration. In this work, we present Araucaria, a system that aims to simplify the definition and implementation of fault tolerance requirements for INC. The system allows requirements specification using an intent language, which enables the expression of consistency and availability requirements in a constrained natural language. A refinement process translates the intent and incorporates the essential building blocks and configurations into the INC code. We present a prototype of Araucaria and analyze the end-to-end system behavior. Experiments demonstrate that the refinement scales to multiple intents and that the system provides fault tolerance with negligible overhead in failure scenarios.
The growing popularity of high throughput and low latency applications introduces new challenges in adapting the current network design practices to fit these requirements. With the advent of software-defined and programmable networks, there are new opportunities to optimize the operation of established mechanisms, such as peer-to-peer (P2P) communication. In this paper, we propose P4-TURNet, a new system that enables NAT traversal by managing multiple programmable switches that act as P2P relay servers. We discuss how P4-TURNet can be employed to provide massive communication at scale to achieve restrictive performance requirements. We evaluate the system in a simulated environment and find that it enables a TURN server to handle 400 times more simultaneous users compared to traditional on-server packet relaying.
The demand for machine learning (ML) has increased significantly in recent decades, enabling several applications, such as speech recognition, computer vision, and recommendation engines. As applications become more sophisticated, the models trained become more complex while also increasing the amount of data used for training. Several domain-specific techniques can be helpful to scale machine learning to large amounts of data and more complex models. Among the methods employed, of particular interest is offloading machine learning functionality to the network infrastructure, which is enabled by the use of emerging programmable data plane hardware, such as SmartNICs and programmable switches. As such, offloading machine learning to programmable network hardware has attracted considerable attention from the research community in the last few years. This survey presents a study of programmable data planes applied to machine learning, also highlighting how in-network computing is helping to speed up machine learning applications. In this article, we provide various concepts and propose a taxonomy to classify existing research. Next, we systematically review the literature that offloads machine learning functionality to programmable data plane devices, classifying it based on our proposed taxonomy. Finally, we discuss open challenges in the field and suggest directions for future research.
Internet of Things (IoT) forensics faces challenges such as acquiring, identifying, and analyzing evidence. This process is complex due to the exponential growth in IoT devices and the security requirements such as anonymity, non-tampering, and tracking necessary in this context. The blockchain paradigm has been widely used to solve these challenges in IoT environments. However, collecting a large volume of data in IoT can typically lead to bottlenecks in the blockchain. This paper proposes a system called IoTP4Chain, which can collect, identify, aggregate, and filter data from IoT systems based on a taxonomy and respective library of preprocessing functions that execute on a programmable data plane. This allows for efficient and scalable forensic evidence collection on IoT systems before storing that data on a blockchain.
Programmable accelerators enable the execution of applications intended for running in usual servers. However, inappropriately running applications on these devices can lead to load imbalance and performance degradation. An alternative to tackle this problem is load balancing, but existing in-network load balancers typically have no visibility of accelerators and often hard code policies in the switch source code. In this article, we present P4Hauler , an accelerator-aware in-network load balancer. In particular, our design discusses how to enforce load-balancing decisions in a programmable switch in a resource-aware manner, allowing different policies to handle traffic according to applications' needs. We use monitoring and compression techniques to store application resources in a programmable switch for resource-aware decisions. In addition, we propose building blocks that operators can dynamically choose to realize different load balancing policies on-the-fly. We implemented and evaluated a prototype of P4Hauler on a testbed to show its efficiency and deployment feasibility. Our results indicate that P4Hauler can support 27% more load and decrease the flow completion time by around 13% using only a single accelerator. Also, extensive simulations confirm the performance gain of P4Hauler at scale compared to the state-of-the-art.
Observability is essential for providing insights about the network state. These insights are helpful for multiple tasks, such as providing better load balancing, congestion control, and troubleshooting. However, existing observability solutions are often confined to two distinct silos: either within the network infrastructure or on the end-hosts. To bridge this gap, in this paper, we present P4NetIntel, a system to track the entire life-cycle of a flow using end-to-end telemetry. The system extends INT techniques with host telemetry using eBPF, which can monitor application requests without changing the application code. P4NetIntel switches employ techniques to reduce the telemetry overhead, such as discretizing monitoring values and sampling. In addition, eBPF-XDP and TC hooks are used on hosts to intercept and monitor incoming packets transparently to applications. We implemented a prototype of P4NetIntel on the behavior model for P4 programs and in a hardware testbed with Nvidia-Mellanox’s Bluefield-2 SmartNICs. Our results show that our solution can perform end-to-end monitoring with negligible impact on the request/response time.
There is a growing move to offload functionality, e.g., TCP or key-value stores, into programmable networks - either on SmartNICs or programmable switches. While offloading promises significant performance boosts, these programmable devices often provide little visibility into their performance. Moreover, many existing tools for analyzing and debugging performance problems, e.g., distributed tracing, do not extend into these devices. Motivated by this lack of visibility, we present the design and implementation of an observability framework called Foxhound, which introduces a co-designed query language, compiler, and storage abstraction layer for expressing, capturing and analyzing distributed traces and their performance data across an infrastructure comprising servers and programmable data planes. While general, Foxhound's query language offers optimized constructs which can circumvent limitations of programmable devices by pushing down operations to hardware. We have evaluated Foxhound using a Tofino switch and a large scale simulator. Our evaluations show that our storage layer can support common tracing tasks and detect associated problems at scale.
O protocolo QUIC tem como propósito melhorar o desempenho de aplicações Web, permitindo o estabelecimento de conexões multiplexadas sobre o protocolo UDP. No entanto, com a popularização de serviços baseados em QUIC, esses passaram a ser alvo de tentativas de ataques maliciosos, principalmente de ataques de negação de serviço (DoS). Apesar de já existirem soluções para mitigação de ataques contra QUIC operando em endpoints, soluções baseadas em planos de dados programáveis (PDP) para detectar e mitigar ataques ao protocolo QUIC são pouco exploradas. Neste artigo, é apresentado o QUIC-Tr4ck, um sistema para rastreamento de pacotes QUIC que combina de forma híbrida estratégias empregadas no plano de dados programável (utilizando a linguagem P4 e sketches) e estratégias executando em um controlador SDN (consolidando snapshots para uma análise holística do estado da rede). QUIC-Tr4ck permite que switches interceptem conexões QUIC e identifiquem clientes maliciosos de maneira proativa e preventiva, isto é, antes que eles exauram os recursos de um servidor.
A evolução da computação nos últimos 50 anos passou pelo foco no algoritmo e sua execução eficiente, com dados locais, para foco na informação global, com máquinas capazes de entender o problema e resolvê-lo autonomamente. A TV levou 26 anos para chegar a 100 milhões de pessoas, enquanto que o computador pessoal, de 1975, levou 16 anos. O acesso à web por 100 milhões de pessoas levou 7 anos depois de seu lançamento em 1991, e o smartphone (de 2007) levou apenas 3 anos para atingir a mesma marca. O Whatsapp levou apenas 3,5 anos, e este tempo, antes medido em anos, agora se mede em meses, pois o ChatGPT levou apenas 2 meses para atingir 100 milhões de usuários. Este mundo em que a velocidade adaptação a novas tecnologias é tão alta reflete não somente a evolução da Computação nos últimos 50 anos, mas também o surgimento de muitas áreas específicas da Computação, para que se pudesse estudar mais profundamente cada novo problema. Aliando-se especificidade com necessidade de velocidade, fica evidente que a capacidade de aprender e saber utilizar novos conceitos é um diferencial importante na formação de profissionais capacitados. Neste contexto, o Programa de Pós-Graduação em Computação (PPGC) da Universidade Federal do Rio Grande do Sul (UFRGS) realizou nos dias 05 e 06 de outubro a “Escola de Computação – PPGC/UFRGS 50 Anos”, que se somou a uma série de ações, que ocorreram ao longo de 2023, para comemorar os 50 anos do PPGC. O evento, que aconteceu presencialmente na uMov.me Arena, na cidade de Porto Alegre, foi uma oportunidade única de discutir temas relevantes no campo da computação e refletir sobre as transformações das últimas cinco décadas. O evento teve como objetivo abordar a evolução da computação ao longo dos últimos 50 anos, destacando como a área passou de um foco em algoritmos e eficiência de execução para uma ênfase na informação global e máquinas capazes de resolver problemas de forma autônoma. A escola contou com oito apresentações que abordaram tópicos de vanguarda em diversas áreas de pesquisa no PPGC. Cada apresentação foi acompanhada por um capítulo que faz parte do presente livro, contribuindo para a disseminação do conhecimento gerado no evento. A Escola foi agraciada com o patrocínio da Nelogica e SDC, além do apoio da Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES), da Sociedade Brasileira de Computação (SBC) e da uMov.me. A “Escola de Computação – PPGC/UFRGS 50 Anos” foi destinada a alunos de graduação, pós-graduação e à sociedade em geral, proporcionando um ambiente propício para a discussão e reflexão sobre os avanços e desafios da computação.
Cybersecurity has assumed an increasingly critical role as a fundamental pillar of a digital society, deeply interconnected and increasingly dependent on services provisioned via consolidated (e.g., 4G/5G) and emerging (such as artificial intelligence) technologies and concepts.In this context, expectations have increased that computing can contribute to solving emerging challenges in cybersecurity, especially those challenges intrinsically influenced by the particularities of Brazilian society.In this sense, there is great expectation about how computational solutions can support cybersecurity professionals and researchers in solving the challenges that plague our digital society, such as fake news, cyber scams, identity theft, data theft, privacy violations, etc.This chapter will address the cybersecurity research landscape, highlighting the opportunities and challenges that are relevant for the next decade: People-centric security, Artificial intelligence and security and Security in the era of programmable networks. ResumoA cibersegurança tem assumido um papel cada vez mais crítico como pilar fundamental de uma sociedade digital, profundamente interconectada e cada vez mais dependente de serviços provisionados via tecnologias e conceitos consolidados (por ex., 4G/5G) e emergentes (como inteligência artificial).Neste contexto, aumentaram as expectativas de que a computação possa contribuir na solução dos desafios emergentes em segurança cibernética, em especial àqueles desafios intrinsecamente influenciados pelas
Network services and applications are targeted by different types of attacks on a daily basis. One of the most common and devastating types is Distributed Denial of Service (DDoS) attacks. Considering the emergence of data plane programmability, in this paper, we propose Bungee-ML, an innovative, hybrid approach that combines the fast processing speed of the data plane and the high capacity and intelligence of the control plane to mitigate DDoS attacks. Bungee-ML continuously monitors traffic at the data plane to detect traffic anomalies and supplies machine learning models (running in the control plane) with inputs to perform in-depth traffic analysis. We refer to this as vertical cooperation. Additionally, our approach progressively pushes back malicious traffic farther away from the victim through horizontal mitigation coordination between forwarding devices. Our evaluation of a P4-built prototype demonstrates that Bungee-ML is highly accurate in identifying and mitigating sources of attack due to the vertical cooperation and has a low resource footprint. Furthermore, our pushback strategy saves network bandwidth by mitigating non-legitimate traffic closer to its sources.
Load balancing network traffic through multiple shortest-paths has become common practice to efficiently utilize the network infrastructure. Despite widespread adoption, Equal-Cost Multi-Path (ECMP) delivers performance far from optimal. Several load balancing solutions utilize Weighted-Cost Multi-Path (WCMP), splitting incoming traffic between links proportionally to link weights. However, implementing WCMP requires the controller to update match+action rules whenever the weights must be changed, introducing a delay before the appropriate traffic split can be applied. Additionally, weighted traffic splits are applied over network flows without regard to flow characteristics or needs. We propose CrossBal, a hybrid load balancing system based on Deep Reinforcement Learning (DRL) that focuses its efforts on high-impact elephant flows. The DRL agent is modeled to be able to efficiently utilize network links while minimizing the action space, allowing the agent to quickly learn how to load balance. Further, CrossBal can quickly react to network changes by monitoring and switching active routes directly in the data plane. Our evaluation shows that CrossBal can efficiently utilize network resources, using most available links, while also reducing link utilization imbalance. We also evaluate the elephant flow detection employed by CrossBal, showing how it can quickly identify elephant flows while efficiently utilizing switch resources.
Achieving high-performance aggregation is essential to scale data-parallel distributed machine learning (ML) training. Recent research efforts in the area of in-network computing have shown that offloading the aggregation to the network data plane can accelerate the aggregation process compared to traditional server-only approaches, reducing the propagation delay and consequently speeding up distributed training. However, the existing literature on in-network aggregation does not provide ways to deal with slower workers (called stragglers). The presence of stragglers can negatively impact distributed training, increasing the time it takes to complete. In this paper, we present Serene, an in-network aggregation system capable of circumventing the effects of stragglers. Serene coordinates the ML workers to cooperate with a programmable switch according to a hybrid synchronization approach. We also employ an efficient data structure for managing synchronization. We implemented and evaluated a prototype using BMv2 and realistic ML workloads, including a neural network trained for image classification. Our preliminary results show that Serene can speed up training by up to 40% in emulation scenarios.
Network Functions Virtualization (NFV) is a novel paradigm that aims to minimize operational and capital expenditures, by decoupling network functions from dedicated hardware and implementing them as Virtualized Network Functions (VNFs) instead. However, to fulfill such expectations, VNFs must be implemented efficiently, offering high performance and energy efficiency, which is not always feasible on General-Purpose Processors (GPPs). Thus, the use of reconfigurable accelerators, typically based on Field-Programmable Gate Arrays (FPGAs), has been proposed to offer higher efficiency whilst not forsaking the flexibility that is the core of the NFV paradigm. Not all VNFs or even VNF Components (VNFCs), however, are suitable for FPGA acceleration. This leads to new challenges related to identifying those VNFCs that should be deployed in FPGAs, maximizing the reuse of developed FPGA accelerators, and managing this heterogeneous infrastructure. To address these challenges, in this paper we present an enhanced design of VNFAccel, a platform to manage VNFCs in heterogeneous NFV infrastructures. We evaluate the performance and energy efficiency of the implemented functions in comparison to GPP-based solutions, showing that, when properly used, FPGAs can provide relevant benefits while maintaining the flexibility and reuse potential envisioned for NFV.
David W. Hutchison合作论文数Faculty of Science and Technology;Lancaster University;Computing Department13