10
\$\begingroup\$

I was talking to a colleague about the limitations of USB cable length and as far as I could remember it was limited by the tight window the host requires the device to respond in (mentioned here).

He pointed out that Ethernet is transferring data at a higher rate (USB 1.5/12/480/5,000 Mbit/s (depending on mode) vs Ethernet's 10/100Gbps) and allows for a longer cable length (100m for CAT6 cable).

So I guess we're both wondering what aspect of the USB protocol limits the cable length to 5m and how does that differ from Ethernet?

\$\endgroup\$
  • 3
    \$\begingroup\$ the key aspect of Ethernet that you are looking for is called the "collision domain". \$\endgroup\$ – placeholder Feb 7 '13 at 0:11
  • \$\begingroup\$ @rawbrawb network collisions would slow down an ethernet link but ethernet can still transmit node-to-router at 10Gbps under ideal conditions. USB has no collisions as I understand it because the host decides who talks; so it seems like collisions shouldn't be the cause. \$\endgroup\$ – Luke Quinane Feb 7 '13 at 0:22
  • \$\begingroup\$ I was discussing Ethernet ONLY - you seem to have the USB under control. \$\endgroup\$ – placeholder Feb 7 '13 at 0:24
  • \$\begingroup\$ "... vs Ethernet's 10/100Gbps) and allows for a longer cable length (100m for CAT6 cable)" - Incorrect. 10G Ethernet over CAT6 is only good for 55M (see this table), and 100G can't run over twisted pair at all (see this table). I think you're confusing lower speed Ethernet standards (such as 1 gigabit). \$\endgroup\$ – marcelm Sep 26 '16 at 15:08
6
\$\begingroup\$

According to Wikipedia:

USB 2.0 provides for a maximum cable length of 5 meters for devices running at Hi Speed (480 Mbit/s). The primary reason for this limit is the maximum allowed round-trip delay of about 1.5 μs. If USB host commands are unanswered by the USB device within the allowed time, the host considers the command lost. When adding USB device response time, delays from the maximum number of hubs added to the delays from connecting cables, the maximum acceptable delay per cable amounts to 26 ns. The USB 2.0 specification requires cable delay to be less than 5.2 ns per meter (192,000 km/s, which is close to the maximum achievable transmission speed for standard copper wire).

So with a delay per cable of 26ns and the spec requiring cable delay to be less than 5.2ns/m, that gives a theoretical maximum cable length of 26ns/(5.2ns/m) = 5m.

That source also mentions that USB 2.0 is limited to 5m, but USB 3.0 is not.

\$\endgroup\$
  • 1
    \$\begingroup\$ I guess the question is why did they limit the maximum round trip time to 1.5μs? Initially I thought it was because of the high transfer rate but ethernet avoids that problem somehow. \$\endgroup\$ – Luke Quinane Feb 7 '13 at 2:38
  • \$\begingroup\$ @LukeQuinane, I just noticed the reason is mentioned just above the area in the link you posted, usb.org/developers/usbfaq#cab1 \$\endgroup\$ – PeterJ Feb 7 '13 at 3:26
  • \$\begingroup\$ @PeterJ that's very interesting. Any ideas how ethernet avoid that problem? \$\endgroup\$ – Luke Quinane Feb 7 '13 at 3:29
  • 1
    \$\begingroup\$ @LukeQuinane, no I don't know much about the Ethernet physical layer. I suspect though the overall decision for USB was made to keep the device costs as low as possible by keeping the drivers simple. \$\endgroup\$ – PeterJ Feb 7 '13 at 3:44
  • 4
    \$\begingroup\$ Original Ethernet was designed in a different era when there were different priorities & costs to components & complexity VS cable. USB is designed very much with the lowest possible cost & smallest footprint / connector / cable / power use in mind for Joe Bloggs and his iPhone. \$\endgroup\$ – John U Feb 7 '13 at 9:22
6
\$\begingroup\$

USB was designed to replace various PC perhiperal interfaces including things like keyboards and mice. The priorities included low cost, low power consumption and passing high priority traffic with low latency. Support for long cable lengths was not a priority. So on the protocol side they went for a simple half duplex "speak when you are spoken to" protocol with small packet sizes. On the hardware side they went for a non-isolated differential signaling system which took some shortcuts on termination.

USB gradually evolved to add higher speeds and full duplex but longer distance was never a design goal.

Ethernet (in it's early form) had a different set of design criteria. It was designed as a local area network standard, no one station was a master and they went for a carrier sense multiple access system with collision detection. To ensure the collision detection worked properly they put restrictions on both minium packet size and the total size of the network. The physical layer was designed with far more careful termination to ensure signal integrity was maintained even over long runs. There was an isolation barrier to protect against issues caused by ground potential differences in long runs (twisted pair ethernet uses transformers, I belive coax ethernet used optoisolators and DC to DC converters)

CSMA/CD worked fine on small 10Mbps LANs but it started to show the strain as speeds increased and networks got bigger. Bridges (later known as switches) were introduced allowing networks to be split into multiple collision domains. This allowed networks to be made bigger than the limits imposed by CSMA/CD and also allowed multiple speeds to coexist.

Later Ethernet moved away from CSMA/CD1 and hubs towards point to point full duplex links and switches. This allows high speed long distance links as packets can never collide with each other.

There is a price to pay for all of this though, the physical layers that can work over long distances require considerably more power and considerablly more expensive transceivers than those that are only designed to work over short range. Data buffers, at the end devices have to be much bigger to deal with potentially long acknowledgement time and potential packet loss. Switches are relatively complex devices often including substantial ammounts of buffer memory. Prioritisation requires every switch in the chain has to be aware of the prioritisation information.

1 At 10Mbps hubs and CSMA/CD were pretty much universal. Early 100Mbps deployments also heavilly used hubs and CSMA/CD. Later 100Mbps networks tended to use full duplex links and switches. At gigabit the standards included CSMA/CD and hubs but i've never heard of anyone actually selling a gigabit hub. At 10 gigabit and above CSMA/CD and hub support doesn't exist at all.

\$\endgroup\$
2
\$\begingroup\$

Another aspect that's important is that high speed ethernet is full duplex : there are two cable pairs used, one for each direction. USB is half duplex : there is only one pair, and it can only be used in one direction at once.

USB also requires acknowledgement whereas Ethernet does not. Protocols on top of it may require acknowledgement (TCP) or may not (UDP streaming). However, as it's full duplex, the acknowledgements can be sent down one pair without interrupting the stream of data going in the other direction.

\$\endgroup\$
  • \$\begingroup\$ Also there's also TCP windowing part: TCP doesn't wait for ACK. Instead it just keeps sending data and if ACK goes missing, it resends the data. In addition to that, TCP allows for a single ACK to acknowledge multiple TCP datagrams. \$\endgroup\$ – AndrejaKo Feb 7 '13 at 10:13
  • \$\begingroup\$ "... high speed ethernet is full duplex : there are two cable pairs used, one for each direction." - This is true for 100Mb Ethernet, but not for Gigabit Ethernet (1000BASE-T), which uses four cable pairs in both directions simultaneously (see wikipedia/1000BASE-T). \$\endgroup\$ – marcelm Sep 26 '16 at 15:14

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.