Чи можна використовувати SATA для підключення комп'ютерів?


9

Чи можна використовувати SATA для з'єднання двох комп'ютерів разом, як це робив би кроссовер Ethernet-кабель?

Я знаю, що SATA не має "мережевих" функцій, і навіть незважаючи на те, що у контролера може бути кілька портів, накопичувачі не "бачать" один одного, і в SATA один пристрій виступає хостом (комп'ютером), а інший пристрій - деяким різновид "клієнта" (накопичувача).

Але все-таки хто-небудь намагався зробити модуль ядра, який би змусив один комп'ютер виглядати як "клієнт" (щоб контролер SATA хоста визначав його як стандартний жорсткий диск), а потім налаштовувався як псевдо-Ethernet-посилання або дуже високошвидкісна послідовна посилання (а потім працювати pppdна ній і робити мережу)?

Примітка: я знаю, що це непрофесійна і абсолютно дурна ідея, я просто запитую з цікавості.


Цікаве. Чи може контролер це зробити?
Кіммакс

@Kimmax не впевнений, я б сказав, мабуть, тому саме тому я задав це питання.

1
Наскільки я знаю, цього не робилося. Я не можу говорити, чи це можливо чи ні, але якщо я можу сказати, що для досягнення такої мети знадобиться величезна кількість зусиль та коду. Хост-клієнт SATA налаштований лише для зберігання даних, а не для мереж. Отже, вам або потрібно буде самостійно написати мережеві драйвери, придумати спосіб обгортання вже існуючих драйверів для нового інтерфейсу, або відмовитися від традиційних мереж і замість цього написати драйвер, щоб відобразити сховище клієнта, щоб господар міг бачити це. Усі три алеї мають основні підводні камені. Хоча це весела ідея.
HalosGhost

Відповіді:


3

Коротко ознайомившись зі специфікацією SATA, я спочатку сподівався, оскільки SATA не розмовляє лише з дисковими пристроями, але також може говорити з корпусами дисків.

Однак схоже, що неможливо використовувати SATA для з'єднання двох комп’ютерів разом, головним чином тому, що це топологія хоста / пристрою. Це означає, що хост надсилає спеціальну команду "хост-пристрій", а пристрій надсилає назад різні команди "хост-пристрій".

Існують загальні двонаправлені команди "дані", які можна використовувати для обміну пакетами, однак я підозрюю, що цим повинен передувати правильний запит "хост-пристрій" та відповідна відповідь "пристрій-хост". Я здогадуюсь, що ПК не може надсилати повідомлення "пристрій-хост" (оскільки вони є господарем), що саме цього потрібно, але я можу помилитися з цього приводу. Якщо комп'ютер може надіслати команду «хост-хост», то так, ви можете встановити посилання «хост-хост» через SATA.

Однак, навіть якщо ви могли це зробити, ви також не сумніваєтесь, що вам потрібні спеціальні кабелі, оскільки використання стандартних кабелів SATA означатиме, що обидва ПК передають по одній дротяній парі, і обидва приймають на одній дротяній парі (де ніхто не передає, так вони ніколи не отримуватимуть ніяких даних!) Вам потрібно буде зламати еквівалент SATA кроссовера Ethernet, який обміняє лінії TX і RX.

Я думаю, що ця проблема тісно відображає проблему USB. Не можна підключити два комп’ютери разом із голим USB-кабелем, оскільки вони обидва хости, на яких немає пристроїв, з якими можна спілкуватися. Однак є USB-пристрої, які отримують дані від обох хостів і передають їх уздовж, так що контролер USB кожного хоста вважає, що він спілкується з пристроєм (що це технічно), що дозволяє спілкуватися між хостом і хостом через USB.

Можна зробити те ж саме для SATA, де у вас є пристрій, до якого підключаються обидва хост-контролери, і кожен думає, що спілкується з пристроєм. Вам все одно знадобляться спеціальні драйвери, щоб пристрій SATA виглядав як мережевий пристрій, але це було б працездатно.

Однак це було б корисно лише для з'єднань дуже короткого діапазону, оскільки SATA має максимальну довжину кабелю в один метр. Тож із вашим спеціальним пристроєм-перекладачем SATA посередині ваші два порти SATA повинні бути відстані менше двох метрів (включаючи відстань для отримання від материнської плати або карти розширення до зовнішньої сторони корпусу.)



1

Наскільки я знаю, цього не робилося. Я не можу говорити про те, чи це можливо чи ні, але можу сказати, що для досягнення такої мети знадобиться величезна кількість зусиль і коду.

Настройка хоста-клієнта SATA призначена лише для зберігання даних, а не для мереж. Отже, вам або потрібно

  1. Пишіть мережеві драйвери самостійно
  2. З'ясуйте спосіб обгортання наявних драйверів для нового інтерфейсу, або
  3. Відмовтесь від традиційних мереж і замість цього напишіть драйвер, щоб відобразити сховище клієнта, щоб господар міг його бачити.

Усі три проспекти мають основні підводні камені, хоча, мабуть, теоретично це було б можливо - кінцевий результат все-таки не був би таким швидким, як ви собі уявляєте. Хоча це весела ідея.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.