UDP

김민성·2023년 3월 8일
0

Network

목록 보기
4/10

들어가기 전

UDP 통신이란?

  • User Datagram Protocol. 데이터를 데이터그램 단위로 처리하는 프로토콜
  • 비연결형, 신뢰성 없는 전송 프로토콜
  • 데이터그램 단위로 쪼개면서 전송을 해야하기 때문에 전송 계층
  • Transport layer에서 사용하는 프로토콜

TCP와 UDP가 등장한 이유?

  1. IP의 역할은 Host to Host(장치 to 장치)만을 지원
    -> 장치에서 장치로 이동은 IP로 해결, 하나의 장비 안에서 수많은 프로그램 통신 시 IP만으로는 한계
  2. IP에서 오류 발생 시 ICPM에서 알려줌
    -> ICPM은 알려주기만 할 뿐, 대처를 못하기 때문에 IP보다 위에서 처리
  3. 1번을 해결하기 위해 포트 등장, 2번을 해결하기 위해 상위 프로토콜인 TCP, UDP 등장

ICPM : 인터넷 제어 메시지 프로토콜로 네트워크 컴퓨터 위에서 작동하는 운영체제에서 오류 메시지를 주고받는 데 쓰임

TCP, UDP가 오류 해결하는 방법

TCP

: 데이터의 분실, 중복, 순서 뒤바뀜 등을 자동으로 보정해줘서 송수신 데이터의 정확한 전달

UDP

: IP가 제공하는 정도의 수준만을 제공하는 간단한 IP계층의 프로토콜. TCP와는 다르게 에러가 날 수도 있고, 재전송이나 순서 뒤바뀜이 있을 수 있어서, 이 경우 어플리케이션이 처리해야 함

UDP를 사용하는 이유?

  • 결정적 장점 : 데이터 신속성. 처리가 TCP보다 빠르다
  • 주로 실시간 방송, 온라인 게임에서 사용

DNS(Domain Name Service)에서 UDP를 사용하는 이유?

  • Request의 양이 적음 -> UDP Request에 담긺
  • 3way handshaking으로 연결 유지 필요 X
  • Request에 대한 손실은 Application layer에서 제어 가능
  • DNS : port 53번
  • 그러나, TCP를 사용할 때가 있음
    -> 크기가 512(UDP 제한)을 넘을 때

UDP Header

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

이렇게 간단하므로 TCP보다 용량이 가볍고 송신 속도가 빠름
그러나 확인 응답을 못하므로 TCP보다 신뢰도가 떨어짐
UDP : 비연결성, TCP : 연결성

DNS와 UDP 통신 프로토콜을 사용

DNS

: 데이터를 교환하는 경우
-> TCP를 사용하게 되면, 데이터를 송신할 때까지 세션 확립을 위한 처리를 하고 송신한 데이터가 수신 되었는지 점검하는 과정이 필요하므로 Protocol Overhead가 UDP에 비해 큼
: DNS는 Application layer protocol
-> 모든 Application layer protocol은 TCP, UDP 중 하나의 Transport layer protocol을 사용해야 함
-> DNS는 신뢰성일 것 같은데 UDP를 사용함

이유

  1. TCP가 3way-handshaking을 사용하는 반면, UDP는 connection을 유지할 필요가 없음
  2. DNS requests는 UDP segment에 들어갈 만큼 작음
  3. UDP는 not reliable이나 reliability application layer에 추가될 수 있음(Timeout 추가, resend 작업을 통해)
  4. DNS는 UDP를 53번 port에서 사용

그러나 TCP를 사용하는 이유

  1. Zone transfer를 사용해야 하는 경우
    -> Zone transfer : DNS 서버 간의 요청을 주고 받을 때 사용하는 transfer
  2. 데이터가 512 byte넘거나 응답을 못 받은 경우

0개의 댓글