O Spanning Tree Protocol

Como mencionado, o Spanning Tree Protocol surgiu para retirar o problema dos loops na camada de enlace. Isso é feito monitorando-se todos os links da Rede.

O algoritmo começa formando uma spanning tree dos switchs através de trocas de mensagens, entre os switchs, compostas de quadros especiais chamados BPDU’s (Bridge Protocol Data Unity). Uma explicação sobre esse tipo de quadro está na página BPDU.

Após formada, a comunicação entre os switches só é permitida através da spanning tree. (Caso haja dúvida no conceito de Spanning Tree, a página Spanning Tree possui uma breve explicação).

Após formada, a comunicação entre os switches só é permitida através da spanning tree.

Apesar de que pontes não precisam de endereço MAC para operar, no protocolo que forma a spanning tree é necessário que cada ponte contenha um indentificador. Consequentemente, a cada ponte é associado um identificador que contém um campo de prioridade de 16 bits seguido de um endereço MAC único. Similarmente, as portas dos switches recebem um indentificador. O swich raiz é escolhido pelo menor identificador.

Como mencionado, após a formação da spanning tree, apenas um caminho entre o swich raíz e os switchs nos ramos será permitido. Para tornar isso possível, em cada switch, cada porta deve ser rotulada como porta designada ou como porta de raiz. Uma porta designada é responsável por enviar quadros provenientes da raiz para um ramo, em direção às folhas. Uma porta de raiz é responsável pelo fluxo contrário, ou seja, é responsável por enviar um quadro proveniente de um ramo que vá em direção à raiz. Como cada nó, ou switch, possui apenas um nó pai, ou seja, um nó que se aproxima da raiz, cada switch pode possuir apenas uma porta de raiz. A exceção é a raiz, que não possui nenhuma porta raiz, apenas portas designadas.

Um esquema é mostrado na figura a seguir, note que o switch raiz (R) possui apenas portas designadas.

Retirado de [1]

Além disso, para formar a spanning tree, é necessário determinar quais pontes possuem o menor custo e que, portanto, irão compor as arestas da árvore. A métrica utilizada para determinar o menor custo é utilizar a velocidade das portas do switch, onde o custo é inversamente proporcional à velocidade da porta. A tabela a seguir possui alguns custos sugeridos para cada velocidade possível de porta.

Retirado de [1]

Outra diferença nos switches sobre os quais o STP opera é que alguns estados adicionais das portas são necessários. A seguir, estão listados os possíveis estados:

1 - Destivada: A porta não recebe, nem envia quadros quaisquer.

2 - Bloqueada: A porta não é utilizada, mas é tida como uma alternativa de envio de quadros para a raiz. Ela não pode enviar, nem receber quadros BPDU, porém ela pode “ouvir” quadros BPDU sendo enviados.

3 - Escutando: A porta é incapaz de aprender ou de enviar endereços MAC, mas pode receber e enviar quadros BPDU. Ela é empregada quando estiver saindo do estado de Bloqueada.

4 - Aprendendo: A porta está prestes a se tornar ativa, mas deve atualizar seu banco de dados de filtro.

5 - Enviando: Essa porta está ativa, filtrando e enviando quadros.