22

If I connect two usb drives to an external USB hub and I copy data from one drive to the other, does the data go through computer? Or will the data be managed by the USB hub?

Does this have some performance benefit?

8
  • 8
    It is not clear what you are asking.
    – Sun
    Sep 23, 2014 at 3:51
  • 5
    It seems that he's trying to copy or move files from an external hdd to another external hdd which are all connected to an external USB hub that is finally connected to a PC. I don't think there will be any performance benefit though.
    – Scott Rhee
    Sep 23, 2014 at 4:23
  • 1
    The USB protocol is based on a master slave model. Typically the computer acts as the master. If you remove the master, the slaves are unable to operate, because nobody can tell them what to do. Sep 23, 2014 at 9:04
  • 6
    @SpaceTrucker: True, but that's not relevant. A master could tell slave1 to send bytes XYZ to slave 2. However, there's no such command in the USB command set. All USB communication is either from or to the USB host (i.e. PC).
    – MSalters
    Sep 23, 2014 at 9:12
  • 1
    USB storage device require a host. A USB Hub isn't a host. What you what isn't possible.
    – Ramhound
    Sep 23, 2014 at 10:42

6 Answers 6

59

No, this won't work. All data you are copying will need to be read by the computer from the source drive, before they are copied to the target drive.

If anything, having two hard drives connected to the same USB hub might slow things down. If you have multiple devices connected to the hub, they have to share the bandwidth.

2
  • 8
    This is correct. You're best off connecting each drive to a different set of USB ports -- paired ports on many computers effectively act as an internal hub; connecting the drives to different pairs will help ensure each device has the full 480mbps bandwidth (assuming USB 2.0).
    – Doktor J
    Sep 24, 2014 at 2:35
  • 7
    @DoktorJ is right, most computers have only few (2-4) USB hosts (controllers), so 8-12 ports on motherboard are replicated using actual internal hubs. On Windows, one can use Device Manager and then "View"/"Devices by connection" to find out how USB devices are internally connected.
    – Agent_L
    Sep 24, 2014 at 13:50
19

USB is a host-driven protocol, not a peer-to-peer standard like FireWire. Drives are just devices, they're not the host to control or decide anything. Without the host they cannot even interact with the outside world.

Assuming that you can connect the two drives like that then the drives still don't understand the file systems and don't know which files/folders you want to copy. They don't know where the blocks of the files are stored and don't know what to behave when unexpected things happens like when there are duplicated files or when drives are full

1
  • 9
    Or, indeed, how would they understand the file system? Sep 23, 2014 at 12:58
18

Devices connected to the computer through a hub can't talk to each other or share data within the hub; all traffic is between each device and the computer.

There is no performance benefit from connecting two drives to a hub, and there may be a performance detriment. The hub, itself, is connected to the computer through a USB connection, so everything connected to the hub has to share the capacity of the hub's computer connection.

Concurrent use of more than one drive connected to a hub as USB 2.0 [1] will generally exceed the USB 2.0 bandwidth of the hub's computer connection, potentially also affecting the performance of other USB 2.0 devices attached to the hub. This can happen even with a single USB 2.0 connected drive while actively transferring data.


[1] USB 2.0 connection includes USB 2.0 drives connected to any hub, or USB 3.0 drives connected to a USB 2.0 hub. On a USB 3.0 hub, USB 2.0 devices have a separate USB 2.0 data path with its own bandwidth limitation.

3
  • 1
    Just to add... if you need to have slow devices that only know how to do USB 1.1 share a USB 2 or USB 3 port with faster devices, a multi-TT hub can make a HUGE performance improvement. Unfortunately, they're damn near impossible to buy, because multi-TT is rarely advertised as an explicit feature, and getting one comes down almost entirely to good luck.
    – Bitbang3r
    Sep 23, 2014 at 19:53
  • 3
    @Bitbang3r Just curious... what is a multi-TT hub? Sep 23, 2014 at 23:35
  • 2
    @IAmJulianAcosta USB 2.0 and higher hubs use a transaction translator (TT) to translate between standards (ie. USB 1.1 to USB 2.0). Single-TT hubs share one translator for all ports creating a bandwidth bottleneck. Multi-TT hubs provide translators for each port, eliminating the bottleneck. Ref: archive.today/znbMF Sep 24, 2014 at 19:10
5

USB has what is called a tier star architecture - there needs to be a master who is the "real hub". The master sends out tokens giving the devices chance to send/receive. So there is no h/w bus contention like in other buses (remember 2 wires only).

So there is no device to device transfer - you have that on SCSI or 1394 (firewire) - one reason they are lot more expensive and complicated to do since everyone must be capable of being a master during arbitration.

So data transfers are always between the master (usually hosted on a computer) and connected devices. A devices does not even know of the existence of the other devices. Hub is just another device with special characteristics.

1
  • " you have that on SCSI" - in theory this is possible, but it isn't much done in real life. SCSI devices (other than interfaces on computers, of course) that are capable of being bus masters were always, and still are, extremely rare. The only application of "two masters on a SCSI bus" that ever achieved widespread use was clustering - you could have two (or more) computers sharing the same set of disks. VAXclusters could work this way. They usually used Ethernet for the rest of the cluster communications but that could go over SCSI too. Oct 4, 2018 at 2:31
1

To answer the title question, there is USB On The Go, so theoretically, yes. A phone connected to a hub connected to a flash drive can read data from the flash drive without needing a computer to actually perform the data transfer.

In practice, what you really have there is a device that is actually a host.

Also, only very few device support that, and typically no drives that I know of.

5
  • 12
    The phone replaces the computer, not an external drive.
    – OJFord
    Sep 23, 2014 at 16:32
  • 1
    This is actually very good information. Having OTG means that you can indeed replace a full-fledged computer with a "hub-like" device that takes over the role of the computer. The device merely needs to provide an interface to control the move and copy functions with something like an LCD panel or a WLAN-accessible web page server. Advanced versions of such a device can even provide network drive access like a NAS server.
    – ADTC
    Sep 23, 2014 at 23:52
  • @OllieFord This answer was pointing out that it would be possible to create an external hard drive that was a USB OTG device, which is true. This answer did answer the original title question, though the title has since been changed to prevent confusion. This answer is an interesting concept, though not usually practical.
    – reirab
    Sep 24, 2014 at 6:44
  • 1
    Of course this is possible, and I don't doubt there are some commercial examples for this niche use case (most likely they clone the whole drive rather than copy specific folder), OTG is not necessary, you just need to decide whether it's still a "hub" or just a primitive computer.
    – OJFord
    Sep 24, 2014 at 15:32
  • This won't work, because the USB hub is still asymmetric: There's an uplink port connected to the host/OTG acting as host, and downlink ports connected to the harddrives. Even if the harddrives had OTG port (which they don't have), they still can't switch the OTG port to host mode on a downlink. So, still no, even theoretically.
    – dirkt
    Oct 4, 2018 at 5:34
-1

I think usb-c standard will support this with the computer only telling the (supporting)hub what transfer. The computer should not be a bottle neck.

1
  • 1
    Nope. Firstly, USB type C is just a plug/socket/cable standard. It carries USB signal, power, analog audio, DisplayPort, Thunderbolt, MHL etc. but neither of these is itself defined by USB-C, they are only supported over USB-C. Secondly, assuming you actually meant USB 3.x or some other future iteration of the protocol, that's still incorrect, because USB data storage devices are simply exposing a bunch of bytes. They don't have any understanding of filesystems, so they don't know how to browse the other device or even themselves and how to access or write files.
    – gronostaj
    May 19, 2020 at 7:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.