Table of Contents
We have chosen to describe the Canon Serial Protocol as successive layers. I used OSI-like names but the protocol is not really a network protocol.
Data link layer:
Responsible for framing, escaping and checksumming messages
Transport (packet) layer:
Responsible for dividing messages into packets of known length. This layer also handles handshaking, retries, etc.
Session (message) layer:
Last layer, carrying whole messages, such as download requests, image data, and such information. Currently, all these layers are documented, but we still lack information on how to handle protocol retries, and errors in general.