피드로 돌아가기
Cloudflare BlogBackend
원문 읽기
A QUICker SASE client: re-building Proxy Mode
Cloudflare가 Proxy Mode를 WireGuard + smoltcp 기반에서 QUIC 기반 직접 L4 프록싱으로 재구축해 다운로드/업로드 속도 2배 증가 및 레이턴시 대폭 감소
AI 요약
Context
Cloudflare One 클라이언트의 Proxy Mode는 WireGuard(L3 프로토콜) 기반 터널에 L4 TCP 트래픽을 변환하기 위해 smoltcp(Rust 기반 사용자 공간 TCP 구현)를 사용했다. smoltcp는 임베디드 시스템 최적화로 인해 최신 TCP 기능을 지원하지 않았고, 엣지에서 L3 패킷을 L4로 재변환하는 과정에서 높은 레이턴시와 느린 로드 타임이 발생했다.
Technical Solution
- WireGuard 기반 L3 터널에서 QUIC 기반 L4 직접 프록싱으로 전환: HTTP/3(RFC 9114) CONNECT 메서드를 활용해 브라우저의 SOCKS5/HTTP 요청을 L3 패킷으로 변환하지 않고 직접 QUIC 스트림으로 캡슐화
- smoltcp 제거: L3 패킷 처리 계층을 제거하고 smoltcp의 TCP 구현 제한사항 해소
- QUIC 네이티브 기능 활용: 최신 혼잡 제어(congestion control)와 흐름 제어(flow control)를 전송 계층에서 네이티브하게 처리
- 파라미터 튜닝 가능성 확보: 클라이언트와 Cloudflare 엣지 간 QUIC 파라미터 최적화를 통한 성능 조정
- 기존 MASQUE 기반 IP 패킷 프록싱 기능은 유지: QUIC 스트림을 이용한 L4 프록싱 기능 추가
Impact
- 다운로드 및 업로드 속도 2배 증가
- 레이턴시 대폭 감소
Key Takeaway
프로토콜 계층 간 변환 오버헤드는 애플리케이션 성능의 숨겨진 병목이 될 수 있으므로, 최신 멀티레이어 프로토콜(QUIC)을 활용해 엔드투엔드 레이어를 맞추는 것이 성능 최적화의 우선 고려사항이다.
실천 포인트
프록시나 터널링 솔루션을 설계하는 팀에서 하위 프로토콜(WireGuard 등)이 애플리케이션 프로토콜(TCP/HTTP)과 계층이 맞지 않는 경우, 패킷 변환 계층을 제거하고 QUIC처럼 멀티레이어 기능을 지원하는 프로토콜로 마이그레이션하면 2배 이상의 처리량 향상과 레이턴시 감소를 기대할 수 있다.