Ouroboros Protocols: Difference between revisions
| Line 50: | Line 50: | ||
== Flow Allocation Protocol == | == Flow Allocation Protocol == | ||
Main page: [[Ouroboros Flow Allocation Protocol]] | Main page: [[Ouroboros Flow Allocation Protocol]] | ||
<pre> | |||
0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---+ | |||
| | | | |||
+ + | | |||
| | | | |||
+ id (128 bits) + | | |||
| Unique flow allocation ID | | | |||
+ + | | |||
| | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | |||
| | | | |||
+ timestamp (64 bits) + | | |||
| UTC nanoseconds since epoch | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | |||
| crt_len (16 bits) | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | |||
| | | | |||
+ + | | |||
| certificate (variable) | | | |||
+ X.509 certificate, DER encoded + | | |||
| | | | |||
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | |||
| | eph_len (16 bits) | | Signed | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Region | |||
| | | | |||
+ + | | |||
| ephemeral_key (variable) | | | |||
+ public key, DER encoded + | | |||
| | | | |||
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | |||
| | data_len (16 bits) | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | |||
| | | | |||
+ data (variable) + | | |||
| Piggybacked application data | | | |||
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | |||
| | sig_len (16 bits) | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---+ | |||
| | | |||
+ + | |||
| signature (variable) | | |||
+ DSA signature over signed region + | |||
| | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
</pre> | |||
The Flow Allocation Protocol resides in the [[Ouroboros Functional Layering|network end-to-end layer]]. | The Flow Allocation Protocol resides in the [[Ouroboros Functional Layering|network end-to-end layer]]. | ||
Revision as of 10:43, 3 January 2026
This page is under construction
The protocols in Ouroboros are designed with strong adherence to the principles of separation of concerns and separation of mechanism and policy in mind to prevent network ossification and protocol ossification from occuring.
There are 5 core protocols in Ouroboros.
Data Transfer Protocol
Main page: Ouroboros Data Transfer Protocol
The Data Transfer Protocol resides in the network forwarding layer.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Destination Address +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time-to-Live | QoS | ECN | PADDING |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ EID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ N + 1 Data +
. .
. .Flow and Retransmission Control Protocol
Main page: Flow and Retransmission Control Protocol
The Flow and Retransmission Control Protocol resides in the application end-to-end layer.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Window |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Acknowledgment Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+Flow Allocation Protocol
Main page: Ouroboros Flow Allocation Protocol
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---+ | | | + + | | | | + id (128 bits) + | | Unique flow allocation ID | | + + | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | + timestamp (64 bits) + | | UTC nanoseconds since epoch | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | crt_len (16 bits) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | | | + + | | certificate (variable) | | + X.509 certificate, DER encoded + | | | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | eph_len (16 bits) | | Signed +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Region | | | + + | | ephemeral_key (variable) | | + public key, DER encoded + | | | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | data_len (16 bits) | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | + data (variable) + | | Piggybacked application data | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | sig_len (16 bits) | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---+ | | + + | signature (variable) | + DSA signature over signed region + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The Flow Allocation Protocol resides in the network end-to-end layer.
A comparison with TLS 1.3 (generated by Claude Opus 4.5 based on the O7s codebase): Flow Allocation vs TLS
Connection Establishment Protocol
Main page: Ouroboros Connection Establishment Protocol
Enrollment Protocol
Main page: Ouroboros Enrolment Protocol
The Enrollment protocol is best seen as one of the application protocols for IPCPs.