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.
fonte
Respostas:
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).
fonte
Não, como é um protocolo de armazenamento. Mas PATA pode (mais ou menos). E PCI Express pode .
fonte
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
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.
fonte