Пассивный хаб для витой пары.
Сетевая карта Ethernet с интерфейсом "витая пара" и скоростью 10 (или 100) мегабит имеет 8-контактный разъём. Из них используются только четыре контакта: первый, второй, третий и шестой. Из них парами являются контакты 1 2, и 3 6.
Интерфейс построен следующим образом: одна из пар работает в одну сторону, другая в другую. Hавороченные сетевые карты умеют одновременно передавать и принимать информацию (full duplex). Однако, в нашем случае он не будет использоваться - карта будет работать в полудуплексном режиме. При включении карта "договаривается" с удалённым устройством о том, есть ли full duplex или нет. В случае хаба она сразу поймёт, что его нет.
Полудуплексный режим работает иначе: когда карта передаёт информацию, пришедший на вход сигнал даёт ей понять, что какая-то ещё карта решила передать информацию одновременно с нашей. Эта ситуация называется коллизией. В этом случае карта останавливает передачу, и повторяет её через некоторый случайный промежуток времени. Поскольку с большой вероятностью они начнут вторую попытку в разное время, то "не успевшая" карта увидит, что началась передача, и начнёт принимать информацию, отложив передаваемую в свой буфер для следующей попытки.
Поскольку сеть строется по физической топологии "общая шина", то передаваемая одним компьютером информация должна достичь всех остальных. Таким образом, хаб должен обеспечить распространение информации. Hо одновременно с этим передаваемая информация не должна попасть на вход передающего её компьютера, иначе он примет её за коллизию и не сможет ничего передать вообще.
Итак, мы можем сформулировать задачу хаба: он должен распространять передаваемую информацию на все подключённые к нему компьютеры, кроме передающего (то есть, чтобы не было эха). Простейший случай: два компьютера. Здесь они просто соединяются напрямую: 1 и 2 - к 3 и 6 соседа.
Теперь переходим к случаям, когда вместе соединяются три компьютера и более. Hеобходимо обеспечить, чтобы передаваемый сигнал не возвращался обратно.
Рассмотрим резисторный мост, состоящий из четырёх резисторов одинакового сопротивления, образующих квадрат. Если на противоположные вершины этого квадрата подать некий сигнал, то разность потенциалов на оставшихся двух вершинах будет равна нулю. К противоположным вершинам подключаем выход сетевухи компа, к оставшимся двум (тоже противоположным) - вход. Сетевуха не увидит собственного сигнала, т.е. наша цель достигнута. В действительности сигнал может быть - он определяется разбросом сопротивлений резисторов. Поэтому, чем на большее количество компов делается пассивный хаб, тем меньше должен быть разброс.
Сопротивление этих резисторов тоже не "от фонаря". Оно должно быть вполне определённым: подключив омметр к любым двум противоположным вершинам, должны получиться 100 ом. Это волновое сопротивление применяющейся в Ethernet витой пары. Если сопротивление будет отличным от 100 ом, будут возникать эффекты отражения сигнала, которые сделают сеть неработоспособной. Практического смысла "хаб на один комп" не имеет, поэтому он рассмотрен только для иллюстрации принципа.
Теперь рассмотрим хаб на N компов. В общем случае это такая схема, которая с точки зрения каждого из интерфейсов (входа и выхода для конкретного компа) представляет собой резистивный мост. Однако, входы всех остальных компов подключены таким образом, что при сигнал с компа 1 на компы от 2 до N всё-таки проходит, хоть и ослабляясь резистивным делителем.
Простейший вариант такой схемы - кольцо из резисторов (мост из 4 резисторов - частный случай кольца). В случае кольца количество резисторов равняется N*4, а сопротивление каждого резистора соответственно 100/N.
Для трёх компов это будет 12 резисторов по 33.3 Ом каждый.
Кольцо делается таким образом, что каждый комп подключается к вершинам квадрата, сторона которого образуется равным количеством резисторов. Для трёх компов это значит, что подключение идёт в точках, отстоящих друг от друга на три резистора. К противоположным вершинам цепляется выход, к оставшимся противоположным - вход. Остальные компы цепляются со смещением на один резистор каждый.
Для большего количества компов можно точно так же применять кольцо, но оно здесь не эффективно. Для четырёх компов, например, более эффективной будет трёхмерная фигура с шестнадцатью вершинами. Представить её можно как два пересекающих друг друга куба одинакового размера, вершина каждого из которых как бы торчит из грани другого. Для ещё большего количества интерфейсов фигуры могут быть многомерными.
Примечание: совершенно не обязательно монтировать 4-портовый хаб в виде шара :-) Можно и просто на печатной плате. Однако в качестве наглядного пособия или экзотического украшения квартиры шарообразный хаб может пригодиться :-)
Количество интерфейсов можно наращивать таким образом теоретически бесконечно. Однако практически возникает следующая проблема: Ethernet-карты рассчитаны на вполне определённый уровень входного сигнала, из которого вытекает вполне конкретный предел длины кабеля (стандартом определяется 100 метров). Конструкция же из двенадцати резисторов ослабляет сигнал на одну треть, что идентично ослаблению, вносимому примерно 0.58*X метров кабеля. Это значит, что суммарная длина кабеля между любыми двумя компьютерами для гарантированной работы сети должна составлять не более 100-0.58*X метров. Кстати, следует быть внимательным при сборке "кольцевого" хаба - при неправильном подключении к кольцу возможна ситуация, когда всё вроде бы работает, но реально ослабление будет уже втрое.
При дальнейшем увеличении количества интерфейсов ослабление увеличивается. Преодолеть это можно, например, "подкрутив" в сетевухах выходной уровень либо чувствительность.
Схема Дениса Сотченко (2:5020/1301.70)
И ещё, мне пришло несколько писем с сообщением о том, что данное устройство не работает. Проблема решается элементарно: необходимо перекрестить пары проводов.
Разработка и оформление Андрея Александровича Борисенко aka ICE.
По всем вопросам просьба писать мне на icenet (at) narod.ru