Skip to content

ISO-TP

This page teaches how ISO-TP turns several observed CAN payloads into one larger transport message without deciding what that message means.

Status Examples Runtime example Source posture
final-copy synthetic/passive available standards metadata plus public/tooling cross-checks

A Concrete Artifact

# synthetic passive ISO-TP exchange over CAN identifiers 0x7e0 and 0x7e8
0x7e0  10 0a 22 f1 90 12 34 56
0x7e8  30 00 00
0x7e0  21 78 9a bc de

Synthetic

Synthetic offline sample for explanation; not a real operational trace or live-system instruction.

Inspection Trap

A complete ISO-TP reassembly can look like a complete diagnostic interpretation. It is not. ISO-TP explains how bytes crossed CAN frame boundaries; UDS, OBD-II, or another application authority explains what the reassembled bytes mean.

The safer claim is transport-relative: a passive observer can describe first frame length, flow-control evidence, consecutive-frame sequence, and the reassembled byte string. Application semantics stay outside ISO-TP.

Worked Decode

  1. 10 0a is a first-frame-shaped PCI: high nibble 1 means first frame, and the teaching length is 0x00a, or ten application bytes.
  2. The first frame contributes six data bytes: 22 f1 90 12 34 56.
  3. 30 00 00 is a flow-control-shaped payload. In this teaching model, it means continue-to-send with block size 0 and separation-time byte 0.
  4. 21 78 9a bc de is a consecutive-frame-shaped payload with sequence number 1 and four more data bytes.
  5. The reassembled transport payload is:
22 f1 90 12 34 56 78 9a bc de

That byte string can be handed to a UDS page or another application decoder, but ISO-TP itself stops at transport reconstruction.

What The Evidence Supports

The artifact supports a transport claim: three observed CAN payloads form a complete ten-byte ISO-TP teaching message with one first frame, one flow-control frame, and one consecutive frame. The sequence and length are internally consistent in the current toy model.

It also supports timing questions: the flow-control response and subsequent consecutive frame are part of the evidence for request/response pairing and transport pacing.

What The Evidence Does Not Support

The artifact does not prove UDS service meaning, DID meaning, ECU identity, tester intent, physical state, session state, or whether the same exchange would work in another context. Reassembly completeness is not application truth.

The page does not teach live diagnostic operation. It describes already-observed transport evidence.

Field Layout / Anatomy

Element Shape Inspection meaning
Single frame PCI plus data Small payload carried in one CAN frame.
First frame PCI length plus data Starts a segmented transfer and declares total length.
Flow control status, block, STmin Receiver-side transport pacing evidence.
Consecutive frame sequence number + data Continuation evidence for reassembly.
Addressing CAN IDs or addressing fields Context for pairing request, response, and direction.
Reassembly state observer model Length, order, completeness, timeout, and ambiguity.

Visual Model

sequenceDiagram participant Sender as Observed sender participant Receiver as Observed receiver Sender->>Receiver: First frame, length 10 Receiver-->>Sender: Flow control, continue-to-send Sender->>Receiver: Consecutive frame, SN=1
packet +8: "10 first-frame PCI" +8: "0a length" +48: "22 f1 90 12 34 56" +8: "21 consecutive PCI" +32: "78 9a bc de"

Timing And Authority

ISO-TP authority is conversational. Flow control lets the receiver shape how the sender continues, so timing gaps and missing consecutive frames are part of the transport evidence.

Semantic authority

ISO-TP does not name diagnostic services, parameters, or engineering values. Those claims require the application layer carried inside the transport payload, such as UDS service definitions and DID catalogs.

Failure And Ambiguity

  • A missing consecutive frame can make an incomplete application payload look like a smaller complete one if length is ignored.
  • Wrong addressing context can pair the wrong sender and receiver.
  • STmin and block-size evidence affect timing interpretation.
  • Sequence-number gaps can indicate loss, capture gaps, or mixed conversations.
  • A valid reassembly can still carry proprietary or unknown application bytes.

Python Model

The current package exposes small ISO-TP frame and reassembly models for passive transport inspection:

"""Runnable ISO-TP transport reassembly example for the schoolbus binder."""

from schoolbus.protocols.isotp import IsoTpFrame, IsoTpReassembly

payloads = [
    "10 0a 22 f1 90 12 34 56",
    "30 00 00",
    "21 78 9a bc de",
]

frames = [IsoTpFrame.from_hex(payload) for payload in payloads]
reassembly = IsoTpReassembly(tuple(frames))

print([frame.show_fields() for frame in frames])
print(reassembly.show_fields())
print(reassembly.explain())

The model reconstructs transport bytes from observed payload fragments. It does not interpret UDS services, parameters, or live-system behavior.

Simplification

The exchange is synthetic. It omits extended/mixed addressing variants, exact timer values, padding policy, normal-fixed addressing, and conformance behavior.

Source Notes

Teaching claim Source role Limit
ISO-TP segments and reassembles larger CAN payloads. canonical metadata Not a reproduced ISO service primitive or timing table.
Linux ISO-TP docs can cross-check teaching shape. tooling reference Kernel docs are implementation documentation, not ISO text.
UDS meaning is above ISO-TP. schoolbus governance/source policy The page does not define proprietary diagnostic data.
The exchange and reassembled payload are synthetic. synthetic teaching artifact Not operational capture evidence or diagnostic truth.
Scapy, python-can, can-utils, and udsoncan are context. tooling reference Tool behavior is cross-check context, not normative scope.
Field Value
Governance tier Tier 1 Core Lab
Canonical source status yes
Public explainer status yes
Open-source tool status yes
Sample-data status none listed; use synthetic teaching artifacts
Confidence high
Citation specificity document-metadata-level

References

Public Sources

Project posture is aggregated in the protocol support policy, source policy, and project charter.