HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
📖
공부한 책
/
1%의 네트워크 원리
1%의 네트워크 원리
/2장 TCP/IP의 데이터를 전기 신호로 만들어 보낸다/
UDP 프로토콜을 이용한 송.수신 동작

UDP 프로토콜을 이용한 송.수신 동작

수정 송신이 필요없는 데이터의 송신은 UDP가 효율적이다제어용 짧은 데이터UDP 헤더(8바이트)음성 및 동영상 데이터

수정 송신이 필요없는 데이터의 송신은 UDP가 효율적이다

  • 어떤 상황에서는 TCP 처럼 복잡한 구조를 사용해도 효율적으로 데이터를 다시 보낼 수 있음. 이것은 데이터의 크기가 패킷 한개에 수용할 수 있을만큼 짧은 경우임
  • 또한 TCP의 복잡한 구조를 사용하지 않으면 접속하거나 연결을 끊을 때 제어용 패킷을 보낼 필요가 없음
  • 무언가 데이터를 보내면 보통은 회신이 돌아오므로 회신이 수신 확인 응답을 대신할 수 있어서 수신 확인 응답 패킷도 필요 없음

제어용 짧은 데이터

  • DNS 서버에 대한 조회 등 제어용으로 실행하는 정보 교환은 한 개의 패킷으로 끝나는 경우가 많으므로 TCP가 아니라 UDP를 사용함
    • UDP로 송신할 수 있는 데이터의 최대 길이는 IP 패킷의 최대 길이에서 IP 헤더와 UDP 헤더를 뺀 길이임
    • MTU나 MSS와는 개념이 다른게, 이는 이더넷이나 통신 회선 등의 패킷의 최대 길이를 바탕으로 산출하지만, IP 패킷의 최대 길이는 IP 헤더의 ‘전체 길이'라는 필드의 값으로 결정되기 때문임
    • ‘전체 길이'는 16비트 값으로 표현하므로 IP 프로토콜의 사양이라는 관점에서 보면 IP 패킷의 최대값은 65,535바이트. IP 헤더와 UDP 헤더의 길이를 빼면 UDP의 데이터 최대 길이는 65,507바이트
    • 이처럼 큰 데이터는 이더넷이나 통신 회선의 패킷에 수용할 수 없으므로 IP 담당 부분이 조각 나누기 기능에 의해 패킷을 분할하고 송신동작 실행함
  • UDP에는 TCP와 같은 수신확인이나 윈도우가 없어서 데이터 송.수신 전에 제어 정보를 주고받을 필요가 없고, 접속이나 연결 끊기 단계가 없음
  • 애플리케이션에서 송신 데이터를 받으면 여기에 UDP 헤더를 부가하고 이것을 IP에 의뢰하여 송신하기만 함
  • 수신도 간단함. IP 헤더에 기록되어 있는 수신처 IP 주소와 송신처 IP 주소, 그리고 UDP 헤더에 기록되어 있는 수신처 포트 번호와 송신처 포트번호라는 네 항목과 소켓에 기록된 정보를 결합하여 데이터를 건네줄 대상 애플리케이션을 판단하고 여기에 데이터를 건네주기만 함

UDP 헤더(8바이트)

필드 명칭
길이(비트)
설명
송신처 포트 번호
16
이 패킷을 송신한 측의 포트 번호
수신처 포트 번호
16
이 패킷을 건네줄 상대의 포트 번호
데이터 길이
16
UDP 헤더 이후의 길이
체크섬
16
오류 유무를 검사하기 위한 것

음성 및 동영상 데이터

  • 음성이나 영상 데이터는 결정된 시간 안에 데이터를 건네주어야 함. 지연되면 타이밍 맞지 않아서 데이터 도착해도 쓸모가 없음
  • 음성, 영상에는 데이터가 다소 없어도 치명적인 문제가 되지 않는 성질이 있음
  • 이와 같이 다시 보낼 필요가 없거나 다시 보내도 쓸모가 없으면 단순히 UDP로 데이터를 보내는 쪽이 더 효율적임