
Simple browser file-transfer tools like ShareDrop, Snapdrop, and PairDrop prove how powerful WebRTC can be. On a LAN, WebRTC Data Channels are especially compelling: connections are direct, latency is tiny, and transfers can be extremely fast.
The problems start when distance increases.
The congestion control problem
WebRTC Data Channels run over SCTP, whose congestion control can struggle on long fat networks (high-bandwidth, high-latency links): the key metric is bandwidth-delay product, or BDP—the amount of data that must be in flight to fully utilize the connection.
A 1 Gbit/s connection with 80 ms latency needs roughly 10 MB continuously in flight to reach full speed. If a Data Channel cannot build a large enough congestion window, throughput can fall far below the capacity of the network.
Parallel channels
files.plus works around this by using multiple Data Channels in parallel, allowing more data to remain in flight and making much better use of fast WAN connections—typically a 2–4× throughput improvement over a single channel.
When direct connections fail
WebRTC direct connections do not work everywhere. Restrictive corporate firewalls, NAT configurations, and networks that heavily constrain UDP can prevent browsers from establishing a direct route. In our experience, a meaningful minority of users—often around 10–15%—need some form of relay.
The limits of TURN
Traditional WebRTC solves this with TURN. TURN is excellent for relaying real-time media like voice and video, where packets are small, latency-sensitive, and jitter matters more than raw throughput.
But it doesn't change the underlying Data Channel transport—SCTP still performs congestion control end-to-end, including the same behavior that can limit bulk-transfer performance on high-BDP networks. That makes TURN an awkward choice for large file transfers.
A purpose-built relay
If traffic already has to pass through an intermediary, files.plus uses a WebSocket relay instead. This lets us terminate each network leg independently and use a purpose-built line protocol with explicit buffering, backpressure, chunking, and flow control optimized for moving large amounts of data.
The hybrid result
The result is a hybrid transport:
- Fast local or direct connection: parallel WebRTC Data Channels.
- Direct connection unavailable: a files.plus WebSocket relay designed for bulk transfer.
WebRTC gives browsers an extraordinary ability to connect directly. files.plus keeps that advantage—but replaces the parts of the stack that stop scaling when networks get longer, faster, or more restrictive.