You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -155,13 +167,13 @@ The IP destination address of this new, shared path MAY be a multicast address,
155
167
so that all receivers attached to this multicast tree receive the same packet.
156
168
157
169
The case were the IP destination address is _not_ an IP multicast address is discussed
158
-
later in this document. In this case, Flexicast QUIC uses packet replication at the
159
-
source, e.g., using sendmmsg, using the unicast destination address of the receivers.
170
+
later in this document. In this case, Flexicast QUIC uses packet replication at the
171
+
source, e.g., using sendmmsg, using the unicast destination address of the receivers.
160
172
This solution scales at the source because Flexicast QUIC generates and encrypts only one packet,
161
173
and duplicating the bytes is straightforward.
162
174
163
175
A Flexicast QUIC connection starts with a handshake like a regular QUIC
164
-
connection. Receivers R1, R2 and R3 establish a connection to source S using the
176
+
connection. Receivers R1, R2 and R3 establish a connection to source S using the
165
177
flexicast_support and the initial_max_path_id transport parameters.
166
178
The initial path between each receiver and the source are individually secured using
167
179
the keys derived at connection establishement. They remain open during the whole
@@ -178,12 +190,12 @@ all the packets sent by the source over this flow are secured using keys that ar
178
190
shared between the source and the receivers attached to the flexicast flow.
179
191
180
192
Flexicast QUIC supports two types of flexicast flows. The first type flexicast flow
181
-
is an IP multicast tree, as illustrated in {{fig-flexicast-2}}. The source relies
193
+
is an IP multicast tree, as illustrated in {{fig-flexicast-2}}. The source relies
182
194
on an underlying IP multicast network to create an IP multicast tree and selects a set
183
-
of encryption and authentication keys. It advertises a flexicast flow using the
184
-
FC_ANNOUNCE frame to the receivers. The FC_ANNOUNCE frame contains information such
185
-
as the Flexicast Flow ID, i.e., the equivalent of the Connection ID for the flexicast
186
-
flow, and the source and multicast group IP addresses that the receivers use to join the
195
+
of encryption and authentication keys. It advertises a flexicast flow using the
196
+
FC_ANNOUNCE frame to the receivers. The FC_ANNOUNCE frame contains information such
197
+
as the Flexicast Flow ID, i.e., the equivalent of the Connection ID for the flexicast
198
+
flow, and the source and multicast group IP addresses that the receivers use to join the
187
199
underlying IP multicast tree. The source then uses the FC_KEY frame
188
200
to avertise the shared keys to each receiver. They can now receive and decrypt
189
201
the data sent by the source along the multicast tree.
@@ -196,7 +208,7 @@ e.g. when some data was missing at only one receiver.
196
208
Flexicast QUIC supports non-multicast-capable receivers in two different ways. A first
197
209
approach is to use the unicast path to deliver the data to such receivers. This implies
198
210
that each data must be authenticated and encrypted using the TLS keys derived over each
199
-
unicast path. This is illustrated in {{fig-flexicast-2}} where receiver R3 lies in
211
+
unicast path. This is illustrated in {{fig-flexicast-2}} where receiver R3 lies in
200
212
a non-multicast-capable network and relies on unicast delivery.
201
213
202
214
This is not efficient when there are multiple receivers.
@@ -223,13 +235,13 @@ an FC_KEY frame containing the shared keys.
223
235
~~~~~~~~~~~~~~~~~~~~~~~~~~~
224
236
{: #fig-flexicast-2 title="A Flexicast QUIC connection is composed of two types of paths: (1) one bidirectional, unique, unicast path between the source and each receiver and (2) a flexicast flow from the source to a set of receivers relying on a multicast distribution tree"}
225
237
226
-
At any point in time, if the network conditions of a receiver of a flexicast flow degrade,
227
-
e.g., because the underlying multicast tree fails or because the receiver moves into a
228
-
non-multicast network, it can leave the flexicast flow and continue receiving content
238
+
At any point in time, if the network conditions of a receiver of a flexicast flow degrade,
239
+
e.g., because the underlying multicast tree fails or because the receiver moves into a
240
+
non-multicast network, it can leave the flexicast flow and continue receiving content
229
241
through its unicast path. The seamless transition between a flexicast flow and a unicast path
230
242
is possible because these are Multipath QUIC paths.
231
243
232
-
Flexicast QUIC offers full reliability by retransmitting lost frames either to all receivers
244
+
Flexicast QUIC offers full reliability by retransmitting lost frames either to all receivers
233
245
on the flexicast flow, or per-receiver using their unicast path.
234
246
235
247
## Extensions to Multipath QUIC.
@@ -261,9 +273,9 @@ Because Flexicast QUIC uses Multipath QUIC, ACK frames are replaced by PATH_ACK
261
273
Flexicast QUIC receivers MUST send acknowledgments to the source using PATH_ACK frames
262
274
sent on their unicast path.
263
275
264
-
In single-source multicast, an IP multicast group is represented by the (S,G) tuple,
276
+
In single-source multicast, an IP multicast group is represented by the (S,G) tuple,
265
277
respectively denoting the IP address of the multicast source and the multicast group.
266
-
To join the flexicast flow, the receivers must be informed of the (S,G) tuple of the
278
+
To join the flexicast flow, the receivers must be informed of the (S,G) tuple of the
267
279
underlying IP multicast tree. The server uses the FC_ANNOUNCE frame to
268
280
advertise the identifier of the multicast tree that the receivers can join.
269
281
@@ -281,7 +293,7 @@ protect packets sent on the flexicast flow.
281
293
282
294
# Handshake Negotiation and Transport parameter {#sec-handshake}
283
295
284
-
Flexicast QUIC defines a new transport parameter, used to negotiate the use of
296
+
Flexicast QUIC defines a new transport parameter, used to negotiate the use of
285
297
the flexicast extension during the connection handshake, as specified in {{QUIC-TRANSPORT}}.
286
298
The new transport parameter is defined as follows:
0 commit comments