Recently, some application (L7) processing has been moved to the network stack (including proxies) as a way to provide a common and application-agnostic interface for security policies, simplify service management, etc. This paper looks at whether L7 network functionality can be offloaded to SmartNICs to improve performance and reduce overheads. We investigate this question by examining how to offload to FPGA NICs the task of L7 dispatch: determining which application process must handle a particular application request. We find that existing protocols, e.g., gRPC on TCP or QUIC, are a hindrance for offloading because the data required to make L7 dispatch decisions can be spread out over many packets, requiring the NIC to buffer and parse a large number of packets to reconstruct L7 data. This paper presents QingNiao-an approach that co-designs application libraries, network protocols, and hardware-to make L7 dispatch feasible under NIC memory constraints. We prototype QingNiao on a 100Gbps FPGA NIC. Experiments with real-world applications show that QingNiao supports a variety of dispatch rules and achieves 7.5x to 8x throughput compared to state-of-the-art software L7 dispatcher. We have open-sourced QingNiao at [1].
翻译:暂无翻译