ISO-TP {ISO 15765-2} ISO Transportation Layer Protocol is designed to run existing diagnostic protocols, this protocol helps in transmitting/receiving a message which is more than a CAN message (8 bytes). In general, a single frame of this protocol consists of a maximum capacity of 8 bytes, if it's more than 8 bytes then TP will be used.

This is a  connection-oriented transport protocol enabling Segmentation which can transmit up to 4095 bytes with broadcast and unicast addressing.

This protocol uses CAN on Data Link Layer, also used with diagnostic protocols like KWP2000 & UDS.

Single Frame: it is a standard for data that contains 8 bytes or less than that.

First frame: when transmitting/receiving a message of more than 8 bytes this frame will be the first/initial frame in the sequence.

Consecutive frame: the adjacent frame which contains the next data of the first frame.

Flow control frame: this frame indicates the flow &  rate of frames which is under communication.{this is a response from receiver}

Image Courtesy: CAN-based higher-layer protocols

If there is a mishandling of messages/error/time out the application layer will be notified. still, the sender is not aware of the status. The application layer will handle the errors.

Image Courtesy: CAN-based higher-layer protocols

Here, BS - Blocks size.

          SN - Sequence Number.

          ST - Separation Time in Minutes.

Protocol control Information: PCI will give details about what kind of information is being communicated. It will be the first nibble of the first byte in the data. PCI for the single frame will be 0 and for the first frame is 1, consecutive frame 2, Flow control 3, and so on.

Data Length: it specifies the number of bytes is being transmitted, it will be over a range of  1 to 7 in a single frame. In a single frame, the data length information will be in a 2nd nibble of the first byte, but in the first frame, data length will be 2nd nibble of the first byte + second byte. It isn't applicable for the Consecutive frame and Flows control frame.

Sequence Frame: it gives the information of sequence it is communicating consecutive frames,

It will be in the 2nd nibble of the first byte in consecutive frames. It generally starts with 1 and grows up to 9 and, for the next time it starts at 0.

Flow Control: it gives information about flow status, block size, separation time in minutes, it indicates whether the sender can proceed to transmit messages. Block size gives the number of frames in the Message.ST specifies the minimum time gap allowed between the transmission of messages.

Here the communication is only between the sender and receiver in the network, the addresses are predefined and assigned statically.

The addressing here is of two types:

Normal Addressing - Source address and destination address will be encoded in CAN identifier.

Extended Addressing - The PCI byte / first byte of CAN payload contains the gateway address and the payload will be reduced to a maximum of 6 bytes.