Ask HN: Why wasn't USB designed to handle peer-to-peer data transfer?

3 points by reassembled ↗ HN
A friend and I were wondering why USB wasn't designed to accommodate the peer-to-peer (computer-to-computer) data transfer use case? In the DOS and Win 3.1 days we used to transfer files across computers via either serial or parallel port connections. It seems that USB "crossover cables" do exist but they either have some kind of active electronics in the middle, or expressly say "do not use this to connect two computers together".

7 comments

[ 5.7 ms ] story [ 25.8 ms ] thread
https://en.wikipedia.org/wiki/USB

> USB was designed to standardize the connection of peripherals to personal computers, both to communicate with and to supply electric power.

> USB has a strict tree network topology and master/slave protocol for addressing peripheral devices; those devices cannot interact with one another except via the host, and two hosts cannot communicate over their USB ports directly

When Intel designed USB they worked with peripheral makers to develop the requirements. Connecting two computers directly together doesn't help sell peripherals.
That's what USB "On The Go" mode was for I think. The 2 devices weren't peers simultaneously, but you could decide which device was in control and "using" the other one.
Exactly. My DSLR happily pretends to be a drive if I plug it into my phone using an OTG cable.
Host-to-Host transfer was added in 2019 in USB4 (per https://en.wikipedia.org/wiki/USB#Version_history)

As to why it wasn't there initially ... why should it have been? How many people were going to put their desktops close enough together that a 1m USB cable could reach between them?

Peak speed on USB1 (1996) was 12Mbps - home and corporate networks were already operating at at least 10Mbps, and handle data transfer quite nicely (and over far longer distances)

If you wanted to go host-to-host with ethernet, you only needed a crossover cable to do it

USB access for external devices like Zip drives was available - and, if you used Zip disks, the media'd interoperate between internal and external variants

One of the first computers to exclusively rely on USB for peripherals was the first-generation iMac back in 199

USB thumb/external drives appeared about the same time (a couple "history of thumb drive" sites list it as 1999, others as 1998 ... I suspect is the difference is between "design/prototype" and "on sale")

In short, there was no reason to enable host-to-host transfers with USB

That wasn't that long ago. Back then serial direct transfer cables were available, and people even used IRDA (infrared) to send files between ThinkPads. Wifi wasn't super common yet and ethernet crossover cables were sometimes used to meet this need.

All to say, the reason was there indeed. It just wasn't part of the initial USB host vs peripheral design.

There wereample solutions that already addressed this use case - hence me saying "there was no reason" for USB to implement it :)