可以使用SATA连接计算机吗?


9

可以像交叉以太网电缆那样将SATA用于将两台计算机连接在一起吗?

我知道SATA没有“网络”功能,即使控制器可能具有多个端口,驱动器也无法“看到”彼此,并且在SATA中,一台设备充当主机(计算机),另一台设备充当主机一种“客户端”(存储驱动器)。

但是,仍然有人尝试制作一个内核模块,使一台计算机作为“客户端”出现(以便主机的SATA控制器将其检测为标准硬盘驱动器),然后像伪以太网链接或非常高速串行链接(然后pppd在其上运行并进行联网)?

注意:我知道这是一个不专业且完全愚蠢的主意,我只是出于好奇而问。


有趣的。控制器能够做到吗?
Kimmax 2014年

@Kimmax不确定,我可能会说...这就是为什么我问这个问题。

1
据我所知,这还没有完成。我无法谈谈是否有可能,但是如果我可以说实现这一目标将需要大量的精力和代码。SATA的主机-客户端设置仅用于存储,不用于网络。因此,您可能需要自己编写网络驱动程序,找到一种方法来包装用于新接口的现有驱动程序,或者放弃传统网络连接,而是编写一个驱动程序以镜像客户端的存储,以便主机可以看到它。所有这三种途径都有重大陷阱。不过,这是一个有趣的主意。
HalosGhost 2014年

Answers:


3

简要了解SATA规格后,最初我很希望,因为SATA不仅可以与磁盘设备通信,还可以与驱动器机箱通信。

但是,看起来无法使用SATA将两台计算机连接在一起,这主要是因为它是主机/设备拓扑。这意味着主机会发送特殊的“主机到设备”命令,而设备会发回不同的“设备到主机”命令。

有通用的双向“数据”命令可用于交换数据包,但是我怀疑这些命令之前必须有正确的“主机到设备”请求和适当的“设备到主机”响应。我猜想PC无法发送“设备到主机”消息(因为它们是主机),因此这是需要的,但是我在这一点上可能是错误的。如果PC可以发送设备到主机命令,则可以,您可以通过SATA建立主机到主机链接。

但是,即使您可以执行此操作,也无疑会需要自定义电缆,因为使用标准SATA电缆将意味着两台PC都在同一条线对上进​​行传输,而两台PC也在同一条线对上进​​行接收(没有人在进行传输,因此它们将永远不会收到任何数据!)您将需要破解SATA等效的以太网交叉电缆,以交换TX和RX线。

我认为这个问题与USB极为相似。您不能使用裸露的USB电缆将两台计算机连接在一起,因为它们都是没有设备可通话的主机。但是,有些USB设备从两个主机接收数据并传递数据,以便每个主机的USB控制器都认为它正在与设备(从技术上来说)进行通信,从而允许通过USB进行主机到主机的通信。

对于SATA,您可能会执行相同的操作,其中您有两个主机控制器都连接到的设备,而每个主机控制器都认为它们正在与设备通信。您仍然需要自定义驱动程序才能使SATA设备显示为网络设备,但是它是可行的。

但是,这仅对非常短距离的连接有用,因为SATA的最大电缆长度为一米。因此,在中间使用特殊的SATA转换器设备的情况下,两个SATA端口之间的距离必须小于两米(包括从主板或扩展卡到机箱外部的距离)。



1

据我所知,这还没有完成。我无法谈谈是否有可能,但我可以说要实现这样的目标将需要大量的精力和代码。

SATA的主机-客户端设置仅用于存储,不适用于网络。因此,您要么需要

  1. 自己编写网络驱动程序
  2. 找出一种为新界面包装现有驱动程序的方法,或者
  3. 放弃传统的网络连接,而是编写驱动程序以镜像客户端的存储,以便主机可以看到它。

尽管从理论上讲,这三个途径都存在重大缺陷,但我认为这是可行的-最终结果可能仍不会像您想象的那样快。不过,这是一个有趣的主意。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.