Computer Science/네트워크

[네트워크] UDP - Connectionless Transport

바보1 2023. 4. 15. 17:46

앞의 글을 읽으시면 이해에 도움이 됩니다.

 

2023.04.15 - [Computer Science/네트워크] - [네트워크] Transport-Layer Protocols

 

[네트워크] Transport-Layer Protocols

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.04.07 - [Computer Science/네트워크] - [네트워크] Protocol Layers [네트워크] Protocol Layers 앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.04.07 - [Computer Science/

hi-guten-tag.tistory.com


1. UDP란?

 

 

  • UDP(User Datagram Protocol)를 정의하기에 앞서 당신이 아주 기초적이고, 토대가 되는 프로토콜은 만들어본다고 가정해 봅시다.
  • 그러면 그냥 아무것도 없는 프로토콜을 만들면 됩니다. 상위 계층인 application layer은 곧바로 network layer로 메시지를 전송하고 통신하면 됩니다.
  • 하지만 우리는 transport layer에서 Multiplexing, Demultiplexing 서비스를 제공해야 한다는 것을 알고 있습니다.
  • 따라서 UDP는 이러한 Multiplexing/Demultiplexing과 함께 약간의 오류 검출 서비스를 제공하고 있습니다.
  • 사실 UDP를 사용하면 applicattion layer는 거의 직접적으로 IP와만 소통합니다. UDP는 단순히 multiplexing/demultiplexing을 위해 포트 번호만 부여하고, 두 개의 작은 필드를 결과로 보낼 뿐입니다.
  • 따라서 UDP는 데이터를 잃을 수도, 순서에 맞지 않게 전송할 수도 있습니다.
  • 따라서 UDP에는 handshaking이 없습니다. 이러한 이유로 UDP를 Connectionless라고 합니다.
  • 아니 그러면 UDP를 왜 쓸까요? 아무리 생각해도 TCP가 더 합리적이고, 신뢰성 있는 서비스도 제공하는데요.

2. Why is there a UDP?

 

 

  • Finer Application-level control over what data is sent, and when
    • UDP는 거의 즉각적으로 세그먼트를 network layer로 통과시킵니다.
    • 그에 반해 TCP는 congestion-control이 있어서 네트워크가 혼잡하다고 판단되면 송신을 제한합니다.
    • 또한 TCP는 수신 측이 수신한 세그먼트를 확인할 때까지 세그먼트를 재전송합니다.
    • real-time application의 경우 최소한의 전송 속도를 원하며, 전송을 지연시키는 것을 원하지 않습니다.
    • 이러한 이유로 특정 어플리케이션은 UDP를 사용하고, 추가적인 기능은 어플리케이션의 일부로 구현하여 사용합니다.
  • No connection establishment
    • TCP는 three-way handshaking을 사용합니다.
    • 반면 UDP는 어떤 사전 준비도 필요 없고, 따라서 연결을 하는데에 있어서 어떤 딜레이도 없습니다.
    • 예를 들어 DNS 서버의 경우 UDP 위에서 구현되어 있는데, 이는 TCP가 UDP보다 느리기 때문입니다.
    • 반대로 HTTP는 정보의 손실을 우려하여 TCP로 구현하였습니다. 하지만 최근에는 TCP의 딜레이가 객체를 다운로드하는 데에 영향을 주기 때문에 UDP를 사용하여 HTTP를 구현한 QUIC protocol이 나왔습니다.
  • No connection state
    • TCP는 엔드 시스템 간 연결 상태를 유지합니다. 이러한 연결 상태는 수신 측과 송신 측의 버퍼, 혼잡 제어 파라미터, 그리고 sequence, acknowledgment 파라미터를 포함합니다.
    • TCP는 신뢰성 있는 데이터 전송을 원하지만, UDP는 그 어떤 연결 상태도 유지하지 않고, 파라미터에 대한 추적도 하지 않습니다.
    • 이러한 이유로 매우 활동적인 클라이언트를 지원하는 서버는 TCP보다는 UDP를 사용합니다.
  • Small packet header overhead
    • TCP의 세그먼트의 헤더는 20 바이트인데 반해, UDP의 헤더는 8 바이트를 사용합니다.

참고

 

 

경북대학교 컴퓨터학부 COMP0414-001 컴퓨터 망 수업

Computer Networking: A Top Down Approach / James F. Kurose, Keith W. Ross 저 / PEARSON / 2021년

Chat GPT, Bing AI


다음 글에서는 UDP - Segment Structure에 대해 알아보겠습니다.

 

2023.04.15 - [Computer Science/네트워크] - [네트워크] UDP - Segment Structure

 

[네트워크] UDP - Segment Structure

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.04.15 - [Computer Science/네트워크] - [네트워크] UDP - Connectionless Transport [네트워크] UDP - Connectionless Transport 앞의 글을 읽으시면 이해에 도움이 됩니다. 2

hi-guten-tag.tistory.com

감사합니다.

지적 환영합니다.