SATA può essere utilizzato per collegare i computer?


9

È possibile utilizzare SATA per collegare due computer insieme, proprio come farebbe un cavo Ethernet crossover?

So che SATA non ha funzionalità di "rete" e anche se un controller può avere più porte, le unità non si "vedono" a vicenda e che in SATA un dispositivo funge da host (il computer) e l'altro dispositivo è un po ' tipo di "client" (l'unità di archiviazione).

Tuttavia, qualcuno ha tentato di creare un modulo del kernel che avrebbe fatto apparire un computer come un "client" (in modo che il controller SATA dell'host lo rilevasse come un disco rigido standard) e poi si configurasse come un collegamento pseudo-Ethernet o molto collegamento seriale ad alta velocità (e quindi eseguirlo pppde fare rete)?

Nota: so che questa è un'idea poco professionale e totalmente stupida, sto solo chiedendo per curiosità.


Interessting. Il controller è in grado di farlo?
Kimmax,

@Kimmax non sono sicuro, direi probabilmente ... Ecco perché ho fatto questa domanda.

1
Per quanto ne so, questo non è stato fatto. Non posso dire se sia possibile o meno, ma se posso dire che il raggiungimento di tale obiettivo richiederebbe un immenso sforzo e un codice. L'host-client SATA è configurato solo per l'archiviazione, non per la rete. Quindi, dovresti scrivere tu stesso i driver di rete, trovare un modo per avvolgere i driver già esistenti per la nuova interfaccia o abbandonare la rete tradizionale e invece scrivere un driver per rispecchiare l'archiviazione del client in modo che l'host possa vederlo. Tutti e tre i viali hanno gravi insidie. È un'idea divertente però.
HalosGhost,

Risposte:


3

Dopo aver esaminato brevemente le specifiche SATA, inizialmente ero fiducioso in quanto SATA non parla solo con dispositivi a disco, ma può anche parlare con i drive drive.

Tuttavia, sembra che non sia possibile utilizzare SATA per collegare due computer insieme, principalmente perché si tratta di una topologia host / dispositivo. Ciò significa che l'host invia uno speciale comando "host-to-device" e il dispositivo invia diversi comandi "device-to-host".

Esistono comandi "dati" bidirezionali generici che potrebbero essere utilizzati per lo scambio di pacchetti, tuttavia sospetto che questi dovrebbero essere preceduti dalla corretta richiesta "host-to-device" e da una risposta "device-to-host" appropriata. Immagino che i PC non possano inviare messaggi "da dispositivo a host" (poiché sono l'host) che è ciò che ciò richiederebbe, ma potrei sbagliarmi su questo punto. Se è possibile che un PC invii un comando da dispositivo a host, sì, è possibile stabilire un collegamento da host a host tramite SATA.

Tuttavia, anche se tu potessi farlo, dovresti senza dubbio richiedere cavi personalizzati, poiché l'uso di cavi SATA standard significherebbe che entrambi i PC stanno trasmettendo sulla stessa coppia di fili ed entrambi stanno ricevendo sulla stessa coppia di fili (dove nessuno sta trasmettendo, quindi non riceveranno mai alcun dato!) Avresti bisogno di hackerare l'equivalente SATA di un cavo crossover Ethernet, che scambia le linee TX e RX.

Penso che questo problema rispecchi da vicino quello dell'USB. Non è possibile collegare due computer insieme con un cavo USB nudo, poiché entrambi sono host senza dispositivi con cui parlare. Tuttavia, ci sono dispositivi USB che ricevono dati da entrambi gli host e li trasmettono in modo tale che il controller USB di ciascun host pensi che stia parlando con un dispositivo (che tecnicamente è), consentendo la comunicazione da host a host su USB.

Sarebbe possibile fare lo stesso per SATA, in cui si dispone di un dispositivo a cui entrambi i controller host si connettono e ognuno pensa di parlare con un dispositivo. Avresti ancora bisogno di driver personalizzati per far apparire il dispositivo SATA come dispositivo di rete, ma sarebbe fattibile.

Tuttavia, ciò sarebbe utile solo per connessioni a corto raggio, poiché SATA ha una lunghezza massima del cavo di un metro. Quindi, con il tuo speciale dispositivo traduttore SATA nel mezzo, le tue due porte SATA dovranno essere distanti meno di due metri (inclusa la distanza per arrivare dalla scheda madre o dalla scheda di espansione all'esterno del case).



1

Per quanto ne so, questo non è stato fatto. Non posso dire se sia possibile o meno, ma posso dire che per raggiungere un tale obiettivo richiederebbe un immenso sforzo e un codice.

La configurazione del client host SATA è solo per l'archiviazione, non per la rete. Quindi, avresti bisogno

  1. Scrivi tu stesso i driver di rete
  2. Scopri un modo per avvolgere i driver preesistenti per la nuova interfaccia, oppure
  3. Abbandona la rete tradizionale e scrivi invece un driver per eseguire il mirroring della memoria del client in modo che l'host possa vederlo.

Tutti e tre i viali hanno gravi insidie, anche se immagino, in teoria, sarebbe fattibile - il risultato finale probabilmente non sarebbe ancora veloce come stai immaginando. È un'idea divertente però.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.