UDP

코난·2023년 11월 15일
0

CS 면접 정리

목록 보기
17/68

UDP란?

  • 비연결형 프로토콜
  • IP 데이터그램을 캡슐화하여 보내는 방법과 연결 설정을 하지 않고 보내는 방법을 제공 (데이터그램이란 독립적인 관계를 지니는 패킷)
  • 흐름제어, 오류제어 또는 손상된 세그먼트의 수신에 대한 재전송을 하지 않음 (비신뢰성)
  • 짧은 요청을 보내고 짧은 응답을 기대할 때 사용
  • 요청 또는 응답이 손실된다면, 클라이언트는 time out 되고, 다시 시도할 수 있으면 됨
  • TCP 초기설정에서 요구되는 프로토콜보다 적은 메세지가 요구됨

UDP의 특징

  • 데이터를 데이터 그램 단위로 처리하는 프로토콜
  • 비연결형 프로토콜로 사전에 연결 설정 없이 데이터를 전달
  • 사전에 연결 설정을 하지 않은 데이터 그램 방식을 통해 데이터를 전달하기 때문에 하나의 메세지에서 분할된 각각의 패킷은 서로 다른 경로로 전송될 수 있음
  • 송신측에서 전송한 패킷의 순서와 수신측에 도착한 패킷의 순서가 다를 수 있음. 그러나 서로 다른 경로로 패킷을 처리함에도 불구하고 순서를 부여하거나 재조립하지 않음
  • 흐름제어, 혼잡제어, 오류제어를 하지 않으므로 손상된 세그먼트에 대한 재전송을 하지 않음
  • 이로 인해 속도가 빠르고 네트워크 부하가 적다는 장점이 있지만, 신뢰성 있는 데이터 전송을 보장하지 못함
  • UDP는 DNS 등에서 사용됨
    • DNS는 빠르게 응답을 주어야하는데, TCP처럼 session을 맺고 통신하면 속도도 느리고 서버 리소스 소모가 심할 것임
    • DNS request는 UDP segment에 들어갈 정도로 작음
    • but, 크기가 512(UDP 제한)이 넘을때, TCP를 사용해야만 함
  • UDP는 broadcast 시에도 사용됨
    • 동영상과 같은 멀티미디어 서비스를 제공할 때 데이터가 빨리 와야지 끊김없이 감상할 수 있으므로 보다 빠른 UDP를 사용하는 경우가 있음. 웹 위에서 동작하는 영상 서비스의 경우 최근 TCP를 사용하는 경우가 많으나 간단한 동영상 서비스 제공시에는 아직 UDP를 사용함

신뢰성이 요구되는 애플리케이션에서는 TCP를 사용하고 간단한 데이터를 빠른 속도로 전송하고자 하는 애플리케이션에서는 UDP를 사용

UDP 헤더

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

참고

https://ddongwon.tistory.com/83
https://github.com/ssafy-tech-concert/ssafy-tech-concert/blob/master/Computer-Science/TCP_UDP.md#3
https://github.com/gyoogle/tech-interview-for-developer/blob/master/Computer%20Science/Network/UDP.md

profile
몸은 커졌어도, 머리는 그대로... 하지만 불가능을 모르는 명탐정 현아! 진실은 언제나 하나!

0개의 댓글

Powered by GraphCDN, the GraphQL CDN