ICNDv3 #6 — LAN и Switch.

LAN (Local Area Network) — самый распространенный класс сетей, с которыми придется столкнуться. Это и домашняя сеть, и сеть предприятия.
Признаки LAN сетей
- Поддержка высокой плотности клиентов (рабочие места, принтеры, ip-телефоны и тд.).
- Обычно размеры сети до 100 метров (хотя провайдерский Metro Ethernet до десятков километров).
- Полностью под нашим управлением (без особых заморочек по безопасности).
- Примеры стандартных клиентов, соединений сетевых устройств и протоколов в LAN сетях — ниже на картинке.

Зачем нужны Switch’и в LAN ?
Чтобы ответить на этот вопрос, нужно немного вернуться назад. У нас есть классический Ethernet, длинный провод, T-образные подключения. Каждый компьютер поддерживает протокол Ethernet. Он умеет слушать среду передачи данных. Слышит, когда передаются и слышит, когда не передаются (умеет определять тишину).
Один из компьютеров решает передать данные -> он формирует Ethernet-кадр -> отдает его драйверу в оперативной памяти -> драйвер его дальше отдает на сетевой адаптер -> сетевой адаптер видит, что буфер исходящих данных стал не пустым -> адаптер начинает «слушать» среду и ждать пока будет «тишина» -> после наступления «тишины» можно передавать данные.
Преамбула
Преамбула (Preamble) — чередование битов 10101010 в определенной последовательности, нужное для оповещения других клиентов в сети о том, что кто-то собирается начать передавать данные. Если несколько узлов попытаются параллельно начать передачу данных, то каждый из них отправит в сеть преамбулу, и, если эти преамбулы наложатся друг на друга, получится Коллизия (Collision).
Размер преамбулы был подобран таким образом, что если узел начал ее передавать и допередал до конца 8 байт, и за это время не произошло коллизий, то никто из сети не сможет начать передачу данных.
И получается вот что. Вся эта схема предполагала, что одновременно из всех клиентов передает только один (каждый кто хочет передавать данные: блокирует сеть, передает данные, отпускает сеть).
Это значит, что если в сегменте сети у нас 10 клиентов, то они максимальную ширину канала делят на 10… А если 100 клиентов, то в 100 мегабитной сети, и каждый получит по 1 мегабиту (и из него вычесть еще весь служебный трафик, преамбулы и так далее).
Представим, что у нас есть 20 клиентов, они все сидят на все том же длинном медном проводе, когда один из них начинает передавать, 19 вынуждены слушать этот трафик. Один (кому трафик предназначен) его читает, а остальные понимают, что трафик предназначен не им. Поняли, что так дело не пойдет и надо что-то делать.
Мост
Мост (Bridge) — Решили сделать коробку с 2 портами: левый и правый. Эта коробка будет читать все кадры, которые слышит, и записывать в таблицу каждого отправителя, за какой он стороной сидит (за левой или за правой). Спустя некоторое время у этой коробки будет полная карта сети (кто за какой стороной сидит). То есть, если эту коробку поставить в центре (слева 10 клиентов и справа 10 клиентов), и клиент с одной стороны передает данные и получатель находится с этой же стороны, то нет смысла передавать его на другую сторону. Таким образом, можно было практически удвоить пропускную способность сети.
Switch
2 порта это, конечно, все отлично, но мало, и решили сделать многопортовое устройство. В этом устройстве каждый из портов будет мостом. Эта коробка будет точно также слушать все кадры, закидывать их в буфер и записывать таблицу за каким портом (мостом) кто сидит. Таким образом, в нужный порт будут прилетать только нужные данные. Это и безопасность повысит, так как никто не сможет подслушивать трафик, и скорость увеличит. Можно пойти дальше, раз и так все кадры будут попадать в буфер, их можно анализировать. Можно будет проверять целостность кадра, согласование скоростей между портами приема-передачи (пока все сидели на общем проводе, у всех была одинаковая скорость, вне зависимости от возможностей сетевого адаптера).
Функции коммутатора — создавать сетевой сегмент. И так как он работает на канальном уровне (L2), он занимается Ethernet-кадрами, то есть связью соседнерасположенных узлов. Сам свитч для устройств невидим. На свитч нельзя передать данные, т.к. данные передаются на определенный MAC-адрес соседа, а свитч «на лету» смотрит заголовок кадра и перенаправляет его в определенный порт, так как у него есть таблица, в которой содержится информация, кто за каким портом находится. Если свитч идеально пустой, или с обнуленной таблицей MAC-адресов, то он отправит кадр на все порты. У свитча задача не максимально сэкономить трафик, а доставить информацию до клиента. Такая рассылка называется — Unknown Unicast Flooding.

Следующая статья -> ICNDv3 #7 — Домены коллизии и Витая пара.