The global network traffic is increasing at a fast rate due to the growth of video platform such as Netflix, YouTube, and so on. Most of the content on today's Internet is processed through content delivery networks (CDNs) and a layer-7 proxy is one of the most fundamental technologies for the CDN service. As HTTP/2 recently has become the dominant application-layer protocol, HTTP/2 proxy is also gaining its popularity. However, existing layer-7 proxy consumes a large portion of CPU cycles in just relaying content from back-end servers.
In this dissertation, we propose a SmartProxy which is a networked system design for accelerating a layer-7 proxy by harnessing SmartNICs. Our system is split into host CPU and NIC stacks. The host CPU stack is designed to perform complex tasks working as control plane while the NIC stack carries out simple tasks working as data plane. Our design is to offload payload relaying on SmartNICs and the host CPU determines the HTTP/2 stream-level mapping between clients and back-end servers. Our evaluation demonstrates that SmartProxy accelerates an HTTP/2 proxy by 1.3 to 2.7 times compared to Nginx HTTP/2 proxy.