how/network
Свитч на старте не знает ничего. За первые секунды трафика он сам строит «карту» - кто на каком порту - и перестаёт флудить кадры.
Когда ты включаешь новый свитч в розетку - он умеет коммутировать, но не знает кто к каким портам подключён. Как он за пару секунд начинает работать «как надо» - без флудинга, с точечной доставкой?
Магия в CAM-таблице (Content-Addressable Memory) - это таблица
MAC адрес ↔ номер порта, которую свитч сам учит наблюдая за
проходящим трафиком. Каждый входящий кадр содержит source MAC -
свитч просто смотрит и записывает: «о, этот MAC живёт на этом порту».
Нажми ▶ - посмотрим как пустой свитч за 3 кадра учится и переходит из режима «флужу всё» в «точечную доставку».
Свитч только что загрузился. CAM-таблица пуста. Он умеет принимать и отправлять кадры, но не знает какие MAC'и на каких портах живут.
Любой кадр, который сейчас прилетит, заставит его флудить копию во все порты - потому что dst MAC ему неизвестен.
итого
Что важно запомнить:
ff:ff:ff:ff:ff:ff) - broadcast флудится
всегда, не зависит от CAMMAC ↔ port. ARP живёт в хосте и хранит IP ↔ MAC.
Разные слои, разные задачиСвязано с arp (как хост узнаёт MAC соседа) и broadcast-domain (где свитч обязан флудить).