Code change:
Behaviours around cache durations for each MoQ entity should be defined. <ins> 4.8.3. In case of congestion, the relay will use the priorities to selectively drop the "least important" objects: if congestion is noticed, the relay will drop first the lesser priority layer.  In our example, that would mean the objects marked at priority 6.  The relay will drop all objects marked at that priority, from the first dropped object to the end of the group. if congestion persists despite dropping a first layer, the relay will start dropping the next layer, in our example the objects marked at priority 5. if congestion still persist after dropping all but the highest priority layer, the relay will have to close the group, and start relaying the next group. When dropping objects within the same priority: higher object numbers in the same group, which are later in the group, are "less important" and more likely to be dropped than objects in the same group with a lower object number.  Objects in a previous group are "less important" than objects in the current group and MAY be dropped ahead of objects in the current group. The specification above assumes that the relay can detect the onset of congestion, and has a way to drop objects.  There are several ways to achieve that result, such as sending all objects of a group in a single QUIC stream and making explicit action at the time of relaying, or mapping separate priority layers into different QUIC streams and marking these streams with different priorities.  The exact solution will have to be defined in a draft that specifies transport priorities. 4.8.4. Web conferencing systems are used on networks with well over 20% packet loss and when this happens, it is often on connections with a relatively large round trip times.  In these situtation, forward error correction or redundant transmitions are used to provide a reasonable user experience.  Often video is turned off in.  There are multiple machine learning based audio codecs in development that targeting a 2 to 3 Kbps rate. This can result in scenarios where very small audio objects are sent at a rate of several hundreds packets per second with a high network loss rate. 4.8.5. In the streaming scenarios, there is an important emphasis on resynchronization, characterized by a short distance between "access points".  This can be used for features like fast-forward or rewinding, which are common in non-real-time streaming.  For real- time streaming experiences such as watching a sport event, frequent access points allow "channel surfers" to quickly join the broadcast and enjoy the experience.  The interval between these access points will often be just a few seconds. In video encoding, each access point is mapped to a fully encoded frame that can be used as reference for the "group of blocks".  The encoding of these reference frames is typically much larger than the differential encoding of the following frames.  This creates a peak of traffic at the beginning of the group.  This peak is much easier to absorb in streaming applications that tolerate higher latencies than interactive video conferences.  In practice, many real time conferences tend to use much longer groups, resulting in higher compression ratios and smoother bandwidth consumption along with a way to request the start of a new group when needed.  Other real time conferences tend to use very short groups and just wait for the next group when needed. Of course, having longer blocks create other issues.  Realtime conferences also need to accomodate the occasional occasional late comer, or the disconnected user who want to resynchronize after a network event.  This drives a need for synchronization "between access points".  For example, rather than waiting for 30 seconds before connecting, the user might quickly download the "key" frames of the past 30 seconds and replay them in order to "synchronize" the video decoder. </ins> 4.9. 4.9.1.

Related discussion:
text: I think you're referring to the scalabilty mode known as "L2T2h": URL Of course, we could encode these dependencies as properties of the object being sent, stating for example that "object 17 can only be decoded if objects 16, 11 and 7 are available." However, this approach leads to a lot of complexity in relays. We believe that a linear approach is preferable, using attributes of objects like delivery order or priorities. [BA] Why would this lead to complexity in relays in a receiver-driven scenario? The relay would only forward the layers that the receiver asked for, and wouldn't have to store state relating to the receivers. Also, the real issue here isn't dropping layers, which can occur at any point. The reason dependencies (and more) are needed (and why the "linear approach" doesn't work) comes when it is desired to add layers. It is of course possible just to start forwarding additional layers, but that doesn't improve quality unless the forwarded frames can actually be decoded. To figure this out, whoever is in charge (receiver or relay) needs to be able to determine the "upswitch points". This also implies feedback from the receivers to the encoder (e.g. LRR). Section 4.2 We propose to express dependencies using a combination of object number and object priority. [BA] How would this permit restoration of video quality after congestion clears up? I don't think you have enough information. Section 4.3 . Relay behavior In case of congestion, the relay will use the priorities to selectively drop the "least important" objects: [BA] Dropping is easy, it's adding layers back (and decoding them) that's hard.