TCP는 연결 지향형 프로토콜이고 UDP는 데이터를 데이터그램단위로 전송하는 프로토콜입니다.
TCP는 가상 회선을 만들어 신뢰성을 보장하도록(흐름 제어, 혼잡 제어, 오류 제어) 하는 프로토콜로 따로 신뢰성을 보장하기 위한 절차가 없는 UDP에 비해 속도가 느린편입니다.
TCP는 그래서 파일전송과 같은 신뢰성이 중요한 서비스에 사용되고, UDP는 스트리밍, RTP와 같이 연속성이 더 중요한 서비스에 사용됩니다.
+) 하지만 UDP도 신뢰성을 UDP자체에서 보장하지 않는 것 뿐이지, 개발자가 직접 신뢰성을 보장하도록 할 수 있습니다. 그래서 HTTP/3은 QUIC이라는 프로토콜을 기반으로 하는데, QUIC은 UDP를 기반으로 합니다. 즉, UDP 자체는 신뢰성을 보장하지 않지만, 추가적인 정의를 통해 신뢰성을 보장받을 수 있습니다.
---
TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 각각 다른 특성과 사용 사례를 가지고 있는데, 여기서 강조된 주요 차이점들을 조금 더 구체적으로 설명하겠습니다.
TCP (Transmission Control Protocol)
- 연결 지향형 프로토콜: 통신을 시작하기 전에 연결 설정이 필요하며, 데이터 전송이 끝난 후에는 연결을 종료해야 합니다. 이 과정에서 송수신자 간의 핸드셰이크(handshake)가 이루어집니다.
- 신뢰성 있는 데이터 전송: 데이터 손실, 순서 변경, 중복 수신 등의 문제를 해결하기 위해 흐름 제어, 혼잡 제어, 오류 제어 기능을 제공합니다.
- 속도: 이러한 신뢰성을 보장하는 기능들 때문에 UDP보다 속도가 느릴 수 있습니다.
- 사용 사례: 파일 전송, 이메일 전송, 웹 페이지 로딩 등 신뢰성이 중요한 애플리케이션에서 주로 사용됩니다.
UDP (User Datagram Protocol)
- 비연결 지향형 프로토콜: 연결을 설정하거나 종료할 필요 없이 데이터를 바로 전송할 수 있습니다.
- 신뢰성 없는 데이터 전송: 데이터가 손실되거나 순서가 바뀔 수 있으며, 이를 애플리케이션 레벨에서 직접 관리해야 할 수도 있습니다.
- 속도: 신뢰성 관련 추가 처리가 없기 때문에 TCP보다 빠른 데이터 전송이 가능합니다.
- 사용 사례: 실시간 스트리밍, 온라인 게임, 음성 및 비디오 통화 등 연속성이 중요한 애플리케이션에서 주로 사용됩니다.
QUIC과 HTTP/3
- QUIC (Quick UDP Internet Connections): UDP를 기반으로 하면서도 TCP의 주요 이점인 신뢰성, 순서 보장, 흐름 제어 등을 제공하는 프로토콜입니다. QUIC는 기본적으로 암호화를 제공하며, 연결 설정 시간을 단축시키기 위해 핸드셰이크 과정을 최적화합니다.
- HTTP/3: HTTP/2의 후속으로, QUIC 프로토콜 위에서 동작합니다. HTTP/3은 QUIC의 장점을 활용하여 웹 통신의 신뢰성과 속도를 개선합니다.
이처럼, UDP가 기본적으로 신뢰성을 보장하지 않음에도 불구하고, 추가적인 기술적 정의를 통해 신뢰성 있는 통신을 구현할 수 있는 여지를 제공합니다. QUIC과 같은 혁신적인 프로토콜은 이러한 가능성을 현실로 만들어, 인터넷 통신의 효율성과 신뢰성을 크게 향상시키고 있습니다.
'여러가지 > 이것저것' 카테고리의 다른 글
GET과 POST의 차이점 (0) | 2024.03.18 |
---|---|
HTTPS 공개키 암호화로 안전한 키 교환, 비밀키 암호화로 효율적인 데이터 통신을 보장/ 두 암호화 방식 사용 (0) | 2024.03.18 |
HTTP, HTTPS 차이점 (0) | 2024.03.18 |
TCP 3, 4 way handshake (0) | 2024.03.18 |
웹 통신의 큰 흐름 : HTTP://WWW.GOOGLE.COM/ 을 접속할 때 일어나는 일 (0) | 2024.03.18 |