담비의 개발블로그

[CS]TCP(Transmission Control Protocol)/UDP(User Datagram Protocol) 본문

CS(컴퓨터과학)

[CS]TCP(Transmission Control Protocol)/UDP(User Datagram Protocol)

담비12 2025. 1. 11. 22:36
TCP (Transmission Control Protocol)

 

TCP는 데이터의 신뢰성을 보장하는 연결 지향 프로토콜이다.

 

프로토콜이란?

컴퓨터나 네트워크 장치 간에 데이터를 주고받기 위한 규칙과 절차의 집합이다.

 

◆ 특징

▶ 연결 지향(Connection-Oriented)

- 데이터를 보내기 전에 송신자와 수신자 간에 연결을 설정한다. 이를 3-way handshake(삼중 핸드쉐이크)라고 한다.

- 3-way handshake 과정 : 클라이언트가 서버에 연결 요청(SYN) → 서버가 요청 수락(SYN-ACK) 클라이언트가 확인 응답(ACK)을 보냄 → 연결이 설정된 후에 데이터를 전송

 

신뢰성 보장

- 데이터가 순서에 맞게 전달된다.

- 손실된 데이터는 재전송한다(재전송 메커니즘).

- 데이터의 무결성을 확인한다(체크섬).

 

흐름 제어 및 혼잡 제어

- 수신자의 버퍼 상태를 고려하여 데이터 전송 속도를 조절한다.

- 네트워크 혼잡을 피하기 위해 전송 속도를 동적으로 조절한다.

 

속도

- 신뢰성을 위해 추가적인 확인 및 제어 작업이 필요하므로 상대적으로 느리다.

 

사용 사례

- 파일 전송(FTP)

- 이메일(SMTP, IMAP, POP3)

- 웹 브라우징(HTTP, HTTPS)

 

◆ 장점

- 데이터가 손실되지 않고 순서대로 도착함을 보장.

- 신뢰성이 높은 통신이 가능.

 

◆ 단점

- 오버헤드가 크고 속도가 느림.

- 연결을 유지하기 위한 리소스 사용량 증가.

 

 

UDP (User Datagram Protocol)

 

 

UDP는 데이터를 빠르게 전송하기 위한 비연결 지향 프로토콜이다.

 

◆ 특징

비연결 지향(Connectionless)

- 데이터를 전송하기 전에 연결을 설정하지 않는다.

- 송신자는 데이터를 그냥 전송하며, 수신자가 이를 받을 준비가 되었는지 확인하지 않는다.

 

신뢰성 부족

- 데이터 손실, 중복 또는 순서가 바뀔 수 있습니다.

- 재전송 메커니즘이 없다.

 

빠른 속도

- 추가적인 제어 메커니즘이 없기 때문에 TCP보다 빠르다.

 

간단한 헤더 구조

- TCP에 비해 헤더 크기가 작아서 오버헤드가 적다.

 

오버헤드란?

- 데이터를 전송하거나 처리할 때 추가적으로 발생하는 부가적인 자원 소비를 의미한다.

 

사용 사례

- 실시간 애플리케이션(VoIP, 화상 통화, 스트리밍)

- 게임(멀티플레이어 온라인 게임)

- DNS(Domain Name System)

- DHCP(Dynamic Host Configuration Protocol)

 

◆ 장점

- 빠른 데이터 전송 속도

- 간단한 구현과 낮은 리소스 사용

 

◆ 단점

- 신뢰성이 낮음(데이터 손실 가능)

- 데이터의 순서를 보장하지 않음