DoIP 붙이고 나서 많이 하는 착각이 하나 있다.
“연결됐으면 이제 다 되는 거 아닌가?”
근데 실제 ECU는 그렇지 않다.
- TCP 연결 성공
- Routing Activation 성공
- UDS 요청도 감
근데 중요한 기능은 안 된다.
왜냐면 아직 ECU가
적절한 Diagnostic Session 상태가 아니기 때문이다.
오늘은 이 Session Control 개념만 짧고 실무적으로 정리해보자.
Session Control 한 줄 정리
Diagnostic Session Control은
ECU를 특정 진단 모드로 전환하는 과정이다.
즉:
- 현재 어떤 작업을 허용할지
- 어떤 서비스에 접근 가능한지
이걸 ECU가 상태 기반으로 관리한다는 뜻이다.
기본 상태는 보통 Default Session이다
ECU는 기본적으로 안전한 상태로 시작한다.
보통 이 상태다.
Default Session
여기서는 제한이 많다.
예:
- 일반 정보 조회 가능
- 일부 진단 가능
- Flash / Coding 불가
즉, 기본적으로는 보호 모드 느낌이다.
왜 Session을 나누냐
이유는 단순하다.
위험한 기능 보호 때문이다.
예를 들면:
- Firmware Flash
- ECU Reset
- Calibration 변경
이런 걸 아무 상태에서나 허용하면 위험하다.
그래서 ECU는:
“특정 Session 들어오면 그때 허용”
이렇게 동작한다.
가장 많이 보는 Session 종류
OEM마다 조금 다르지만
보통 이런 느낌이다.
0x01 — Default Session
기본 상태다.
일반적인 진단 정도만 허용한다.
0x02 — Programming Session
Flash 계열 작업용이다.
여기 들어가야 다운로드 계열 서비스가 열린다.
0x03 — Extended Session
실무에서 제일 많이 본다.
- 추가 진단 기능
- 상세 데이터 접근
- Security Access 준비
이런 용도로 자주 사용한다.
패킷은 생각보다 단순하다
Session 변경 요청은 보통 이렇다.
요청
10 03
의미:
10 → Diagnostic Session Control
03 → Extended Session
응답
50 03
그러면 Session 변경 성공이다.
여기서:
50 = Positive Response
다.
실무에서 여기서 많이 막힌다
이건 진짜 흔하다.
1) Session 변경 안 하고 서비스 요청
예:
27 01
Security Access 요청했는데 실패.
알고 보니:
- 아직 Default Session
- ECU가 unlock 거부
이런 경우 많다.
2) Session timeout
ECU는 일정 시간 지나면
다시 Default Session으로 돌아가는 경우 많다.
그래서:
- 잠깐 멈췄다가
- 갑자기 서비스 실패
이런 상황 나온다.
3) ECU마다 허용 범위 다름
같은 Extended Session이어도:
- 어떤 ECU는 허용
- 어떤 ECU는 제한
이런 차이 꽤 있다.
그래서 OEM 문서 중요해진다.
Negative Response도 자주 본다
대표적으로 이런 거다.
0x7E — SubFunction Not Supported In Active Session
현재 Session에서는 안 된다는 의미다.
즉:
“Session 바꾸고 다시 와라”
이 느낌이다.
0x22 — Conditions Not Correct
ECU 상태 조건 문제다.
예:
- Ignition 상태
- Vehicle 상태
- 특정 내부 조건
이런 것 때문에 막힌다.
디버깅할 때 보는 순서
개인적으로는 거의 이 흐름이다.
1. 현재 Session 확인
2. Session 변경 성공 여부 확인
3. Positive Response 확인
4. 이후 서비스 요청 진행
5. 실패 시 NRC 확인
특히:
- “왜 어제는 됐는데 오늘은 안 되지?”
이런 경우 Session timeout 꽤 많다.
DoIP에서는 더 중요해진다
CAN에서는 비교적 단순하게 느껴졌는데,
DoIP 환경에서는:
- 연결
- Routing
- Session
- Security
이 단계가 분리돼 있어서
Session 상태를 더 의식하게 된다.
결국 흐름을 순서대로 이해해야 한다.
다음 글에서는 Session timeout 흐름 보자
오늘은 기본 개념만 봤다.
다음은 이런 걸 보면 좋다.
- S3 timeout
- Tester Present
- Session 유지 전략
- 장시간 작업 중 세션 관리
여기서부터 실제 툴 구현 느낌이 강해진다.
추천 대상
- UDS Session 흐름이 헷갈리는 사람
- Security Access 전에 막히는 사람
- DoIP 기반 진단 흐름 정리 중인 사람
한 줄 요약
Diagnostic Session Control은 ECU를 특정 진단 모드로 전환해 필요한 서비스 접근 권한을 여는 핵심 단계다.
추천 키워드
UDS Session Control, Diagnostic Session, DoIP UDS, Extended Session, Automotive Ethernet
DevBJ | No Bio, Just Log #오늘을살자