- From: youenn fablet <yfablet@apple.com>
- Date: Tue, 22 May 2018 17:29:07 -0700
- To: WebRTC WG <public-webrtc@w3.org>
- Cc: lennart.grahl@gmail.com, Feross Aboukhadijeh <feross@feross.org>
- Message-id: <C94D80B2-72A2-414E-9BFB-D70F46EC7BB4@apple.com>
+1 for data channel in service worker. It would also be interesting in a world where we would use the QUIC API on the web page server QUIC connection. > On May 22, 2018, at 5:17 PM, Feross Aboukhadijeh <feross@feross.org> wrote: > > Here are my use cases for the next version of WebRTC: > > Peer-assisted delivery. > - See products from companies like PeerCDN (my company, sold to Yahoo), Peer5, and Streamroot. See open source projects like WebTorrent, PeerTube, etc. > - All of these products would benefit from being able to use a ServiceWorker to intercept HTTP requests and then handle them via a WebRTC Data Channel instead. Currently, this requires creating the Data Channel in the main window and shuttling data back-and-forth between the main window and the ServiceWorker. If we add support for WebRTC Data Channel in Workers (see https://github.com/w3c/webrtc-pc/issues/230 <https://github.com/w3c/webrtc-pc/issues/230>) then these use cases become a lot easier to support. Less data copying, simpler architecture, better battery life, etc. > > Distributed Hash Tables (DHTs). > - DHTs are decentralized distributed systems that provide a lookup service similar to a hash table. DHTs are useful for finding peers without a central signaling infrastructure, and they're used in almost every widely-deployed peer-to-peer system, including BitTorrent, Bitcoin, IPFS, Dat, etc. > - With the current WebRTC connection model, DHTs are nearly impossible to build. We need the ability to store the "contact information" for a peer, close the connection to that peer, and then re-connect to that peer at some point in the future (if they're still online). With TCP/UDP, this is quite easy to accomplish. Simply store the ip:port (12.34.56.78:9000 <http://12.34.56.78:9000/>) and try to connect. If the peer is still online, it will just work. > - Peers need the ability to "listen" for incoming connections. Peers also need the ability to publish a "reusable SDP" that multiple peers can use to connect to listening peers (currently an SDP is usable only once) > > Lighter-weight connections. > - It seems that the current WebRTC spec is very complex (or perhaps currently implementations are still immature). But this leads to a situation where it's really hard to open more than a dozen connections at once without the browser process hitting 100% CPU utilization. This prevents applications that would like to open 20+ connections from doing so, which makes Data Channels a lot less useful for use cases like peer-assisted delivery, peer-assisted live streaming, WebTorrent, DHTs, in-browser cryptocurrency networks, etc. > > Feross > > I write at feross.org <https://feross.org/> and tweet as @feross <https://twitter.com/feross>. > I work on WebTorrent <https://webtorrent.io/>, Standard <https://standardjs.com/>, and Study Notes <https://www.apstudynotes.org/>. > > > On Tue, May 22, 2018 at 12:31 PM Lennart Grahl <lennart.grahl@gmail.com <mailto:lennart.grahl@gmail.com>> wrote: > As a supplement to the "mandatory permission request" idea: > > I think we should try to find a way how to resolve the issue with IPs > leaking in WebRTC, optimally without impacting the ability to establish > direct connections. Using mode 3 by default (which Apple's Safari > already does) would significantly hamper the ability to establish a > direct connection. Moreover, this would have a significantly negative > impact on applications where high throughput is required. The permission > request idea is a cheap way to fix this but probably not optimal either > because permission requests are always annoying and others have raised > concerns that the user may not be able to understand the permission request. > However, there may be another solution: Youenn Fablet has added a > feature to Safari that allows the use of temporary host names created > and resolved by using mDNS to hide the IPs (see > https://bugs.webkit.org/show_bug.cgi?id=174500 <https://bugs.webkit.org/show_bug.cgi?id=174500>). I think this is a > clever approach and we should discuss it. Maybe Youenn or other Safari > folks can also share their experiences with it. > > Cheers > Lennart > > > On 22.05.2018 20:54, Lennart Grahl wrote: > > [...] > > > > ## High Throughput / High Performance > > > > [...] > > > > Ideas: > > [...] > > - API: A mandatory permission request for direct connections (mode 1) as > > an alternative to gUM. Other non-A/V or A/V receive only use cases would > > also benefit from that. This would also solve our problems with privacy > > extensions that hate WebRTC for leaking IPs because we could possibly go > > restrictive (srflx) by default. > > > > [...] >
Received on Wednesday, 23 May 2018 00:29:48 UTC