본문 바로가기
카테고리 없음

UDP

by 쿠리의일상 2023. 2. 6.

User Datagram Protocol

데이터를 데이터그램 단위로 처리하는 프로토콜

  • 비연결형, 신뢰성 없는 전송 프로토콜
  • 데이터그램 단위로 쪼개면서 전송을 해야하므로 Transport layer에서 사용하는 프로토콜

 

TCP/UDP 왜 나오게 됐는가?

  • IP의 역할은 Host to Host만을 지원하므로 장치와 장치 사이의 이동은 IP로 가능하지만 하나의 장비 안에 수 많은 프로그램들이 통신을 할 경우엔 IP로는 불가능하다. → 포트번호가 등장
  • 그래서 IP에 오류가 발생하면 ICMP에서 알려주지만 대처를 하지 못한다. → 그렇기에 TCP/UDP가 등장
    • ICMP : 인터넷 제어 메시지 프로토콜로 네트워크 컴퓨터 위에서 돌아가는 운영체제에서 오류 메시지를 전송받는데 사용됨
    • TCP의 경우 데이터의 분실, 중복, 순서 뒤바뀜 등을 자동으로 보정해줘서 송수신 데이터의 정확한 전달을 할 수 있도록 해준다.
    • UDP의 경우 IP가 제공하는 정도의 수준만을 제공하는 간단한 IP 상위 계층의 프로토콜으로, TCP와는 다르게 에러가 날 수도 있고 재전송이나 순서가 뒤바뀔 수도 있어서 이 경우 어플리케이션에서 처리하는 번거로움이 존재한다.

 

UDP를 사용하는 이유

  • 데이터의 처리가 TCP보다 빨라 데이터의 신속성이라는 장점으로 실시간 방송이나 온라인 게임에 사용된다.
  • 네트워크 환경이 좋지 못하면 끊기는 현상이 생긴다.
  • DNS (Domain Name System)에서 UDP를 사용하는 이유
    • DNS은 Application layer protocol이고, 이 계층 프로토콜은 TCP혹은 UDP 중 하나의 Transport layer protocol을 사용해야 한다.
    • DNS Request의 크기가 작아서 → UDP Request에 담길 수 있다.
      • DNS query는 single UDP request와 서버로부터의 single UDP reply로 구성됨
    • 3 way handshaking(TCP)으로 연결을 유지할 필요가 없기에 → 오버헤드가 UDP보다 커짐
    • Requset에 대한 손실은 Application Layer에서 제어가 가능(reliability가 Timeout 추가, resend 작업에 의해)
    • DNS는 UDP port 53번에서 사용
    • **다만 크기가 512byte(UDP 제한)이 넘거나, 응답을 못받은 경우, Zone transfer를 사용해야하는 경우엔 TCP를 사용해야 한다.
      • Zone Transfer : DNS 서버 간의 요청을 주고 받을 때 사용하는 transfer

 

 

UDP Header

  1. Source port : 시작 포트
  2. Destination port : 도착지 포트
  3. Length : 길이
  4. Checksum : 오류 검출 (중복 검사의 한 형태로, 오류 정정을 통해 공간이나 시간 속에서 송신된 자료의 무결성을 보호하는 단순 방법)

TCP보다 간단한 구조라 용량이 가볍고 송신 속도가 빠른 것

하지만 확인 응답을 못하므로 신뢰도는 떨어진다.