Избыточность повышает доступность топологии сети посредством защиты сети от единой точки отказа — например, неисправного сетевого кабеля или коммутатора. При реализации в проектировании физической избыточности возникают петли и дублирование кадров. Петли и дублированные кадры являются причиной серьезных неполадок в коммутируемой сети. Протокол STP разработан для решения подобных проблем.

Протокол STP обеспечивает наличие только одного логического пути между всеми узлами назначения в сети путем намеренного блокирования резервных путей, которые могли бы вызвать петлю. Порт считается заблокированным, когда заблокирована отправка и прием данных на этот порт. К таким данным не относятся кадры BPDU, которые используются протоколом STP для предотвращения петель. Для предотвращения петель в сети чрезвычайно важно блокировать избыточные пути. Физические пути по-прежнему используются для обеспечения избыточности, однако эти пути отключены в целях предотвращения петель. Если путь потребуется для компенсации неисправности сетевого кабеля или коммутатора, протокол STP повторно рассчитывает пути и снимает блокировку с требуемых портов, чтобы разрешить активацию избыточного пути.

Нажмите на кнопку «Воспроизведение» на рис. 1, чтобы изучить принцип работы STP.

В рассматриваемом примере протокол STP включен на всех коммутаторах:

1. PC1 отправляет широковещательную рассылку в сеть.

2. S2 настроен с использованием протокола STP, и для порта Магистраль 2 задано состояние блокировки. Состояние блокировки запрещает использование портов для пересылки данных пользователей, предотвращая, таким образом, возникновение петли. S2 пересылает кадр широковещательной рассылки из всех портов коммутатора, за исключением порта источника PC1 и порта для Магистраль 2.

3. S1 принимает кадр широковещательной рассылки и пересылает его из всех портов коммутатора, откуда он поступает на PC4 и S3. S3 пересылает кадр из порта для Магистраль 2, и S2 пропускает этот кадр. Возникновение петли 2 уровня предотвращено.

Нажмите «Воспроизведение» на рис. 2, чтобы просмотреть повторный расчёт протокола STP при возникновении сбоя.

В приведённом примере:

1. PC1 отправляет широковещательную рассылку в сеть.

2. После этого широковещательная рассылка пересылается по сети, как показано в предыдущей анимации.

3. Возникает сбой в транковом канале между S2 и S1, что приводит к прерыванию предыдущего пути.

4. S2 снимает блокировку с предварительно заблокированного порта для Магистраль 2 и разрешает передачу трафика широковещательной сети по альтернативному пути, обеспечивая дальнейший обмен данными. Если этот канал снова работает, выполняется повторное схождение протокола STP, а порт на S2 снова блокируется.

Протокол STP предотвращает возникновение петель за счёт настройки беспетлевого пути в сети с использованием портов, стратегически настроенных на заблокированное состояние. Коммутаторы, использующие протокол STP, могут компенсировать сбои за счёт динамической разблокировки ранее блокированных портов и разрешения передачи трафика по альтернативным путям.

До сих пор использовался термин Spanning Tree Protocol (протокол spanning-tree) и аббревиатура STP. Однако использование этого термина и этой аббревиатуры может быть двусмысленным. Многие специалисты используют данный термин и аббревиатуру для обозначения различных реализаций протокола spanning-tree, например протокола Rapid Spanning Tree Protocol (RSTP) и протокола Multiple Spanning Tree Protocol (MSTP). Чтобы правильно объяснять принципы протокола spanning-tree, важно понимать, о какой конкретно реализации или стандарте идет речь в данном контексте. В новейшей версии документации IEEE по протоколу spanning-tree (IEEE-802-1D-2004) говорится: «Протокол STP в настоящее время заменен протоколом Rapid Spanning Tree Protocol (RSTP)»; можно заметить, что в IEEE термин «STP» используется для обозначения исходной реализации протокола spanning-tree, а «RSTP» — для описания версии протокола spanning-tree, указанной в IEEE-802.1D-2004. В рамках данной программы, если в контексте обсуждения речь идет об исходном протоколе STP, то во избежание расхождений используется фраза: «исходный протокол spanning-tree 802.1D».

Примечание. Протокол STP основан на алгоритме, изобретенном компанией Radia Perlman в ходе работы над проектом Digital Equipment Corporation. Алгоритм опубликован в 1985 году в документе «Алгоритм распределенного вычисления протокола spanning-tree в расширенной сети LAN».