1. 개요
TCP (Transmission Control Protocol)
- 신뢰성을 보장하는
연결 지향형 프로토콜
- 데이터의 정확한 전송과 순서를 보장
- 주요 특징: 데이터 손실이 허용되지 않는 애플리케이션에서 사용
UDP (User Datagram Protocol)
- 빠른 전송을 목표로 한
비연결형 프로토콜
- 데이터 손실이나 순서 보장을 하지 않음
- 주요 특징: 실시간 전송이 중요한 애플리케이션에서 사용
2. TCP의 특징
1) 연결 지향 (Connection-Oriented)
- 데이터 전송 전에
3-way Handshake 과정을 통해 송신자와 수신자 간 연결을 설정
2) 신뢰성 (Reliable)
- 데이터가 손실되거나 손상되면 재전송
- 패킷 순서를 보장
3) 흐름 제어 및 혼잡 제어
4) 사용 사례
- 파일 전송(FTP), 이메일(SMTP), 웹 브라우징(HTTP/HTTPS) 등 데이터 손실이 허용되지 않는 애플리케이션
3. UDP의 특징
1) 비연결형 (Connectionless)
2) 빠른 전송 속도
- 패킷 손실이나 순서에 신경 쓰지 않아 전송 속도가 빠름
3) 신뢰성 부족
- 데이터 손실에 대한 재전송이 없으며 순서를 보장하지 않음
4) 사용 사례
- 스트리밍(비디오, 음악), VoIP(음성 통화), 온라인 게임 등 실시간 성능이 중요한 애플리케이션
4. TCP와 UDP의 주요 차이점
| 특징 | TCP | UDP |
|---|
| 연결 방식 | 연결 지향형 (3-way Handshake) | 비연결형 |
| 데이터 신뢰성 | 보장 (패킷 손실 시 재전송) | 보장하지 않음 |
| 데이터 순서 | 순서 보장 | 순서 보장하지 않음 |
| 속도 | 느림 | 빠름 |
| 사용 사례 | 파일 전송, 이메일, 웹 | 스트리밍, VoIP, 게임 |
5. TCP 3-Way Handshake
TCP 연결을 설정하는 과정은 다음 세 단계로 이루어짐:
1. SYN: 클라이언트가 서버에 연결 요청을 보냄
2. SYN-ACK: 서버가 요청을 받고 연결 허가 신호를 보냄
3. ACK: 클라이언트가 서버의 응답을 확인하고 데이터 전송 시작
6. 마무리
TCP와 UDP는 각각의 장단점이 있으며, 애플리케이션의 요구사항에 따라 선택이 달라집니다. TCP의 안정성과 UDP의 속도를 비교하며 각각의 특징을 활용하는 것이 중요합니다. 실시간 서비스와 데이터 신뢰성이 중요한 시스템의 차이를 설계 단계부터 고려해야겠다는 점을 배웠습니다.