UDP (User Datagram Protocol)TCP·IP 스택 Transport 계층의 비연결형(connectionless) 프로토콜. 연결 설정 없이 데이터를 독립적으로 전송하여 신속성을 우선시하며, 신뢰성은 보장하지 않는다.

주요 특징

  • Connectionless — 송·수신 노드가 데이터를 주고받기 전 연결을 미리 약속하지 않음. 메시지에 수신자 IP/Port를 명기.
  • Unreliable — 메시지 수신 여부를 확인하지 않음. 유실·순서 뒤바뀜이 발생할 수 있음.
  • 신속성 — 헤더가 8 Byte로 최소화되어 빠른 전송에 적합.
  • 데이터 경계 유지 — Datagram 단위로 송수신. 3번 sendto() 하면 3번 recvfrom() 해야 함.
  • 에러 처리: Checksum으로 손상 감지 → 손상된 패킷은 버림, 재전송 요구 없음.

UDP 헤더 구조

총 8 Byte, 2 Byte × 4 필드로 구성:

필드크기역할
Source Port2 Byte송신 Application Port 번호
Destination Port2 Byte수신 Application Port 번호
Total Length2 Byte전체 Datagram 길이 (헤더 + Data)
Checksum2 Byte헤더 + 데이터 무결성 검증

Process-to-Process 통신

  • Transport 계층은 프로세스-대-프로세스 통신을 담당.
  • IP 주소로 목적 노드 도달 → Port 번호로 노드 내 특정 Process 연결.
  • 클라이언트는 서버 IP·Port를 알고 데이터를 전송. 서버는 수신 패킷으로부터 클라이언트 IP·Port 확보.
  • 클라이언트 Port는 일반적으로 미사용 임시 번호를 사용.

Well-Known Port (UDP 사용)

주요 Port 번호 (UDP 지원):

PortProtocol설명
7Echo수신한 Datagram 반환
9Discard수신한 Datagram 폐기
13Daytime날짜·시간 반환
53DNSDomain Name Service
67DHCPDynamic Host Configuration
69TFTPTrivial File Transfer Protocol
123NTPNetwork Time Protocol
161SNMPSimple Network Management (서버)
162SNMPSimple Network Management (클라)

통신 범위 (Types of Communication)

UDP는 세 가지 전송 범위를 지원:

방식대상
Unicast특정 IP를 가진 단일 노드
Multicast멀티캐스트 IP (224.0.1.0~239.255.255.255)에 가입한 노드
Broadcast네트워크 내 모든 노드. 192.168.0.255 (서브넷) / 255.255.255.255 (전세계)

UDP 장단점

단점:

  • 데이터 수신 확인 없음 → 누락 인지 불가.
  • 송·수신 순서 보장 없음.

장점:

  • TCP 대비 헤더·프로토콜이 간단 → 전송 속도 빠르고 CPU·통신 리소스 절약.
  • 데이터 정확성보다 시간 민감성이 우선인 응용에 적합 — YouTube, 실시간 비디오 스트리밍 등.

프로그래밍 모델

  • 소켓 생성 → sendto() / recvfrom() — 매 전송마다 목적지 IP·Port 지정.
  • connect() 수행 시 소켓에 IP·Port 등록 → send() / recv() 사용 가능 (매번 지정 불필요, 효율적).

UDP NM (AUTOSAR 네트워크 관리)

차량 Ethernet에서 사용되는 네트워크 관리(NM) 프로토콜. 기존 CAN 모듈의 NM 기능을 TCP/IP 버전으로 포팅한 것으로, UDP 메시지를 활용해 Sleep/Wake-up 조율을 수행한다.

동작 원리

  • CAN NM은 Direct·Indirect 두 방식을 지원하지만, UDP NM은 Direct NM 기법만 사용.
  • 네트워크에 참여하는 모든 노드는 브로드캐스트주기적 NM 메시지를 전송.
  • 특정 제어기가 Sleep으로 천이할 준비가 된 경우, 다른 노드의 NM 메시지를 수신하면 Sleep 천이를 연기.
  • 모든 노드가 NM 메시지 전송을 중단하면 네트워크에 연결된 모든 제어기가 Sleep 모드로 천이.
  • Partial Network 지원 — 일부 노드만 활성 상태 유지 가능.

State Machine 동작

  • Bus-Sleep / Prepare Bus-Sleep 모드에서 천이하여 활성화된 경우 → 즉시 전송 후 주기적 전송.
  • Normal Operation / Ready Sleep 상태에서 천이한 경우 → 즉시 전송하지 않고 주기적 전송 (동시 전송 burst 방지).
  • 반복 메시지 전송으로 네트워크 내 참여 노드를 지속 확인하며 네트워크 유지.

같이 보기