DoIP (Diagnostics over Internet Protocol)ISO 13400에 정의된 차량 진단 데이터 전송 프로토콜. 기존 CAN TP 기반의 저속 진단 통신을 Ethernet + TCP/IP 스택으로 대체하여, UDS 진단 메시지를 고속·대용량으로 전달한다. 차량 Ethernet이 차량 진단 분야에 최초로 적용된 주요 계기.

표준 구성

DoIP는 ISO 13400과 ISO 14229의 조합으로 동작한다.

표준범위
ISO 13400-2Network / Transport Layer — TCP·UDP·IP 기반 DoIP 메시지 전송
ISO 13400-3Physical / Data Link Layer — IEEE 802.3 기반 유선 차량 인터페이스
ISO 14229상위 진단 프로토콜 — DoIP가 운반하는 페이로드

DoIP는 진단 세션의 전송 수단만 담당하며, 진단 서비스 의미론은 UDS가 정의한다.

Ethernet Physical Layer 요구사항

DoIP Edge Node가 잡음 환경에서 진단기와 안정적으로 연결되기 위한 요구사항.

  • 100BASE-TX 필수 — 최대 100 Mbit/s, 케이블 길이 100 m.
  • 10BASE-T 필수 — 최대 10 Mbit/s, 케이블 길이 100 m.
  • 진단기와 DoIP Edge Node PHY 사이 최대 케이블 길이로 구현 요구사항 정의.

Activation Line

Ethernet 컨트롤러를 선택적으로 활성/비활성화하는 하드웨어 제어 라인. WoL(Wake on LAN)의 대안으로 도입.

도입 목적

  • 전자파 간섭(EMI) 감소 — 미사용 시 Ethernet 컨트롤러 OFF.
  • DoIP Edge Node의 전력 소비 감소.

WoL의 단점

WoL(Wake on LAN)을 대신 쓰지 않는 이유:

  • 깨우기 위한 MAC 주소가 필요.
  • Magic Packet 수신을 지속 감시해야 하므로 전류 소모가 큰 Ethernet 컨트롤러가 계속 동작해야 함.

Activation Line 방식은 물리 선 한 가닥으로 컨트롤러 파워를 직접 제어하므로 이 두 문제를 회피.

전기 파라미터

파라미터MinTypicalMax
9 kΩ (−1%)10 kΩ (+1%)-
0 mA1.3 mA2 mA
510 Ω (−5%)1 kΩ (+5%)-
0 V-16 V
(t ≤ 60 s)−14 V-28 V
  • 면 Ethernet 비활성.
  • 1.3 mA는 , 일 때의 예시.

DoIP Header 구조

DoIP Frame은 Generic DoIP Header + Payload로 구성된다.

필드크기 (Byte)설명
Protocol Version1DoIP 패킷의 프로토콜 버전
Inverse Protocol Version1Protocol Version의 비트 반전값 — 수신 검증 패턴 (= V XOR 0xFF)
Payload Type2페이로드 해석 방법 (진단 메시지, 게이트웨이 명령 등)
Payload Length4Payload 바이트 수 (헤더 제외, 최대 4 294 967 295)
Data가변Payload Type별 메시지 본문

Protocol Version 값

의미
0x00Reserved
0x01DoIP ISO/DIS 13400-2:2010
0x02DoIP ISO 13400-2:2012
0x03~0xFEReserved
0xFFVehicle Identification Request 메시지 기본값

Inverse Protocol Version은 V XOR 0xFF (예: 0x01 → 0xFE) — 노이즈·비정상 프레임 조기 검출용.

주요 Payload Type (진단 메시지)

이름포트·프로토콜
0x8001Diagnostic messageTCP_DATA
0x8002Diagnostic message positive acknowledgementTCP_DATA
0x8003Diagnostic message negative acknowledgementTCP_DATA

진단 메시지인 경우 Data 필드에는 UDS 메시지가 실린다.

Transport Layer 사용

TCP — 진단 메시지 송수신

  • 포트 13400 (TCP_DATA).
  • 진단 메시지(0x8001)·ACK(0x8002/0x8003)는 TCP 세션을 통해 전달.
  • 세션 확립: ARP로 MAC 획득 → TCP 3-way Handshake → TCP_DATA 소켓 연결.

