UDP

홍준섭·2023년 1월 13일
0

네트워크

목록 보기
6/20

UDP

  • connectionless, unreliable transport protocol이다.
    => 이것은 호스트 대 호스트 통신 대신 프로세스 대 프로세스 통신을 제공하는 것 외에는 IP 서비스에 아무것도 추가하지 않는다.
  • 최소 오버헤드를 사용하는 매우 간단한 프로토콜이다.
    => 프로세스가 작은 메세지를 보내고 싶어하고 신뢰성에 크게 신경쓰지 않는다면 사용한다
    => TCP를 사용하는 것보다 송신자와 수신자 사이에 훨씬 적은 상호 작용을 취하는 작은 메시지를 보내는 경우 사용한다.

frame format

header(64bit) = source port number (16bit) + destination port number (16bit) + total length (16bit) + checksum(16bit)

동작방식

  • connectionless services
    udp는 독립적인 데이터그램을 전송하는 connectionless services이다.
  • flow and error control
    흐름 제어가 없고 체크섬을 제외하면 오류 제어가 없다
  • encapsulation and decapsulation
    UDP 프로토콜은 IP 데이터그램에서 메시지를 캡슐화하고 캡슐화 해제합니다.

Queuing at client site

  1. process가 시작하면 운영체제에서 포트번호를 요청한다
  2. client process는 요청에 지정된 소스포트 번호를 이용해 outgoing queue에 메시지를 전달한다.
  3. UDP는 메시지를 하나씩 제거하고 UDP 헤더를 추가한 후 IP로 전달합니다.
  4. outgoing queue는 오버플로될 수 있다. 이 경우 OS는 클라이언트 프로세스에 더 이상의 메시지를 보내기 전에 기다리라고 요청할 수 있다.
  5. 클라이언트에 메시지가 도착하면 UDP는 사용자 데이터그램의 대상 포트 번호 필드에 지정된 포트 번호에 대해 incoming queue가 생성되었는지 확인한다. 대기열이 있는 경우 UDP는 수신된 사용자 데이터그램을 대기열 끝으로 보냅니다.

Queuing at server site

  1. 서버가 실행을 시작하면, 서버는 잘 알려진 포트를 사용하여 incoming and outgoing queue를 요청한다.
  2. 서버에 메시지가 도착하면 UDP는 사용자 데이터그램의 대상 포트 번호 필드에 지정된 포트 번호에 대해 incoming queue가 생성되었는지 확인합니다.
  3. 생성 되었다면 UDP는 수신된 사용자 데이터그램을 큐 끝으로 보냅니다.
  4. 서버가 클라이언트에 응답하려고 할 때, 요청에 지정된 원본 포트 번호를 사용하여 outgoing queue로 메시지를 발송합니다.
    5.UDP는 메시지를 하나씩 제거하고 UDP 헤더를 추가한 후 IP로 전달합니다.

UDP를 사용하는 어플리케이션들

UDP는 흐름 및 오류 제어에 거의 관심이 없는 간단한 요청-응답 통신을 요구하는 프로세스에 적합하다.

  • FTP와 같은 대량 데이터 전송에 사용되지 않는다.
  • 내부 흐름 및 오류 제어를 포함한 TFTP
  • 멀티캐스팅을 하는 프토토콜을 쓸때 사용한다
  • RIP(Routing Information Protocol)와 같은 일부 경로 업데이트 프로토콜에 사용한다.
profile
개발 공부중입니다

0개의 댓글