ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Backend] TCD와 UDP
    Back-End 2022. 3. 21. 11:25

    TCD와 UDP

     

    - TCP (Transmission Control Protocol)

    • 신뢰성이 요구되는 애플리케이션에서 사용된다.
    • 브라우저나 애플리케이션이 데이터를 송신과 수신할 경우에 사용된다.
    • 네트워크에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟(데이터, 메세지, 세그먼트라는 블록 단위)를 안정적으로 순서대로 에러가 없이 교환할 수 있게 된다.

     

     

    - TCP (Transmission Control Protocol) 특징

     

    연결형 서비스 = 가상 회선 방식을 제공한다.

    • 3-way handshaking 과정을 통해 연결을 설정
    • 4-way handshaking을 통해 연결을 해제

    흐름제어(Flow control) = 데이터 처리 속도를 조절해서 수신자의 버퍼 오버플로우를 방지한다.

    • 송신하는 곳에서 감당이 안되게 많은 데이터를 빠르게 보내 수신하는 곳에서 문제가 일어나는 것을 막는다.
    • 수신자가 윈도우크기(window size)값을 통해 수신량을 정할 수 있다.

    혼잡제어(Congestion control) = 네트워크 안에 패킷 수가 넘칠정도로 증가하는 것을 방지한다.

    • 정보의 소통량이 많으면 패킷을 조금만 전송해서 혼잡 붕괴 현상이 일어나는 것을 막는다.

    신뢰성이 높은 전송(Reliable transmission)

    • Dupack-based retransmission
      • 정상적인 상황에서는 ACK 값이 연속적으로 전송되어야 한다.
      • 그러나 ACK값이 중복으로 올 경우 패킷 이상을 감지하고 재전송을 요청한다.
    • Timeout-based retransmission
      • 일정시간동안 ACK 값이 수신을 못할 경우 재전송을 요청한다.

     

    - UDP (User Datagram Protocol)

    • 간단한 데이터를 빠른 속도로 전송하고자 하는 애플리케이션에서 사용한다.
    • DNS 서버에 대한 조회 등에서 짧은 제어용 데이터를 송신과 수신을 할 경우와 음성이나 동영상 데이터를 수신할 경우에 사용된다.

     

     

    - UTP 특징

     

    • 비연결형 서비스로 연결 없이 통신이 가능하고 데이터그랩 방식을 제공한다.
    • 데이터 경계를 구분합다. (데이터그램 서비스)
    • 정보를 주고 받을때 정보를 보내거나 받는다는 신호절차를 거치지 않는다.
    • 신뢰성 없는 데이터를 전송한다.(데이터 재전송과 데이터 순서 유지를 위한 작업을 하지 않는다.)
    • 패킷관리가 필요합니다.
    • 패킷 오버헤드가 적어 네트워크 부하가 감소되는 장점이 있다.
    • 상대적으로 TCP보다 전송속도가 빠르다.

     

     

    - TCP와 UDP의 차이점

     

    TCP UDP
    Connection-oriented protocol
    (연결지향형 프로토콜)
    Connection-less protocol
    (비 연결지향형 프로토콜)
    Connection by byte stream
    (바이트 스트림을 통한 연결)
    Connection by message stream
    (메세지 스트림을 통한 연결)
    Congestion / Flow control
    (혼잡제어, 흐름제어)
    NO Congestion / Flow control
    (혼잡제어와 흐름제어 지원 X)
    Ordered, Lower speed
    (순서 보장, 상대적으로 느림)
    Not ordered, Higer speed
    (순서 보장되지 않음, 상대적으로 빠름)
    Reliable data transmission
    (신뢰성 있는 데이터 전송 - 안정적)
    Unreliable data transmission
    (데이터 전송 보장 X)
    TCP packet : Segment
    (세그먼트 TCP 패킷)
    UDP packet : Datagram
    (데이터그램 UDP 패킷)
    HTTP, Email, File transfer
    에서 사용
    DNS, Broadcasting
    (도메인, 실시간 동영상 서비스에서 사용)
Designed by Tistory.