• 카테고리

    질문 & 답변
  • 세부 분야

    취업 · 이직

  • 해결 여부

    미해결

설명이 이해가 안되는 부분이 있어서 질문드립니다.

23.08.22 17:36 작성 조회수 332

0

네트워크쪽 강의

DEEP DIVE : HTTP/2와 HTTP/3의 차이 ★★★

마지막쪽에스크린샷 2023-08-22 오후 5.25.47.png

pdf -75페이지

이 부분이 잘 이해가 안됩니다.

http2는 전송계층에서 tcp를 쓰고, http3는 전송계층에서 udp를 쓰는 차이는 알겠습니다. 그런데

http/2는 3way(3-RTT)고 http/3 1way(1-RTT)라서 초기 연결에 http/3이 RTT 지연 시간이 우수하다고 이해를 하고 보고 있었는데.

http/2나 http/3 모두 https 위에서 돌고, TLS로 암호화통신을 구축할때, 핸드쉐이크를 활용한다. 이것을 기반으로 1-RTT만에 연결을 성립할수 있다가 이해가 안되요

http/2나 http/3 동일한 TLS로 암호화통신을 구축할때, 핸드쉐이크를 활용하는데... 왜 http/2 3way(3-RTT)인거죠??

답변 2

·

답변을 작성해보세요.

1

안녕하세요 일권님 ㅎㅎ

제가 설명을 헷갈리게 했네요... 혼란을 드려 죄송합니다.

 

http/2는 3way(3-RTT)고 http/3 1way(1-RTT)라서 초기 연결에 http/3이 RTT 지연 시간이 우수하다고 이해를 하고 보고 있었는데.

>> 네 이게 맞습니다.

http/2나 http/3 모두 https 위에서 돌고, TLS로 암호화통신을 구축할때, 핸드쉐이크를 활용한다. 이것을 기반으로 1-RTT만에 연결을 성립할수 있다가 이해가 안되요

>> 제가 섞어서 설명한 거 같습니다. HTTP + TLS = HTTPS 라고 보시면 되는데 설명할 때 각각 설명하는게 맞습니다. 혼란을 드려 죄송합니다.

http/2나 http/3 동일한 TLS로 암호화통신을 구축할때, 핸드쉐이크를 활용하는데... 왜 http/2 3way(3-RTT)인거죠??

>> 해당 부분 설명 다시 드리겠습니다.

8:35 [설명변경] * 교안과 강의 모두 수정하도록 하겠습니다.

HTTP/2의 경우 클라이언트와 서버간의 연결을 맺어 세션을 만드는데 필요한 핸드셰이크, 암호화통신을 구축하기 위한 TLS 핸드셰이크가 각각 필요했습니다. 

그러나 HTTP/3는 TLS로 암호화통신을 구축할 때의 단 한번의 핸드셰이크를 활용해 클라이언트와 서버간의 연결, 암호화 통신 모두 다 구축을 합니다.  이를 통해 1 - RTT만에 모든 연결을 성립할 수 있습니다.

앞의 그림처럼 HTTP/2는 각각 핸드셰이크가 필요하지만 HTTP/3는 단 한번의 핸드셰이크를 통해 1 - RTT만 필요한 것을 볼 수 있습니다.

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

1

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.08.24

안녕하세요, 인프런 AI 인턴이에요.
HTTP/2와 HTTP/3의 차이점과 초기 연결 지연 시간에 대한 질문이시죠.
HTTP/2는 전송 계층으로 TCP를 사용하고, HTTP/3는 전송 계층으로 UDP를 사용하는 것이 맞습니다. 초기 연결 지연 시간에 대해서는 HTTP/2가 3-way handshaking(3-RTT)을 사용하고, HTTP/3가 1-way handshaking(1-RTT)을 사용한다는 점에서 차이가 있습니다.
HTTP/2와 HTTP/3 모두 HTTPS 위에서 돌아가며, TLS로 암호화 통신을 구축할 때 핸드쉐이크를 활용합니다. 이를 바탕으로 1-RTT만에 연결을 성립할 수 있는데, 왜 HTTP/2는 3-way handshaking인지 궁금하신 거죠?

HTTP/2의 3-way handshaking은 다음과 같습니다.
1. 클라이언트가 서버에게 TCP 연결을 요청하고 SYN 패킷을 보냅니다.
2. 서버는 클라이언트에게 SYN+ACK 패킷을 보내고, 연결을 수락한다는 것을 의미합니다.
3. 클라이언트는 서버에게 ACK 패킷을 보내고, 이로써 연결이 성립됩니다.

반면, HTTP/3의 1-way handshaking은 다음과 같습니다.
1. 클라이언트가 서버에게 지능형 네트워킹(ICN)라는 방법으로 UDP 연결을 요청하고 패킷을 보냅니다.
2. 서버는 클라이언트에게 패킷을 보내는 동시에 연결을 수락합니다.

HTTP/2에서 3-way handshaking을 사용하는 이유는, TCP의 안정성을 보장하기 위해 연결을 수립하는 과정에서 신뢰성을 확인하는 작업이 필요하기 때문입니다. 한편, HTTP/3에서는 UDP를 사용하고 패킷 손실이나 지연이 발생할 수 있기 때문에, 초기 연결 지연 시간을 단축시키기 위해 1-way handshaking이 사용됩니다.

만약 더 자세한 내용을 알고 싶으시다면, HTTP/2와 HTTP/3의 스펙 문서를 참고하시기 바랍니다. 감사합니다.