1
Fork 0
mirror of https://github.com/Steffo99/appunti-magistrali.git synced 2024-11-25 11:34:18 +00:00
appunti-steffo/9 - Algoritmi distribuiti/3 - Computazione distribuita/6 - Algoritmi di routing/gossiping routing.md

1.9 KiB

algoritmo di routing.

comportamento

[!Summary] I router recuperano informazioni sul loro vicinato.

Si costruisce uno spanning tree non ottimizzato e lo si usa per permettere ai router di scambiarsi le informazioni raccolte.

Ricevute le informazioni, ogni entità computa uno spanning tree ottimizzato, e ci deriva la routing table.

algoritmo corretto

[!Success] Eventualmente, il broadcast problem su grafo aciclico termina, dando a tutti i router le informazioni necessarie per calcolare la loro routing table.

costo computazionale distribuito

Costo notazione O-grande
comunicazione del routing O(Entities \cdot Channels)
9 - Algoritmi distribuiti/1 - Problemi algoritmici/tempo ...

comunicazione del routing

Note

È un costo diverso dal solito di comunicazione!

Recuperare informazioni sul vicini di un'entità richiede un'andata-e-ritorno attraverso ogni canale di comunicazione: \color{LightCoral} 2 \cdot Channels

Creare lo spanning tree iniziale con shout+ protocol richiede: \color{SpringGreen} 2 \cdot Channels

Infine, inviare il broadcast problem su grafo aciclico richiede: \sum_{Entity}^{Entities} (Entities - 1) \cdot \mathrm{neighbours}(Entity) Ovvero: \color{SkyBlue} (Entities - 1) \cdot (2 \cdot Channels)

Per un totale di: {\color{LightCoral} 2 \cdot Channels} + {\color{SpringGreen} 2 \cdot Channels} + {\color{SkyBlue} (Entities - 1) \cdot (2 \cdot Channels)}

Ovvero: (Entities + 3) \cdot (2 \cdot Channels) In notazione asintotica: \Large O(Entities \cdot Channels)

routing memory

Note

Ogni entità si deve salvare le informazioni per tutta la rete di comunicazione!