Свитчи и локальные сети
Свитчи и локальные сети
В прошлом уроке мы разобрали, что сеть — это два или более устройств, соединённых для обмена данными. Но представь: у тебя не два компьютера, а двадцать. Соединять каждый с каждым отдельным кабелем? Потребуется 190 кабелей! Для решения этой проблемы придумали свитч (switch) — центральное устройство, к которому подключаются все компьютеры в локальной сети.
Что делает свитч
Свитч — это «умный разветвитель». У него есть несколько портов (4, 8, 24, 48), в каждый из которых можно воткнуть кабель от компьютера, принтера или другого устройства.
Когда компьютер А хочет отправить данные компьютеру Б, он посылает их в свитч. Свитч смотрит на адрес получателя и отправляет данные только в тот порт, где находится получатель. Это ключевое свойство: в отличие от старого устройства-предшественника (хаба, который тупо рассылал данные во все порты), свитч передаёт данные адресно.
До появления свитчей (с хабом):
А отправляет данные → хаб → получают В, С, D, E (все!)
Со свитчем:
А отправляет данные → свитч → получает только В
MAC-адрес: уникальное имя устройства
Чтобы свитч знал, кому что отправлять, у каждой сетевой карты есть уникальный идентификатор — MAC-адрес (Media Access Control). Он «зашит» в устройство на заводе и выглядит примерно так:
A4:83:E7:0B:2C:F1
Шесть пар шестнадцатеричных цифр: первые три пары — код производителя (A4:83:E7 принадлежит Apple), последние три — уникальный номер конкретного устройства. Всего доступно 2⁴⁸ ≈ 281 триллион комбинаций — хватит на все устройства, которые когда-либо будут произведены.
Узнать MAC-адрес своего компьютера можно за пару секунд. На Windows — команда ipconfig /all в терминале, на Mac/Linux — ifconfig или ip link. В выводе ищи строку Physical Address или ether. На телефоне MAC-адрес обычно спрятан в настройках → «О телефоне» → «Состояние».
Современные телефоны и ноутбуки часто используют рандомизацию MAC-адресов для приватности: при подключении к новой Wi-Fi-сети устройство генерирует случайный MAC вместо заводского. Это мешает владельцам публичных точек доступа (кафе, аэропорты) отслеживать твои перемещения по уникальному адресу устройства.
Как свитч запоминает, кто где
Когда ты впервые включаешь свитч, его таблица MAC-адресов пуста. Он не знает, в каком порту какой компьютер. Но он учится на лету:
- Компьютер А (MAC
AA:AA:AA:AA:AA:01, порт 1) отправляет кадр для компьютера Б (MACBB:BB:BB:BB:BB:02, порт 3). - Свитч читает MAC отправителя и записывает: «
AA:AA...01→ порт 1». - MAC получателя (
BB:BB...02) свитчу пока не знаком. Он не знает, где Б. - Поэтому свитч рассылает кадр во все порты, кроме порта отправителя — это называется flooding.
- Компьютер Б отвечает. Свитч видит MAC отправителя
BB:BB...02и записывает: «BB:BB...02→ порт 3». - Теперь свитч знает оба адреса. Следующий кадр от А к Б пойдёт адресно, только в порт 3.
Важный нюанс: записи в таблице MAC-адресов не вечны. Если устройство молчит дольше определённого времени (обычно 5 минут), свитч удаляет его запись. Это нужно, чтобы таблица не разрасталась бесконечно и чтобы корректно обрабатывать ситуацию, когда компьютер переключили в другой порт.
Несколько свитчей в одной сети
В реальном офисе одного свитча часто не хватает — слишком много устройств. Тогда свитчи соединяют между собой:
[Свитч 1] ——— [Свитч 2] ——— [Свитч 3]
│ │ │
ПК 1-8 ПК 9-16 ПК 17-24
Свитчи точно так же изучают MAC-адреса и строят свои таблицы. Если ПК 1 (за свитчем 1) хочет отправить данные ПК 17 (за свитчем 3), кадр проходит через всю цепочку свитчей. Каждый свитч на пути смотрит в свою таблицу и решает, в какой порт отправить кадр дальше.
Но у этого подхода есть предел: широковещательный трафик (кадры на FF:FF:FF:FF:FF:FF) идёт во все порты всех свитчей. В сети на 200+ устройств это создаёт ощутимый шум. Для решения этой проблемы и нужны роутеры, которые разбивают сеть на изолированные сегменты — но о них в следующем уроке.
Таблица MAC-адресов свитча после обучения:
| MAC-адрес | Порт |
|---------------------|------|
| AA:AA:AA:AA:AA:01 | 1 |
| BB:BB:BB:BB:BB:02 | 3 |
Широковещательный (broadcast) домен
Иногда компьютеру нужно отправить сообщение всем в локальной сети. Например, чтобы спросить: «Эй, у кого IP-адрес 192.168.1.5?» Для этого используется специальный MAC-адрес FF:FF:FF:FF:FF:FF — широковещательный. Свитч, получив кадр с таким адресом, рассылает его во все порты.
Все устройства, которые получают такие broadcast-сообщения друг от друга, находятся в одном широковещательном домене. В небольших сетях это не проблема. Но если в одном офисе 1000 машин и каждая шлёт broadcast-запросы — сеть забивается служебным трафиком.
Свитч против хаба
Важно понимать разницу, потому что она иллюстрирует эволюцию сетей:
| Характеристика | Хаб (hub) | Свитч (switch) |
|---|---|---|
| Пересылка данных | Во все порты | Только в нужный порт |
| Пропускная способность | Делится на всех | Каждый порт на полной скорости |
| Коллизии | Часто | Нет (full-duplex) |
| Безопасность | Любой видит чужой трафик | Трафик изолирован |
| Цена | Был дёшев, сейчас не производят | Стандарт с конца 90-х |
Сегодня хабы — музейные экспонаты. В любом магазине электроники ты купишь свитч, даже если на коробке написано «сетевой коммутатор» (это русский перевод слова switch). Домашний роутер, который ты получил от провайдера — это на самом деле три устройства в одной коробке: свитч (LAN-порты), точка доступа Wi-Fi и собственно роутер. Мы будем разбирать каждое из них по отдельности, чтобы понять, как они работают вместе.
Коллизия: когда два компьютера «говорят» одновременно
В старых сетях на хабах была проблема: если два устройства начинали передачу одновременно, сигналы накладывались и искажались — это называется коллизия. Устройства обнаруживали коллизию, замолкали на случайное время и пытались снова. Чем больше устройств — тем больше коллизий, тем медленнее сеть.
Современный свитч решает эту проблему радикально: каждый порт работает в режиме full-duplex — передача и приём идут по разным парам проводов внутри кабеля одновременно, без риска столкновения. Внутри Ethernet-кабеля (витой пары) 8 проводов, и в full-duplex одни пары используются только для передачи, другие — только для приёма.
Противоположный режим — half-duplex — сегодня можно встретить разве что в старом оборудовании. В half-duplex устройство в каждый момент либо передаёт, либо принимает, но не одновременно. Это как рация: пока один говорит, второй вынужден слушать.
Проверь себя
- Что произойдёт, если свитч получит кадр с MAC-адресом получателя, которого нет в его таблице?
- Зачем нужен broadcast-адрес
FF:FF:FF:FF:FF:FF? - Можно ли подключить свитч к другому свитчу?
- Свитч выполнит flooding — разошлёт кадр во все порты, кроме того, откуда он пришёл. Это гарантирует, что данные дойдут до получателя, даже если свитч ещё не знает его местоположение.
- Чтобы отправить сообщение сразу всем устройствам в локальной сети. Например, когда устройство хочет узнать, у кого определённый IP-адрес — оно шлёт broadcast.
- Да, можно и нужно. Так строятся сети больше, чем позволяет количество портов одного свитча. Свитчи соединяются между собой, расширяя сеть.
Что унести с урока
- Свитч — центральное устройство локальной сети, которое передаёт данные адресно (не всем подряд).
- MAC-адрес — уникальный идентификатор сетевой карты, по которому свитч находит получателя.
- Свитч сам строит таблицу MAC-адресов, запоминая, какой адрес в каком порту.
- Broadcast-адрес
FF:FF:FF:FF:FF:FFпозволяет обратиться ко всем устройствам сразу. - Современные свитчи работают в full-duplex — коллизий нет.
Локальная сеть решает проблему общения компьютеров в пределах здания. Но как соединить локальную сеть офиса в Москве с локальной сетью офиса в Берлине? Для этого нужен роутер — о нём и поговорим в следующем уроке.