Для каждого кадра, приходящего на любой из интерфейсов моста, все, что он должен выполнить, это направить данный кадр другому интерфейсу и, таким образом, другому сегменту ЛВС или отбросить кадр. Это решение принимается на основе текущего состояния каждого порта и информации, хранящейся в специальной таблице, называющейся базой данных фильтрации (filtering database). Название «база данных фильтрации» является отчасти неверным.
Эта «база данных» в действительности является таблицей, перечисляющей все известные МАС-адреса, где с каждым адресом связан возраст (указывающий, когда была сделана запись в таблице) и идентификатор порта. Идентификатор порта указывает порт, которому кадр должен быть направлен. Если отвечающий за МАС-ретрансляцию элемент определяет, что кадр должен быть отфильтрован, он просто убирается из буферов и мост больше не предпринимает никаких действий.
Если элемент MAC-ретрансляции определяет, что кадр следует перенаправить, кадр передается соответствующему объекту MAC (адаптеру ЛВС). Затем объект MAC обеспечивает доступ к подключенной ЛВС и передает кадр. Если в сети присутствуют и другие мосты, то процесс может повторяться, пока кадры не достигнут ЛВС, к которой подключен сетевой адаптер назначения.
Процесс обучения
В основе принятия решения фильтрации/перенаправления лежит база данных фильтрации, которая представляет собой таблицу МАС-адресов и связанных с ними идентификаторов портов. Для ее обслуживания часто нужен аудит баз данных. Элемент МАС-ретрансляции «знает» порт, на который прибыл кадр и МАС-адрес, содержащийся в поле адреса назначения кадра.
Вооруженный этой информацией он запрашивает базу данных фильтрации, чтобы определить, что следует предпринять. База фильтрации содержит два типа записей: статические и динамические. Статические записи вводятся вручную администратором сети или определяются системой управления сетью (NMS, Network Management System).
С точки зрения прозрачного моста это неизменяемые записи (для изменения этих записей требуется вмешательство извне). Статические записи имеют преимущество, которое заключается в возможности их конфигурирования. Статические записи являются негибкими из-за необходимости ручной (или внешней) конфигурации. Мост автоматически поддерживает только динамические записи.
Динамическая запись является простым триплетом данных: МАС-адрес, идентификатор порта и оценка времени. Обращение к динамичной записи осуществляется через МАС-адрес. Связанный с ним идентификатор порта указывает порт, к которому должен быть перенаправлен кадр. Оценка времени является механизмом, периодически используемым прозрачным мостом для удаления из таблицы устаревшей информации. Прозрачный мост имеет механизм, посредством которого он собирает из сети информацию для поддержки динамических записей в базе данных фильтрации.
Благодаря этой возможности данный тип мостов иногда называют обучаемым мостом (learning bridge). Процесс обучения поддерживает динамические записи в базе данных фильтрации. Если до прозрачного моста приходит кадр, мост «узнает» все, что может, из кадра. Затем он фильтрует или перенаправляет кадр в соответствии с текущим состоянием порта и содержимым базы данных фильтрации. Прежде всего, мост извлекает из полученного кадра адрес источника.
Если для этого МАС-адреса существует статическая запись, мост не производит создания или обновления динамического записи, он просто фильтрует или перенаправляет кадр, исходя из его адреса назначения. Статические записи конфигурируются вручную и процессом обучения не меняются. Если для адреса источника не существует статической записи, мост нуждается в обучении. Первым шагом является определение того, не присутствует ли уже МАС-адрес источника в базе данных фильтрации в виде динамической записи.
Если адреса нет, то он добавляется в базу данных вместе с идентификатором порта, принявшего кадр, и отметкой времени. Сейчас мост знает «местоположение» в сети адаптера ЛВС, передавшего кадр. Если что-то переданное этим адаптером ЛВС прибывает на определенный порт, то разумно предположить, что данные, предназначенные для того же адаптера ЛВС, должны быть переправлены на этот порт. Подобный подход иногда называют обратным обучением (backward learning).
Если адрес источника уже присутствует в базе данных фильтрации, идентификатор порта соответствующей записи сравнивается с идентификатором порта, на который прибыл кадр. Если идентификаторы отличаются, это означает, что данный адаптер ЛВС переместился с момента осуществления им последней передачи. Возможно, была перемещена целиком вся система или адаптер был извлечен из одной машины и помещен в другую систему где-либо еще в сети. Какой бы ни была причина этого перемещения, мост обновляет идентификатор порта в базе данных и сбрасывает отметку времени.
Если адрес источника присутствует в базе данных и идентификатор порта совпадает с идентификатором порта, на который прибыл кадр, обучение не требуется и мост просто обновляет отметку времени. Если процесс обучения завершен, мост может обращаться к базе данных фильтрации, чтобы определить, что следует делать с кадром. Сейчас он действует, исходя из адреса назначения. Если мост не имеет статической записи и никогда не принимал кадров от станции назначения, он буквально «не знает», что делать.
В ситуации отсутствия информации мост перенаправляет кадр всем портам за исключением порта, куда он изначально прибыл. Результатом является «заполнение» сети кадром, гарантирующее, что сетевой адаптер назначения получит его копию. Если для данного МАС-адреса в базе данных фильтрации существует запись, мост использует эту информацию для направления кадра правильному порту или портам.
Если база данных указывает, что кадр следует направить в ЛВС, из которой он был скопирован, кадр отфильтровывается. Оценка времени является важным элементом. Если мост не получает кадров от адаптера ЛВС на протяжении установленного периода времени (обычно 5 мин.), он удаляет из базы данных информацию об этом адаптере. Если база данных заполнена и замечен новый адрес, отметки времени используются для удаления из базы данных наиболее старой записи.
Этот процесс минимизирует требования к объему памяти моста и уменьшает задержки, связанные с поиском по базе данных. Эта стратегия эффективна и успешна до тех пор, пока в топологии сети нет избыточных путей. Представьте себе схему сети, которая состоит из двух ЛВС, соединенных мостами. Такая топология будет иметь два возможных пути между ЛВС. Кадр, путешествующий от станции к станции, может следовать любым из двух маршрутов.
Проблема проста. Что остановит кадр от одновременного путешествия по обоим этим маршрутом? Например, кадр, отправленный станцией А и предназначенный для станции В, может быть перенаправлен обоими мостами — мостом А и мостом В. Тогда в одном сетевом сегменте назначения будет существовать две копии кадра.
Это растрачивает пропускную способность сети и вычислительные ресурсы обоих мостов и станции назначения. Последняя вынуждена изучать и отбрасывать дубликат каждого кадра. Хотя эта проблема выглядит достаточно серьезной, она ничто по сравнению с проблемой, вызванной широковещательными кадрами (кадрами, содержащими широковещательный адрес в поле адреса назначения).
Прозрачный мост обязан перенаправлять широковещательные кадры (и большинство многоадресных) всем портам за исключением тех, откуда кадры прибыли. Проследим движение широковещательного кадра, отправленного станцией А. Мост А и мост В оба перенаправят кадр. Сейчас в сегменте станции существует две копии широковещательного кадра. Мост А увидит кадр, который отправил мост В, и скопирует его в другой сегмент.
Мост В, в свою очередь, увидит кадр, который отправил мост А, и также скопирует его. Теперь мы имеем два кадра, перемещающиеся в бесконечном цикле. Эта ситуация описывается как широковещательный шторм, и может в короткий срок полностью вывести сеть из строя. Если сеть имеет одну петлю, широковещательные кадры будут циркулировать по ней бесконечно.
Каждая новая широковещательная передача будет добавлять трафик, который никогда не исчезнет, и сеть потеряет работоспособность за несколько минут. Если сеть имеет множество петель, каждый раз, когда кадр будет достигать моста с более чем двумя портами или локальной сети с более чем двумя подключенными к ней мостами, будут перенаправляться многочисленные копии кадра.