我正在与一位同事谈论 USB 电缆长度的限制,据我所知,它受到主机要求设备响应的狭窄窗口的限制(在此处提到)。
他指出以太网以更高的速率传输数据(USB 1.5/12/480/5,000 Mbit/s(取决于模式)与以太网的 10/100Gbps 相比)并允许更长的电缆长度(CAT6 电缆为 100m)。
所以我想我们都想知道 USB 协议的哪个方面将电缆长度限制为 5m,这与以太网有何不同?
我正在与一位同事谈论 USB 电缆长度的限制,据我所知,它受到主机要求设备响应的狭窄窗口的限制(在此处提到)。
他指出以太网以更高的速率传输数据(USB 1.5/12/480/5,000 Mbit/s(取决于模式)与以太网的 10/100Gbps 相比)并允许更长的电缆长度(CAT6 电缆为 100m)。
所以我想我们都想知道 USB 协议的哪个方面将电缆长度限制为 5m,这与以太网有何不同?
根据维基百科:
USB 2.0 为高速 (480 Mbit/s) 运行的设备提供最长 5 米的电缆长度。此限制的主要原因是允许的最大往返延迟约为 1.5 μs。如果 USB 设备在允许的时间内没有响应 USB 主机命令,则主机认为该命令丢失。当增加 USB 设备响应时间时,从集线器的最大数量到连接电缆的延迟,每根电缆可接受的最大延迟为 26 ns。USB 2.0 规范要求电缆延迟低于每米 5.2 ns(192,000 km/s,接近标准铜线可实现的最大传输速度)。
因此,每根电缆的延迟为 26ns,并且规范要求电缆延迟小于 5.2ns/m,因此理论上最大电缆长度为 26ns/(5.2ns/m) = 5m。
该消息来源还提到 USB 2.0 限制为 5m,但 USB 3.0 不是。
USB 旨在取代各种 PC 外围接口,包括键盘和鼠标等。优先级包括低成本、低功耗和以低延迟传递高优先级流量。支持长电缆长度不是优先事项。所以在协议方面,他们采用了一个简单的半双工“当你被交谈时说话”协议,数据包大小很小。在硬件方面,他们采用了非隔离差分信号系统,该系统在端接上采取了一些捷径。
USB 逐渐发展以增加更高的速度和全双工,但更长的距离从来都不是设计目标。
以太网(早期形式)有一套不同的设计标准。它被设计为一种局域网标准,没有一个站是主站,他们选择了带有冲突检测的载波侦听多路访问系统。为了确保冲突检测正常工作,他们对最小数据包大小和网络总大小进行了限制。物理层的设计更加谨慎,以确保即使长时间运行也能保持信号完整性。有一个隔离屏障可以防止长期运行中由接地电位差引起的问题(双绞线以太网使用变压器,我相信同轴以太网使用光隔离器和直流到直流转换器)
CSMA/CD 在小型 10Mbps LAN 上运行良好,但随着速度的提高和网络的扩大,它开始显示出压力。引入了网桥(后来称为交换机),允许将网络分成多个冲突域。这使得网络可以比 CSMA/CD 施加的限制更大,并且还允许多种速度共存。
后来以太网从 CSMA/CD 1和集线器转向点对点全双工链路和交换机。这允许高速长距离链路,因为数据包永远不会相互冲突。
然而,所有这些都是要付出代价的,与仅设计用于短距离工作的物理层相比,可以长距离工作的物理层需要更多的功率和昂贵得多的收发器。终端设备的数据缓冲区必须更大,以处理可能较长的确认时间和潜在的数据包丢失。交换机是相对复杂的设备,通常包括大量的缓冲存储器。优先级要求链中的每个交换机都必须了解优先级信息。
1 10Mbps 集线器和 CSMA/CD 非常普遍。早期的 100Mbps 部署也大量使用集线器和 CSMA/CD。后来的 100Mbps 网络倾向于使用全双工链路和交换机。在千兆位,标准包括 CSMA/CD 和集线器,但我从未听说过有人真正销售千兆集线器。10 Gb 及以上的 CSMA/CD 和集线器支持根本不存在。
另一个重要的方面是高速以太网是全双工的:使用了两对电缆,一个用于每个方向。USB是半双工的:只有一对,一次只能在一个方向使用。
USB 也需要确认,而以太网则不需要。在它之上的协议可能需要确认(TCP),也可能不需要(UDP 流)。但是,由于它是全双工的,因此可以将确认发送到一对,而不会中断向另一个方向传输的数据流。