update frame handing

This commit is contained in:
Jazz Turner-Baggs 2025-10-27 12:11:07 -07:00
parent cb429897e0
commit 403bb7bc5f
No known key found for this signature in database

View File

@ -64,7 +64,6 @@ In practice content size MUST be less that `255` * `max_seg_size` see: [initiali
Other than its size, the protocol is agnostic of content.
### Payload Delivery
How payloads are sent and received by clients is not described in this protocol.
@ -162,12 +161,13 @@ The nonce and tag are combined with the ciphertext for transport where `cipherte
## Frame Handling
This protocol uses explicit tagging of content, to remove ambiguity when parsing/handling frames.
This allows for clear distinction between content and frames providing protocol functionality.
This creates a clear distinction between frames generated by the protocol, and content which was passed in.
Even if new frames are added in the future, Clients can be certain whether the payload is intended for itself or applications.
This is achieved through an invariant - All non-content frames are intended to be consumed by the client.
When a new unknown frame arrives it can be certain that a version compatibility issue has occurred.
- Clients SHALL only pass content frames to Applications
- All application level content MUST use the `content` frameType.
- Clients SHALL only pass `content` tagged frames to Applications
- Clients MAY drop unrecognized frames