Рассмотрим стандартный сетевой коммутатор GigE. Предположительно, чтобы выполнить переключение, ему необходимо поддерживать сопоставление MAC-адресов всех вещей, которые существуют в сети, с номерами портов (коммутатора).
Коммутатор изучает сопоставление MAC-порта, глядя на исходный MAC-адрес каждого входящего пакета. Таким образом, коммутатор может постепенно создавать таблицу Mac.
Когда ему нужно переслать пакет, он смотрит на MAC-адрес назначения и пересылает его на соответствующий порт в соответствии с таблицей mac. Если он не нашел ни одной записи, он отправит пакет на все порты (кроме порта отправки).
Чтобы сохранить только действительные записи в таблице Mac, коммутатор сбрасывает неиспользуемые записи по истечении определенного времени ожидания.
При изменении топологии сети коммутатор может узнать новое местоположение MAC-адреса при получении нового пакета. Он перезапишет старое сопоставление этого MAC-адреса.
Для получения дополнительной информации см. эта ссылка.
взял этот сценарий:
host_a - порт 1 host_b - порт 2
когда host_a хочет отправить пакет на host_b, он ударит по коммутатору, который запишет MAC-адрес host_a, и поскольку host_b еще ничего не отправил, он будет транслировать кадр на все порты - host_b заметит, что ему отправлено, и ответит на порту b.
в этот момент коммутатор знает, что host_a имеет mac1 на порту 1, а host_b имеет mac2 на порту 2. любая дальнейшая связь будет осуществляться только через эти порты вместо широковещательной передачи.
то, что я сказал, применимо к неуправляемым коммутаторам и может применяться и к управляемым коммутаторам, но здесь все становится сложнее. например, cisco может настроить, какой Mac приходит к какому порту, они запускают проприетарные протоколы как ISL или открытый dot1q http://en.wikipedia.org/wiki/IEEE_802.1Qтекст ссылки
Она называется таблицей MAC-адресов и содержит port
, то MAC address
и timestamp
. Если вы измените топологию, потому что вы отключите некоторые кабели, тогда все записи, содержащие задействованные порты, будут удалены из таблицы MAC-адресов. Новые записи изучаются после получения каждого первого пакета от оборудования. Некоторые записи останутся для неправильного порта, если оборудование не подключено напрямую, но, как правило, об этом скоро узнают из-за широковещательных рассылок. Если нет трафика от оборудования, то оно должно пройти тайм-аут, пока его запись не будет отброшена. Тайм-аут обычно составляет 120 секунд.