Skip to content
Go DevBJ
Go back

DoIP에서 Session Control 먼저 이해해야 하는 이유

Edit page

DoIP 붙이고 나서 많이 하는 착각이 하나 있다.

“연결됐으면 이제 다 되는 거 아닌가?”

근데 실제 ECU는 그렇지 않다.

근데 중요한 기능은 안 된다.

왜냐면 아직 ECU가
적절한 Diagnostic Session 상태가 아니기 때문이다.

오늘은 이 Session Control 개념만 짧고 실무적으로 정리해보자.

Session Control 한 줄 정리

Diagnostic Session Control은
ECU를 특정 진단 모드로 전환하는 과정이다.

즉:

이걸 ECU가 상태 기반으로 관리한다는 뜻이다.

기본 상태는 보통 Default Session이다

ECU는 기본적으로 안전한 상태로 시작한다.

보통 이 상태다.

Default Session

여기서는 제한이 많다.

예:

즉, 기본적으로는 보호 모드 느낌이다.

왜 Session을 나누냐

이유는 단순하다.

위험한 기능 보호 때문이다.

예를 들면:

이런 걸 아무 상태에서나 허용하면 위험하다.

그래서 ECU는:

“특정 Session 들어오면 그때 허용”

이렇게 동작한다.

가장 많이 보는 Session 종류

OEM마다 조금 다르지만
보통 이런 느낌이다.

0x01 — Default Session

기본 상태다.

일반적인 진단 정도만 허용한다.

0x02 — Programming Session

Flash 계열 작업용이다.

여기 들어가야 다운로드 계열 서비스가 열린다.

0x03 — Extended Session

실무에서 제일 많이 본다.

이런 용도로 자주 사용한다.

패킷은 생각보다 단순하다

Session 변경 요청은 보통 이렇다.

요청

10 03

의미:

10 → Diagnostic Session Control
03 → Extended Session

응답

50 03

그러면 Session 변경 성공이다.

여기서:

50 = Positive Response

다.

실무에서 여기서 많이 막힌다

이건 진짜 흔하다.

1) Session 변경 안 하고 서비스 요청

예:

27 01

Security Access 요청했는데 실패.

알고 보니:

이런 경우 많다.

2) Session timeout

ECU는 일정 시간 지나면
다시 Default Session으로 돌아가는 경우 많다.

그래서:

이런 상황 나온다.

3) ECU마다 허용 범위 다름

같은 Extended Session이어도:

이런 차이 꽤 있다.

그래서 OEM 문서 중요해진다.

Negative Response도 자주 본다

대표적으로 이런 거다.

0x7E — SubFunction Not Supported In Active Session

현재 Session에서는 안 된다는 의미다.

즉:

“Session 바꾸고 다시 와라”

이 느낌이다.

0x22 — Conditions Not Correct

ECU 상태 조건 문제다.

예:

이런 것 때문에 막힌다.

디버깅할 때 보는 순서

개인적으로는 거의 이 흐름이다.

1. 현재 Session 확인
2. Session 변경 성공 여부 확인
3. Positive Response 확인
4. 이후 서비스 요청 진행
5. 실패 시 NRC 확인

특히:

이런 경우 Session timeout 꽤 많다.

DoIP에서는 더 중요해진다

CAN에서는 비교적 단순하게 느껴졌는데,
DoIP 환경에서는:

이 단계가 분리돼 있어서
Session 상태를 더 의식하게 된다.

결국 흐름을 순서대로 이해해야 한다.

다음 글에서는 Session timeout 흐름 보자

오늘은 기본 개념만 봤다.

다음은 이런 걸 보면 좋다.

여기서부터 실제 툴 구현 느낌이 강해진다.

추천 대상

한 줄 요약

Diagnostic Session Control은 ECU를 특정 진단 모드로 전환해 필요한 서비스 접근 권한을 여는 핵심 단계다.

추천 키워드

UDS Session Control, Diagnostic Session, DoIP UDS, Extended Session, Automotive Ethernet


DevBJ | No Bio, Just Log #오늘을살자


Edit page
Share this post on:

Previous Post
DoIP에서 Tester Present 왜 계속 보내는 걸까
Next Post
DoIP Security Access, 여기서부터 ECU 성격이 확 달라진다