Four Ways Devices Connect for File Transfer
Before a file can move between your phone and your computer, the two devices have to find each other and agree to trust each other. The transfer itself is rarely the slow part. Pairing is where things go wrong, because every network blocks something different.
There are four common ways to pair devices:
- mDNS auto-discovery: devices announce themselves on the local network.
- QR code pairing: one device shows a code, the other scans it with its camera.
- Manual IP or URL entry: you type the address yourself.
- Bluetooth or NFC: devices find each other by radio when they are close.
Each one suits some networks and fails on others. The sections below cover both cases, with notes on how OpenDrop uses each method.
mDNS Auto-Discovery: Finding Devices on the Same Network
Multicast DNS (mDNS) lets devices find each other with no setup. A device sends a query to a multicast address on the local network asking who offers a service, and every device offering it replies with its name, address and port. Apple's implementation is called Bonjour. Network printers, Chromecasts and smart speakers announce themselves the same way. For a longer walkthrough, see mDNS auto-discovery explained.
OpenDrop's desktop app advertises an _opendrop._tcp service, on port 8000 by default. Discovery alone doesn't pair anything, though. On OpenDrop Free, your phone first pairs with the computer by QR code. After that, whenever both are on the same Wi-Fi, the phone finds the computer by mDNS and streams files to it directly at full speed. With Pro, devices signed in to the same account find each other this way without a QR scan.
Where mDNS works: home Wi-Fi and small office networks where the router passes multicast traffic between devices.
Where mDNS fails:
- Networks with client isolation (also called AP isolation). It is common on hotel, airport, cafe and guest Wi-Fi. Devices on the same network can't reach each other at all.
- Networks that filter multicast traffic, which many campus and corporate networks do.
- Separate subnets or VLANs. mDNS doesn't cross routers by default, so a phone on the guest network won't find a PC on the main one.
- Different networks entirely. A phone on cellular data and a PC on home Wi-Fi share no local network, so there is nothing to discover.
When discovery fails, the phone needs another way to learn where the computer is. That is the job a QR code does well.
QR Code Pairing: The Visual Handshake
QR pairing skips network discovery. The computer shows a code on screen and you scan it with your phone. Everything the phone needs is in the code, so pairing works on networks that block multicast, and when the two devices aren't on the same network at all. OpenDrop's phone app has a built-in scanner.
In OpenDrop, the QR code holds a private pairing key and the addresses your phone needs to reach your computer, plus a certificate fingerprint so the phone can check it is really your PC. On Free, the pairing key is made on your computer and shared only through the QR code. OpenDrop's servers never receive it.
After pairing, that shared secret does two jobs:
- It signs requests. Requests between your devices are authenticated with HMAC-SHA256. Each signature covers the method, path, query, device ID and a timestamp, and expires after 5 minutes.
- It encrypts files. File contents are encrypted with ChaCha20-Poly1305 on your device before they leave it, with a key derived (HKDF-SHA256) from the shared secret.
Because the code also carries your computer's addresses, the phone can reach the computer when it isn't on the same Wi-Fi, for example on cellular data. OpenDrop picks the route for you: a direct peer-to-peer link or its own encrypted relay. Free tries peer-to-peer first. Pro starts on the faster Pro relay and keeps peer-to-peer as a backup. No port forwarding is needed. The relay carries file contents only in encrypted form, though it can see file names, sizes and device names, which it needs to route transfers. Free remote transfers are speed-limited and share a weekly allowance. Pro has no weekly limit. Neither plan caps file size.
Where QR pairing works best: first-time setup, networks that block mDNS, and pairing a phone that will later send files from somewhere else.
Where it doesn't: you need to see the computer's screen. If the computer has no display, OpenDrop's command line can show the code in a terminal (see the next section).
The pairing key travels from screen to camera as light, not over the network, so someone would have to see your screen to copy it. The flip side: anyone who scans the code can pair with your PC. Don't post or send screenshots of it.
On Free, the desktop app makes a new pairing key each time it starts. If your phone can't reach the computer after the desktop app restarts, scan the code again.
Manual IP and URL Entry: The Fallback
Typing an address is the oldest method, and most tools offer it somewhere. For a local connection you need the computer's LAN IP address and port, something like 192.168.1.20:8000. For a remote one you need whatever address the app's relay or tunnel hands out.
It has three weaknesses:
- Phone keyboards. An IP address with a port means switching keyboard layouts, and one wrong digit just fails to connect. Relay addresses are longer and worse.
- Changing addresses. Your router assigns local IPs by DHCP, and a computer can come back with a different address after a lease expires or a reboot. If you depend on a typed address, add a DHCP reservation for the computer in your router so it keeps the same IP.
- Client isolation. Typing the address gets around multicast filtering, but not isolation. If the network blocks traffic between devices, a correct address still won't connect. Only a route that leaves the local network, such as a relay, works there.
Typed addresses do make sense for scripts and headless machines. OpenDrop's phone app doesn't ask you to type an address, because even a computer with no display can show a QR code. Run opendrop serve to start OpenDrop headless; it prints the pairing password and a QR code in the terminal. Later, opendrop connect-info shows the connection URL, password and QR code again. If you are logged in over SSH, you can scan the code from your terminal window. The OpenDrop CLI guide covers scripting in more detail.
Bluetooth and NFC: The Slow Alternatives
Bluetooth and NFC find devices by being close, not by sharing a network. Most tools use them only to find the other device and then move the data over Wi-Fi. AirDrop works this way: Bluetooth to discover nearby devices, then a direct Wi-Fi link for the transfer. Android's Quick Share also combines Bluetooth and Wi-Fi.
The reason is speed. Bluetooth Low Energy tops out at 2 Mbit/s over the air with Bluetooth 5, and real throughput is lower. Even at 2 Mbit/s, a 100 MB file takes more than six minutes. Over a decent Wi-Fi link the same file takes seconds.
NFC needs the devices a few centimeters apart. Phones have it; most laptops and desktops don't. It can start a connection between two phones and not much else.
Cross-platform support is the other problem. iPhones don't send files over classic Bluetooth, so Bluetooth transfer between an iPhone and an Android phone or a PC needs an app on both ends.
OpenDrop doesn't use classic Bluetooth pairing or NFC. With OpenDrop Pro, two phones signed in to the same account, iPhone or Android, can send files over Bluetooth Low Energy when there is no Wi-Fi or internet. Computers always connect over Wi-Fi or the internet, and Free doesn't use Bluetooth. More on offline options in how to transfer files without internet.
Where Bluetooth or NFC fits: finding a nearby phone, or sending small files between two phones in the same room. Where it doesn't: large files, computers, and anything beyond the room.
Which Pairing Method to Use: A Decision Framework
For a phone and a computer with OpenDrop, the order is short:
- Scan the QR code. Open the Dashboard in the desktop app, tap Scan QR in the OpenDrop phone app and point it at the code. That pairs them.
- On the same Wi-Fi, do nothing. The paired phone finds the computer by mDNS and sends directly at full speed.
- On another network, or one that blocks mDNS, also do nothing. The phone uses the addresses from the QR code to reach the computer over a peer-to-peer link or the encrypted relay.
- No screen on the computer? Run
opendrop serveoropendrop connect-infoand scan the code from the terminal. - Two phones and no Wi-Fi or internet? With Pro, phones on the same account switch to Bluetooth. Otherwise use AirDrop or Quick Share if both phones support it.
For pairing tools in general: use mDNS when the network allows it, a QR code when it doesn't or on first setup, typed addresses for scripts and headless machines, and Bluetooth only for small files between nearby phones.
With OpenDrop Pro you can skip the QR step: every phone, tablet and computer signed in to your account connects automatically. Pro also adds phone to phone and computer to computer transfers.
Connect Your Devices in Seconds
Pair your phone and computer with a QR code. OpenDrop finds the computer on the same Wi-Fi and connects across networks when you're away. Windows, Linux, iPhone, iPad and Android, with no account needed on Free.
Download OpenDrop Free