-
네트워크 - IP(Internet Protocol) 그리고 TCP와 UDP네트워크 2026. 7. 20. 20:18
IP(인터넷 프로토콜)한계와, 그 한계를 TCP가 어떻게 보완하는지, 그리고 UDP는 왜 다른 선택을 했는지 정리해보려고 합니다.
1. 인터넷 프로토콜 스택은 4계층으로 이루어져 있다
우리가 인터넷으로 데이터를 주고받을 때, 실제로는 여러 계층의 프로토콜이 순서대로 데이터를 감싸고 벗기며 동작하게 됩니다.
프로토콜 4계층을 표로 정리해보자면 다음과 같습니다.
계층 이름 프로토콜/예시 역할 4 애플리케이션 계층 HTTP, FTP, DNS 실제 우리가 사용하는 서비스 데이터(웹 문서 등)를 생성 3 전송 계층 TCP, UDP 포트를 이용해 프로세스 간 데이터 전달, 신뢰성 제어 2 인터넷 계층 IP 목적지 IP 주소까지 패킷을 전달(라우팅) 1 네트워크 인터페이스 계층 이더넷, LAN 드라이버, 물리 장치 실제 케이블/신호로 데이터를 전송 데이터를 보낼 때는 4계층 → 1계층 순으로 각 계층의 헤더가 씌워지고(캡슐화), 받는 쪽에서는 1계층 → 4계층 순으로 헤더를 하나씩 벗겨내며(역캡슐화) 원래 데이터를 복원하게 됩니다.
2. IP(인터넷 프로토콜)만으로는 부족하다
인터넷 계층의 IP는 패킷을 목적지까지 전달하는 역할을 하지만, 딱 여기까지만 책임집니다. IP 패킷에는 출발지/목적지 IP 주소 정보만 있을 뿐, 다음과 같은 정보가 빠져 있습니다.
- 포트 정보 없음: 같은 컴퓨터 안에서 어떤 프로세스(애플리케이션)에게 데이터를 전달해야 하는지 알 수 없다.
- 순서 정보 없음: 패킷을 여러 개로 나눠 보내도, 도착한 순서가 보낸 순서와 같다는 보장이 없다.
- 전송 신뢰성 없음: 패킷이 중간에 소실되거나 유실되어도 IP 자체는 이를 감지하거나 재전송하지 않다.
즉, IP는 신뢰할 수 없는 프로토콜이기 때문에 전송 계층의 도움이 필요합니다.
3. TCP: 가상의 연결로 신뢰성을 보장한다
TCP(Transmission Control Protocol)는 IP가 채우지 못한 빈틈을 메워주는 전송 계층 프로토콜입니다. TCP 세그먼트에는 다음 정보가 담겨 있습니다.
- 출발지 포트 / 목적지 포트
- 전송 제어 정보(플래그, 윈도우 크기 등)
- 순서(Sequence) 정보
이 세그먼트가 다시 IP 패킷 안에 담겨서 전송되기 때문에, 최종적으로는 IP 패킷 안에 TCP 세그먼트가 들어있고, 그 안에 실제 데이터가 들어있는 구조가 됩니다.
TCP의 대표적인 특징 중 하나가 3-way handshake 인데, 실제로 물리적인 회선이 연결되는 것은 아니지만, 통신을 시작하기 전에 서로 연결할 준비가 되었는지 확인하는 가상의 연결 과정입니다.
3-way handshake 과정
단계 플래그 설명 1 클라이언트 → 서버 SYN 클라이언트가 연결을 요청하며 SYN(동기화) 패킷 전송 2 서버 → 클라이언트 SYN ACK 서버가 요청을 수락하고, 자신도 SYN을 보내며 동시에 클라이언트의 SYN에 대한 ACK(응답) 전송 3 클라이언트 → 서버 ACK 클라이언트가 서버의 SYN에 대한 ACK를 전송하며 연결 완료 이 과정을 통해 양쪽 모두 상대방이 내 요청을 받았고, 통신할 준비가 되었다는 것을 서로 확인한 뒤에 데이터 전송을 시작합니다. 이 덕분에 TCP는 순서 보장과 데이터 전달 신뢰성을 확보할 수 있습니다.
4. UDP: 연결 없이, 단순하고 빠르게
UDP(User Datagram Protocol)는 TCP와 정반대의 선택을 한 프로토콜입니다.
- 3-way handshake 같은 연결 과정이 없음
- 순서 보장이 없음
- 전송 신뢰성 보장이 없음
이렇게만 보면 단점처럼 보이지만, 사실 이것이 UDP의 핵심 장점이기도 합니다. 가상 연결 과정 자체가 없다 보니 구조가 단순하고, 그만큼 속도가 빠릅니다.
UDP는 IP와 거의 비슷한 수준의 기능만 제공하는데, IP에 없는 다음 두 가지 정보만 추가로 가지고 있습니다.
- 포트 정보: 어떤 프로세스로 전달할지 구분 가능
- 체크섬(checksum): 데이터가 훼손되지 않았는지 검증하는 최소한의 무결성 체크
5. TCP vs UDP, 언제 무엇을 쓸까?
구분 TCP UDP 연결 방식 3-way handshake(가상 연결) 연결 과정 없음 순서 보장 O X 전송 신뢰성 O (재전송, 흐름/혼잡 제어) X 속도 상대적으로 느림 상대적으로 빠름 대표 활용 웹(HTTP), 파일 전송, 이메일 실시간 스트리밍, 온라인 게임, DNS 정리하면, IP는 일단 목적지로 보내기만 담당하는 최소한의 프로토콜이고, 그 위에서 TCP는 신뢰성과 순서를, UDP는 속도와 단순함을 각각 선택한 전송 계층 프로토콜이라고 볼 수 있습니다.
'네트워크' 카테고리의 다른 글
네트워크 - 쿠키(Cookie) (0) 2026.07.20 네트워크 - HTTP 헤더 정리 (1) 2026.07.20 네트워크 - HTTP의 특징과 속성 (0) 2026.07.20