Vehicle Diagnostics

DoIP Diagnostics Guide

A practical engineering guide to Diagnostics over Internet Protocol: how DoIP connects diagnostic applications to ECUs, how UDS requests move across the network, and how to isolate failures using repeatable evidence.

Engineering model

How DoIP fits together

DoIP governs the transport of diagnostic communication over IP networks, while UDS governs the diagnostic services exchanged with an ECU. A working diagnostic path therefore depends on the Automotive Ethernet network, DoIP discovery and routing activation, TCP communication, ECU behavior, and valid diagnostic data such as ODX or PDX. Troubleshooting is most effective when network establishment, transport, and UDS request handling are analyzed as separate stages.

Core concepts

The parts of a practical DoIP setup

01

DoIP connection establishment

DoIP provides the network-side process used to discover an ECU, activate diagnostic routing, and establish the communication path required for diagnostic requests.

02

UDS payload transport

DoIP carries UDS communication but does not define the meaning of each diagnostic service; separating transport behavior from UDS behavior helps identify whether a failure is network-related or diagnostic.

03

Evidence at packet level

Packet captures provide timestamped evidence of discovery, routing activation, TCP communication, and diagnostic exchanges, allowing observed behavior to be compared with the expected sequence.

04

Diagnostic data interpretation

ODX and PDX can describe diagnostic services and data, but they do not by themselves prove that an ECU is reachable or that its implemented behavior matches the description.

The DoIP diagnostic model

Treat a DoIP diagnostic exchange as a chain of dependent layers rather than as one request that either works or fails.

The diagnostic application first needs a functioning Automotive Ethernet path to the ECU. DoIP then handles discovery, routing activation, and transport over IP networks. Once that path is available, the application exchanges UDS requests and responses with the ECU. A failure at an earlier stage prevents later stages from being interpreted reliably.

StageWhat it establishesTypical evidence
Automotive EthernetA usable physical and data-link network pathNetwork traffic is present in the packet capture
DoIP discoveryIdentification of an available diagnostic endpointDiscovery traffic appears before diagnostic communication
Routing activationPermission and state for diagnostic routingA routing activation exchange completes or fails
TCP communicationA reliable transport connection for diagnostic trafficTCP communication is established and remains usable
UDS exchangeExecution of a diagnostic request and responseThe ECU returns a positive response, negative response, or no response

DoIP and UDS responsibilities

The most important diagnostic distinction is between carrying a request and interpreting what the request asks the ECU to do.

DoIP is responsible for moving diagnostic communication through the IP-based path. UDS defines the diagnostic services used to access ECU functions and data, including diagnostic sessions, DIDs, DTC handling, routine control, and security access. A successful DoIP connection does not establish that a particular UDS request is supported or permitted.

  • Use DoIP evidence to determine whether the ECU can be discovered, routed, and reached over TCP communication.
  • Use UDS evidence to determine whether the request format, service state, diagnostic session, and ECU response are consistent with the expected behavior.
  • Use ODX or PDX to interpret the intended diagnostic data, but compare that description with observed ECU behavior.
  • Do not classify an absent UDS response as a UDS service failure until the DoIP connection and transport path have been shown to be healthy.

A disciplined DoIP troubleshooting sequence

Work from the outside of the communication path inward so that an upper-layer symptom is not mistaken for a lower-layer defect.

  1. 01

    Define the expected exchange

    Record the ECU, the diagnostic request, the expected response, the reproduction steps, and the conditions under which the problem occurs. Use the problem description as the baseline for analysis.

  2. 02

    Check Automotive Ethernet activity

    Determine whether network traffic exists at all. If the packet capture contains no relevant traffic, investigate the network path before evaluating DoIP or UDS behavior.

  3. 03

    Inspect DoIP discovery

    Check whether the expected ECU participates in discovery. An ECU not responding at this stage cannot be diagnosed by analyzing a later UDS response.

  4. 04

    Inspect routing activation

    Verify whether diagnostic routing is requested and whether the exchange completes. A discovery result alone does not demonstrate that diagnostic communication is available.

  5. 05

    Check TCP communication

    Confirm that the transport connection is established and remains usable for the diagnostic exchange. Separate connection establishment problems from request-level problems.

  6. 06

    Evaluate the UDS exchange

    Only after the DoIP path is established, compare the request and response with the expected UDS behavior and the applicable ODX or PDX description.

  7. 07

    Preserve and correlate evidence

    Correlate application timestamps, packet timestamps, request content, response content, and the problem description. Record uncertainty where the evidence does not isolate one cause.

Using PCAP for engineering analysis

A packet capture is most useful when it is analyzed as a sequence with timing and state, not as an isolated collection of packets.

Start by identifying the first relevant network activity and follow the exchange through discovery, routing activation, TCP communication, and UDS traffic. Compare the observed order with the expected connection model. Missing traffic, repeated attempts, delayed responses, and a connection that closes at a specific point are all useful evidence, but none should be treated as conclusive without correlating the application result and reproduction conditions.

  • Preserve the original PCAP and analyze a working and failing exchange separately when both are available.
  • Record timestamps and maintain the observed order of discovery, routing activation, TCP communication, and UDS activity.
  • Distinguish no response from a negative UDS response; they indicate different points of failure.
  • Correlate packet evidence with the diagnostic application result rather than relying on the application message alone.
  • Document the capture conditions, ECU under test, request used, and expected behavior so the analysis can be repeated.
