Bug 271191
Summary: | [WebRTC] Add support for L4S(RFC 9330) | ||
---|---|---|---|
Product: | WebKit | Reporter: | Byungseon(Sun) Shin <sun.shin> |
Component: | WebRTC | Assignee: | Byungseon(Sun) Shin <sun.shin> |
Status: | RESOLVED FIXED | ||
Severity: | Normal | CC: | dibotero, webkit-bug-importer, youennf |
Priority: | P2 | Keywords: | InRadar |
Version: | WebKit Nightly Build | ||
Hardware: | Unspecified | ||
OS: | Unspecified |
Byungseon(Sun) Shin
As we all know, Apple began supporting Low Latency, Low Loss, and Scalable Throughput (L4S) [1][2]
on its platforms starting with iOS 17 and iPadOS 17 [3].
This support extends to both the QUIC and TCP networking stacks. Specifically:
- QUIC: Apple’s QUIC implementation fully supports L4S.
- TCP: Apple’s TCP implementation supports only the receiver-side L4S
From the WebRTC implementation perspective, active development is underway to integrate L4S within the Chromium project.
This includes the mechanisms for ECN marking collection from the UDP Socket Layer [4].
However, to fully leverage L4S functionality, additional implementations are necessary.
This includes the development of receiver-side feedback and the optimization of feedback response intervals,
as outlined in RFCs 6679 and 8888 [5][6].
Our team is actively contributing to this endeavor through participation in both the W3C WebRTC
and IETF AVTCORE working groups, driving the standards forward [7][8].
From a practical standpoint, we are collaborating with Comcast to conduct field trials via
NVIDIA’s GeForce NOW cloud gaming service, demonstrating the real-world benefits of L4S [9].
Furthermore, we have extended cloud gaming support to Safari on macOS with the release of version 2.0.59,
showcasing our commitment to cross-platform compatibility [10].
As we continue to support L4S through native implementations, the goal of this task is
to expand this support to encompass WebRTC implementations.
[1] https://datatracker.ietf.org/doc/html/rfc9330
[2] https://datatracker.ietf.org/doc/html/rfc9331
[3] https://developer.apple.com/documentation/network/testing_and_debugging_l4s_in_your_app
[4] https://bugs.chromium.org/p/webrtc/issues/detail?id=15368
[5] https://datatracker.ietf.org/doc/html/rfc6679
[6] https://datatracker.ietf.org/doc/html/rfc8888
[7] https://github.com/w3c/webrtc-nv-use-cases/pull/118
[8] https://datatracker.ietf.org/doc/draft-majali-avtcore-rtcp-fb-timing-cfg/
[9] https://corporate.comcast.com/stories/comcast-kicks-off-industrys-first-low-latency-docsis-field-trials
[10] https://www.nvidia.com/en-us/geforce-now/release-highlights/
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/124994672>
Byungseon(Sun) Shin
- RFC#8888 WIP on libwebrtc: https://webrtc-review.googlesource.com/c/src/+/346601
Byungseon(Sun) Shin
Basics of the RFC#8888 and chromium side socket interfaces implementation has been made through <https://issues.webrtc.org/issues/42225697>.
Byungseon(Sun) Shin
Pull request: https://github.com/WebKit/WebKit/pull/31764
EWS
Committed 282674@main (e243885913ef): <https://commits.webkit.org/282674@main>
Reviewed commits have been landed. Closing PR #31764 and removing active labels.