por
Jeff Tyson - traduzido por HowStuffWorks Brasil
Spanning trees (árvores de abrangência)
Para prevenir os congestionamentos broadcast e outros efeitos colaterais indesejados das ligações em loop, a empresa Digital Equipment Corporation criou o protocolo
spanning tree (STP), que foi padronizado como a especificação
802.1d pelo
IEEE - Institute of Electrical and Electronic Engineers - Instituto dos Engenheiros Elétricos e Eletrônicos (em inglês). Um protocolo spanning tree utiliza um
algoritmo spanning tree (STA), que percebe que o switch tem mais de uma maneira de se comunicar com um nó. Este protocolo determina o melhor caminho e bloqueia os outros. Outra vantagem é que ele memoriza os outros caminhos, caso o caminho principal esteja indisponível.
Veja abaixo de que maneira funciona o STP.
- Cada switch administra um grupo de IDs, um para o próprio switch e um para cada porta do switch. O identificador do switch, chamado de ID de ponte (BID), tem 8 bytes que contêm a prioridade da ponte (2 bytes) junto com um dos endereços MAC do switch (6 bytes). Cada ID de porta tem 16 bits formados por duas partes: uma configuração de prioridade de 6 bits e um número de porta de 10 bits.
- Um valor de custo de caminho é atribuído a cada porta. O custo é baseado num guia estabelecido pelo padrão 802.1d. De acordo com a especificação original, o custo é de 1 mil Mbps (1 gigabit por segundo) dividido pela largura de banda do segmento conectado à porta. Portanto, uma conexão de 10 Mbps teria um custo de (1.000/10) 100.
Para compensar as velocidades de redes que ultrapassam a velocidade de um gigabit, o custo padrão foi levemente modificado. Os novos valores são:
| Largura de banda | Custo do STP |
| 4 Mbps | 250 |
| 10 Mbps | 100 |
| 16 Mbps | 62 |
| 45 Mbps | 39 |
| 100 Mbps | 19 |
| 155 Mbps | 14 |
| 622 Mbps | 6 |
| 1 Gbps | 4 |
| 10 Gbps | 2 |
Também é possível que o administrador da rede atribua um valor arbitrário ao custo de caminho, em vez de usar um dos valores padrão.
- cada switch inicia um processo de exploração para descobrir qual caminho de rede ele deve usar para cada segmento. Essa informação é compartilhada com todos os switches através de uma rede especial de frames conhecida como BPDU (bridge protocol data units - unidades de dados de protocolo de ponte).
- BID raiz. Este é o BID da ponte raiz atual.
- Custo de caminho para a ponte raiz. Determina o quão longe está a ponte raiz. Por exemplo, se os dados trafegam por três segmentos de 100 Mbps para chegar à ponte raiz, o custo é de (19 + 19 + 0) 38. O segmento conectado à ponte raiz normalmente tem um custo de caminho igual a zero.
- BID remetente. Este é o BID que o switch envia para o BPDU.
- ID de porta. Esta é a porta real no switch da qual as informações BPDU foram enviadas.
Todos os switches estão constantemente enviando BPDUs uns para os outros, tentando determinar o melhor caminho entre os vários segmentos. Quando um switch recebe um BPDU (de outro switch) que é melhor do que ele está transmitindo na direção oposta, o switch pára de enviar BPDU para este segmento. Em vez disso, ele armazenará o BPDU do outro switch como referência e para fazer a difusão para segmentos inferiores, como aqueles que estão mais distantes da ponte raiz.
- uma ponte raiz é escolhida com base nos resultados dos processos BPDU entre os switches. Inicialmente, cada switch se considera uma ponte raiz. Quando um switch é conectado à rede, ele envia um BPDU com o seu próprio BID com BID raiz. Quando os outros switches recebem o BPDU, eles comparam este BID com os outros BIDs armazenados como BID raiz. Se o novo BID raiz tiver um valor mais baixo, eles substituem o BID armazenado. Mas se o BID raiz armazenado for menor, um BPDU é enviado para o novo switch com o novo valor. Quando o novo switch recebe o BPDU, ele descobre que não é a ponte raiz e substitui o BID raiz na lista de endereços pelo BID raiz que acabou de receber. O resultado é que o switch que tem o menor BID é eleito pelos outros switches como ponte raiz;
- de acordo com a localização da ponte raiz, os outros switches determinam as portas com o menor custo para a ponte raiz. Estas portas são chamadas portas raízes e cada switch (exceto a ponte raiz atual) deve ter uma;
- os switches determinam quem terá as portas designadas. Uma porta designada é a conexão utilizada para enviar e receber pacotes em um segmento específico. Se existir somente uma porta designada para cada segmento, todos os problemas da ligação em loop estarão resolvidos;
As portas designadas são selecionadas de acordo com o custo mais baixo para a ponte raiz em cada segmento. Como a ponte raiz tem custo "0", quaisquer de suas portas que estiverem conectadas a segmentos serão portas designadas. Para outros switches, o custo é comparado com o segmento em questão. Se uma porta tiver um custo menor, ela se torna uma porta designada para aquele segmento. Se duas ou mais portas tiverem o mesmo custo, o switch com o menor BID é escolhido.
- uma vez que uma porta designada para o segmento é escolhida, todas as outras portas que se conectam àquele segmento se tornam portas não-designadas. Elas bloqueiam o tráfego naquele caminho e só acessam o segmento através da porta designada.
Cada switch tem uma tabela de BPDUs atualizada constantemente. A rede é configurada como uma única spanning tree. A ponte raiz se torna o tronco da árvore e os outros switches se tornam os galhos. Cada switch se comunica com a ponte raiz através das portas raízes e com cada segmento através das portas designadas. Assim, a rede fica livre de ligações em loop. Se a ponte raiz começar a falhar ou se a rede apresentar problema, o STP permite que outros switches reconfigurem a rede e designem outro switch como ponte raiz. Este processo incrível dá a uma empresa a possibilidade de ter uma rede complexa e tolerante a falhas, mas ainda assim, fácil de gerenciar.