TCP 프로토콜과 UDP 프로토콜의 특징 비교

2024. 6. 4. 06:26·⛓️ 네트워크 보안/기본 개념
728x90
반응형

1️⃣ TCP (Transmission Control Protocol)

특징

  1. 연결 지향적
    • 3-WAY 핸드쉐이킹: TCP는 데이터 전송 전에 클라이언트와 서버 간의 연결을 설정한다. 이 과정은 SYN, SYN-ACK, ACK의 세 단계로 이루어진다.
  2. 신뢰성 보장
    • 재전송: 패킷 손실이 발생하면 송신자는 손실된 패킷을 재전송한다.
    • 순서 보장: 각 패킷에 시퀀스 번호를 부여하여 데이터가 순서대로 도착하도록 한다.
    • 에러 검출: 체크섬을 사용하여 데이터의 무결성을 검증한다.
  3. 흐름 제어
    • 윈도우 크기 조절: 송신자와 수신자 간의 데이터 전송 속도를 조절하여 버퍼 오버플로우를 방지한다.
  4. 혼잡 제어
    • 혼잡 회피 알고리즘: 네트워크의 혼잡 상태를 감지하고, 전송 속도를 조절하여 혼잡을 완화한다 (예: TCP Tahoe, TCP Reno).
  5. 데이터 스트림
    • 연속적인 바이트 스트림: TCP는 데이터를 연속적인 바이트 스트림으로 처리하고 전송한다.

사용 사례

  • 웹 브라우징: HTTP/HTTPS는 신뢰성과 순서를 보장하는 TCP를 사용하여 웹 페이지를 전송한다.
  • 이메일 전송: SMTP, IMAP, POP3는 이메일 전송 및 수신을 위해 TCP를 사용한다.
  • 파일 전송: FTP는 큰 파일을 신뢰성 있게 전송하기 위해 TCP를 사용한다.
  • 원격 접속: SSH와 Telnet은 원격 시스템에 안전하게 접속하기 위해 TCP를 사용한다.

2️⃣ UDP (User Datagram Protocol)

특징

  1. 비연결 지향적
    • 데이터그램 전송: UDP는 데이터 전송 전에 연결을 설정하지 않고, 독립적인 데이터그램을 전송한다.
  2. 신뢰성 미보장
    • 패킷 손실: 데이터그램이 손실되거나 순서가 뒤바뀌어도 UDP는 이를 보장하지 않는다.
    • 재전송 없음: 손실된 패킷에 대해 재전송을 하지 않는다.
  3. 낮은 오버헤드
    • 간단한 헤더: UDP 헤더는 8바이트로, TCP 헤더보다 간단하고 크기가 작다.
  4. 흐름 제어 및 혼잡 제어 없음
    • 데이터 전송 속도: UDP는 흐름 제어와 혼잡 제어가 없어 데이터 전송 속도가 빠르다.
  5. 데이터그램
    • 독립적인 패킷: 각 데이터그램은 독립적으로 처리되며, 순서가 보장되지 않는다.

사용 사례

  • 실시간 스트리밍: 비디오 및 오디오 스트리밍은 약간의 패킷 손실을 허용하므로 UDP를 사용한다.
  • 온라인 게임: 낮은 지연 시간과 빠른 데이터 전송이 중요한 온라인 게임은 UDP를 사용한다.
  • VoIP (Voice over IP): 음성 통신은 실시간 전송이 중요하여 UDP를 사용한다.
  • DHCP (Dynamic Host Configuration Protocol): IP 주소 할당에 UDP를 사용한다.
  • DNS (Domain Name System): 도메인 이름을 IP 주소로 변환하는 데 UDP를 사용한다.

 

구분 TCP UDP
연결 방식 연결형 비연결형
PDU 세그먼트 데이터그램
패킷 교환 방식 가상 회선 방식 데이터그램 방식
전송 순서 보장함 바뀔 수 있음
수신 여부 확인 확인함 확인하지 않음
통신 방식 1:1 1:1 or 1:N or N:N
신뢰성 높다 낮다
속도 느리다 빠르다
헤더의 크기 20byte 8byte
용도 신뢰성이 필요한 데이터를 전송 실시간 데이터 전송, 브로드캐스트, 멀티캐스트, 소량의 데이터 빈번히 전송
728x90
반응형

