Savienotā koka protokols

**Savienotā koka protokols** () (**STP**) ir tīkla protokols, kas nodrošina bezcilpu topoloģiju jebkuŗā ar tiltiem savienotā Ethernet lokālajā tīklā. STP pamatfunkcija ir pasargāt no tilta cilpām un to izraisītā apraides piesārņojuma. Savienotais koks atļauj arī tāda tīkla izveidi kas, neapdraudot tīklu ar tilta cilpām, varētu iekļaut rezerves (liekās) saites, nodrošinot automatiskus rezerves ceļus (bez nepieciešamības rezerves saites manuāli ieslēgt un izslēgt), ja aktīvās saites darbība ir tikusi traucēta.

Savienotā tīkla protokols ir iekļauts IEEE 802.1D standartā. Kā jau nosaukums liek noprast, tas režģtīklā rada saistītu koku no savienotiem otrā slāņa (layer 2) tiltiem (parasti Ethernet komutatoriem), un izslēdz (atspējo) tās saites, kas nepieder savienotajam kokam, atstājot tikai vienu aktīvu ceļu starp jebkuŗiem diviem tīkla mezgliem.

STP pamatā ir algoritms, kuŗu izgudrojis Radia Perlman, strādādams Digital Equipment Corporation.

## Protokola darbība
Lokālā tīkla (LAN) tiltus var attēlot kā grafu, kuŗa mezgli ir tīkla tilti un LAN segmenti (vai kabeļi) un kuŗa malas ir saskarnes, kas savieno tiltus ar segmentiem. Lai novērstu cilpas lokālajā tīklā, tajā pašā laikā saglabājot piekļuvi visiem lokālā tīkla segmentiem, tilti kolektīvi izskaitļo savienoto koku. Savienotais koks ne vienmēr ir minimālas vērtības savienotais koks. Izmainot dažus no konfigurācijas parametriem, datortīkla administratos nepieciešamības gadījumā var samazināt savienotā koka lielumu, lai izmainītu savienotā koka saknes izvēli. Savienoto koku, kuŗu tilti izskaitļo, izmantojot savienotā koka protokolu, nosaka pēc šādiem likumiem. Tīkla paraugs pa labi, zemāk tiks ilustrēti likumi.
thumb|none|300px|1. Tīkla paraugs. Numurētās kastītes apzīmē tiltus (numurs ir tilta ID). Mākoņi ar burtiem apzīmē tīkla segmentus.
thumb|none|300px|2. Mazākais tīkla ID ir 3, tāpēc tas ir saknes tilts.
thumb|none|300px|3. Pieņemot, ka vērtība jebkurā tīkla segmentā ir 1, visīsākais ceļš no tilta 4 uz saknes tiltu iet cauri tīkla segmentam c, tāpēc par saknes portu tiltam 4 izvēlas to, kas atrodas tīkla segmentā c.
thumb|none|300px|4. Visīsākais ceļš uz sakni no tīkla segmenta e iet cauri tiltam 92, tāpēc tīkla segmenta e mērķa ports ir tas, kas savieno tiltu 92 ar tīkla segmentu e.
thumb|none|300px|5. Šī diagramma attēlo visus portu stāvokļus, ko izskaitļo savienotā koka algoritms. Jebkŗš aktīvs ports, kuŗš nav saknes ports vai mērķa ports tiek boķēts.
thumb|none|300px|6. Pēc saites kļūmes (atteices) savienotā koka algoritms izskaitļo un izplešās pa jaunu visīsākā ceļa vērtības koku.


**Saknes tilta izvēlēšanās.** *Saknes tilts* savienotajā kokā ir tas tilts, kuŗam ir vismazākais tilta ID. Katram tiltam ir unikāls identifikators (ID) un maināms prioritātes numurs; tilta ID satur abus šos numurus. Lai salīdzinātu divus tiltu ID, vispirms salīdzina prioritāti. Ja tiltu prioritāte sakrīt, tad salīdzina pēc MAC adresēm. Piemēram, ja komutatori A (MAC=0200.0000.1111) un B (MAC=0200.0000.2222) abi ir ar prioritāti 10, tad komutators A tiks izvēlēts kā saknes tilts. Ja datortīkla administrators vēlas komutatoru B par saknes tiltu, tad tam jāuzstāda prioritāte, kas ir mazāka par 10.

**Visīsākā ceļa noteikšana līdz saknes tiltam.** Izskaitļotajam savienotajam kokam ir īpašība, ka jebkuŗa pieslēgtā ierīce sūta ziņu uz saknes tiltu, šķērsojot visīsāko ceļu, piemēram, ceļu no ierīces uz sakni, kuŗam ir visīsākā ceļa vērtība, salīdzinot ar pārējiem ceļiem uz sakni no šīs ierīces. Šķērsotā ceļa vērtība ir ceļa segmentu vērtību summa. Dažādām tehnoloģijām ir dažādas noklusētās tīkla segmentu vērtības. Administrators var konfigurēt noteikta tīkla segmenta šķērsošanas vērtību. Īpašību, ka paziņošana notiek, šķērsojot visīsāko ceļu uz sakni, garantē nākamie divi likumi.