UDP — 차량 식별과 제어

  • 포트 13400 (UDP_DISCOVERY).
  • 외부 진단기 → DoIP Entity로 차량 정보 요청·제어 명령 전달.
  • 외부 진단기가 보내는 UDP 패킷의 목적지 포트는 고정 13400, 소스 포트는 동적 할당.
UDP 포트번호용도
UDP_DISCOVERY13400외부 진단기가 DoIP Entity로 차량 정보 요청·제어 명령 전송 (목적지). 소스로는 사용 가능하지만 동적 할당.
UDP_TEST_EQUIPMENT_REQUEST동적 할당외부 진단기가 동적 할당. 메시지 전송 시 소스 포트, 응답 시 목적지 포트로 사용.

TCP가 신뢰성 있는 바이트 스트림을 제공하므로 진단 메시지는 세그멘테이션으로 길이 제한 없이 전송 가능. 반면 UDP는 차량 탐색·알림 용도로 가볍게 사용.

Diagnostic Routing

진단 테스터와 CAN/FlexRay 기반 ECU 사이의 상호 운용을 위해 DoIP Edge Node(게이트웨이)가 수행하는 라우팅.

DoIP ↔ CAN ECU 라우팅

[Tester] ──DoIP/TCP──→ [Gateway] ──CAN──→ [CAN ECU]
  1. TCP 소켓 연결 — Tester와 Gateway 사이.
  2. Gateway가 진단 라우팅 수행 — ECU의 TxID로 메시지 전송, RxID로 응답 수신.
  3. 응답 Forwarding — Gateway가 CAN ECU의 응답을 Tester로 전달.

구현 절차:

  1. ARP로 MAC 해석 — Tester(192.168.1.1)가 Gateway IP(192.168.1.2)의 MAC 획득.
  2. TCP 3-way Handshake → TCP_DATA 소켓 연결.
  3. Routing Activation 요청/응답 교환.
  4. Tester가 진단 메시지 전송 (예: Tester 0x200 → UDS ECU 0x203, UDS 10 01).
  5. Gateway가 Positive Acknowledge 전송.
  6. ECU 응답(예: 06 50 01 F4 09 C4 00, 길이 6) → Gateway가 Tester로 Forward.

DoIP ↔ Ethernet ECU 라우팅

[Tester] ──DoIP/TCP──→ [Ethernet ECU]

Gateway 경유 없이 Tester가 Ethernet ECU와 직접 TCP 세션을 맺는다.

  1. Tester(192.168.1.1)가 ECU(192.168.1.3) IP의 MAC을 ARP로 획득.
  2. TCP 3-way Handshake → TCP_DATA 소켓 연결.
  3. Routing Activation.
  4. Tester 진단 메시지 전송 (예: Tester 0x200 → DoIP ECU 0x205, UDS 10 03).
  5. ECU 응답 Positive Acknowledge.
  6. ECU 처리 후 응답 (예: 50 03 11 D4 08 C7 62).

Routing Table

Gateway가 DoIP Target Address(TA)를 CAN 네트워크·CAN ID로 매핑하기 위해 보관.

TANetworkRx IDTx ID
0x201CAN 10x6010x701
0x202CAN 20x6020x702
0x203CAN 10x6030x703

Gateway는 수신한 DoIP 메시지의 TA로 행을 조회하여 해당 CAN 네트워크에 TxID로 송신, 응답은 RxID로 수신하여 Tester에게 되돌린다.

성능 분석 (진단 처리 시간)

같은 진단 시퀀스를 경로별로 비교하면 Gateway 경유가 2 배 이상의 지연을 초래한다.

경로구성Total 처리 시간
DoIP ↔ CAN ECUT_tester_gw + T_gw_process + T_gw_ecu + T_ecu_process + T_ecu_gw + T_gw_process_rev + T_gw_tester3129.2 µs (최대 5049.2 µs)
DoIP ↔ Ethernet ECUT_tester_ecu + T_ecu_process + T_ecu_tester1011.2 µs
  • T_gw_ecu / T_ecu_gw는 CAN 통신 속도에 의해 결정되므로 T_total_can은 CAN 전송률에 따라 변동.
  • Zonal 구조로 ECU를 Ethernet화하면 진단 처리 시간이 약 3배 단축 가능.

같이 보기