반응형
- 인터넷에서 데이터를 전송하는 두 가지 주요 프로토콜
Transmission Control Protocol(TCP)
- Connection-Oriented(연결 지향적)
- 3-Way Handshake(세션 연결) 방식 사용
- 데이터 전송 전에 연결을 먼저 설정 -> 안정적
- 패킷이 유실되면 재전송
3-Way Handshake 과정(이 과정이 끝나야 데이터 전송 가능)
- 클라이언트 -> 서버 : SYN(연결 요청)
- 서버 -> 클라이언트 : SYN-ACK(요청 승인)
- 클라이언트 -> 서버 : ACK(연결 완료)
신뢰성 보장(패킷 순서, 재전송)
- 패킷이 도착했는지 확인(ACK 신호)
- 순서가 어긋나면 다시 정렬
- 손실된 패킷은 재전송
적합한 사용
- 데이터 손실이 있으면 안 되는 경우
ex) 웹사이트, 금융 거래, 이메일, 파일 전송 - 순서가 중요한 경우
ex) HTTP(요청과 응답은 짝을 맞춰야 하기 때문), FTP
User Datagram Protocol(UDP)
- Connectionless(비연결성)
- 연결 과정 없이 바로 데이터 전송
- TCP처럼 세션을 유지하지 않음
- 패킷을 개별적으로 처리
- 빠름
- 재전송 기능 없음
- 데이터를 빠르게 보냄
- 신뢰도 낮음
- 데이터 패킷이 손실되거나 순서가 바뀔 수 있음
적합한 사용
- 실시간 서비스
ex)온라인 게임, VoIP, 동영상 스트리밍 - DNS 조회 : 도메인 -> IP 변환, 빠른 응답 필요
- 방송형 통신(multicast, broadcast)
차이
특징 | TCP | UDP |
---|---|---|
연결 방식 | 연결형(세션 유지) | 비연결형(세션 없음) |
신뢰성 | 신뢰성 높음(데이터 손실 없음) | 신뢰성 낮음(데이터 손실 가능) |
데이터 순서 보장 | 순서 보장(패킷이 순서대로 도착) | 순서 보장 안 됨 |
에러 검출 및 재전송 | 있음(손실 시 재전송) | 없음(손실 시 무시) |
속도 | 느림(확인 과정이 필요하기 때문) | 빠름(바로 전송) |
사용 예시 | 웹 브라우징(HTTP/HTTPS), 이메일(SMTP), 파일 전송(FTP), 메시징(TCP 기반) | 실시간 스트리밍, 온라인 게임, VoIP(음성 통화) |
반응형