← 모든 문제
TCP와 UDP 프로토콜의 주요 차이점은 무엇입니까?
보통초급DevOps

TCP와 UDP 프로토콜의 주요 차이점은 무엇입니까?

짧은 답변
TCP는 전달, 주문, 연결을 보장하는 연결 지향적이고 안정적인 프로토콜입니다. 오버헤드를 대가로 오류 검사를 수행합니다. UDP는 단순한 비연결 프로토콜입니다. 배송이나 주문 보장은 없지만 더 빠르고 가볍습니다.

TCP와 UDP는 IP 위에서 실행되는 두 가지 주요 전송 계층 프로토콜입니다. 핵심 차이점: TCP는 연결 지향적이고 안정적인 반면, UDP는 연결이 없으며 "실행 후 잊어버리는" 방식으로 작동합니다.

TCP(RFC 9293)

  • 연결 지향. 데이터를 전송하기 전에 엔드포인트는 3WHS(3방향 핸드셰이크)를 수행합니다: SYN → SYN-ACK → ACK, 초기 시퀀스 번호 동기화.
  • 신뢰할 수 있고 질서정연합니다. 각 바이트는 시퀀스 번호를 갖습니다. 수신자는 승인(ACK)을 보내고, 손실된 세그먼트가 재전송되고, 데이터가 원래 순서로 재조립됩니다. 무결성은 체크섬으로 확인됩니다. RFC 9293에는 TCP가 "신뢰할 수 있는 순서대로 바이트 스트림 서비스를 제공한다"고 명시되어 있습니다.
  • 바이트 스트림, 메시지 경계 없음. TCP는 구조화되지 않은 바이트 스트림을 전달합니다. 메시지 경계는 유지되지 않습니다(애플리케이션은 자체 메시지를 구성해야 함). 이와 대조적으로 UDP는 메시지 지향적입니다. 즉, 각 데이터그램은 개별적이고 완전한 단위로 전달되거나 전혀 전달되지 않습니다(1개의 sendto = 1개의 recvfrom).
  • 흐름 및 정체 제어. TCP는 전송 속도를 조절하여 수신자나 네트워크를 압도하지 않습니다.
  • 교환: 더 많은 오버헤드와 대기 시간, 더 큰 헤더 — 20~60바이트(옵션 없이 20바이트, MSS, 창 크기 조정, SACK와 같은 옵션을 통해 확장 가능).

UDP(RFC 768)

  • 연결 없음. 핸드셰이크가 없습니다. 각 데이터그램은 독립적입니다.
  • 보증 없음. RFC는 명시적으로 "전송 및 중복 보호는 보장되지 않습니다"라고 명시합니다. UDP는 손실, 중복 또는 순서가 잘못된 패킷을 복구하지 않습니다.
  • 소스 포트, 대상 포트, 길이, 체크섬의 4개 필드만 있는 고정 8바이트 헤더.
  • 이점: 낮은 대기 시간과 오버헤드, 브로드캐스트/멀티캐스트 지원.

언제 무엇을 사용하는가

  • TCP: 웹(TCP를 통한 HTTP/HTTPS), 이메일, 파일 전송, SSH 등 데이터 무결성이 중요한 모든 곳에서 가능합니다.
  • UDP: DNS 조회, 온라인 게임, VoIP, 라이브 비디오 스트리밍 — 단일 패킷 손실보다 속도가 더 중요합니다.

일반적인 후속 조치 사항

  • UDP 자체는 데이터 순서를 지정하지 않지만 애플리케이션은 그 위에 자체 논리를 계층화할 수 있습니다(QUIC는 UDP를 통해 이 작업을 수행합니다).
  • HTTP/3은 UDP를 통해 QUIC에서 실행되는 반면, HTTP/1.1 및 HTTP/2는 TCP를 통해 실행됩니다.
  • UDP 체크섬은 IPv4에서는 기술적으로 선택 사항이지만(0 값은 "계산되지 않음"을 의미) IPv6에서는 필수입니다.
TCPUDP네트워킹

지금 다운로드하고 내 작업에 무료로 사용해 보세요!

Windows용 다운로드
무료 크레딧 10 15개 • 신용카드 필요 없음버전: 로딩 중…

설치 없이 - 다운로드하고 실행. 가입 없이 - Google로 로그인.