'⛓️ 네트워크 보안 > 기본 개념' 카테고리의 다른 글

네트워크 전송모드 (유니캐스트, 브로드캐스트, 멀티캐스트의 이해)  (0) 2025.01.23
네트워크 통신의 기본 시나리오와 논리적 주소, 물리적 주소  (0) 2025.01.23
HDLC 프로토콜과 프레임 유형 이해하기  (0) 2024.06.04
네트워크 라우팅 개념과 라우팅 프로토콜의 이해  (0) 2024.06.03
OSI 7계층 이해하기  (2) 2024.06.03
'⛓️ 네트워크 보안/기본 개념' 카테고리의 다른 글
  • 네트워크 전송모드 (유니캐스트, 브로드캐스트, 멀티캐스트의 이해)
  • 네트워크 통신의 기본 시나리오와 논리적 주소, 물리적 주소
  • HDLC 프로토콜과 프레임 유형 이해하기
  • 네트워크 라우팅 개념과 라우팅 프로토콜의 이해
WISHee
WISHee
IT와 보안에 대한 공부 기록을 차곡차곡 쌓아가는 기술 블로그 🛡️💻
  • WISHee
    DevwithWish
    WISHee
  • 전체
    오늘
    어제
    • 🌳 ROOT (128)
      • ⛓️ 네트워크 보안 (10)
        • 기본 개념 (9)
        • 패킷 분석 (1)
        • 침입 탐지 및 방지 (0)
      • ⚙️ 시스템 보안 (0)
        • 운영체제 보안 (0)
        • 취약점 분석 (0)
        • 로그 분석 (0)
      • 🌐 웹 보안 (1)
        • OWASP TOP 10 (1)
        • 웹 서버 보안 (0)
        • 웹 취약점 분석 (0)
      • ☁️ 클라우드 보안 (3)
        • AWS (3)
      • 🔐 암호화 & 인증 (3)
        • 암호화 개념 (2)
        • TLS,SSL (0)
        • 인증 & 접근제어 (1)
      • 🚨 보안 실무 (30)
        • 보안 관제 (14)
        • 모의 해킹 (12)
        • 취약점 진단 (3)
        • 디지털포렌식 (1)
      • 📚 ISMS & ISO27001 (9)
        • ISMS, ISMS-P 인증 (2)
      • 📰 보안 뉴스 & 트렌드 (1)
        • 최신 보안 이슈 (1)
        • 사이버 위협 정보 (0)
        • 보안 컨퍼런스 리뷰 (0)
      • 🔥 SKShieldusRookies (15)
        • Review (3)
        • PBL (0)
        • 과제 (4)
        • 모듈 프로젝트 (8)
        • 최종 프로젝트 (0)
      • 🗂️ Project (3)
        • SOAR (0)
        • BlockChain (3)
      • 🧩 Language (23)
        • Java (1)
        • Python (16)
        • Programmers (6)
      • 👥 버전관리 & 협업도구 (9)
        • Git, GitHub (4)
        • etc (5)
      • 💜 일상 (21)
        • Boot Camp (4)
        • Study (6)
        • Travel (8)
        • Study Abroad (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

    • 반갑습니다!
  • 인기 글

  • 태그

    리눅스보안
    몽생미셸
    sk쉴더스루키즈
    프로그래머스
    협업도구
    윈도우보안
    깃허브
    플라스크
    정보보안
    와이어샤크
    런던여행
    옹플뢰르
    유럽여행
    Github
    프랑스여행
    파리여행
    블록체인실습
    칼리리눅스
    VSCode
    flask
    유럽한달여행
    해외여행
    한달여행
    파이썬
    slack
    git
    보안실습
    Python
    모의해킹
    코딩테스트
  • 최근 댓글

  • 최근 글

  • 160x600
    250x250
  • hELLO· Designed By정상우.v4.10.3
WISHee
TCP 프로토콜과 UDP 프로토콜의 특징 비교
상단으로

티스토리툴바