eng it

Questa Pagina
Questa Sezione
Questo Sito

Algoritmo

L'algoritmo implementato si ispira a quello descritto in draft-bryan-sipping-p2p-02, che a sua volta si basa sul protocollo Chord con SIP come protocollo di trasporto dei messaggi. Visto che la versione corrente dell'Internet Draft non e' pensata per un utilizzo reale (spiegarne i motivi sarebbe troppo lungo; chi e' veramente interessato puo' chiedere alla comunita' P2P SIP community), questo algoritmo prova a risolvere alcuni problemi aperti in modo nuovo.

Finger Table

I nodi SIPDHT mantengono una finger table che e' abbastanza diversa da quella dei nodi Chord. Le principali differenze sono:

Ricerca

Dato che la tabella di finger di SIPDHT e' diversa da quella di Chord anche l'algoritmo di ricerca e' stato rivisto. Il concetto e' comunque lo stesso:

search(KEY)
  if KEY in [IDpred, ID) then local_search(KEY)
  for i in [0, N - 1)
    if KEY in [ID, ID + 2i) then forward_request(fingeri)
  forward_request(fingerN - 1)

Mantenimento

Il vantaggio maggiore rispetto a Chord che e' derivato da questi cambiamenti e' la riduzione dei messaggi scambiati per mantere aggiornata la finger table. Infatti, mentre i nodi Chord devono effettuare una query per ogni entry della tabella a ogni stabilizzazione, i nodi SIPDHT possono popolarla usando solo le informazioni ricevute dal loro successore.

Le informazioni significative per riempire la finger table sono le URL dei nodi attivi, inserite nella entry che meglio gli si addice (se esiste). Percio' partendo dal fatto che la precisione della finger table dipende dal numero di nodi conosciuti, ogni nodo puo' decidere il bilanciamento dello scambio di messaggi e cercare in modo piu' efficente. Ovviamente la scelta fatta da un singolo nodo impatta sull'intera DHT.

Prestazioni

Le prestazioni di SIPDHT possono essere misurate in termini di numero di messaggi scambiati e nel migliore dei casi (i.e. quando per ogni stabilizzazione sono scambiati logN messaggi), ogni operazione comporta la spedizione di un messaggio in piu' rispetto a Chord. Questo sembra dovuto al fatto che ogni ricerca per essere completata deve raggiungere il predecessore del nodo autoritativo.

NOTA: queste considerazioni sono empiriche.

vi powered SourceForge.net Logo Valid XHTML 1.0 Strict

Copyright © 2006 Telecom Italia