O SATA pode ser usado para conectar computadores?

8

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

Sei que o SATA não tem recursos de "rede" e, embora um controlador possa ter várias portas, as unidades não "enxergam" umas às outras e, no SATA, um dispositivo atua como o host (o computador) e o outro dispositivo é algum tipo de "cliente" (a unidade de armazenamento).

Mas ainda assim, alguém tentou fazer um módulo do kernel que faria um computador aparecer como um "cliente" (de modo que o controlador SATA do host o detectasse como um disco rígido padrão) e configurado como um link pseudo-Ethernet? ou um link serial de velocidade muito alta (e, em seguida, executar pppd sobre ele e fazer rede)?

Nota: Eu sei que esta é uma idéia não profissional e totalmente estúpida, estou apenas pedindo por curiosidade.

    
por Keltari 03.06.2014 / 09:25

3 respostas

3

Tendo olhado brevemente para a especificação SATA, eu estava inicialmente esperançoso, pois o SATA não fala apenas com dispositivos de disco, ele também pode conversar com os gabinetes de unidade.

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 "host-to-device" especial e o dispositivo envia de volta comandos diferentes de "dispositivo para host".

Existem comandos "dados" bidirecionais genéricos que podem ser usados para troca de pacotes, mas suspeito que eles precisariam ser precedidos pela solicitação "host-to-device" correta e por uma resposta "device-to-host" apropriada. . Eu estou supondo que os PCs não podem enviar mensagens de "dispositivo para host" (já que eles são o host), que é o que isso exigiria, mas eu posso estar errado neste ponto. Se for possível para um PC enviar um comando de dispositivo para host, então sim, você poderia estabelecer um link de host para host através de SATA.

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

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

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

No entanto, isso só seria útil para conexões de curto alcance, já que o 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 da caixa).

    
por 26.04.2015 / 06:37
3

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

    
por 05.06.2014 / 00:13
1

Tanto quanto eu sei, isso não foi feito. Não posso falar se é ou não possível, mas posso dizer que realizar tal objetivo exigiria uma imensa quantidade de esforço e código.

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

  1. Escreva você mesmo os drivers de rede
  2. Descobrir uma maneira de agrupar drivers preexistentes 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.
Todos os três caminhos têm grandes armadilhas, embora, na teoria, isso seja factível - o resultado final provavelmente não seria tão rápido quanto você imagina. É uma ideia divertida.

    
por 05.06.2014 / 00:02