네트워크 공부하다 보면 무조건 나오는 형제들이 있다.
바로 TCP랑 UDP !
전송 계층에서 데이터를 어떻게 보낼지 결정하는 핵심 프로토콜인데, 둘 성격이 완전히 반대다.
이 블로그에서는 이 둘의 차이점과, 헷갈리기 쉬운 가상회선 vs 데이터그램 방식까지 정리해 보려고 한다.
TCP(Transmission Control Protocol): 꼼꼼하고 "신뢰성" 있는 연결
일단 이름부터 보자. Transmission Control Protocol, 전송을 "제어" 하겠다는 의지가 보인다 이름부터 ㅋㅋㅋ
TCP는 신뢰성을 최우선으로 하는 프로토콜이다. 데이터가 중간에 사라지거나 순서가 뒤집히는 꼴을 못 본다.
특징:
- 연결 지향형(Connection-oriented): 통신 전에 "나 보낼게? 받을 준비됨?" 하고 미리 확인한다.(3-way Handshake)
- 신뢰성 보장: 데이터 잘 받았는지 확인하고, 만약에 안 왔다? 다시 보낸다.
- 순서 보장: 보낸 순서대로 차곡차곡 조립해 준다.
- 속도는 좀 느리다: 왜냐? 확인 절차가 많아서 UDP보단 좀 느리다.
대표적인 기술(HandShake): HandShake = 통신에서 연결을 설정하기 위한 과정
SYNchronization = 연결 요청 및 동기화, ACKnowledgement = 확인 응답, FINish = 연결 종료 요청
- 3-way HandShake (연결할 때): SYN(똑똑) -> SYN+ACK(들어와) -> ACK(입장)
- 4-way HandShake (끊을 때): FIN(나 간다) -> ACK(잠시만) -> FIN(이제 가) -> ACK(잘 가)
어디에 쓸까? : 데이터가 하나라도 깨지면 안 되는 곳에 쓴다. ex) 웹 서핑(HTTP), 이메일, 파일 전송 등
UDP(User Datagram Protocol): 일단 던져! 빠르고 쿨한 전송
TCP를 봤으니 UDP는 반대겠죠? UDP는 User Datagram Protocol, 여기서 Datagram은 그냥 독립적인 소포라고 생각!
TCP가 꼼꼼한 모범생이라면, UDP는 성격 급한 행동파다. 신뢰성보다는 속도가 중요하다.
특징:
- 비연결형(Connectionless): 연결 확인? 그런 거 없음. 그냥 상대방 주소만 보고 일단 던진다.
- 비신뢰성: 데이터가 가다가 좀 유실되거나 순서가 뒤죽박죽돼도 신경 안 쓴다.(재전송 X)
- 속도가 빠름: 확인 절차가 없으니까 오버헤드가 적고 엄청 빠름
- 단순함: 기능이 별로 없어서 헤더도 가볍다.
어디에 쓰냐?: 좀 끊겨도 실시간성이 중요한 곳. ex) 온라인 게임, 실시간 스트리밍 등
가상회선 방식 vs 데이터그램 방식: 뭐가 다른 거야?
보통 TCP는 가상회선 방식, UDP는 데이터그램 방식을 사용한다고 한다. 이게 무슨 뜻이냐?
가상회선 패킷 교환 방식(Virtual Circuit) -> TCP
- 데이터를 보내기 전에 논리적인 길 (가상회선)을 미리 딱 닦아놓는다.
- 모든 패킷이 이 정해진 길로만 쫄래쫄래 따라간다.
- 장점: 순서가 보장되고 안정적이다. (기차선로 생각하면 됨)
데이터그램 패킷 교환 방식(Datagram) -> UDP
- 길 같은 거 안 정한다. 패킷 하나하나가 독립적으로 움직인다.
- "야, 부산으로 가!" 하고 던지면, 어떤 놈은 고속도로로 가고 어떤 놈은 국도로 가서 도착한다.
- 장점: 유연하고 빠르겠지만, 도착 순서는 뒤죽박죽일 수 있다.
| 구분 | TCP (꼼꼼이) | UDP (쿨가이) |
| 연결 방식 | 연결 지향형 (가상회선) | 비연결형 (데이터그램) |
| 신뢰성 | 높음 ( 확인 응답, 재전송 O) | 낮음 (확인 응답, 재전송 X) |
| 순서 보장 | 보장함( 순서 제어 O) | 보장 안 함 |
| 속도 | 상대적으로 느림 | 매우 빠름 |
| 패킷 교환 방식 | 가상회선 방식 | 데이터그램 방식 |
| 사용 예시 | 웹(HTTP), 이메일, 파일 전송 | 게임, 스트리밍, DNS |
정리하며,
TCP는 "야 나 보낸다? 받았어? OK, 다음 거 보낸다!" (꼼꼼, 신뢰, 연결)
UDP는 "받든 말든 난 일단 다 던진다. 알아서 받아"(속도, 실시간, 비연결)
각각 사용하는 곳이 다르기 때문에, 상황에 맞춰서 골라 쓰는 게 핵심이다.
파일 다운로드하는데 중간에 데이터가 빠지면 안 되니까 TCP,
게임하는데 총 쐈다는 정보가 1초 뒤에 정확하게 오는 것보단, 좀 씹혀도 지금 당장 오는 게 중요하니까 UDP
정확함이냐(TCP), 빠름이냐(UDP) 이것만 기억하자.
'Infra > 네트워크' 카테고리의 다른 글
| 서브넷의 모든 것: 핵심 요약과 실전 기출 풀이 (0) | 2025.12.02 |
|---|---|
| 주소창에 맨날 치는 URL, 도대체 무슨 뜻일까? (0) | 2025.11.20 |
| 스푸핑 vs 스니핑 vs 스누핑 확실한 차이점은? (0) | 2025.10.13 |
| LAN과 WAN의 차이점 (0) | 2025.09.29 |
| Mac Address란? 네트워크의 주민등록번호 (0) | 2025.06.09 |