Direct P2P vs Encrypted Relay: What Is the Real Difference?

Speed, privacy and reliability trade-offs between a direct WebRTC connection and a TURN relay — and what the relay can and cannot see.

By ShareDrop.org Engineering · Published 2025-10-16 · Last verified 2026-08-08 · Tested against: Selected-candidate-pair inspection via WebRTC getStats()

Peer-to-peer tools love the phrase “your files never touch a server.” It is true only some of the time. When two networks cannot reach each other directly, WebRTC falls back to a relay — and an honest tool should tell you when that happens and what it means. Here is the real difference between the two paths.

What actually differs

Direct (LAN or internet)Encrypted relay (TURN)
PathDevice ↔ deviceDevice ↔ relay server ↔ device
EncryptionEnd-to-end (DTLS)Identical end-to-end encryption — the relay has no keys
Who can read contentOnly the two devicesOnly the two devices
Metadata exposureNetworks on the route see packet flowRelay operator additionally sees both IPs, sizes, timing
SpeedLAN: often hundreds of Mbps; internet: bounded by both uplinksBounded by uplinks and the relay's bandwidth; one extra hop of latency

Measured: what each path can actually sustain

Speed differences between the paths come from where the bottleneck sits, not from the protocol. To separate the two, we benchmarked the transfer engine itself with both browsers on one machine — no network in the way — and then compared that ceiling with what typical networks allow:

Bar chart of sustained throughput by connection path: engine benchmark 200+ Mbps measured; LAN direct typically 100–400 Mbps, router-bound; internet direct and encrypted relay typically 20–50 Mbps, bounded by uplinks, with the relay adding one hop of latency
Sustained throughput by path. The engine figure is our measured benchmark (see method below); LAN and internet figures are typical home-network magnitudes — your router and uplinks set those ceilings, not the protocol.
PathWhat sets the ceilingTypical result
Engine benchmarkCPU only: DTLS encryption + SCTP framing + real-time SHA-256 on both ends200+ Mbps (25 MB/s) sustained, measured
LAN directWi-Fi link rate of the slower device and the router100–400 Mbps on Wi-Fi 5/6 networks
Internet directThe slower side's upload bandwidth20–50 Mbps on typical home broadband
Encrypted relaySlower uplink and relay bandwidth; one extra network hopSimilar to internet direct, with roughly 10–80 ms added round-trip time depending on relay distance

The practical reading: on a LAN the protocol is rarely the limit — the radio is. Across the internet, upload bandwidth dominates everything, which is why a relay usually costs you latency rather than throughput.

How we measured

The key insight: encryption is unchanged

The common fear — “relay mode means the operator can read my files” — is wrong for WebRTC. The DTLS keys protecting a data channel are negotiated between the two browsers during connection setup; a TURN relay authenticates you, allocates a forwarding port, and shovels ciphertext. This is not a policy promise but an architectural property (how WebRTC encryption works). What a relay does see is traffic metadata: who talked to whom, when, and how much. That is the honest cost of relay mode.

When you get which

How to tell which one you got

In ShareDrop.org, look at the badge next to the title: LAN direct, Internet direct, or Encrypted relay. It is computed from the selected ICE candidate pair in the live connection statistics — if either side of the winning pair is a relay candidate, you are on TURN. When the browser exposes too little statistics to decide, we show “encrypted, mode unknown” rather than guess. Developers can verify the same thing in chrome://webrtc-internals: find the active candidate pair and check the local and remote candidate types.

Should you avoid relay mode?

For most transfers, no — it exists precisely so the transfer succeeds where direct paths cannot. Avoid it only if your threat model includes traffic-metadata collection by the relay operator, in which case the alternative is moving both devices onto the same trusted network and getting a LAN-direct link.

Standards referenced