[Network] TCP와 UDP의 특징과 비교 정리

TCP, UDP 차이점 총정리
TCP, UDP 차이점 총정리

TCP(Transmission Control Protocol)UDP(User Datagram Protocol)의 특징과 비교 정리 내용입니다.

 

 

전송 계층의 주요 프로토콜 TCP, UDP

전송 계층(Transport Layer)은 데이터 통신의 핵심적인 역할을 담당합니다. 전송 계층은 단순히 컴퓨터와 컴퓨터를 연결하는 것을 넘어, 특정 컴퓨터 내에서 실행되는 애플리케이션 프로세스 간의 종단 간(end-to-end) 통신을 책임집니다.

 

TCP와 UDP는 네트워크 모델(OSI 7계층 또는 TCP/IP 4계층)의 전송 계층에서 작동하는 프로토콜입니다. 이 계층은 출발지의 특정 프로그램(애플리케이션)과 목적지의 특정 프로그램 간의 논리적인 연결 통로를 만들고 데이터를 전송을 담당합니다. TCP와 UDP는 이 통로를 만들고 데이터를 전달하는 방식에서 큰 차이를 보입니다.

 

 

TCP 특징

TCP연결 지향형 프로토콜로, IP 네트워크를 통해 연결된 호스트에서 실행되는 애플리케이션 간에 신뢰성 있고, 순서가 보장되며, 오류 검사를 수행하는 바이트 스트림 전송 서비스를 제공하도록 설계되었습니다. TCP의 핵심 설계 목표는 신뢰성입니다.

 

특징

  • 연결 지향 (Connection-Oriented): 데이터를 보내기 전, 반드시 3-way handshake라는 과정을 통해 상대방과 연결을 설정합니다. 데이터 전송 후에는 4-way handshake로 연결을 해제합니다.
  • 높은 신뢰성 (Reliable): 데이터를 보내면 상대방으로부터 응답(ACK)을 받습니다. ACK가 오지 않거나 데이터가 중간에 유실되면 재전송하여 데이터 전달을 보장합니다.
  • 데이터 순서 보장 (Ordered): 데이터 조각(세그먼트)에 순서 번호(Sequence Number)를 부여하여, 받는 쪽에서 순서가 섞여 도착해도 올바르게 재조립합니다.
  • 흐름 제어 (Flow Control): 받는 쪽의 처리 속도를 고려하여 보내는 데이터 양을 조절합니다.
  • 혼잡 제어 (Congestion Control): 네트워크의 혼잡 상태를 파악하여 전송 속도를 조절, 네트워크 전체의 안정성을 유지합니다.

 

 

장단점

  • 장점: 데이터 전송이 매우 안정적이고 신뢰할 수 있습니다. 데이터 순서와 무결성이 보장됩니다.
  • 단점: 연결 설정/해제, 확인 응답, 순서/흐름/혼잡 제어 등 기능이 많아 오버헤드가 크고, UDP보다 속도가 느리며 지연(Latency)이 발생할 수 있습니다.

 

사용 예시

  • 웹 브라우징 (HTTP/HTTPS): 웹 페이지 내용과 이미지가 손상 없이 순서대로 로드되어야 합니다.
  • 이메일 (SMTP, POP3, IMAP): 이메일 내용이 정확하게 전달되어야 합니다.
  • 파일 전송 (FTP, SFTP): 파일 내용이 손상되거나 누락되지 않고 원본과 동일하게 전송되어야 합니다.
  • 보안 셸 (SSH): 원격 접속 및 명령어 실행 시 데이터의 정확성과 순서가 중요합니다.
  • 원격 관리: 네트워크 장비 설정 및 관리 시 신뢰할 수 있는 통신이 필요합니다.

 

 

 

 

 

UDP 특징

UDP비연결형(Connectionless) 프로토콜로, TCP가 제공하는 복잡한 신뢰성 보장 기능 없이 단순하고 빠른 데이터그램(Datagram) 전송 서비스를 제공합니다. UDP는 IP 프로토콜 위에 최소한의 기능(주로 포트 번호를 이용한 다중화/역다중화 및 선택적 오류 검사)만을 추가한 형태로, 오버헤드가 매우 적습니다.

 

특징

  • 비연결 지향 (Connectionless): 연결 설정 과정 없이 바로 데이터(데이터그램)를 보냅니다. 보내는 쪽은 받는 쪽이 준비되었는지 확인하지 않습니다.
  • 낮은 신뢰성 (Unreliable / Best-Effort): 데이터를 보내고 확인 응답(ACK)을 받지 않습니다. 데이터가 중간에 사라져도 재전송을 보장하지 않습니다.
  • 데이터 순서 보장 안됨 (Unordered): 데이터그램들이 다른 경로로 갈 수 있어 도착 순서가 바뀔 수 있습니다.
  • 흐름 제어 / 혼잡 제어 없음: 상대방의 상태나 네트워크 상황을 고려하지 않고 최대한 빠르게 데이터를 전송합니다.
  • 단순한 헤더: TCP보다 헤더 구조가 훨씬 단순하여 처리 부담이 적습니다.

 

장단점

  • 장점: 오버헤드가 적어 속도가 빠르고 지연 시간이 짧습니다. 구조가 단순하여 구현이 용이합니다.
  • 단점: 데이터 전송의 신뢰성을 보장하지 않아 데이터 유실이나 순서 바뀜이 발생할 수 있습니다.

 

사용 예시

  • DNS (Domain Name System): 도메인 이름을 IP 주소로 빠르게 변환해야 하므로 UDP를 주로 사용합니다.
  • 실시간 스트리밍 (비디오/오디오): 약간의 데이터 손실은 감수할 수 있지만, 끊김 없는 실시간 전송이 중요합니다.
  • VoIP (Voice over IP): 실시간 음성 통화에서 지연 시간을 최소화하는 것이 중요합니다.
  • 온라인 게임: 빠른 반응 속도가 게임 플레이 경험에 결정적인 영향을 미칩니다.
  • TFTP (Trivial File Transfer Protocol): 간단한 파일 전송에 사용됩니다.
  • SNMP (Simple Network Management Protocol): 네트워크 장비 관리 정보를 교환하는 데 사용됩니다.
  • 브로드캐스팅/멀티캐스팅: 다수의 수신자에게 동시에 데이터를 전송해야 하는 경우 UDP가 효율적입니다.

 

 

  •  

 

TCP와 UDP 비교

TCP와 UDP는 설계 철학부터 다릅니다. TCP는 신뢰성을 최우선으로 하며, 이를 위해 연결 설정, 순서 보장, 오류 제어, 흐름 제어, 혼잡 제어 등 다양한 기능을 제공합니다. 반면 UDP는 속도와 단순성을 추구하며, 최소한의 기능만을 제공하여 빠르고 효율적인 데이터 전송을 가능하게 합니다.

 

특징 TCP UDP
연결 방식 연결형 비연결형
신뢰성 높음 낮음
속도 느림 빠름
해더 크기 20 바이트 이상 8 바이트
데이터 전송 바이트 스트림 데이터그램
순서 보장 보장 보장하지 않음
오류 제어 있음 제한적
흐름 제어 있음 없음
혼합 제어 있음 없음

 

TCP와 UDP 중 어떤 프로토콜을 선택할지는 전적으로 애플리케이션의 요구사항에 달려 있습니다. 핵심적인 고려 사항은 신뢰성속도/실시간성 사이의 트레이드오프(Trade-off)입니다.

 

 

같이 보면 좋은 글

OSI 7 계층 모델 알아보기

TCP/IP 4 계층 알아보기

Email : caramelnim@gmail.com