QUIC is a UDP-based transport layer protocol designed to address a number of existing problems with TCP/TLS. One of the popular applications of QUIC is large-file content delivery such as video streaming, so QUIC-based content carriers must promise good throughput to meet their needs. However, for large-file content delivery, QUIC servers consume a significant amount of CPU cycles for mechanical and repetitive disk I/O and network I/O. This has an adverse impact on QUIC content delivery performance. Inspired by a previous work, IO-TCP, this thesis presents IO-QUIC, an architecture that separates the QUIC stack and offloads heavy data plane operations to SmartNIC. Through experiments, we confirm that the IO-QUIC design saves the host CPU cycles of the existing QUIC server, and we explore the ways to achieve extra performance improvements through performance analysis.
QUIC은 UDP 기반의 전송 계층 프로토콜로, TCP/TLS의 여러 고질적인 문제점들을 해결하고 이를 대체하고자 디자인 되었다. 현대에는 비디오 스트리밍과 같은 large size content delivery에 대한 요구가 계속해서 증가하고 있고, QUIC content 전달자도 이에 대한 요구에 맞추어 대역폭 성능을 개선해야 할 필요가 있다. 그러나, 대용량 컨텐츠 전달을 위해 QUIC 서버는 기계적이고 반복적인 디스크 I/O와 네트워크 I/O에 상당량의 CPU cycle을 소모하고 있다. 이는 QUIC content delivery 성능에 상당한 악영향을 미친다. 이에 이전의 연구, IO-TCP로부터 영감을 받아, 우리는 IO-QUIC, QUIC 스택을 분리하여 무거운 data plane 연산을 SmartNIC으로 오프로딩하는 아키텍처를 제시한다. 실험을 통해 우리는 IO-QUIC 디자인을 통해 기존의 QUIC 서버의 호스트 CPU cycle을 아낄 수 있음을 확인하고, 성능 분석을 통해 추가적인 성능 향상에 도달할 방안을 모색한다.