Why can the DLC (data length code) be 0 in CANBUS?
There are a couple of cases where this is of use.
Keepalive. If there is no data that actually needs to be sent but an indication that a node is active.
Trigger. If a node requests a certain type of data from another node, a specific ID is all that is required for a node to then transmit the needed data.