본문 바로가기
TIP

HTTP/3의 TCP/UDP 요약

by Jay Son 아기 냥이 해린 짱💖 2020. 7. 8.

TCP는 데이터 손실이 없지만 속도가 느리다

UDP는 데이터 손실은 발생하지만 속도가 빠르다.

 

HTTP/3는 왜 UDP를 선택 했을까 개인적인 생각을 정리한다.

 

HTTP의 경우 네트워크 패킷을 확인 할 경우 평문으로 전송되어 보안이 취약함.

아래와 같이 전달되는 내용을 모두 확인 가능.

 

그래서 대중적으로 사용하는 방법이 HTTPS 

하지만 HTTPS는 TCP + TLS 1.3 적용되어 있음.

TCP SYN 시작 시간 : 23초 948ms

TLS ServerHello 응답 수신 시간 : 24초 067

핸드 쉐이크 과정만 100ms 이상 소요

출처 : blog.cloudflare.com

핸드쉐이크 소요시간 문제를 해결하기 위해 QUIC(Quick UDP Internet Connection) Protocol 적용

구글링한 정보로는 최대 100ms 로 작성되어 있지만 IETF QUIC working group HTTP/3 working draft 에서도 low-latency라고 작성되어 있고 정확한 소요 시간은 찾지 못한. 확인 후 업데이트 필요.

출처 : blog.cloudflare.com

UDP를 사용 할 경우 NAT환경에서 Port 정보가 변경되어 데이터가 손실되는 경우가 발생함.

NAT Timeout으로 인한 Port 정보 변경 문제를 해결 하기 위해 QUIC Protocol 적용

출처 : blog.cloudflare.com

 

Protocol layer

HTTP/1.1 HTTP/2   HTTP/3
TLS QUIC
TCP UDP
IP

 

결론 

1. HTTP의 보안 문제를 해결 하기 위해 QUIC 적용

2. HTTPS TLS의 핸드쉐이크 소요 시간을 해결 하기 위해 QUIC 적용

3. NAT 환경에서 NAT Timeout으로 인한 Port 손실을 해결 하기 위해 QUIC 적용

4. 다중 스트림 이용하여 HoL(Head of Line) 블로킹 현상 방지

 

요즘과 같이 보안 문제가 강조되고 처리 해야할 데이터가 많아지는 시점에 보안 문제와 속도 문제를 보안한 새로운 규격은 아주 매력적이라고 생각한다.

HTTP/2 상용 서비스 적용 및 대중화는 실패 한 것으로 보이지만 HTTP/3는 많은 기업에서 기술 검토 및 적용을 고려하지 않을까 생각한다.

 

출처 : https://blog.cloudflare.com/the-road-to-quic/

 

The Road to QUIC

QUIC (Quick UDP Internet Connections) is a new encrypted-by-default Internet transport protocol, that provides a number of improvements designed to accelerate HTTP traffic as well as make it more secure, with the intended goal of eventually replacing TCP a

blog.cloudflare.com

 

 

 

 

반응형