1. TCP/IP 전송 계층(Transport Layer) 개요
- 프로토콜 그룹: 인터넷 통신의 표준인 TCP/IP 모델의 핵심 계층.
- 계층 구조: 응용, 전송, 네트워크, 데이터 링크, 물리 계층으로 구성된 5계층 모델 기준.
- 역할: 응용 계층의 메시지를 받아 패킷으로 캡슐화하여 프로세스 간 통신(프로세스-to-프로세스)을 제공.
- 데이터 단위: TCP는 Segment, UDP는 Datagram으로 명명.
2. TCP (Transmission Control Protocol)
신뢰성을 최우선으로 하는 연결 지향적 전송 프로토콜임.
- 연결 방식: 3-way handshake를 통한 논리적 연결 설립(Connection Setup).
- 통신 단계: 연결 수립, 데이터 전송, 연결 해제(Connection Termination)의 3단계 절차 수행.
- 신뢰성 보장: 흐름 제어, 오류 제어, 혼잡 제어를 통한 데이터 전송 보장.
- 오류 제어 방식: Checksum, 확인 응답(ACK), 타임아웃을 이용한 재전송 및 순서 정렬.
- 단점: 헤더 크기가 크고 신뢰성 보장 절차로 인해 UDP 대비 비교적 느린 속도.
3. UDP (User Datagram Protocol)
속도와 효율성을 강조하는 비연결형 프로토콜임.
- 연결 방식: 별도의 세션 수립 과정(Handshake)이 없는 비연결형 서비스 제공.
- 단순성: 흐름 제어, 오류 제어, 혼잡 제어 기능을 제공하지 않는 간결한 구조.
- 장점: 적은 양의 오버헤드와 수신 여부 미확인으로 인한 매우 빠른 전송 속도.
- 용도: 신뢰성보다 실시간성이 중요한 소량의 데이터 전송에 적합.
4. TCP vs UDP 비교 요약
| 구분 | TCP | UDP |
|---|---|---|
| 연결 방식 | 연결 지향 (Connection-oriented) | 비연결형 (Connectionless) |
| 신뢰성 | 높음 (오류/흐름/혼잡 제어) | 낮음 (제어 기능 없음) |
| 데이터 단위 | Segment | Datagram |
| 속도 | 비교적 느림 | 매우 빠름 |
| 주요 사례 | HTTP, 파일 전송(FTP), 이메일(SMTP) | 스트리밍, 온라인 게임, VoIP, DNS |
5. 적용 사례 비교
① 파일 다운로드 (TCP 권장)
- 이유: 데이터의 일부분이라도 손실되거나 훼손되면 파일 전체를 사용할 수 없기 때문.
- 특징: 전송 지연보다 데이터의 정확한 전달(신뢰성)이 훨씬 중요한 상황.
② 라이브 방송 스트리밍 (UDP 권장)
- 이유: 손실된 프레임을 재전송할 경우 전체적인 방송 지연이 발생하기 때문.
- 특징: 짧은 화면 끊김(손실 패킷 무시)보다 실시간 유지(연속성)가 더 중요한 상황.
추가 정리
Q. TCP와 UDP의 차이점을 묻는다면?
- “신뢰성과 속도 중 무엇을 우선하느냐의 차이임. TCP는 3-way handshake를 통해 연결을 맺고 흐름/오류 제어를 수행하여 데이터의 정확성을 보장하는 반면, UDP는 이러한 절차를 생략하여 오버헤드를 줄이고 실시간성을 극대화한 프로토콜임.”
Q. UDP의 비신뢰성을 보완할 방법은 없는지?
- “응용 계층에서 별도의 시퀀스 번호나 확인 응답 로직을 구현하여 보완 가능함. 최근의 HTTP/3(QUIC)가 UDP 위에서 신뢰성을 구현한 대표적인 사례임.”