네트워크에서 자주 언급되는 두 가지 전송계층 프로토콜, TCP와 UDP에 대해 정리해보고자 한다.
전송계층이란?
TCP와 UDP는 모두 OSI 7계층 중 전송계층(Transport Layer)에 속하는 프로토콜이다.
이 계층은 "누구에게 어떤 데이터를 보낼지", "정확하게 잘 도착했는지"를 관리하는 역할을 한다.
쉽게 말해, 애플리케이션(게임, 웹 등)이 보내려는 데이터를 목적지까지 안전하고 효율적으로 전달하는 중간 관리자라고 볼 수 있다. TCP와 UDP는 이 역할을 서로 다른 방식으로 수행한다.
둘 다 데이터를 전송할 때 쓰이는 방식이지만, 정확성 중심이냐, 속도 중심이냐에 따라 성격이 완전히 다르다. 게임 개발자 입장에서는 두 프로토콜을 제대로 이해하고 상황에 맞게 쓰는 것이 중요하다.
TCP (Transmission Control Protocol)
TCP는 데이터를 정확하게 전달하는 데 집중하는 프로토콜이다. 데이터를 보내기 전에 상대와 "연결"을 먼저 맺고,
데이터를 잘 받았는지 확인하며, 문제가 생기면 다시 보내는 신중한 스타일이다.
게임 개발에서는 로그인, 아이템 구매, 저장 같은 중요한 요청 처리에 사용된다.
반드시 정확하게 전달되어야 하는 상황에서 필수적이다.
특징 및 장점:
- 3-way Handshake를 통한 연결 확인
- 패킷 손실 시 자동 재전송 (신뢰성 높다)
- 데이터 순서 보장
단점:
속도가 느릴 수 있다 (과정이 많기 때문이다)
실시간 반응이 중요한 상황에는 부적합하다
주요 사용 사례:
웹사이트 접속 (HTTP)
로그인 시스템
게임 내 결제, 데이터 저장 등
UDP (User Datagram Protocol)
UDP는 데이터를 빠르게 보내는 데 집중하는 프로토콜이다. 상대가 받았는지 확인하지 않고 바로 전송한다.
빠르지만, 데이터가 손실될 수 있다.
게임 개발에서는 FPS나 MOBA 같은 실시간 반응이 중요한 게임에 사용된다.
약간의 손실보다 반응 속도가 더 중요한 경우에 적합하다.
특징 및 장점:
- 연결 확인 없이 바로 전송 (속도가 빠르다)
- 오버헤드가 적고 시스템 리소스를 적게 사용한다
단점:
패킷 손실 시 재전송하지 않는다 (신뢰성이 낮다)
순서 보장이 되지 않는다
주요 사용 사례:
실시간 온라인 게임 (예: FPS, RTS)
영상/음성 스트리밍
VoIP(인터넷 전화)
TCP vs UDP 요약 비교
TCP | UDP | |
연결 여부 | 연결 후 전송 (3-way handshake) | 연결 없이 바로 전송된다 |
신뢰성 | 신뢰성 높음 (재전송, 순서 보장된다) | 낮음 (재전송 없음, 순서 보장 안 됨) |
속도 | 느림 | 빠름 |
사용 용도 | 로그인, 결제, 저장 등 | 실시간 게임, 스트리밍, 음성 통화 |
TCP와 UDP 중 어느 것이 더 낫다고 단정할 수는 없다.
두 프로토콜은 각각의 특성과 장단점이 뚜렷하며, 상황에 따라 적절하게 선택하는 것이 중요하다.
로그인이나 결제처럼 한 번이라도 잘못 처리되면 큰 문제가 생기는 통신에는 TCP를 사용하는 것이 안전하다.
반면, 플레이어의 위치 정보처럼 계속해서 반복적으로 보내는 데이터는 일부 손실이 발생해도 큰 문제가 없고,
오히려 빠른 전송이 중요한 경우이기 때문에 UDP를 사용하는 것이 더 효율적이다.
정확성이 중요하다면 TCP를, 속도와 실시간 반응이 중요하다면 UDP가 적합하다
'Game Server Class 101' 카테고리의 다른 글
Nagle 알고리즘? 무엇인가..? 진짜 작동하긴 하는가? (0) | 2025.05.21 |
---|---|
야~ 거기 CPU 좀 못 놀게 해라 Multi-Threading (0) | 2025.05.16 |