I am aware of the following general protocol properties for inter-system (task,process,device,etc) communication, both computing unit address/cache-local and distributed:
- Local system bus/IPC interfaces/system challenges
1. CIA
2. (re-)identification
3. performance requirements (latency, throughput, bandwidth)
4. semi-reliable systems schedule with sane error behavior
5. debugging concept (simulation, reversible computing, recording, tracing, stepping, validation etc)
- Distributed system bus/interface system challenges
same as local ones, but with typical distributed system properties on top
1 idempotency
2 consistency
3 backpressure
(4 observability)
5 fault-tolerance
(6 service discovery)
(less often)
7 consensus
8 replication
One problem is that most of (for example) TCP and run-time behavior is hidden from the user, so you have to guesstimate, if it works.
I'm only aware of bare-bone hypervisors and micro-kernels making run-time behavior explicit (all Kernels go into that direction for IO, see io_uring etc),
but I have no numbers on how reliable NICs or peripherials are (or can be used) outside of SPS field buses.