Skip to main content
A direct connection means your files travel straight from your device to the recipient’s device. No server sits in between. Speed is limited only by the slower of your two internet connections.

STUN

To find a direct path, WebRTC uses a STUN server. Think of it like asking someone outside your house “what is my address from out there?” STUN helps each device discover its public IP address and port so the two peers can reach each other.

What direct connections mean for you

  • Transfer speed limited only by your internet connection.
  • No file size limit.
  • Zero bandwidth cost to Floe’s servers.
  • Files never touch any server after the connection is established.

When to expect a direct connection

Most home Wi-Fi and personal mobile hotspots support direct connections. You are most likely to connect directly on standard consumer networks. Strict corporate firewalls, university networks, and carrier-grade NAT can block direct paths. In those cases, Floe automatically tries a relay connection if relay fallback is enabled.
ICE (Interactive Connectivity Establishment): WebRTC uses the ICE protocol to find a usable network path. Each peer gathers a list of “candidates” (IP/port combinations it might be reachable on), including local addresses, server-reflexive addresses from STUN, and relay addresses from TURN. Peers exchange their candidates via the signaling server and try each pair until one works.STUN servers used: On floe.one, one Cloudflare endpoint: stun.cloudflare.com:3478. Cloudflare’s raw ICE list also contains a STUN entry on port 53, but the signaling server trims the list to one URL per connectivity class before serving it, so clients only ever see the 3478 entry. stun.l.google.com:19302 and stun1.l.google.com:19302 serve as the fallback when no TURN service is configured. On a self-hosted instance with coturn, the TURN endpoints also double as STUN.Trickle ICE: Candidates are sent incrementally as they are gathered rather than waiting for the full list. This reduces connection time significantly.Candidate types that produce direct connections: anything other than relay. In practice that means host (same network), srflx (server-reflexive, discovered via STUN), and prflx (peer-reflexive, learned during connectivity checks). Floe classifies a connection as relayed only when the nominated candidate pair has a relay candidate on one side or the other. Every other outcome counts as direct.