O SATA pode ser usado para conectar computadores?

9

O SATA pode ser usado para conectar dois computadores, exatamente como um cabo Ethernet cruzado faria?

Sei que a SATA não possui recursos de "rede" e, embora um controlador possa ter várias portas, as unidades não "se veem" e que, na SATA, um dispositivo atua como host (o computador) e o outro dispositivo é algum tipo de "cliente" (a unidade de armazenamento).

Mas ainda assim, alguém tentou criar um módulo do kernel que faria um computador aparecer como um "cliente" (para que o controlador SATA do host o detecte como um disco rígido padrão) e, em seguida, configure-o como um link pseudo-Ethernet ou muito link serial de alta velocidade (e depois executá pppd-lo e fazer rede)?

Nota: Eu sei que essa é uma ideia não profissional e totalmente estúpida, só estou perguntando por curiosidade.

Keltari
fonte
Interessante. O controlador é capaz de fazer isso?
precisa saber é
@ Kimmax não tenho certeza, eu diria provavelmente ... É por isso que eu fiz esta pergunta.
11
Até onde eu sei, isso não foi feito. Não sei se é possível ou não, mas se posso dizer que alcançar tal objetivo exigiria imenso esforço e código. O cliente-host da SATA é configurado apenas para armazenamento, não para rede. Portanto, você precisará escrever os drivers de rede, descobrir uma maneira de agrupar os drivers já existentes para a nova interface ou abandonar a rede tradicional e, em vez disso, escrever um driver para espelhar o armazenamento do cliente para que o host possa vê-lo. Todas as três avenidas têm grandes armadilhas. É uma ideia divertida.
precisa saber é o seguinte

Respostas:

3

Tendo analisado brevemente as especificações da SATA, fiquei inicialmente esperançoso, pois a SATA não apenas fala com dispositivos de disco, como também pode conversar com gabinetes de unidades.

No entanto, parece que não é possível usar o SATA para conectar dois computadores, principalmente porque é uma topologia de host / dispositivo. Isso significa que o host envia um comando especial "host para dispositivo" e envia diferentes comandos "dispositivo para host" de volta.

Existem comandos bidirecionais genéricos de "dados" que podem ser usados ​​para a troca de pacotes, no entanto, suspeito que estes precisem ser precedidos pela solicitação correta de "host para dispositivo" e uma resposta apropriada "dispositivo para host". Suponho que os PCs não possam enviar mensagens de "dispositivo para host" (já que são o host), o que seria necessário, mas eu posso estar errado nesse ponto. Se for possível para um PC enviar um comando de dispositivo para host, sim, você pode estabelecer um link de host para host pelo SATA.

No entanto, mesmo se você pudesse fazer isso, também sem dúvida exigiria cabos personalizados, pois o uso de cabos SATA padrão significaria que os dois PCs estão transmitindo no mesmo par de fios e ambos recebendo no mesmo par de fios (onde ninguém está transmitindo, portanto eles nunca receberão dados!) Você precisaria hackear o equivalente SATA de um cabo cruzado Ethernet, que troca as linhas TX e RX.

Penso que este problema espelha de perto o do USB. Você não pode conectar dois computadores com um cabo USB, porque ambos são hosts sem dispositivos com os quais conversar. No entanto, existem dispositivos USB que recebem dados dos dois hosts e os transmitem para que o controlador USB de cada host pense que está falando com um dispositivo (o que é tecnicamente), permitindo a comunicação host-a-host através de USB.

Seria possível fazer o mesmo com o SATA, onde você tem um dispositivo ao qual os dois controladores de host se conectam e cada um deles pensa que está falando com um dispositivo. Você ainda precisará de drivers personalizados para fazer com que o dispositivo SATA apareça como um dispositivo de rede, mas seria viável.

No entanto, isso seria útil apenas para conexões de alcance muito curto, pois a SATA tem um comprimento máximo de cabo de um metro. Portanto, com o seu dispositivo tradutor SATA especial no meio, suas duas portas SATA terão que estar a menos de dois metros de distância (incluindo a distância entre a placa-mãe ou a placa de expansão e a parte externa do gabinete).

Malvineous
fonte
4

Não, como é um protocolo de armazenamento. Mas PATA pode (mais ou menos). E PCI Express pode .

Mark Henderson
fonte
1

Até onde eu sei, isso não foi feito. Não sei se é possível ou não, mas posso dizer que alcançar tal objetivo exigiria imenso esforço e código.

A configuração cliente-host da SATA é apenas para armazenamento, não para rede. Então, você precisaria

  1. Escreva você mesmo os drivers de rede
  2. Descubra uma maneira de agrupar drivers pré-existentes para a nova interface, ou
  3. Abandone a rede tradicional e, em vez disso, escreva um driver para espelhar o armazenamento do cliente, para que o host possa vê-lo.

Todas as três avenidas têm grandes armadilhas, embora eu ache que, em teoria, seria possível - o resultado final provavelmente ainda não seria tão rápido quanto você imagina. É uma ideia divertida.

HalosGhost
fonte