10.03.2015 Views

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 ...

SHOW MORE
SHOW LESS

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ą

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!