[Network] UDP

권용환·2021년 10월 22일
0

Network

목록 보기
2/2

UDP

정의

  • 전송계층의 비연결 지향적 프로토콜

단점

  • 데이터의 신뢰성이 없다

  • 의미있는 서버를 구축하기 위해서는 일일이 패킷을 관리해줘야한다

UDP 특징

  • 비연결형 서비스로 데이터그램 방식을 제공

  • 연결을 설정하고 해제하는 hand-shaking 과정이 없다

  • UDP 헤더의 CheckSum 필드를 통해 최소한의 오류만 검출한다

  • TCP보다 신뢰성이 낮지만 속도가 빠르다

    • 서로 다른 경로로 독립적으로 데이터를 전송하지만 패킷에 순서를 부여해서 재조립하거나 흐름 제어 및 혼잡 제어를 처리해주지 않기에 속도가 빠름

    • 패킷 오버헤드가 적어 네트워크에 부하가 적다

    • 신뢰성보다 연속성이 중요한 실시간 서비스에 주로 사용

UDP 서버 특징

  • UDP에는 연결 자체가 없어서 connect 함수가 불필요하며, 서버 소켓과 클라이언트 소켓의 구분이 없다

  • UDP 소켓을 통해서 자신의 포트를 확인하기 전까지 데이터가 왔는지 알 수 없다

  • 소켓 대신 IP를 기반으로 데이터를 전송

  • 서버와 클라이언트는 1대1, 1대N, N대M 등으로 연결 가능

  • 데이터그램(메세지) 단위로 전송되며 크기는 65535 바이트로, 크기가 초과하면 잘라서 보낸다

  • 흐름제어가 없어서 패킷이 제대로 전송되었는지, 오류가 없는지 확인할 수 없다

  • 파일 전송과 같은 신뢰성이 필요한 서비스보다 성능이 중요시되는 경우에 사용

UDP 헤더 정보

  • 송신자의 포트 번호

    • 크기 : 16

    • 데이터를 보내는 애플리케이션의 포트 번호

  • 수신자의 포트 번호

    • 크기 : 16

    • 데이터를 받을 애플리케이션의 포트 번호

  • 데이터의 길이

    • 크기 : 16

    • UDP 헤더와 데이터의 총 길이

  • 체크섬

    • 크기 : 16

    • 데이터 오류 검사에 사용

TCP와의 비교

공통점

  • 포트 번호를 이용하여 주소를 지정

  • 데이터 오류 검사를 위한 체크섬 존재

    차이점

  • 연결형 / 비연결형

  • 데이터의 경계를 구분하지 않음 (Byte-Stream) / 데이터의 경계를 구분함 (Datagram)

  • 신뢰성있는 데이터 전송 (재전송 가능) / 신뢰성 없는 데이터 전송

  • 1대1 통신 (Unicast) / 1대1, 1대다 (Broadcast), 다대다 (Multicast)

참고

망나니 개발자님의 블로그
이다현님의 블로그

profile
마구 낙서하는 블로그입니다

0개의 댓글