TCP는 데이터 손실이 없지만 속도가 느리다
UDP는 데이터 손실은 발생하지만 속도가 빠르다.
HTTP/3는 왜 UDP를 선택 했을까 개인적인 생각을 정리한다.
HTTP의 경우 네트워크 패킷을 확인 할 경우 평문으로 전송되어 보안이 취약함.
아래와 같이 전달되는 내용을 모두 확인 가능.
그래서 대중적으로 사용하는 방법이 HTTPS
하지만 HTTPS는 TCP + TLS 1.3 적용되어 있음.
TCP SYN 시작 시간 : 23초 948ms
TLS ServerHello 응답 수신 시간 : 24초 067
핸드 쉐이크 과정만 100ms 이상 소요
핸드쉐이크 소요시간 문제를 해결하기 위해 QUIC(Quick UDP Internet Connection) Protocol 적용
구글링한 정보로는 최대 100ms 로 작성되어 있지만 IETF QUIC working group HTTP/3 working draft 에서도 low-latency라고 작성되어 있고 정확한 소요 시간은 찾지 못한. 확인 후 업데이트 필요.
UDP를 사용 할 경우 NAT환경에서 Port 정보가 변경되어 데이터가 손실되는 경우가 발생함.
NAT Timeout으로 인한 Port 정보 변경 문제를 해결 하기 위해 QUIC Protocol 적용
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/
'TIP' 카테고리의 다른 글
[GIT] git pull Error (error: Your local changes to the following files would be overwritten by merge) (0) | 2020.09.08 |
---|---|
[MAC] 터미널 프롬프트 변경 (0) | 2020.09.07 |
올것이 온것인가?? 구글 애드센스 무효 트래픽 문제 해결 방법 (0) | 2020.07.06 |
변수명 표기법 (0) | 2020.07.06 |
티스토리 코드 블럭 예쁘게 꾸미기 (3) | 2020.07.04 |