**Spanning Tree Protocol** (skratka **STP**, v preklade protokol kostry grafu) je v informatike názov pre sieťový protokol, ktorý v Ethernetových LAN sieťach odstraňuje nekonečné slučky. Protokol tiež umožňuje automaticky aktivovať odpojené spoje v prípade, keď dôjde k prerušeniu aktívnej cesty.

Spanning Tree Protocol je štandardizovaný ako IEEE 802.1D. STP je založený na algoritme, ktorý navrhla Radia Perlmanová vo firme Digital Equipment Corporation. Vylepšením sú normy IEEE 802.1s, IEEE 802.1w, IEEE 802.1aq.

Vyhnúť sa účinkom, ako sú vysielacie búrky, je možné, ak existuje algoritmus, ktorý zaručuje čistotu Topológie od sieťových slučiek. Algoritmus Spanning-Tree zabezpečuje, že neexistujú žiadne nežiaduce obojsmerné pakety. Identifikuje viacero ciest prenosom topológií s redundantnými cestami cez logické blokovanie špecifických ciest do topológie stromov, kde sa nenachádzajú žiadne slučky. Pre tento účel sú všetky prepínače okrem jedného pripojenia zablokované na iných prepínačoch s viacerými pripojeniami. Ak primárne pripojenie zlyhá, môžu sa okamžite aktivovať a tým vytvoriť vysoký stupeň tolerancie chýb.

Algoritmus, Spanning-Tree" bol navrhnutý Radiou Perlmanovou a bol štandardizovaný ako IEEE 802.1D v roku 1990. Predpokladom, pre funkčnosť tohto konceptu je to, že rozvetvujúci strom môže byť pre užívateľa vytvorený úplne transparentne. Algoritmus Spanning-Tree musí byť aktivovaný na prepínači ako jediná akcia. Na výmenu konfiguračných správ sa ako všesmerový paket používa premosťovacia dátová jednotka – Bridge Protocol Data Unit (BPDU), ktorá je štandardne zasielaná každé dva sekundy a nespôsobuje tak značné zaťaženie siete.

Funkcie protokolu
-----------------

Aby sme spoznali logický rozvetvujúci strom (Spanning-Tree), každý prepínač musí prejsť sekvenciou stavov portov, ktoré sú ovplyvnené tromi časovačmi. Ak by bol port na prepínači nepremiestniteľný priamo z blokovania do stavu presmerovania, hrozilo by riziko straty informácií o topológií a došlo by k vytvoreniu slučky. Z tohto dôvodu sa rozlišuje päť rôznych stavov:

| Stav portu | Popis |
| --- | --- |
| Disabled | Konfiguruje rámce; neučí sa nové adresy; nepríjma a nespracováva BPDU. |
| Blocking | Konfiguruje rámce; neučí sa nové adresy; prijíma a spracováva BPDU |
| Listening | Konfiguruje rámce; neučí sa nové adresy; prijíma, spracováva a prenáša BPDU. |
| Learning | Konfiguruje rámce; učí sa nové adresy; prijíma, spracováva a prenáša BPDU. |
| Forwarding | Vedie rámce ďalej, učí sa nové adresy; prijíma, spracováva a prenáša BPDU. |

Čas, počas ktorého port zostane v stave, je určený časovačmi. Len koreňový most môže sám o sebe zmeniť nastavenia. Tri časovače ovplyvňujú zmenu stavu a teda rýchlosť vykonávania algoritmu:

* Časovač Hello-Timer označuje časový rozsah medzi BPDU. V predvolenom nastavení sú dve sekundy.
* Forward Delay je čas strávený v stavoch počúvania (Listening) a učenia (Learning). Za týmto účelom je vždy k dispozícií 15 sekúnd, tj celkovo 30 sekúnd.
* Maximum Age (maximálny vek) určuje, ako dlho si port na prepináči uchováva informácie o konfigurácii. Predvolená hodnota je 20 sekúnd.

Keď je zapnutá funkcia STP, každý port na každom prepínači prechádza stavmi v poradí: blokovanie – počúvanie – učenie – presmerovanie. Pre tento stav prechodu vyžaduje predvolená konfigurácia 50 sekúnd – relatívna dĺžka časového rozpätia v oblasti siete. Konvergencia, teda čas potrebný na prepočítanie stromu Spanning-Tree v prípade zlyhania spojenia, teda nie je nezanedbateľný.

Medzi prvotný bod v činnosti sietí v rámci prepínačov podporujúcich Spanning-Tree technológiu je zvolený Root Bridge (koreňový most), jednoducho koreň rozvetveného stromu, ktorý je nazývaný aj,šéfom" siete. Prvopočiatok procesov v sieti je Bridge-ID: tzv. identifikačné číslo mostu (v skratke BID, pričom každý most ma svoje spomínané BID), ktoré je rozdelené pre určenú skupinu všesmerového smerovania. ID mosta (BID) je dlhé 8 Bytov (2 bity pre prioritu mosta a 6 bitov pre MAC-adresu).  Most s najnižšou prioritou bude koreňovým mostom.

Z koreňového mosta sú teraz definované cesty, pomocou ktorých sú ostatné mosty prístupné v sieti. Ak existujú redundantné cesty, mosty tam musia deaktivovať príslušný port. Cesty, ktoré možno využiť, sú určené cestnými nákladmi, pričom jednotlivé cesty spája most.

Tieto náklady na cestu závisia od vzdialenosti od koreňového mosta a dostupného dátového pripojenia ("uplink") do cieľa. 10 Mbps uplink má vyššie náklady na cestu ako 100 Mbps uplink k rovnakému cieľu, takže 10 Mbps spojenie by bolo blokované ako redundantná cesta. Náklady na cestu sú štandardizované podľa špecifikácií IEEE, ale môžu byť definované manuálne, napríklad pre výber uprednostňovaného uplinku s rovnakou rýchlosťou, čo odráža skutočné náklady na pripojenia WAN. Týmto spôsobom je každá podsieť v "zapnutom" LAN prístupná len cez jeden označený most. V grafickej reprezentácii je strom odvodený od sieťových ciest, ktoré dali algoritmu aj protokolu svoj názov.

Koreňový most rozdeľuje jeden stupeň ležiacich nižšie označených mostov v intervaloch dvoch sekúnd vo vytvorenej hierarchii, aby bolo jasné, že stale existujú, načo prijímajúci určeného mosta môže tiež odpovedať následným premosťovaním primeraných informácií. Preto ak tieto balíky programu Hello zlyhajú, došlo k určitým zmenám v topológii siete a sieť sa musí reorganizovať. Tento prepočet stromu trvá v najhorších prípadoch až 30 sekúnd. Počas tejto doby nemôžu mosty podporujúce Spanning-Tree topológiu preposielať pakety do siete, okrem informácií o rozložení stromu. To je jedna z najväčších nevýhod klasickej architektúry Spanning Tree Protocol, pretože je možné signalizovať s falošnými paketmi zmenu topológie a paralyzovať tak celú sieť až na 30 sekúnd. K náprave tohto potenciálneho nedostatku bezpečnosti, prispeli zmeny od rôznych výrobcov v oblasti Spanning Tree Protocol algoritmov. Jedným z najlepších súčasných vylepšení sa stal protokol Rapid Spanning Tree Protocol (RSTP), ktorý je oficiálnym štandardom IEEE 802.1w.

Referencie
----------

1. ↑   *IEEE Standard Association – IEEE Get Program* [online]. standards.ieee.org, [cit. 2017-10-04]. Dostupné online.