테크레시피

페이스북 “차세대 프로토콜 퀵 도입했더니…”

인터넷통신은 TCP/IP라는 프로토콜로 오랫동안 지원해지만 핵심 프로토콜인 TCP를 새로운 통신 규격인 퀵(QUIC)으로 대체하는 흐름이 강해지고 있다. TCP가 없는 암호화 기능과 효율성을 갖춘 퀵을 서비스에 도입하면서 얻은 노하우에 대해 페이스북이 밝혀 눈길을 끈다.

원래 퀵은 전송 계층 프로토콜이며 가장 유명한 통신 규격 중 하나인 TCP를 대체하는 차세대 프토로콜이다. 퀵은 원래 구글이 개발했지만 2015년부터는 인터넷 표준화 단체 IETF에 의해 개발, 표준화가 진행되고 있다. UDP를 사용해 기존 네트워크 장비에 대응하는 유연성과 TCP에는 없는 암호화 기능 등 고기능성도 양립하고 있다. 퀵은 이런 점에서 미래 인터넷을 지원하는 통신 규격으로 주목받는다.

페이스북은 자사 서비스에 퀵을 도입하면서 독자적으로 mvfst라는 소프트웨어를 퀵 구현으로 개발해 먼저 내부 네트워크에 적용해 실험을 수행, 노하우를 쌓았다. 내부 네트워크 시험을 거쳐 퀵이 인터넷 통신에 적용된 첫 장소는 한정적이고 안전하게 퀵을 롤아웃할 수 있는 충분히 성숙한 인프라인 페이스북 응용 프로그램에서 그래프QL(GraphQL)을 통한 동적 API 요청이었다.

페이스북 앱에 퀵을 도입하면서 요청 오류와 지연 감소 등 일부 개선을 볼 수 있었지만 동시에 문제도 생겼다. 퀵은 그래프QL에 의한 동적 요청에만 이용했음에도 불구하고 사진이나 동영상 같은 콘텐츠 다운로드 오류 또는 스트림 정지가 증가했다고 한다.

원인은 네트워크 대역폭 측정이 TCP에 최적화됐기 때문이다. 페이스북 앱이 실시한 요청은 다른 요청 속도와 신뢰성을 바탕으로 형식이나 품질이 변화하도록 되어 있었지만 고품질 통신을 위해 퀵에 대해 기존 TCP에 최적화된 네트워크 대역폭 측정을 하고 있었기 때문에 네트워크 품질을 과다 추정해 오류가 발생한 것이다.

페이스북은 퀵을 제한적으로 이용하는 것으로 이런 노하우를 쌓은 다음 페이스북 앱 전체에 도입했다. 이 때 우려했던 mvfst의 CPU 효율성과 트래픽 혼잡 상태를 측정하는 BBR 동작을 검증하기 위한 자체 성능 측정 도구를 개발했다. 측정 도구를 참고해 문제점을 밝혀 성능 개선에 노력한 것이다. 예를 들어 애플리케이션이 커널에 데이터 단위를 보내 커널이 데이터 크기를 최적화해 전송해주는 UDP 세그멘테이션 오프로드(UDP segmentation offload)를 이용한 것도 이런 활동 중 하나다.

페이스북이 퀵을 도입해 혜택을 크게 받은 건 동영상 관련 수치다. 버퍼 이벤트가 발생하는 간격을 나타내는 MTBR은 22% 줄었고 동영상 관련 요청 오류는 8% 줄었다. 또 동영상 스트림이 중지하는 확률은 20% 감소했다고 한다.

페이스북은 현재 네트워크상 모든 트래픽 중 75% 이상을 퀵과 HTTP/3에 의해 이뤄지고 있다고 한다. 앞으로 핸드셰이크 단축과 암호화를 실시하는 0-RTT를 활성화하고 페이스북 앱 뿐 아니라 인스타그램 앱에도 퀵을 적용해나갈 예정이다. IETF의 퀵 표준화는 2021년으로 예정되고 있어 앞으로 퀵 보급은 더 진행될 것으로 보인다. 관련 내용은 이곳에서 확인할 수 있다.

추천기사