*Visīsākais ceļš no katra tilta.* Pēc tam, kad izvēlēts saknes tilts, katrs tilts nosaka katru iespējamo garumu no sevis līdz saknei. No tiem izvēlas to, kuŗam ir visīsakā ceļa vērtība. Ports, kas savienots ar šo ceļu, kļūst par tā tilta *saknes portu* (RP).

*Visīsākais ceļš no katra tīkla segmenta.* Tilti tīkla segmentā kolektīvi nosaka, kuŗam tiltam no tīkla segmenta līdz saknei ir visīsakā ceļa vērtība. Ports, kas savieno tiltu ar šo tīkla segmentu, tad ir segmenta *mērķa ports* (DP).

**Visu citu saknes ceļu izslēgšana.** Jebkuŗš aktīvs ports, kas nav saknes ports vai mērķa ports, ir *bloķēts ports* (BP).

**Modifikācijas saķeršanās (ties) gadījumiem.** Iepriekšējie likumi der vienkāršām situācijām, taču ir iespējams, ka notiek saķeršanās, piemēram, divi vai vairāk porti uz tā paša tilta ir savienoti ar sakni pa visīsākā ceļa vērtību vai arī divi vai vairāk tilti tajā pašā tīkla segmentā ir ar vienādām visīsākā ceļa vērtībām līdz saknei. Lai novērstu šādas saķeršanās: 

*Sakņu portu saķeršanās novērsējs.* Kad vairāki ceļi no tilta ir ar visīsākā ceļa vērtību, izvēlas izmantot blakus tiltu, kuŗam ir mazāks tilta ID. Saknes ports tad ir tas, kas pieslēdzas tiltam ar mazāku tilta ID. Piemēram, 3. ilustrācijā, ja komutators 4 būtu savienots ar tīkla segmentu d, līdz saknei pastāvētu divi ceļi ar gaŗumu 2, viens ceļš ietu caur tiltu 24, bet otrs - caur tiltu 92. Tā kā rastos divi ceļi ar visīsākā ceļa vērtību, tilts ar mazāku ID (24) tiktu izmantots kā saķeršanās novērsējs, lai noteiktu, kuŗu portu izmantot.

*Mērķa portu saķeršanās novērsējs.* Kad vairāk nekā viens tilts tīkla segmentā noved pie ceļa ar visīsākā ceļa vērtību līdz saknei, lai pārsūtītu ziņas uz sakni, izvēlas tiltu ar mazāku tilta ID. Portu, kas tīkla segmentu pieslēdz šim tiltam, sauc par segmenta *mērķa portu*. 4. ilustrācijā ir divi ceļi ar visīsākā ceļa vērtību no tīkla segmenta d līdz saknei, viens iet caur tiltu 24, bet otrs - caur tiltu 92. Mazāks tilta ID ir 24, tāpēc saķeršanās novērsējs nosaka, ka mērķa ports ir tas, caur kuŗu tīkla segments d ir savienots ar tiltu 24. Ja tilta ID būtu vienādi, tiltam ar mazāku MAC adresi būtu mērķa ports. Abos gadījumos neizvēlētie porti tiek bloķēti.

*Beidzamais saķeršanās novērsējs.* Dažos gadījumos var rasties saķeršanās, ja divus tiltus savieno ar vairākiem kabeļiem. Šajā gadījumā vairāki porti kandidē uz saknes portu. Šajā gadījumā tiek izmantots ceļš, kas iet caur kaimiņos esošu tiltu ar mazāku porta prioritāti.

Kopsavilkumā, notikumu secība, kas nosaka labāko saņemšanas BPDU (kas ir labākais ceļš līdz saknei), ir
# mazākais saknes tilta id
# visīsākā ceļa vērtība līdz saknei
# mazākais sūtītāja tilta id
# mazākais sūtītāja porta numurs

### Datu pārraides ātrums un STP ceļa vērtības
Šajā tabulā parādītas saskarnes noklusējuma vērtības atkarībā no dotā datu pārraides ātruma.

## Skatīt arī
* IEEE 802.1w - 2004 Rapid Spanning Tree Protocol (RSTP)
* IEEE 802.1s - 2005 Multiple Spanning Tree Protocol (MSTP)
* IEEE 802.1aq - 2012 Shortest path bridging (SPB)

## Atsauces

## Ārējās saites
* Cisco home page for the Spanning-Tree protocol family (discusses CST, MISTP, PVST, PVST+, RSTP, STP)
* STP article in the Wireshark wiki Includes a sample PCAP-file of captured STP traffic.
* 
* IEEE Standards
** ANSI/IEEE 802.1D-2004 standard, section 17 discusses RSTP (Regular STP is no longer a part of this standard. This is pointed out in section 8.)
** ANSI/IEEE 802.1Q-2005 standard , section 13 discusses MSTP
* RFCs
** RFC 2674-1999, proposed standard, Definitions of Managed Objects for Bridges with Traffic Classes, Multicast Filtering and Virtual LAN Extensions
** RFC 1525-1993, - SBRIDGEMIB, proposed standard, Definitions of Managed Objects for Source Routing Bridges
** RFC 1493-1993 - BRIDGEMIB, draft standard, Definitions of Managed Objects for Bridges
* Spanning Tree Direct vs Indirect Link Failures - CCIE Study