DoIP로 진단을 처음 붙여보면 대부분 여기서 한 번 막힌다.
TCP 연결도 됐고, 패킷도 잘 보내는데 ECU가 반응이 없다.
이럴 때 거의 90%는 Routing Activation 단계가 제대로 안 된 경우다.
쉽게 말하면 Routing Activation은 이거다.
“이 테스터가 이 ECU랑 진단 통신해도 된다”는 걸 차량 쪽에 등록하는 과정이다.
오늘은 깊게 다 파지 말고,
Routing Activation이 왜 필요한지, 흐름이 어떻게 되는지만 딱 짚고 간다.
Routing Activation 한 줄 정리
Routing Activation은
**DoIP에서 진단 메시지를 보내기 전에 반드시 거쳐야 하는 ‘접속 승인 단계’**다.
여기서 승인 안 나면,
UDS 메시지 아무리 보내도 그냥 무시된다.
이거 모르고 한참 패킷만 찍어보는 경우 많다.
저도 여기서 며칠 날렸습니다 ^^;;
왜 이런 단계가 필요할까
CAN에서는 이런 느낌이 상대적으로 약했다.
버스에 붙어서 ID 맞으면 그냥 통신이 되는 구조니까.
근데 DoIP는 다르다.
- IP 기반이다
- 외부 장비가 쉽게 붙을 수 있다
- 여러 ECU, 여러 테스터가 동시에 붙을 수 있다
그래서 중간에 이런 개념이 들어간다.
“누가 누구랑 통신할 건지 명확하게 열어줘야 한다”
즉, Routing Activation은
보안 + 경로 설정 + 세션 관리 역할이 섞여 있다고 보면 된다.
전체 흐름에서 위치는 여기다
DoIP 통신 흐름을 아주 단순하게 보면 이렇다.
1. TCP 연결
2. Routing Activation Request
3. Routing Activation Response
4. UDS 진단 메시지 송수신
여기서 핵심은 이거다.
- 2번을 안 하면 4번은 의미 없다
- 2번이 실패하면 이후는 다 막힌다
그래서 실무에서는 보통
Routing Activation 응답 코드부터 본다
Request / Response 구조 느낌만 보자
세부 필드는 다음 글에서 파고들고,
여기서는 “어떤 느낌인지”만 잡자.
Routing Activation Request
테스터가 보내는 메시지다.
[DoIP Header]
Payload Type: Routing Activation Request
[Payload]
- Source Address (Tester)
- Activation Type
- 기타 옵션 필드
여기서 중요한 건 크게 두 가지다.
- 나는 누구냐 (Source Address)
- 어떤 방식으로 붙을 거냐 (Activation Type)
이 두 개가 틀어지면 바로 거절당한다.
Routing Activation Response
차량(DoIP Entity)이 보내는 응답이다.
[DoIP Header]
Payload Type: Routing Activation Response
[Payload]
- Logical Address (확정된 주소)
- Response Code
여기서 제일 중요한 건 이거다.
- Response Code
이 값 하나로 거의 모든 게 설명된다.
실무에서 많이 보는 실패 패턴
이건 진짜 자주 나온다.
1) Activation Type 잘못 넣은 경우
환경마다 허용된 타입이 다를 수 있다.
문서 안 보고 그냥 넣으면 실패한다.
2) Source Address 충돌
이미 다른 테스터가 같은 주소 쓰고 있으면
Routing Activation이 안 된다.
이건 여러 장비 붙는 환경에서 특히 잘 터진다.
3) Gateway에서 막힘
DoIP Entity가 Gateway 역할을 하는 경우,
내부 ECU까지 경로가 안 열리면 여기서 막힌다.
이때는 패킷은 정상인데 응답 코드가 실패로 온다.
4) 성공했는데도 진단 안 되는 경우
이건 더 헷갈린다.
- Routing Activation은 성공
- 근데 UDS는 응답 없음
이럴 때는 이제 DoIP 문제가 아니라
UDS 레벨 문제로 내려가야 한다
이 구분이 안 되면 계속 엉뚱한 데 판다.
디버깅할 때 보는 순서
개인적으로는 이 순서로 본다.
- TCP 연결 됐나
- Routing Activation Request 나갔나
- Response Code 뭐냐
- 성공이면 → UDS 문제로 내려감
- 실패면 → Request 필드 다시 확인
이렇게 보면 생각보다 빨리 정리된다.
괜히 전체 패킷 다 보려고 하면 오히려 늦어진다.
다음 글에서는 여기 파보자
오늘은 일부러 얕게 설명했다.
이걸 이해한 상태에서 필드를 보면 훨씬 덜 헷갈린다.
다음 글에서는 이걸 제대로 뜯어보면 좋다.
- Routing Activation Request 필드 상세
- Activation Type 종류
- Response Code 의미 정리
- 실제 캡처 패킷 예시
이 부분이 DoIP에서 제일 실무 냄새 나는 구간이다.
추천 대상
- DoIP 붙였는데 UDS 응답이 안 오는 사람
- Routing Activation 개념이 애매한 사람
- Ethernet 기반 진단 흐름을 잡고 싶은 사람
한 줄 요약
Routing Activation은 DoIP에서 진단 통신을 시작하기 전에 반드시 거치는 “접속 승인 단계”다.
추천 키워드
DoIP, Routing Activation, UDS, Automotive, Ethernet, 진단, 자동차
DevBJ | No Bio, Just Log #오늘을살자