ObservationWhat it may indicateNext reasoning step
No relevant network trafficThe diagnostic application or network path may not have produced the expected exchangeVerify the test setup and capture scope before analyzing ECU behavior
Discovery occurs but routing activation does not completeThe ECU is visible but the diagnostic route is not establishedAnalyze the routing activation exchange and its application context
Routing activation completes but TCP communication failsThe transport path is not usable for the diagnostic exchangeSeparate connection failure from UDS request handling
TCP communication is present but no UDS response appearsThe request may not reach the ECU or the ECU may not respond as expectedCorrelate request timing, connection state, and ECU behavior
A UDS negative response is returnedThe ECU processed the request but did not accept it as requestedInterpret the response against the diagnostic session and ODX or PDX data

ODX, PDX, and implementation alignment

Diagnostic descriptions support interpretation and test design, but the ECU and the description must be treated as separately verifiable sources of behavior.

ODX provides diagnostic-data descriptions, while PDX packages ODX data for exchange. A diagnostic application can use these inputs to construct and interpret UDS communication, but the data description does not establish that the ECU is reachable through DoIP or that the implementation behaves exactly as described.

  1. 01

    Load the diagnostic description

    Identify the ODX or PDX data that applies to the ECU and diagnostic operation being tested.

  2. 02

    Separate description from observation

    Record what the diagnostic data predicts independently from what the ECU and packet capture actually show.

  3. 03

    Exercise the communication path

    Establish the DoIP path and perform the UDS exchange under defined test conditions.

  4. 04

    Compare expected and observed behavior

    Check request structure, response behavior, diagnostic session assumptions, and timing evidence without treating a mismatch as proof of one specific root cause.

  5. 05

    Document the discrepancy

    Capture the relevant input data, PCAP evidence, application result, and problem description in an engineering analysis.

Building reliable diagnostic capabilities

A diagnostic application or automated test suite should expose enough state to distinguish network, transport, and UDS outcomes.

A useful diagnostic application should not collapse discovery failure, routing activation failure, TCP communication failure, and UDS request failure into one generic result. An automated test suite should assert each relevant stage separately, preserve the request and response evidence, and report the point at which expected behavior diverged.

  • Represent DoIP connection stages explicitly so failures can be located without inspecting raw output first.
  • Keep UDS service interpretation separate from transport status.
  • Make the ECU, ODX or PDX input, request, expected response, and reproduction conditions part of the test context.
  • Store packet evidence when a test fails so a repeated run can be compared with the original result.
  • Use engineering analysis to record evidence and reasoning rather than only recording pass or fail.

Engineering pitfalls

Common mistakes

  1. Treating DoIP and UDS as the same layer

    DoIP transports diagnostic communication, while UDS defines diagnostic services. A working DoIP connection does not prove that a UDS request is valid, supported, or permitted.

  2. Starting with UDS interpretation before checking connectivity

    If discovery, routing activation, or TCP communication did not complete, the absence of a UDS response does not yet identify a UDS problem.

  3. Assuming discovery proves diagnostic access

    An ECU may be visible during discovery without having a completed diagnostic route. Routing activation must be examined separately.

  4. Treating ODX or PDX as proof of ECU behavior

    ODX and PDX describe diagnostic data, but observed ECU behavior and network evidence still need to be verified.

  5. Relying only on a diagnostic application error

    Application-level errors often hide the failed stage. Correlate the result with PCAP timestamps and the expected DoIP sequence.

  6. Capturing traffic without recording test conditions

    A PCAP without the ECU, request, expected response, and reproduction context is difficult to interpret or compare with another exchange.

FAQ

DoIP questions

What is the difference between DoIP and UDS?
DoIP provides diagnostic transport over IP networks, including discovery, routing activation, and TCP communication. UDS defines the diagnostic services exchanged with the ECU. DoIP can be available even when a particular UDS request is unsupported or rejected.
What should be checked when an ECU is not responding?
Check the stages in order: Automotive Ethernet activity, DoIP discovery, routing activation, TCP communication, and finally the UDS exchange. Use a PCAP and the problem description to distinguish missing traffic from a returned negative response.
Does successful discovery mean that diagnostics will work?
No. Discovery indicates that the ECU is visible to the network process, but diagnostic communication also depends on successful routing activation, usable TCP communication, and acceptable UDS behavior.
How do ODX and PDX help with DoIP diagnostics?
ODX and PDX provide diagnostic-data descriptions that help a diagnostic application construct and interpret UDS communication. They do not establish network reachability or prove that the ECU implementation matches the description.
What evidence should an automated DoIP test preserve?
Preserve the ECU under test, the ODX or PDX input when applicable, the request and expected response, the test conditions, the application result, and the PCAP. This allows the failed stage to be compared across repeated runs.

Engineering support

Discuss a DoIP Project

Need help building a diagnostic application, automated test suite, or engineering analysis around DoIP and UDS? Get focused engineering support for implementation, testing, and troubleshooting.