9

Можно ли использовать SATA для соединения двух компьютеров, как это сделал бы перекрестный кабель Ethernet?

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

Но все же, кто-нибудь пытался сделать модуль ядра, который бы заставлял один компьютер выглядеть как "клиент" (чтобы контроллер SATA хоста обнаруживал его как стандартный жесткий диск), а затем настраивал его как псевдо-Ethernet-канал или очень высокоскоростной последовательный канал (а затем запустите на нем pppd и займитесь сетью)?

Примечание: я знаю, что это непрофессиональная и абсолютно глупая идея, я просто спрашиваю из любопытства.

3 ответа3

3

Нет, так как это протокол хранения. Но PATA может (вроде). И PCI Express может.

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. Откажитесь от традиционных сетей и вместо этого напишите драйвер для зеркалирования хранилища клиента, чтобы хост мог его видеть.

Во всех трех направлениях есть серьезные подводные камни, хотя, я думаю, теоретически это было бы выполнимо - конечный результат все еще, вероятно, был бы не таким быстрым, как вы себе представляете. Это забавная идея.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .