20

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
    It is not clear what you are asking. – Sun Sep 23 '14 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 '14 at 4:23
  • 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. – SpaceTrucker Sep 23 '14 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 '14 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 '14 at 10:42
57

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.

  • 7
    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 '14 at 2:35
  • 6
    @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 '14 at 13:50
16

USB are a host-driven protocol, not a peer-to-peer standard like firewire. Drives are just devices, they're not 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, how can they know which files/folders you want to copy? Will they copy from which drive to which drive, and will they overwrite duplicated files? How will they behave if the drives are full?

  • 9
    Or, indeed, how would they understand the file system? – ChrisInEdmonton Sep 23 '14 at 12:58
16

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.

  • 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 '14 at 19:53
  • 3
    @Bitbang3r Just curious... what is a multi-TT hub? – IAmJulianAcosta Sep 23 '14 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 – Substantial Sep 24 '14 at 19:10
3

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.

  • " 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. – Jamie Hanrahan Oct 4 '18 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.

  • 12
    The phone replaces the computer, not an external drive. – OJFord Sep 23 '14 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 '14 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 '14 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 '14 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 '18 at 5:34

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.