moq-wg / warp-streaming-format

Drafts intended for IETF MoQ WG
Other
7 stars 2 forks source link

Client side bandwidth estimation is difficult with app-limited traffic #28

Open ianswett opened 9 months ago

ianswett commented 9 months ago

Client side bandwidth estimation is a challenge when the client doesn't know when the sender was app-limited and when it was congestion control limited.

One solution is to add a TIMESTAMP frame that has a relative timestamp of when the packet was serialized/sent. It could also be useful to have a bool to indicate whether the sender was app-limited prior to the packet being sent.

Christian has a draft (https://www.ietf.org/archive/id/draft-huitema-quic-ts-08.html) that could be used for this purpose. The draft was written with the idea that it would be bundled with an ACK to allow removal of latency variability on the reverse path, but it seems like it could be bundled with some or all MOQ packets to improve client bandwidth estimation.

ianswett commented 9 months ago

After more consideration, I tend to think this is not an moqt issue, but it is one worth addressing in WARP. I'm happy to help with text if that's useful.

Keeping it open because I think it could end up being critical to client side ABR.

wilaw commented 23 hours ago

Two thoughts on this:

  1. WARP currently references LOC as the packaging format. LOC specifies Common Header Data which includes a timestamp defined as

Capture Timestamp in Microseconds: Captures the wall-clock time of the encoded media frame in a 64-bit unsigned integer.

This differs from Christian's proposal in that it is a payload level versus QUIC-level timestamp. Additionally, it indicates when the Object was captured , not when it entered the sendQueue, although for real-time media these typically collapse to a similar time point.

  1. In media applications, do we necessarily need a timestamp to infer app-limited? A client will usually know the encoded bitrate of the content it is receiving. WARP catalog has specific fields to convey this information. If the client times the arrival of data over a wall clock interval and the resulting throughput estimate is equal to the encoded bitrate, then we know that the estimate is likely app-limited.