TCP (Transmission Control Protocol)

TCP는 '전송 제어 프로토콜'의 약자로, 데이터를 안정적으로 전송하기 위해 설계된 프로토콜입니다. TCP는 데이터가 손실 없이 정확하게 전달되도록 보장하며, 데이터의 순서가 유지되는 특징이 있습니다.

 

UDP (User Datagram Protocol)

UDP는 '사용자 데이터그램 프로토콜'의 약자로, TCP보다 단순한 구조를 가지고 있습니다. UDP는 데이터의 안정적인 전송보다는 빠른 전송에 중점을 둡니다.

 

TCP의 작동 방식

TCP는 '연결 지향적' 프로토콜로, 데이터를 주고받기 전에 먼저 연결을 설정합니다. 이 과정은 '3-way 핸드셰이크'라고 불리는데, 다음과 같이 진행됩니다

  1. 연결 요청: 클라이언트가 서버에 연결 요청(SYN) 메시지를 보냅니다.
  2. 응답: 서버는 요청을 받고 승인(SYN-ACK) 메시지를 보냅니다.
  3. 확인: 클라이언트가 서버의 응답을 받고 확인(ACK) 메시지를 보내면 연결이 설정됩니다.

연결이 설정된 후에는 다음과 같은 과정으로 데이터가 전송됩니다

  • 데이터를 작은 단위(세그먼트)로 나눕니다.
  • 각 세그먼트에 순서 번호를 부여합니다.
  • 수신자는 받은 데이터에 대한 확인(ACK) 메시지를 보냅니다.
  • 만약 확인 메시지가 일정 시간 내에 오지 않으면, 송신자는 해당 데이터를 다시 전송합니다.

이러한 과정을 통해 TCP는 데이터의 안전한 전송을 보장합니다.

 

UDP의 작동 방식

UDP는 '비연결형' 프로토콜로, TCP와 달리 연결 설정 과정이 없습니다. 데이터(데이터그램)를 바로 전송하며, 그 과정이 매우 단순합니다

  1. 데이터를 패킷으로 나눕니다.
  2. 각 패킷에 목적지 정보를 추가합니다.
  3. 네트워크를 통해 패킷을 바로 전송합니다.

UDP는 데이터가 제대로 전달되었는지 확인하지 않으며, 데이터의 순서를 보장하지 않습니다. 이 때문에 일부 데이터가 손실되거나 순서가 뒤바뀔 수 있지만, 전송 속도가 빠른 장점이 있습니다.

 

TCP와 UDP의 주요 차이점

연결 방식 연결 지향적 비연결형
신뢰성 높음 (데이터 손실 복구) 낮음 (데이터 손실 가능)
속도 상대적으로 느림 빠름
순서 보장 순서 보장 순서 보장 없음
오류 검출 있음 기본적인 오류 검출만 있음
용량 헤더 크기 20-60 바이트 헤더 크기 8 바이트
적합한 용도 정확성이 중요한 데이터 실시간 데이터, 속도가 중요한 경우

 

실생활 사용 예시

TCP 사용 예시

  1. 웹 브라우징: 웹페이지를 정확하게 로드하기 위해 HTTP/HTTPS는 TCP를 사용합니다.
  2. 이메일 전송: 이메일 프로토콜(SMTP, POP3, IMAP)은 메시지가 온전히 전달되도록 TCP를 사용합니다.
  3. 파일 다운로드: FTP와 같은 파일 전송 프로토콜은 파일이 손상 없이 전송되도록 TCP를 사용합니다.
  4. 온라인 뱅킹: 금융 거래는 데이터의 정확성이 매우 중요하므로 TCP를 사용합니다.

UDP 사용 예시

  1. 실시간 영상 통화: Zoom, Skype 등의 화상 회의는 속도가 중요하기 때문에 UDP를 사용합니다.
  2. 온라인 게임: 실시간 반응이 중요한 게임은 지연을 최소화하기 위해 UDP를 사용합니다.
  3. 실시간 스트리밍: 유튜브 라이브, 트위치 등의 실시간 방송은 UDP를 사용하여 지연을 줄입니다.
  4. DNS 조회: 도메인 이름을 IP 주소로 변환하는 과정에서 UDP를 사용합니다.

 

쉬운 비유로 이해하기

TCP와 UDP의 차이를 일상생활의 비유로 설명하면 다음과 같습니다:

TCP는 등기우편과 같습니다:

  • 보내기 전에 받는 사람의 주소를 확인합니다(연결 설정).
  • 우편물을 보낸 후 배달 확인을 받습니다(ACK).
  • 우편물이 제대로 배달되지 않으면 다시 보냅니다(재전송).
  • 여러 봉투로 나누어 보낸 경우, 받는 사람이 순서대로 정리할 수 있도록 번호를 매깁니다(순서 보장).

UDP는 일반 우편과 같습니다:

  • 받는 사람의 주소만 적고 바로 우편함에 넣습니다(비연결형).
  • 배달 확인을 받지 않습니다(확인 없음).
  • 우편물이 분실되어도 다시 보내지 않습니다(손실 가능).
  • 여러 봉투를 보낸 경우, 어떤 순서로 도착할지 보장하지 않습니다(순서 보장 없음).

 

결론

TCP와 UDP는 각각 장단점이 있으며, 사용 목적에 따라 적합한 프로토콜을 선택하는 것이 중요합니다. 데이터의 정확성과 안정성이 중요한 경우에는 TCP를, 빠른 전송 속도가 중요한 실시간 서비스에는 UDP를 사용하는 것이 일반적입니다. 이 두 프로토콜의 이해는 네트워크 통신의 기본을 이해하는 데 큰 도움이 됩니다.

728x90

+ Recent posts