@@ -7,7 +7,7 @@ Key words used by this document conform to the meanings in [RFC 2119](https://to
7
7
8
8
## Terminology
9
9
10
- * __ Frame__ : A frame of data containing a request or a response .
10
+ * __ Frame__ : A frame of data containing a request, response, or protocol processing .
11
11
* __ Fragment__ : A portion of an application message that has been partitioned for inclusion in a Frame.
12
12
See [ Fragmentation and Reassembly] ( #fragmentation-and-reassembly ) .
13
13
* __ Transport__ : Protocol used to carry ReactiveSockets protocol. One of WebSockets, TCP, or Aeron. The transport MUST
@@ -65,8 +65,8 @@ reception. Flags generally depend on Frame Type, but all frame types must provid
65
65
66
66
#### Handling Ignore Flag
67
67
68
- The __ I __ gnore flag is used for extension of the protocol. A value of 0 in a frame for this flag indicates the protocol can't
69
- ignore this frame. An implementation MAY close the connection on reception of a frame that it does not understand with this
68
+ The ( __ I __ )gnore flag is used for extension of the protocol. A value of 0 in a frame for this flag indicates the protocol can't
69
+ ignore this frame. An implementation MAY close the underlying transport connection on reception of a frame that it does not understand with this
70
70
bit not set.
71
71
72
72
#### Metadata Optional Header
@@ -110,7 +110,7 @@ to odd/even values. In other words, a client MUST generate even Stream IDs and a
110
110
| Type | Value | Description |
111
111
| :-------------------------------| :-------| :------------|
112
112
| __ RESERVED__ | 0x0000 | __ Reserved__ |
113
- | __ SETUP__ | 0x0001 | __ Setup__ : Capabilities Of Side Sending The Frame. |
113
+ | __ SETUP__ | 0x0001 | __ Setup__ : Capabilities Of Client Sending The Frame. |
114
114
| __ LEASE__ | 0x0002 | __ Lease__ : |
115
115
| __ KEEPALIVE__ | 0x0003 | __ Keepalive__ : Connection keepalive. |
116
116
| __ REQUEST_RESPONSE__ | 0x0004 | __ Request Response__ : |
@@ -162,7 +162,7 @@ Frame Contents
162
162
* (__ S__ )trict: Adhere to strict interpretation of Data and Metadata.
163
163
* __ Version__ : Version of the protocol.
164
164
* __ Time Between KEEPALIVE Frames__ : Time (in nanoseconds) between KEEPALIVE frames that the client will send.
165
- * __ Max Lifetime __ : Time (in nanoseconds) that a client will allow a server to not respond to a KEEPALIVE before
165
+ * __ Max Lifetime __ : Time (in nanoseconds) that a client will allow a server to not respond to a KEEPALIVE before
166
166
it is assumed to be dead.
167
167
* __ MIME Length__ : Encoding MIME Type Length in bytes.
168
168
* __ Encoding MIME Type__ : MIME Type for encoding of Data and Metadata. This is a US-ASCII string
@@ -217,7 +217,7 @@ means the error pertains to a given stream.
217
217
| __ REJECTED_SETUP__ | 0x0003 | The server rejected the setup, it can specify the reason in the payload. Stream ID MUST be 0. |
218
218
| __ CONNECTION_ERROR__ | 0x0011 | The connection is being terminated. Stream ID MUST be 0. |
219
219
| __ APPLICATION_ERROR__ | 0x0021 | Application layer logic generating a Reactive Streams _ onError_ event. Stream ID MUST be non-0. |
220
- | __ LEASE_ERROR__ | 0x0022 | LEASE semantics indicate that the request can not be handled at this time. |
220
+ | __ LEASE_ERROR__ | 0x0022 | LEASE semantics indicate that the request can not be handled at this time. Stream ID MUST be non-0. |
221
221
| __ RESERVED__ | 0xFFFF | __ Reserved for Extension Use__ |
222
222
223
223
__ NOTE__ : Values in the range of 0x0001 to 0x000F are reserved for use as SETUP_ERROR codes. Values in the range of
@@ -620,16 +620,23 @@ The possible sequences with LEASE are below.
620
620
621
621
## Fragmentation And Reassembly
622
622
623
- RESPONSE frames may represent a large object and MAY need to be fragmented to fit within the Frame Data size. When this
624
- occurs, the RESPONSE __ F__ flag indicates if more fragments follow this frame.
623
+ RESPONSE frames and REQUEST_CHANNEL frames may represent a large object and MAY need to be fragmented to fit within the Frame Data size. When this
624
+ occurs, the RESPONSE __ F__ flag indicates if more fragments follow the current frame (or not) .
625
625
626
626
## Stream Sequences and Lifetimes
627
627
628
+ Streams exists for a specific period of time. So an implementation may assume that Stream IDs are valid for a finite period of time. This period
629
+ of time is bound by, at most, the lifetime of the underlying transport protocol connection lifetime. Beyond that, each interaction pattern imposes
630
+ lifetime based on a sequence of interactions between Requester and Responder.
631
+
628
632
In the section below, "RQ -> RS" refers to Requester sending a frame to a Responder. And "RS -> RQ" refers to Responder sending
629
633
a frame to a Requester.
630
634
631
635
In the section below, "* " refers to 0 or more and "+" refers to 1 or more.
632
636
637
+ Once a stream has "terminated", the Stream ID can be "forgotten" by the Requester and Responder. An implementation MAY re-use an ID at this
638
+ time, but it is recommended that an implementation not aggressively re-use IDs.
639
+
633
640
### Request Response
634
641
635
642
1 . RQ -> RS: REQUEST_RESPONSE
0 commit comments