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 ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
20 Rozdział 2. Architektury systemów <strong>peer</strong>-<strong>to</strong>-<strong>peer</strong><br />
2.1 Nieustrukturalizowane systemy <strong>peer</strong>-<strong>to</strong>-<strong>peer</strong><br />
Powstanie tego typu systemów wywodzi się od pierwszych sieci wymiany plików:<br />
Napster oraz Gnutella. Na bazie tych aplikacji powstało wiele unowocześnionych<br />
i zaprojek<strong>to</strong>wanych od początku systemów wymiany plików. Zainteresowanie<br />
świata <strong>na</strong>ukowego oraz komercyjnego tymi systemami pojawiło się ze względu<br />
<strong>na</strong> ich skalowalność, odporność <strong>na</strong> działania intruzów, a może również i rozgłos,<br />
który <strong>to</strong>warzyszył rozprawie przeciwko firmie NullSoft wy<strong>to</strong>czony przez<br />
agencję RIAA. Z czasem zaczęły pojawiać się tzw. szkielety (ang. <strong>peer</strong>-<strong>to</strong>-<strong>peer</strong><br />
frameworks), jako <strong>na</strong>rzędzia do budowy rozproszonych aplikacji przy użyciu<br />
sieci <strong>peer</strong>-<strong>to</strong>-<strong>peer</strong>. Wymienię tutaj dwa wiodące komercyjne projekty: Sun Microsystems<br />
JXTA 2 i Microsoft P2PSDK 3 .<br />
Schemat grafu nieustrukturalizowangeo systemu <strong>peer</strong>-<strong>to</strong>-<strong>peer</strong>, może wyglądać,<br />
tak jak przedstawiono <strong>na</strong> rysunku 2.2. Ilustracja pokazuje rejestrację zawar<strong>to</strong>ści<br />
z przez węzeł k oraz próbę jej lokalizacji przez węzeł a:<br />
1. Węzeł k rejestruje zawar<strong>to</strong>ść z w super węźle i.<br />
2. Węzeł a zadaje pytanie super węzłowi c ozawar<strong>to</strong>śćz z parametrem TTL 4<br />
równym 1.<br />
3. Super węzeł c stwierdza, że nie ma zawar<strong>to</strong>ści z i przesyła zapytanie do<br />
f i g z TTL równym 2.<br />
4. Węzły f i g również nie z<strong>na</strong>ją położenia z więc podbijają TTL i przesyłają<br />
zapytanie do i.<br />
5. Węzeł i odpowiada bezpośrednio do a lub przez super węzły, oz<strong>na</strong>jmujący,<br />
że zawar<strong>to</strong>ść z z<strong>na</strong>jduje się u k.<br />
Super węzły w celu zlokalizowania zawar<strong>to</strong>ści z rozsyłają między sobą zapytanie<br />
s<strong>to</strong>sując np. pro<strong>to</strong>kół plotkarski (ang. gossiping pro<strong>to</strong>col) [CRB01].<br />
Równie dobrze moż<strong>na</strong>by posłużyć się pro<strong>to</strong>kołem plotkarskim bezpośrednio, bez<br />
użycia super węzłów. Niestety takie postępowanie ograniczyłoby skalowalność<br />
sytemu. Na podobny problem <strong>na</strong>tknęli się twórcy Gnutelli, która przestała funkcjonować<br />
ze względu <strong>na</strong> problemy wydajnościowe.<br />
2 JXTA (http://www.jxta.org)<br />
3 P2PSDK (http://msdn.microsoft.com/library/en-us/p2psdk/p2p/<br />
portal.asp)<br />
4 Time To Leave - parametr oz<strong>na</strong>cza odległość od źródła w skokach. Przy pewnej war<strong>to</strong>ści<br />
progowej, zapytanie nie jest już dalej rozsyłane. Parametr TTL w podobnej postaci jest używany<br />
w s<strong>to</strong>sie pro<strong>to</strong>kołów TCP/IP.