OdpornoÅÄ na bÅÄdy bizantyjskie w systemach peer-to-peer - Instytut ...
OdpornoÅÄ na bÅÄdy bizantyjskie w systemach peer-to-peer - Instytut ...
OdpornoÅÄ na bÅÄdy bizantyjskie w systemach peer-to-peer - Instytut ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
2.2 Ustrukturalizowane systemy <strong>peer</strong>-<strong>to</strong>-<strong>peer</strong> 25<br />
drówki komunikatu <strong>na</strong>stępuje, gdy nie ma takiego węzła, do którego dałoby się<br />
dalej przesłać komunikat lub odbiorca jest adresatem.<br />
Przestrzenie identyfika<strong>to</strong>rów ustalane są dzięki przedrostkom, w tym przypadku<br />
moż<strong>na</strong> mówić raczej o podziale <strong>na</strong> strefy. Wędrujący komunikat <strong>na</strong>jpierw<br />
trafia do strefy, gdzie identyfika<strong>to</strong>ry zaczy<strong>na</strong>ją się od takiego samego słowa, jak<br />
identyfika<strong>to</strong>r docelowy, lub bliżej itd. Ogólnie odpowiada <strong>to</strong> sytuacji przedstawionej<br />
<strong>na</strong> rysunku 2.4.<br />
Pozostaje podać warunek <strong>na</strong> <strong>to</strong> by, wierzchołek był osiągalny z każdego<br />
innego dowolnego wierzchołka w sieci s<strong>to</strong>sując trasowanie przedrostkowe. Trasowanie<br />
przedrostkowe nie wymaga, by graf sieć był określonego typu (patrz<br />
Dodatek A), ale sposób połączenia wierzchołków musi spełniać warunek istnienia<br />
cykli w obrębie stref. Warunek istnienia cykli oz<strong>na</strong>cza <strong>to</strong>, iż musi istnieć<br />
cykl przechodzący przez kolejne strefy jednego poziomu. Identyfika<strong>to</strong>ry węzłów,<br />
które posiadają połączenia <strong>na</strong>leżące do różnych stref muszą być graniczne,<br />
tzn. węzeł o <strong>na</strong>jwiększym identyfika<strong>to</strong>rze w strefie posiada wskazanie do węzła<br />
o <strong>na</strong>jmniejszym identyfika<strong>to</strong>rze w strefie sąsiedniej i <strong>na</strong> odwrót. Oczywiście<br />
istnienie połączeń możliwe jest tylko wtedy, gdy istnieją węzły przy<strong>na</strong>leżące do<br />
danej strefy. Dla przykładu rozważmy <strong>na</strong>jwyższe strefy z rysunku 2.4. Warunek<br />
osiągalności będzie spełniony, gdy dla każdej pary stref o numerach <strong>na</strong>stępujących<br />
po sobie, połączenia węzłów między tymi strefami utworzą cykl, czyli:<br />
{0 → 1 → 0}, {1 → 2 → 1}, {2 → 3 → 2}, {00 → 01 → 00}, {01 → 02 →<br />
01}, {02 → 03 → 02}, {10 → 11 → 10}, {11 → 12 → 11}, {12 → 13 → 12} ...<br />
Dodatkowo wszystkie cykle muszą spełniać warunek, że kolejne wierzchołki w<br />
cyklu połączone są mono<strong>to</strong>nicznie (względem rosnących war<strong>to</strong>ści adresów) i<br />
krawędź prowadząca do innej strefy wychodzi z wierzchołka o <strong>na</strong>jmniejszym<br />
numerze i <strong>na</strong>jwiększym numerze w strefie.<br />
Gdy komunikat jest wysyłany do węzła w obrębie tej samej strefy <strong>na</strong>drzędnej,<br />
<strong>to</strong> nie ma większego problemu z jego dostarczeniem. Jedyny warunek jaki<br />
<strong>na</strong>leży spełnić, <strong>to</strong> taki, by węzły posiadały połączenie między sobą w obrębie<br />
strefy uwzględniając uporządkowanie identyfika<strong>to</strong>rów.<br />
2.2.3 Rozproszone tablice z kodowaniem mieszającym<br />
Postanowiłem poświęcić temu zagadnieniu cały podpunkt, gdyż jest <strong>to</strong> podstawowa<br />
usługa, jaką dostarczają sieci <strong>peer</strong>-<strong>to</strong>-<strong>peer</strong>. Na jej podstawie możne<br />
stworzyć wiele funkcjo<strong>na</strong>lności implemen<strong>to</strong>wanych przez rozproszone aplikacje<br />
sieciowe. Na czym polegają DHT i jak są realizowane w ustrutkuralizowanych<br />
<strong>systemach</strong> <strong>peer</strong>-<strong>to</strong>-<strong>peer</strong>?<br />
W ustrukturalizowanych <strong>systemach</strong> <strong>peer</strong>-<strong>to</strong>-<strong>peer</strong> używa się specjalnej funkcji,<br />
którą <strong>na</strong>zywa się funkcją mapującą f k : N → N, odpowiada o<strong>na</strong> za wyz<strong>na</strong>czenie<br />
adresu węzła odpowiedzialnego za dany obiekt tzw. replica root. Kolejną