CS/네트워킹

[네트워킹] UDP

TTOII 2022. 2. 10. 14:49
728x90

✅ UDP 통신이란 ?!

  • 전송 계층의 비연결형 프로토콜이다.
    * 비연결형 : 연결을 위해 할당되는 논리적인 경로가 없고 각각의 패킷은 다른 경로로 전송(독립적인 관계)
    이렇게 데이터를 서로 다른 경로로, 독립적으로 처리하는 프로토콜을 UDP라고 한다.

 

✅ UDP의 특징 

  • 비연결형, 신뢰성 없는 전송 프로토콜이다.
  • 상대적으로 TCP보다 전송 속도가 빠르다.
  • 패킷 관리가 필요하다.
  • 패킷 오버헤드가 적어 네트워크 부하가 감소된다는 장점이 있다.
  • TCP와는 다르게 데이터를 쪼개주지 않아 애플리케이션 단에서 패킷을 쪼개야 한다.

 

✅ UDP 헤더 정보

 

 

✅ UDP의 사용 이유 ?

  • TCP는 신뢰성을 보장하지만 연결을 통해 시간 손실이 발생할 수 있다.
  • TCP는 패킷이 누락되면 "재전송"을 해야한다.
  • 사진 또는 영상은 데이터의 일부가 누락되어도 문제가 발생하지 않으므로 TCP는 합리적이지 못하다.
    → 이와 같은 경우 전송 속도가 빠른 UDP를 사용한다.

 

✅ TCP vs UDP

공통점

1) 포트번호를 이용하여 주소를 지정한다.
2) 데이터 오류 검사를 위한 체크섬이 존재한다.

 

차이점

오류 해결 방식에서의 차이점

  • TCP : 데이터의 분실, 중복, 순서 뒤바뀜 등을 자동으로 보정해주어 송수신 데이터의 정확한 전달을 할 수 있도록 해준다.
  • UDP : 어플리케이션에서 처리해야 한다.

 

  • TCP와 DNS(Domain Name Service)
    • Request의 양이 작음 -> UDP Request에 담길 수 있다.
    • 3-way Handshaking으로 연결을 유지할 필요가 없다. (오버헤드 발생)
    • Request에 대한 손실은 Application Layer에서 제어가 가능하다.
    • DNS : port 53번
    • 그러나 TCP를 사용할 때가 있다. 언제 ? 크기가  512(=UDP에서 제한하는 크기)를 넘을 때
728x90