TCP 프로토콜 Vs UDP 프로토콜

김나영·2023년 7월 11일
0

CS

목록 보기
6/12

TCP 프로토콜(Transmission Control Protocol)

  • OSI 계층모델의 관점에서 전송 계층(4계층)에 해당

  • 전송 제어 프로토콜

  • 스트리밍 방식의 프로토콜

    • 데이터를 연결된 소켓을 통해 연속적으로 전송 가능
    • 데이터의 크기에 제한이 없으며, 큰 파일 전송이나 웹 페이지 로딩과 같이 대량의 데이터를 전송해야 하는 경우에 적합
  • 한 기기에서 다른 기기로 데이터 전송하는 것을 담당

  • 양종단 호스트 내 프로세스 상호 간에 신뢰적인 연결지향성 서비스를 제공

    • 통신을 시작하기 전에 클라이언트와 서버 간에 연결을 설정하고, 데이터를 전송한 후에는 연결을 정리
  • IP의 비신뢰적인 최선형 서비스에다가 신뢰적인 연결지향성 서비스를 제공하게 됨

  • 신뢰적인 전송을 보장함으로써, 어플리케이션 구현이 한층 쉬워지게 됨

    • 오류 검출, 재전송 및 흐름 제어 등의 메커니즘을 사용
    • 패킷 손실, 중복, 순서바뀜 등이 없도록 보장
  • 연결 지향적(Connection-oriented)

    • 연결 관리를 위한 연결설정 및 연결해제 필요
    • 양단간 어플리케이션/프로세스는 TCP가 제공하는 연결성 회선을 통하여 서로 통신

UDP 프로토콜(User Datagram Protocol)

  • 전송 계층의 통신 프로토콜의 하나 (TCP에 대비됨)

  • 신속성이 있는 프로토콜

    • 데이터 패킷을 전송하기 위한 최소한의 오버헤드만 사용하며, 데이터의 신뢰성이나 순서를 보장하지 않음
    • 실시간 스트리밍, DNS 조회와 같이 신속한 데이터 전송이 중요한 애플리케이션에 주로 사용
  • 신뢰성이 낮은 프로토콜로써 완전성을 보증하지 않음

  • 단문 메시지 방식의 프로토콜

    • 각각의 패킷은 독립적인 단위로 처리되므로, 한 번에 전송 가능한 데이터 크기가 제한됨
    • DNS 조회, VoIP, 온라인 게임과 같이 작은 크기의 메시지를 빠르게 전송해야 하는 경우에 적합
  • 가상회선을 굳이 확립할 필요가 없고 유연하며 효율적 응용의 데이타 전송에 사용

  • 비연결성

    • 통신을 시작하기 전에 연결 설정 단계가 없으며, 데이터를 전송할 때마다 독립적인 패킷으로 처리됨
  • 순서화되지 않은 Datagram 서비스 제공

    • 메세지가 제대로 도착했는지 확인하지 않음 (확인응답 없음)

    • 수신된 메세지의 순서를 맞추지 않음 (순서제어 없음)

    • 흐름 제어를 위한 피드백을 제공하지 않음 (흐름제어 없음)

    • 검사합을 제외한 특별한 오류 검출 및 제어 없음 (오류제어 거의 없음)

    • UDP를 사용하는 프로그램 쪽에서 오류제어 기능을 스스로 갖추어야 함

    • 데이터그램 지향의 전송계층용 프로토콜 (논리적인 가상회선 연결이 필요없음)

    • 비연결접속상태 하에서 통신

  • 실시간 응용 및 멀티캐스팅 가능

    • 빠른 요청과 응답이 필요한 실시간 응용에 적합

    • 여러 다수 지점에 전송 가능 (1:多)

  • 헤더가 단순함

    • UDP는 TCP 처럼 16 비트의 포트 번호를 사용하나,

    • 헤더는 고정크기의 8 바이트(TCP는 20 바이트) 만 사용

    • 즉, 헤더 처리에 많은 시간과 노력을 요하지 않음

0개의 댓글