Packets are straightforward:
code l2 l1 l0 contentsWhere code is the code of the packet and l2-0 give 12 bits of length.
The protocol is designed to allow pipelining and buffering whenever possible. So most commands are not acked. Data from the frontend (POST) does need acks to prevent deadlocks at either end while waiting for new data.
The overriding protocol is controlled by requests from the frontend server.
A ping request:
Frontend Backend CSE_PING CSE_END CSE_ENDA GET request:
Frontend Backend CSE_METHOD ... CSE_HEADER/CSE_VALUE CSE_END CSE_DATA CSE_DATA CSE_ENDShort POST:
Frontend Backend CSE_METHOD ... CSE_HEADER/CSE_VALUE CSE_DATA CSE_END CSE_DATA CSE_DATA CSE_ENDLong POST:
Frontend Backend CSE_METHOD ... CSE_HEADER/CSE_VALUE CSE_DATA CSE_DATA (optional) CSE_DATA CSE_ACK CSE_DATA (optional) CSE_DATA CSE_ACK CSE_END CSE_DATA CSE_END
|
|
|
|