본문 바로가기
Common/Network

[Protocol] QUIC 프로토콜이 뭐지?

by 근육곰돌이 2019. 6. 14.
728x90

 

개요

: QUIC ( Quick UDP Internet Connections ) 프로토콜은 Google을 통해 개발이 진행되었고, 지금은 표준 등록을 위해 준비한 따끈따끈한 프로토콜이라고 합니다. 2014 년에 그들은 Google 서비스, Chrome 및 모바일 앱에 대한 배포를 시작했습니다. 현재 QUIC는 모든 Google 관련 제품의 기본 프로토콜로 쓰이고 있습니다.

QUIC 패킷 예시

쉽게 말해서, Quick UDP 인터넷 연결을 의미합니다.

- 사용은 게임, 스트리밍 미디어, VoIP서비스에 자주 쓰이며, 지연시간이 적은 인터넷 전송 프로토콜입니다.

프로토콜 세계의 UDP (및 QUIC 's) 대응 물은 기본적으로 TCP (Internet Protocol (IP)와 결합하여 인터넷의 핵심 통신 언어를 구성합니다)입니다. UDP는 TCP보다 훨씬 가볍지 만 그 대가로 TCP보다 오류 수정 서비스가 훨씬 적습니다. 즉, 보내는 서버가받는 서버와 지속적으로 통신하지 않아 패키지가 도착했는지 여부와 올바른 순서로 도착했는지 여부를 확인합니다. 이것이 UDP가 게임 서비스에 적합한 이유입니다. 이러한 서비스의 경우 대기 시간을 줄이기 위해 오버 헤드를 낮추고 서버가 최신 마우스 움직임을받지 못하면 조치가 이미 진행되었으므로 서버를 수정하는 데 2 ​​~ 2 시간을 할애 할 필요가 없습니다

여튼 정리하자면, 빠르다~!

 

 

 

특징

QUIC 프로토콜은 대표적으로 TCP와 비교되어 특징을 확인할수 있습니다.

1. 전송 속도 향상 

1-1. 커넥션 과정 축소

프로토콜 비교

TCP를 통한 QUIC의 주요 성능 향상은 두 가지 중요한 차별화 요소에서 비롯됩니다.

  1. 연결 핸드 셰이크 : TCP는 연결을 설정하기 위해 3 방향 핸드 셰이크가 필요하며, 그 위에 TLS 연결도 협상해야합니다. QUIC는 UDP 위에 구축되므로 TLS를 포함하여 연결을 설정하는 데 1 개의 패킷이 필요합니다. 사실, 클라이언트와 서버가 과거에 말한 적이 있다면 우리는 제로 - 핸드 셰이크 연결에 대해 이야기하고 있습니다 - 그 시간은 75 %입니다.
  2. 멀티플렉싱 : 클라이언트와 서버 간의 통신이 다중화되며 이는 TCP 연결과 관련된 헤드 - 오브 - 라인 블로킹 문제를 극복합니다.
  3. 보안성 향성 : TLS 암호화를 기본적으로 적용하고 있습니다. 과거 SPDY와 마찬가지로 구글에서 설계한 네트워크 프로토콜은 기본적으로 암호화를 적용하고 있습니다. 서버의 포트도 디폴트가 443 UDP 포트를 사용하고 있습니다.
    1. IP Spoofing / Replay Attack 방지:  QUIC에서는 필요에 따라 Source Address Token을 발급하여 출발지 아이피를 변조 및 재생공격에 대한 검증을 수행합니다. 마치 TCP 통신에서 Sequence Number를 이용하여 신뢰관계를 맺은 클라이언트인지 검증하는 것과 같은 기능을 수행합니다.

https://www.youtube.com/watch?v=BazWPeUGS8M

 

1-2. TCP 스택과 QUIC 사이의 비교

TCP, QUIC 스택 비교

우리가 볼 수 있듯이 QUIC는 UDP의 최상위에 위치하고 있으며 암호화는 프로토콜의 일부입니다. UDP는 비 연결형 프로토콜이기 때문에 QUIC는 모든 논리를 처리하지 않아 클라이언트와 서버 간의 안정적인 연결을 보장합니다. 또한 QUIC는 응용 프로그램 계층에 내장되어 있으므로 OS 변경이 필요없는 모든 업데이트가 가능합니다.

이러한 기능과 몇 가지 다른 QUIC 기능 (향상된 정체 제어, 순방향 오류 정정)은 TCP를 통한 우위를 제공합니다. Google은 광범위한 테스트 및 측정을 수행했으며 Youtube 비디오 버퍼링을 15-18 %, Google 검색 대기 시간을 3.6-8 % 향상시키는 것으로 나타났습니다 . 

 

 

 

 

참고 출처 조사

https://netbeez.net/blog/tcp-vs-quic-new-transport-protocol/ 

https://blog.chromium.org/2015/04/a-quic-update-on-googles-experimental.html

https://www.chromium.org/quic

프로토콜 규격서 : https://docs.google.com/document/d/1WJvyZflAO2pq77yOLbp9NsGjC1CHetAXV8I0fQe-B_U/edit?pli=1#

 

QUIC Wire Layout Specification

Introduction QUIC (Quick UDP Internet Connection) is a new multiplexed and secure transport atop UDP, designed from the ground up and optimized for HTTP/2 semantics. While built with HTTP/2 as the primary application protocol, QUIC builds on decades of tra

docs.google.com

 

반응형