Kapcsolatok

Mi az a P2P? Peer-to-Peer technológiák – Hamupipőkétől a hercegnőkig Peer a technológia

És miközben itt ülünk és azon töprengünk, hogy hol helyezzük el a hirdetésünket, valami furcsa történik Palo Altóban. Ott a Hassett Ace Hardware, egy kis hardverbolt alkalmazottai bemutatják, hogyan tud életre kelni az az ősi bölcsesség, miszerint „az embereket nem felhalmozásra, hanem megosztásra teremtették”.

"Repair Cafe"-nak hívják. Minden hétvégén megnyílik egy telephely az üzlet mellett, ahol bárki ingyen javíthat bármit. De ugyanakkor hozzá kell járulnia ahhoz, ami ezen az oldalon történik. Míg az üzletvezető a rendszeres árusítással van elfoglalva, öt másik alkalmazott „javítani” akaró tömegeket szervez, más javításokra vonzza őket.

Mindenki megosztja tudását, tanácsait és jó hangulatát. Az eladások emelkednek (a javításhoz gyakran olyan alkatrészekre van szükség, amelyeket boltban kell vásárolni). Áprilisban mintegy 130 berendezést javítottak meg a megyében, köztük egy óriási kerti lávakutat és egy 200 éves varrógépet. Mindenki, akit a Hassett Ace Hardware telephelyén javítanak, a cég logójával ellátott kerékpárzászlót kap. És örömmel veszik, mert a remek kiszolgálás baromi kellemes és felejthetetlen dolog.

Ez a kölcsönös előnyök gazdasága a „peer-to-peer” vagy „peer to peer” nevet kapta a marketing oldaláról. Nemcsak a pénzre épül, hanem a nagyfokú érzelmi elégedettségre is, és az olyan kis üzletek esetében, mint a Hassett Ace Hardware, a vásárlókkal való szinte bensőséges kapcsolat kialakítására is. A pletykák szerint olyan óriáscégek, mint a Pepsi, a Chevrolet és az Unilever már „szimatolják” ezt a technológiát.

„Érdekes dolgot tanultunk: a fiatal vásárlók, mielőtt a márkakereskedésbe jönnének autót vásárolni, megkeresik eladóink oldalait a közösségi oldalakon, hogy tanulmányozzák érdeklődési körüket, és találjanak egy lélekben közel álló személyt. Megkeresik, és konzultálnak vele, mert tudják, hogy a segítség inkább barátságos, mint menedzseri” – mondja Christy Landy, a General Motors marketingmenedzsere. Még a szakértői vélemény is lehet a kölcsönösen előnyös csere tárgya.

Egy gyors pillantás a szakirodalomra a Peer-to-Peer koncepció számos különböző értelmezését tárja fel, amelyek főként a benne foglalt jellemzők körében térnek el egymástól.

A „tiszta” peer-to-peer hálózat legszigorúbb meghatározásai teljesen elosztott rendszerként kezelik, amelyben minden csomópont abszolút egyenlő a funkcionalitás és az elvégzett feladatok tekintetében. A „szupercsomópontok” (dinamikusan hozzárendelt helyi miniszerverként működő csomópontok) elvén alapuló rendszerek, mint például a Kazaa, nem felelnek meg ennek a definíciónak (bár ez nem akadályozza meg, hogy széles körben elfogadják P2P hálózatként, ill. olyan rendszer, amely valamilyen központosított szerver-infrastruktúrát használ a segédfeladatok részhalmazainak elvégzésére: önhangolás, hírnév-besorolás kezelése stb.).

Tágabb értelemben a P2P olyan alkalmazások osztálya, amelyek az internetes felhő szélén elérhető erőforrásokat – merevlemezeket, processzorciklusokat, tartalmat – használnak. Ugyanakkor alkalmas olyan rendszerekre is, amelyek központi szervereket használnak működésükhöz (például SETI@home, azonnali üzenetküldő rendszerek, vagy akár a hírhedt Napster hálózat), valamint a grid számítástechnika területén különféle alkalmazásokhoz.

Ennek eredményeképpen, hogy őszinte legyek, nincs egységes nézőpont arról, hogy mi számít P2P hálózatnak és mi nem. A sokféle definíció valószínűleg abból adódik, hogy a rendszereket vagy alkalmazásokat nem belső működésük vagy architektúrájuk miatt nevezik P2P-nek, hanem külső megjelenésük miatt, vagyis hogy közvetlen számítógép-számítógép kommunikáció benyomását keltik-e.

Ugyanakkor sokan egyetértenek abban, hogy a P2P architektúra fő jellemzői a következők:

  • számítógépes erőforrások megosztása közvetlen csere útján, közvetítők segítsége nélkül. Néha a központosított szerverek bizonyos feladatok végrehajtására használhatók (önkonfiguráció, új csomópontok hozzáadása, globális kulcsok beszerzése az adatok titkosításához). Mivel a peer-to-peer hálózat csomópontjai nem támaszkodhatnak központi szerverre a tartalommegosztás és a műveletek koordinálásához a teljes hálózaton, ezért önállóan és egyoldalúan kell aktív szerepet vállalniuk olyan feladatok végrehajtásában, mint például más csomópontok keresése, lokalizálása, ill. tartalom gyorsítótárazása, információk és üzenetek továbbítása, kapcsolat a szomszédos csomópontokkal és annak lezárása, a tartalom titkosítása és ellenőrzése stb.
  • az a képesség, hogy a kapcsolatok instabilitását és instabilitását normaként fogadják el, automatikusan alkalmazkodva azok megszakadásaihoz és számítógépes hibáihoz, valamint változó számú csomóponthoz.

Ezen követelmények alapján számos szakértő a következő meghatározást javasolja (stílusa némileg a szabadalomra emlékeztet, de ha megpróbálja leegyszerűsíteni, csak rosszabb lesz): A P2P hálózat olyan elosztott rendszer, amely összekapcsolt csomópontokat tartalmaz, amelyek képesek önszerveződni egy hálózati topológiába, hogy megosszák az erőforrásokat, például a tartalmat, a processzorciklusokat, a tárolóeszközöket és a sávszélességet, alkalmazkodva a hibákhoz és a változó számú csomóponthoz, miközben fenntartják az elfogadható szintű kapcsolat és teljesítmény közvetítők vagy globális központi szerver támogatása nélkül.

Itt az ideje, hogy beszéljünk a grid és a P2P rendszerek számítástechnikai jellemzőiről. Mindkettő két megközelítést képvisel az elosztott számítástechnika megosztott erőforrások használatával egy nagyszabású számítástechnikai közösségben.

A számítási gridek olyan elosztott rendszerek, amelyek a földrajzilag elosztott erőforrások nagy léptékű, összehangolt használatát és megosztását biztosítják, állandó, szabványos szolgáltatási infrastruktúrákon alapulnak, és elsősorban nagy teljesítményű számítástechnikára tervezték. Ahogy ezek a rendszerek terjeszkednek, úgy kezdenek megoldást igényelni az önkonfiguráció és a hibatűrés problémáira. A P2P rendszerek viszont kezdetben az instabilitásra, a hálózat változó számú csomópontjára, a hibatűrésre és az önadaptációra összpontosítanak. A mai napig a P2P fejlesztők többnyire vertikálisan integrált alkalmazásokat hoztak létre, és nem foglalkoztak közös protokollok és szabványosított keretrendszerek meghatározásával az interoperabilitás érdekében.

A P2P technológia kifejlődésével és az olyan bonyolultabb alkalmazások használatával, mint a strukturált tartalomelosztás, a PC-s együttműködés és a grid számítástechnika, a P2P és a grid számítástechnika konvergenciája várható.

A P2P alkalmazások osztályozása

A P2P architektúrákat számos különböző kategóriájú alkalmazáshoz használták. Íme néhány rövid leírása.

Kommunikáció és együttműködés. Ebbe a kategóriába tartoznak azok a rendszerek, amelyek infrastruktúrát biztosítanak a közvetlen, általában valós idejű kommunikációhoz és együttműködéshez a peer számítógépek között. Ilyen például a csevegés és az azonnali üzenetküldés.

Elosztott számítástechnika. Ezeknek a rendszereknek az a célja, hogy egyesítsék a társak számítási teljesítményét a számításigényes problémák megoldása érdekében. Ehhez a feladatot több kis részfeladatra osztják, amelyek különböző csomópontok között vannak elosztva. Munkájuk eredményét ezután visszaküldik a gazdához. Ilyen rendszerek például a SETI@home, genome@home és számos más projekt.

Adatbázis rendszerek. Jelentős erőfeszítések történtek a P2P infrastruktúrán alapuló elosztott adatbázisok fejlesztésére. Konkrétan egy lokális relációs modellt javasoltak, amely feltételezi, hogy a P2P hálózatban tárolt összes adat halmaza inkompatibilis helyi relációs adatbázisokból áll (azaz olyanokból, amelyek nem tesznek eleget a meghatározott integritási megszorításoknak), amelyek „közvetítők” segítségével vannak összekapcsolva. meghatározza a fordítási szabályokat és a köztük lévő szemantikai függőséget.

Tartalomterjesztés. A legtöbb modern P2P hálózat ebbe a kategóriába tartozik, és olyan rendszereket és infrastruktúrákat foglal magában, amelyek célja a digitális audiovizuális információk és egyéb adatok felhasználók közötti megosztása. Ezek a tartalomelosztó rendszerek a viszonylag egyszerű közvetlen fájlmegosztási alkalmazásoktól a bonyolultabbakig terjednek, amelyek elosztott tárolási környezeteket hoznak létre, amelyek biztonságos és hatékony rendszerezést, indexelést, keresést, frissítést és adatok visszakeresését biztosítják. Ilyen például a késői Napster hálózat, a Gnutella, a Kazaa, a Freenet és a Groove. A következőkben a hálózatok ezen osztályára fogunk összpontosítani.

Tartalomterjesztés P2P hálózatokban

A legjellemzőbb esetben az ilyen rendszerek elosztott tárolási környezetet biztosítanak, amelyben a hálózat felhasználói a fájlokat közzétehetik, kereshetik és visszakereshetik. A komplexitás növekedésével olyan nem funkcionális funkciókat is bevezethet, mint a biztonság, az anonimitás, a méltányosság, a méretezhetőség, az erőforrás-kezelés és a szervezeti képességek. A modern P2P technológiák az alábbiak szerint osztályozhatók.

P2P alkalmazások. Ebbe a kategóriába tartoznak a P2P technológián alapuló tartalomelosztó rendszerek. Céljuktól és összetettségüktől függően célszerű két alcsoportra osztani őket:

  • fájlmegosztó rendszerek, a számítógépek közötti egyszerű egyszeri cserére szolgál. Az ilyen rendszerek egyenrangú hálózatot hoznak létre, és lehetőséget biztosítanak a köztük lévő fájlok keresésére és átvitelére. Ezek általában könnyű súlyú, legjobb teljesítményt nyújtó QoS-alkalmazások, amelyek nem törődnek a biztonsággal, elérhetőséggel vagy túlélési képességgel;
  • tartalom közzétételére és tárolására szolgáló rendszerek. Az ilyen rendszerek elosztott tárolókörnyezetet biztosítanak, amelyben a felhasználók a biztonság és a megbízhatóság megőrzése mellett tehetnek közzé, tárolhatnak és terjeszthetnek tartalmat. Az ilyen tartalomhoz való hozzáférést szabályozzák, és a csomópontoknak megfelelő jogosultságokkal kell rendelkezniük a fogadáshoz. Az ilyen rendszerek fő célja az adatbiztonság és a hálózat túlélhetőségének biztosítása, gyakran az azonosítás, anonimitás és tartalomkezelés (frissítés, törlés, verziókezelés) eszközeinek megteremtése.
  • cím meghatározása és útválasztás. Bármely P2P tartalomelosztó rendszer egy peer-to-peer hálózatra támaszkodik, amelyen belül a csomópontokat és a tartalmat hatékonyan kell lokalizálni, a kéréseket és válaszokat továbbítani kell, miközben a hibatűrést is biztosítani kell. Különféle keretrendszereket és algoritmusokat fejlesztettek ki e követelmények teljesítésére;
  • anonimitás biztosítása. A P2P-alapú infrastrukturális rendszereket úgy kell megtervezni, hogy biztosítsák a felhasználók anonimitását;
  • hírnévkezelés. A P2P hálózatok nem rendelkeznek központi jogosultsággal a felhasználók hírnevére és viselkedésére vonatkozó információk kezelésére. Ezért sok különböző csomóponton található. Annak érdekében, hogy biztonságos, naprakész és a hálózaton keresztül elérhető legyen, kifinomult hírnév-kezelési infrastruktúrának kell lennie.

Elosztott objektumok lokalizálása és útválasztása P2P hálózatokban

Bármely P2P tartalomelosztó rendszer működése a csomópontokon és a köztük lévő kapcsolatokon alapul. Ez a hálózat az alap (általában IP) tetején és attól függetlenül jön létre, ezért gyakran overlay-nek nevezik. Az overlay hálózat topológiája, szerkezete, központosítási foka, az üzenetek és tartalom szállítására használt lokalizációs és útválasztási mechanizmusok kritikusak a rendszer működése szempontjából, mivel ezek befolyásolják a hibatűrést, a teljesítményt, a méretezhetőséget és a biztonságot. Az átfedő hálózatok centralizáltsági fokát és szerkezetét tekintve eltérőek.

Központosítás. Bár a legszigorúbb definíció azt feltételezi, hogy az overlay hálózatok teljesen decentralizáltak, a gyakorlatban ezt nem mindig tartják be, és különböző fokú centralizált rendszereket találnak. Különösen három kategória van:

  • teljesen decentralizált architektúrák. A hálózat összes csomópontja ugyanazokat a feladatokat látja el, szerverként és kliensként működnek, és nincs központ, amely koordinálná a tevékenységeiket;
  • részben központosított architektúrák. Az alap itt ugyanaz, mint az előző esetben, de egyes csomópontok fontosabb szerepet játszanak, mivel helyi központi indexként működnek a helyi csomópontok által megosztott fájlok számára. Az ilyen szupercsomópontok hálózaton belüli szerepének kiosztása rendszerenként eltérő. Fontos azonban megjegyezni, hogy ezek a szupercsomópontok nem jelentenek egyetlen hibapontot a P2P hálózat számára, hiszen dinamikusan vannak hozzárendelve, és meghibásodás esetén a hálózat automatikusan átadja funkcióikat más csomópontoknak;
  • hibrid decentralizált architektúrák. Az ilyen rendszerek központi szerverrel rendelkeznek, amely megkönnyíti a csomópontok közötti kommunikációt egy metaadat-könyvtár kezelésével, amely leírja a rajtuk tárolt megosztott fájlokat. Bár a végpontok közötti kommunikáció és adatcsere közvetlenül megtörténhet két csomópont között, a központi szerverek megkönnyítik ezt a folyamatot a fájlokat tároló csomópontok megtekintésével és azonosításával.

Nyilvánvaló, hogy ezekben az architektúrákban egyetlen hibapont van - a központi szerver.

Hálózati struktúra jellemzi, hogy az átfedő hálózat nem determinisztikusan (ad hoc), csomópontok és tartalom hozzáadásával, vagy speciális szabályok alapján jön létre. Szerkezetüket tekintve a P2P hálózatok két kategóriába sorolhatók:

  • strukturálatlan. A tartalom (fájlok) bennük való elhelyezésének semmi köze az overlay hálózat topológiájához, tipikus esetben lokalizálni kell. A keresési mechanizmusok a brute force módszerektől, például a lekérdezések szélességi vagy mélységi elárasztásától a kívánt tartalom megtalálásáig terjednek, egészen a kifinomultabb stratégiákig, amelyek a véletlenszerű séta módszerét és az útvonalak indexelését foglalják magukban. A strukturálatlan hálózatokban használt keresési mechanizmusok nyilvánvalóan befolyásolják a rendelkezésre állást, a méretezhetőséget és a megbízhatóságot.

A strukturálatlan rendszerek alkalmasabbak változó számú csomóponttal rendelkező hálózatokhoz. Ilyen például a Napster, a Gnutella, a Kazaa, az Edutella és még sokan mások;

  • strukturált. Az ilyen hálózatok megjelenése elsősorban a strukturálatlan rendszerek kezdetben felmerülő skálázhatósági problémáinak megoldására tett kísérletekkel függött össze. A strukturált hálózatokban az overlay topológia szigorúan ellenőrzött, és a fájlok (vagy a rájuk mutatók) szigorúan meghatározott helyekre kerülnek. Ezek a rendszerek lényegében leképezést biztosítanak a tartalom (mondjuk egy fájlazonosító) és annak helye (mondjuk egy csomópont címe) között egy elosztott útválasztási tábla formájában, így a kérések hatékonyan továbbíthatók a keresett tartalommal rendelkező csomóponthoz.

A strukturált rendszerek (beleértve a Chord, CAN (Content Addressable Network), Tapestry és számos más) skálázható megoldást nyújtanak a pontos egyezésű keresésekhez, vagyis olyan lekérdezésekhez, amelyekben a kívánt adatok pontos azonosítója ismert. Hátrányuk az üzenetek hatékony továbbításához szükséges struktúrakezelés bonyolultsága változó számú csomóponttal rendelkező környezetben.

Azokat a hálózatokat, amelyek a strukturált és a strukturálatlan között köztes pozíciót foglalnak el, gyengén strukturáltnak nevezzük. Bár nem teljesen jelzik a tartalom lokalizációját, mégis hozzájárulnak az útvonalkereséshez (ilyen hálózat tipikus példája a Freenet).

Most részletesebben tárgyaljuk az overlay hálózatokat szerkezetük és központosításuk mértéke szempontjából.

Strukturálatlan építészet

Kezdjük azzal teljesen decentralizált architektúrák(lásd fent a definíciót). Az ilyen hálózatok legérdekesebb képviselője a Gnutella. A legtöbb P2P rendszerhez hasonlóan ez is virtuális átfedő hálózatot épít fel saját útválasztási mechanizmussal, lehetővé téve a felhasználók számára a fájlok megosztását. A hálózatban hiányzik a műveletek központi koordinációja, és a csomópontok közvetlenül csatlakoznak egymáshoz olyan szoftverek segítségével, amelyek kliensként és szerverként is funkcionálnak (felhasználóit kiszolgálóknak hívják - SERVers + CLIENTS szóból).

A Gnutella az IP-t használja alaphálózati protokolljaként, míg a csomópontok közötti kommunikációt egy alkalmazási rétegbeli protokoll határozza meg, amely négy üzenettípust támogat:

  • Ping- kérés egy adott fogadóhoz, hogy bejelentse magát;
  • Pong- válasz egy Ping üzenetre, amely tartalmazza a kért gazdagép IP-címét, portját, valamint a megosztott fájlok számát és méretét;
  • Lekérdezés- keresési lekérdezés. Tartalmaz egy keresési karakterláncot és minimális sebességkövetelményeket a válaszoló gazdagép számára;
  • Lekérdezési találatok- válasz egy kérésre Lekérdezés, tartalmazza a válaszoló gazdagép IP-címét, portját és átviteli sebességét, a talált fájlok számát és azok indexeit.

Miután csatlakozott a Gnutella hálózathoz (az adatbázisokban, például a gnutellahosts.com-ban található gazdagépekkel kommunikálva), a gazdagép egy Ping üzenetet küld néhány hozzá társított gazdagépnek. Üzenettel válaszolnak Pong, azonosítják magukat, és üzenetet küldenek Ping a szomszédaidhoz.

Egy olyan strukturálatlan rendszerben, mint a Gnutella, a fájl lokalizálásának egyetlen módja a nem determinisztikus keresés volt, mivel a csomópontok nem tudták kitalálni, hol van.

A Gnutella architektúra eredetileg elárasztási (vagy broadcast) mechanizmust használt a kérések elosztására PingÉs Lekérdezés: Minden csomópont továbbította a fogadott üzeneteket az összes szomszédjának, és a válaszok fordított útvonalat követtek. A hálózaton az üzenetek áramlásának korlátozása érdekében mindegyik tartalmazott egy TTL (Time-to-Live) mezőt a fejlécben. A tranzit csomópontoknál ennek a mezőnek az értéke csökkent, és amikor elérte a 0 értéket, az üzenet törölve lett.

A leírt mechanizmust úgy valósították meg, hogy egyedi azonosítókat rendeltek az üzenetekhez, és dinamikus útválasztási táblákat tartalmaztak üzenetazonosítókkal és csomópontcímekkel a gazdagépekben. Ha a válaszok ugyanazt az azonosítót tartalmazzák, mint a kimenő üzenetek, a gazdagép lekérdezi az útválasztási táblát, hogy meghatározza, melyik csatornán továbbítsa a választ a hurok megszakításához.

Rizs. 1. Példa keresési mechanizmusra egy strukturálatlan rendszerben

Ha egy csomópont üzenetet kap Lekérdezés találat, amely azt jelzi, hogy a keresett fájl egy adott számítógépen található, a letöltést a két csomópont közötti közvetlen kapcsolaton keresztül kezdeményezi. A keresési mechanizmus az ábrán látható. 1.

Részben centralizált rendszerek sok tekintetben hasonlóak a teljesen decentralizáltakhoz, de a szupercsomópontok fogalmát használják – olyan számítógépek, amelyek dinamikusan hozzá vannak rendelve az overlay hálózat egy kis részének kiszolgálásához a benne lévő fájlok indexelésével és gyorsítótárazásával. A rendszer automatikusan kiválasztja őket feldolgozási teljesítményük és sávszélességük alapján.

A szupercsomópontok a hozzájuk kapcsolódó csomópontok által megosztott fájlokat indexelik, és proxyszerverként keresést hajtanak végre a nevükben. Ezért kezdetben minden kérés szupercsomópontokhoz lesz irányítva.

A részlegesen központosított rendszereknek két előnye van:

  • csökkentett keresési idő a korábbi rendszerekhez képest egyetlen hibapont hiányában;
  • a P2P hálózatok eredendő heterogenitásának hatékony kihasználása. A teljesen decentralizált rendszerekben minden csomópont egyformán van terhelve, függetlenül a feldolgozási teljesítménytől, a csatorna sávszélességétől vagy a tárolási képességeiktől. A részlegesen központosított rendszerekben a szupercsomópontok veszik át a hálózati terhelés nagy részét.

Részben központosított rendszer a Kazaa hálózat.

Rizs. A 2. ábra egy tipikus P2P architektúrára mutat példát hibrid decentralizáció. Minden ügyfélszámítógép tárol fájlokat, amelyek meg vannak osztva az átfedő hálózat többi részével. Minden kliens egy központi szerverhez csatlakozik, amely kezeli a regisztrált felhasználók adatait tartalmazó táblázatokat (IP-cím, sávszélesség stb.), valamint az egyes felhasználók tulajdonában lévő és a hálózaton megosztott fájlok listáját, valamint a fájlok metaadatait (például név, idő). teremtés stb.).

A közösséghez csatlakozni kívánó számítógép csatlakozik a központi szerverhez, és közli vele a benne található fájlokat. Az ügyfélcsomópontok kéréseket küldenek róluk a szervernek. Megkeresi az indextáblázatot, és visszaadja azon felhasználók listáját, akik rendelkeznek velük.

A hibrid decentralizált rendszerek előnye, hogy egyszerűen megvalósíthatók, a fájlletöltés pedig gyors és hatékony. A fő hátrányok közé tartozik az ellenőrzéssel szembeni sebezhetőség, cenzúra és jogi lépések, támadások és technikai hibák, mivel a megosztott tartalmat vagy legalább annak leírását egyetlen szervezet, vállalat vagy felhasználó felügyeli. Ráadásul egy ilyen rendszer nem skálázható jól, mivel képességeit korlátozza a szerver adatbázis mérete és a lekérdezésekre való válaszadási képessége. Ebben az esetben példa a Napster.

Strukturált építészet

Számos strukturált tartalomelosztó rendszer különböző mechanizmusokat használ az üzenetek továbbítására és az adatok helyének meghatározására. Az ukrán felhasználók számára legismertebbre összpontosítunk - a Freenetre.

Ez az overlay hálózat a gyengén strukturált hálózatok közé tartozik. Emlékezzünk vissza, hogy fő jellemzőjük a csomópontok azon képessége, hogy meghatározzák (nem központilag!), hogy ez vagy az a tartalom a legvalószínűbb helyen tárolódik az útválasztási táblák alapján, amelyek jelzik a tartalom (fájlazonosító) és annak lokalizációja közötti megfelelést ( csomópont címe). Ez lehetővé teszi számukra, hogy elkerüljék a vakon sugárzott kéréseket. Ehelyett egy láncolási módszert használnak, amelyben minden csomópont helyi döntést hoz arról, hogy hova továbbítsa tovább az üzenetet.

A Freenet a teljesen decentralizált, félig strukturált tartalomterjesztési rendszer tipikus példája. Önszerveződő peer-to-peer hálózatként működik, amely a számítógépeken lévő fel nem használt lemezterületet egyesíti egy megosztott virtuális fájlrendszer létrehozásához.

A Freenet fájlok azonosítása egyedi bináris kulcsok segítségével történik. Háromféle kulcs támogatott, amelyek közül a legegyszerűbb egy hash függvény alkalmazása egy rövid leíró szöveges karakterláncra, amely a tulajdonosa által online tárolt fájlokat kíséri.

Minden Freenet csomópont kezeli a saját helyi adattárát, így mások számára olvasható és írható, valamint egy dinamikus útválasztási táblázat, amely tartalmazza a többi csomópont címét és az általuk tárolt fájlokat. A fájl megtalálásához a felhasználó egy kérést küld, amely tartalmazza a kulcsot és egy közvetett élettartam-értéket, a megengedett maximális ugrások számában kifejezve.

A Freenet a következő üzenettípusokat használja, amelyek mindegyike tartalmaz egy csomópont-azonosítót (a hurok észleléséhez), a hop-to-live értéket, valamint a forrás- és célazonosítókat:

  • Adatbeszúrás- egy csomópont, amely új adatokat helyez el a hálózaton (az üzenet tartalmazza a kulcsot és az adatokat (fájl));
  • Adatkérés- egy adott fájl kérése (kulcsot tartalmaz);
  • Adatválasz- válasz a fájl megtalálásakor (a fájl benne van az üzenetben);
  • Adatok sikertelenek- hiba a fájl keresésében (meg van adva a hiba csomópontja és oka).

A Freenethez való csatlakozáshoz a számítógépek először meghatározzák egy vagy több meglévő csomópont címét, majd üzeneteket küldenek Adatbeszúrás.

Új fájl hálózatra helyezéséhez egy csomópont először kiszámítja a bináris kulcsát, és üzenetet küld Adatbeszúrás magadnak. Minden csomópont, amely ilyen üzenetet kap, először ellenőrzi, hogy a kulcs már használatban van-e. Ha nem, akkor megkeresi a legközelebbit (lexikográfiai távolság szempontjából) az útválasztási táblázatában, és az üzenetet (adatokkal) a megfelelő csomóponthoz irányítja. A leírt mechanizmus segítségével az új fájlok olyan csomópontokra kerülnek, amelyek már rendelkeznek hasonló kulcsú fájlokkal.

Ez addig folytatódik, amíg el nem éri a határt ugrásszerűen élni. Így az elosztott fájl egynél több csomóponton található. Ugyanakkor a folyamatban részt vevő összes csomópont frissíti az útválasztási tábláit – ez az a mechanizmus, amellyel az új csomópontok hirdetik jelenlétüket a hálózaton. Ha a határ ugrásszerűen élni kulcsérték ütközés nélkül érhető el, akkor egy "minden helyes" üzenet érkezik vissza a forráshoz, amely tájékoztatja, hogy a fájl sikeresen felkerült a hálózatra. Ha a kulcs már használatban van, a csomópont úgy adja vissza a meglévő fájlt, mintha az lenne a kért. Így a fájlok meghamisításának kísérlete azok további terjesztéséhez vezet.

Amikor egy csomópont kérést kap egy rajta tárolt fájlra, a keresés leáll, és az adatokat elküldi a kezdeményezőjének. Ha a szükséges fájl nem létezik, a csomópont átadja a kérést egy szomszédnak, amelyen valószínűleg található. A cím keresése az útválasztási táblázatban a legközelebbi kulcs segítségével történik, stb. Vegye figyelembe, hogy itt egy egyszerűsített keresési algoritmus, amely csak általános képet ad a Freenet hálózat működéséről.

Valószínűleg itt fejezzük be a P2P technológiák rövid áttekintését, és érintjük az üzleti életben való felhasználásuk témáját. Könnyű kiemelni a P2P architektúra számos előnyét a kliens-szerver architektúrával szemben, amelyekre az üzleti környezetben lesz kereslet:

  • az alkalmazások nagy megbízhatósága és elérhetősége a decentralizált rendszerekben, ami az egyetlen hibapont hiányával és az információtárolás elosztott jellegével magyarázható;
  • az erőforrások jobb kihasználása, legyen szó kommunikációs sávszélességről, processzorciklusokról vagy merevlemez-területről. A munkainformációk megkettőzése szintén jelentősen csökkenti (de nem szünteti meg teljesen) a biztonsági mentés szükségességét;
  • a rendszertelepítés egyszerűsége és a könnyű használat annak köszönhető, hogy ugyanazok a szoftvermodulok látják el a kliens és a szerver funkciókat is – különösen, ha helyi hálózaton kell dolgozni.

A P2P hálózatokban rejlő lehetőségek olyan nagyok voltak, hogy a Hewlett-Packard, az IBM és az Intel munkacsoport létrehozását kezdeményezte a technológia kereskedelmi felhasználásra történő szabványosítására. A Microsoft Windows Vista új verziója beépített együttműködési eszközökkel rendelkezik, amelyek lehetővé teszik a laptopok számára, hogy megosszák az adatokat a legközelebbi szomszédaikkal.

A technológia korai támogatói, mint például a Boeing repülőgép-óriás, az Amerada Hess olajvállalat és maga az Intel, azt mondják, hogy használata csökkenti a csúcskategóriás számítástechnikai rendszerek, köztük a nagyszámítógépek vásárlásának szükségességét. A P2P-rendszerek a hálózati sávszélesség-igényeket is lazíthatják, ami fontos azoknak a cégeknek, amelyeknek problémái vannak ezzel.

Az Intel 1990-ben kezdte el használni a P2P technológiát, hogy csökkentse a chipfejlesztési költségeket. A cég létrehozta saját NetBatch nevű rendszerét, amely több mint 10 ezer számítógépet köt össze, így a mérnökök hozzáférhetnek a globálisan elosztott számítási erőforrásokhoz.

A Boeing elosztott számítástechnikát használ az erőforrás-igényes teszttesztek elvégzéséhez. A cég Napster-szerű hálózati modellt használ, amelyben a szerverek a forgalmat a kijelölt csomópontokhoz irányítják. "Nincs egyetlen számítógép sem, amely megfelelne a követelményeinknek" - mondja Ken Neves, a kutatási részleg igazgatója.

A P2P technológiákban rejlő lehetőségek a kockázati tőke figyelmét is felkeltették. Így a Softbank Venture Capital 13 millió dollárt fektetett be a United Device vállalatba, amely három piacra fejleszt technológiát: számítástechnika a biotechnológiai ipar számára, szolgáltatásminőség (QoS) és webhelyek terhelési tesztje, valamint féregkeresési módszeren alapuló tartalomindexelés. , amelyet számos gép használ az interneten.

Mindenesetre a P2P hálózatok sikeres alkalmazásának öt területe már ma is nyilvánvaló. Ide tartozik a fájlmegosztás, az alkalmazások szétválasztása, a rendszerintegritás, az elosztott számítástechnika és az eszközök együttműködési képessége. Kétségtelen, hogy hamarosan még több lesz belőlük.

Ingyenes, nyílt forráskódú P2P kliens a Direct Connect hálózattal való munkához. Lehetővé teszi a hálózat többi felhasználója által megosztott fájlok ingyenes letöltését.

A peer-to-peer hálózatokról (p2p)

A Direct Connect hálózat felépítésében némileg a BitTorrentre emlékeztet.

Kerékagy A Hub (angolul hub, wheel hub, center) egy hálózati csomópont.

Nyomozó- a BitTorrent hálózat szervere, amely koordinálja klienseit.

Nincs is központosított keresőrendszer, és bármilyen fájl megtalálásához meg kell látogatnia az egyik speciális szervert - a hubokat (hasonlóan a BitTorrent nyomkövetőihez).

Miután csatlakozott a hubhoz, megjelenik a hozzá csatlakozó felhasználók listája. Előfordulhat azonban, hogy a kapcsolat nem jön létre, ha nem osztotta meg (töltötte fel) a szükséges mennyiségű információt. Általában 2-10 GB.

Ha a kapcsolat mégis létrejön, akkor lehetősége van arra, hogy beírja a keresésbe az Önt érdeklő fájl nevét, vagy manuálisan végezzen keresést, minden felhasználóhoz eljutva.

A hálózat működési elvét általánosságban kell érteni. Most nézzük magát a Közvetlen Kapcsolat klienst.

A StrongDC++ telepítése

Miután letöltötte az archívumot a programmal, futtassa a végrehajtható fájlt, és a program telepítésre kerül a számítógép „Programfájlok” mappájába.

Ha a telepítés végén nem törölte a megfelelő négyzet bejelölését, a program automatikusan elindul.

Ez a verzió már orosz nyelvű, de ha letöltötte az angol verziót, akkor a megfelelő kiterjesztésű fájl segítségével oroszosíthatja a programot xml, archívumunkban található a programmal.

A crack letöltése után telepítenie kell. Ehhez válassza ki a „Megjelenés” menüpontot a programbeállítások menüjében és a mezőben Nyelvi fájl kattintson a „Tallózás” gombra a fájl helyének kiválasztásához sDC+++orosz.xml(a crack fájl neve).

Az összes manipuláció elvégzése után indítsa újra a programot, és szerezzen be egy teljesen működőképes orosz verziót!

A StrongDC++ beállítása

Most állítsuk be a Strong DC++ orosz verzióját.

Nick- egyedi név a rendszerben.

Az „Általános” menüben meg kell adni a becenevét, az e-mail címét és a fájl feltöltési sebességét. A „Leírás” mező üresen hagyható (ez olyan, mint az Ön megjegyzése).

IP-cím- a hálózaton lévő számítógép digitális címe, például: 192.0.3.244.

A „Kapcsolat beállításai” részben megadhatja az IP-címét és néhány egyéb adatot. Különös figyelmet kell fordítani a „Bejövő kapcsolat beállításaira”.

Jobb, ha passzív kapcsolatot használ tűzfalon keresztül (különben más felhasználók fájljai nem jelennek meg az Ön számára).

Proxy szerver- köztes szerver.

A kimenő kapcsolatok forgalma átirányítható a proxy szerverre, vagy közvetlenül elhagyható (nagyobb lesz a sebesség).

Ezután válassza ki a „Letöltés” ​​elemet, és állítsa be az alapértelmezett mappákat a letöltésekhez és az ideiglenes fájlok tárolásához.

És most - a legfontosabb!!! Meg kell osztania a fájljait. Ehhez lépjen a „Saját fájlok (labda)” menübe, és a jobb oldalon megnyíló ablakban válassza ki azokat a fájlokat és mappákat, amelyekhez hozzáférést kíván nyitni.

A fájl kiválasztása után a következő folyamatablak jelenik meg.

A StrongDC++ használatának megkezdése

A fájlok kivonatolása után közvetlenül elkezdhet dolgozni a programmal. Kattintson az „OK” gombra alul, és megjelenik előtte a program főablakja.

A szükséges fájlok keresésének megkezdéséhez először csatlakoznia kell a számos hub egyikéhez.

Ehhez kattintson az „Internet hubs” gombra az eszköztáron, majd válassza ki az Internet hub listák egyikét, és kattintson a „Frissítés” gombra.

Felhasználó(Angol) felhasználó) - felhasználó.

Ha ismeri a hub vagy a kívánt felhasználó nevét, könnyebben kereshet szűrő használatával.

Ha megtalálta a kívánt hubot, a bal egérgombbal duplán a nevére kattintva elérheti. Ha a megosztott adatmennyiség megfelel a hub követelményeinek, akkor valami ilyesmit fog látni:

Ügyeljen a könyvjelzők jelenlétére a főablak alatt. A Strong DC++-ban minden navigáció ezekkel a könyvjelzőkkel történik. A könyvjelzőket a jobb gombbal kattintva kezelheti.

Erős DC++ interfész

A fő helyet a chat foglalja el - ez egy nagyon jövedelmező dolog. Hasznos lesz, a „csak csevegéstől” egészen a lehetőségig, hogy megkérdezzük másoktól, hol találják ezt vagy azt az információt, ha a keresés nem segített.

A csevegés jobb oldalán található azon felhasználók listája, akik jelenleg jelen vannak a hubon. A színek, amelyekkel a felhasználóneveket írják, további információkat tartalmaznak.

A letöltendő fájlok kézi keresése

Tekintsük a kézi keresést használó interakciót. Minden felhasználó mellett van egy jelző a megosztott fájlok számáról. Ha a kapcsolat sebessége nem túl magas, akkor jobb, ha kisebb fájlmennyiséggel rendelkezőket választ.

Most, amikor az „Állapot”-ban megjelenik egy jelzés, hogy a fájlok listája letöltődött, alul megnyílik egy másik fül, ahol megtekintheti, hogy milyen fájlok vannak a kiválasztott felhasználó számítógépén.

A kiválasztott fájl letöltéséhez kattintson rá jobb gombbal, és válassza a „Letöltés” ​​lehetőséget.

Ugyanezt tesszük a kereső használatakor is. A keresősávba írja be a szükséges fájl nevét, és várjon.

A keresés befejezése után az alábbiakban megjelenik azon felhasználók listája, akik rendelkeznek ezzel a fájllal. Kiválaszt egyet közülük, csatlakozik hozzá, és letölti a szükséges adatokat.

következtetéseket

A DC++ hálózat számos előnye ellenére van néhány hátránya is. Konkrétan kettő van belőle. Nem lehet letölteni egy fájlt, ha a forrás (akinél ez a fájl) megszakadt. A második hátrány pedig az, hogy néha nagyon hosszú a letöltési sor.

Általánosságban elmondható, hogy a rendszer nagyon érdekes, és a StrongDC++ program használata kényelmessé teszi.

P.S. Engedélyt adunk ennek a cikknek a szabad másolására és idézésére, feltéve, hogy a forrásra mutató nyílt aktív hivatkozást feltüntetik, és Ruslan Tertyshny szerzőségét megőrzik.

P.P.S. A P2P hálózat elődjei az FTP szerverek voltak, amelyekhez a legkényelmesebben ezzel a programmal csatlakozhatunk:
FTP kliens FileZilla https://www..php

Peer-to-peer technológiák

Teljesített:

Fizika-matematika mesterszak 1. éves hallgatója

Kulacsenko Nadezsda Szergejevna

Ellenőrizve:

Csernisenko Szergej Viktorovics

Moszkva 2011


Bevezetés

Az internet fejlődésével a fájlmegosztó technológiák egyre érdekesebbé válnak a felhasználók körében. A korábbiaknál jobban elérhető Hálózat és a széles hozzáférésű csatornák elérhetősége jelentősen megkönnyíti a szükséges fájlok megtalálását és letöltését. Ebben a folyamatban nem utolsósorban szerepet játszanak a modern technológiák és közösségépítő elvek, amelyek lehetővé teszik a fájlcserélő hálózatok szervezői és felhasználói szempontjából egyaránt nagyon hatékony rendszerek kiépítését. Így ez a téma ma is aktuális, mert Folyamatosan új hálózatok jelennek meg, a régiek pedig vagy leállnak, vagy módosulnak és fejlesztenek. Egyes adatok szerint jelenleg az internet teljes forgalmának több mint fele a fájlcserélő peer-to-peer hálózatokból származó forgalom. Közülük a legnagyobbak mérete meghaladta az egymillió egyidejűleg működő csomópont határát. Az ilyen fájlcserélő hálózatok regisztrált résztvevőinek száma világszerte mintegy 100 millió.

A peer-to-peer (angolul: egyenlő az egyenlővel) a japán szamurájok és az utópikus szocialisták ősi alapelve. A huszadik század végén vált igazán népszerűvé. Most ezt az elvet internetfelhasználók milliói használják, távoli országokból származó barátokkal beszélgetve, fájlokat töltenek le olyan felhasználóktól, akikkel még soha nem találkoztak.

A peer-to-peer (P2P) technológiák ma az egyik legnépszerűbb téma. Az olyan programokkal elért népszerűség, mint a Skype, Bittorrent, DirectConnect és az ilyen programok listája, megerősíti a peer-to-peer rendszerekben rejlő lehetőségeket.

Ebben a munkában megvizsgálom az erőforrások működésének egyedi alapelveit ebben a témában, a fájlcserére aktívan használt népszerű peer-to-peer hálózatok működési elveit, valamint használatuk problémáit.


1. Napster és Gnutella – az első peer-to-peer hálózatok

Az első peer-to-peer hálózat, a Napster 1999-ben jelent meg, és azonnal ismertté vált az egész internetes közösség előtt. A megrendelő szerzője a tizennyolc éves Sean Fanning volt. A Napster számítógépek ezreit kapcsolta össze nyílt erőforrásokkal. Kezdetben a Napster felhasználói mp3 fájlokat cseréltek.

A Napster lehetővé tette egy interaktív többfelhasználós környezet létrehozását bizonyos interakciókhoz. A Napster minden hozzá csatlakozó felhasználó számára lehetőséget biztosít az mp3 formátumú zenei fájlok szinte közvetlen cseréjére: a Napster központi szerverei lehetővé teszik az összes hozzájuk csatlakozó felhasználó számítógépének keresését, és a csere a központi szervereket megkerülve, felhasználói felület segítségével történik. a felhasználóhoz sémát. A Napster környezetben keringő felvételek nagy része szerzői jogi védelem alatt áll, de terjesztésük ingyenes. A Napster öt hónapig csendben létezett, és nagyon népszerű szolgáltatássá vált.

December 7-én az Amerikai Recording Industry Association (RIAA) beperelte a Napstert „közvetlen és közvetett szerzői jogsértésért”.

Végül a Napstert először valamelyik európai cégnek adták el, majd teljesen bezárták.

A Gnutellát 2000-ben a Nullsoft programozói hozták létre a Napster utódjaként. A mai napig működik, bár komoly algoritmushibák miatt a felhasználók jelenleg a Gnutella2 hálózatot részesítik előnyben. Ez a hálózat szerver nélkül működik (teljes decentralizáció).

Csatlakozáskor a kliens attól a csomóponttól kap egy listát, amelyhez öt aktív csomópont tartozik; Kérést küldenek nekik, hogy egy kulcsszó használatával keressenek egy erőforrást. A csomópontok megkeresik a kérésnek megfelelő erőforrásokat, és ha nem találják, továbbítják a kérést az aktív csomópontoknak a „fán” felfelé (a hálózati topológiának „fa” gráfszerkezete van), amíg meg nem talál egy erőforrást vagy a lépések maximális számát. túllépik. Ezt a keresést lekérdezés elárasztásnak nevezik.

Nyilvánvaló, hogy egy ilyen megvalósítás a kérések számának exponenciális növekedéséhez vezet, és ennek megfelelően a „fa” felső szintjein szolgáltatásmegtagadáshoz vezethet, ami a gyakorlatban sokszor megfigyelhető. A fejlesztők továbbfejlesztették az algoritmust, és olyan szabályokat vezettek be, amelyek szerint a kéréseket csak bizonyos csomópontok küldhetik fel a „fára” – az úgynevezett ultrapeer-ek (levelek) csak az utóbbit kérhetik. Bevezették a gyorsítótárazási csomópontok rendszerét is.

A hálózat ma is ebben a formában működik, bár az algoritmus hiányosságai és gyenge bővíthetősége miatt népszerűsége csökken.

A Gnutella protokoll hiányosságai alapvetően új algoritmusok kifejlesztését indították el az útvonalak és erőforrások kereséséhez, és DHT (Distributed Hash Tables) protokollok csoportjának létrehozásához vezettek – különösen a Kademlia protokollhoz, amelyet ma már széles körben használnak a legnagyobb országokban. hálózatok.

A Gnutella hálózaton a kérések TCP-n vagy UDP-n keresztül, a fájlok másolása HTTP-n keresztül történik. A közelmúltban olyan kiterjesztések jelentek meg a kliensprogramokhoz, amelyek lehetővé teszik a fájlok UDP-n keresztüli másolását és a fájlok metainformációinak XML kérését.

2003-ban elkészült egy alapvetően új Gnutella2 protokoll és létrejöttek az első ezt támogató kliensek, amelyek visszafelé kompatibilisek voltak a Gnutella kliensekkel. Ennek megfelelően egyes csomópontok csomópontokká válnak, míg a többi közönséges csomópont (levél). Minden normál csomópont egy vagy két hubhoz kapcsolódik. És egy hub több száz szokásos csomóponthoz és több tucat másik hubhoz csatlakozik. Minden csomópont rendszeresen elküldi a hubnak a kulcsszóazonosítók listáját, amelyek segítségével megtalálhatja a csomópont által közzétett erőforrásokat. Az azonosítók egy közös táblában vannak tárolva a hubon. Amikor egy csomópont „meg akar” találni egy erőforrást, akkor kulcsszókérést küld a központjába, amely vagy megtalálja az erőforrást a táblájában, és visszaadja az erőforrást birtokló csomópont azonosítóját, vagy visszaadja a többi hub listáját, amelyet a a csomópont ismét véletlenszerűen kérdez rá. Az ilyen keresést véletlenszerű séta módszerrel történő keresésnek nevezzük.

A Gnutella2 hálózat egyik figyelemre méltó tulajdonsága, hogy képes reprodukálni a hálózaton lévő fájlokkal kapcsolatos információkat anélkül, hogy magát a fájlt másolná, ami nagyon hasznos a víruskövetés szempontjából. A hálózaton továbbított csomagokhoz az XML-hez hasonló szabadalmaztatott formátumot fejlesztettek ki, amely rugalmasan valósítja meg a hálózat funkcionalitásának növelését további szolgáltatási információk hozzáadásával. A lekérdezések és a kulcsszóazonosítók listái UDP-n keresztül kerülnek elküldésre a központoknak.

2. P2P technológiák. A "kliens-kliens" elv

A peer-to-peer, decentralizált vagy peer-to-peer (az angol peer-to-peer, P2P - egyenlő az egyenlővel) hálózat a résztvevők egyenlőségén alapuló overlay számítógépes hálózat. Egy ilyen hálózatban nincsenek dedikált szerverek, és minden csomópont (peer) egyszerre kliens és szerver. A kliens-szerver architektúrától eltérően ez a szervezet lehetővé teszi a hálózat számára, hogy a rendelkezésre álló csomópontok tetszőleges számú és kombinációjával működőképes maradjon. A hálózat résztvevői egyenrangúak.

A peer-to-peer kifejezést először 1984-ben használta az IBM, amikor egy hálózati architektúrát fejlesztett ki a forgalom dinamikus irányítása céljából számítógépes hálózatokon keresztül tetszőleges topológiával (Advanced Peer to Peer Networking). A technológia a decentralizáció elvén alapul: a P2P hálózat minden csomópontja egyenlő jogokkal rendelkezik, pl. Mindegyik csomópont egyszerre működhet kliensként (információ címzettje) és szerverként (információszolgáltató). „Ez olyan előnyöket biztosít a P2P technológiának a kliens-szerver megközelítéssel szemben, mint például a hibatűrés több hálózati csomóponttal való kapcsolat megszakadása esetén, megnövekedett adatgyűjtési sebesség a több forrásból történő egyidejű másolás miatt, az erőforrások megosztásának lehetősége „kapcsolva” meghatározott IP-címekhez, általában hatalmas energiahálózatokhoz stb.”[2]

Minden peer csomópont csak a hálózati csomópontok egy bizonyos részhalmazával lép kapcsolatba közvetlenül. Ha szükséges a fájlok átvitele a közvetlenül nem érintkező hálózati csomópontok között, akkor a fájlátvitel vagy közvetítő csomópontokon keresztül, vagy ideiglenesen létrehozott közvetlen kapcsolaton keresztül történik (ez kifejezetten az átvitel időtartamára van kialakítva). Munkájuk során a fájlcserélő hálózatok saját protokoll- és szoftverkészletüket használják, amely nem kompatibilis az FTP és HTTP protokollokkal, és jelentős fejlesztésekkel és eltérésekkel rendelkezik. Először is, egy ilyen hálózat minden kliense az adatok letöltésével lehetővé teszi más ügyfelek számára, hogy csatlakozzanak hozzá. Másodszor, a P2P szerverek (ellentétben a HTTP-vel és az FTP-vel) nem tárolnak fájlokat cserére, és funkcióik főként az adott hálózaton lévő felhasználók együttműködésének koordinálására korlátozódnak. Ennek érdekében egyfajta adatbázist tartanak fenn, amelyben a következő információkat tárolják:

Milyen IP-címe van ennek vagy annak a hálózati felhasználónak?

Melyik kliens mely fájlokat tárolja;

Melyik fájlok mely töredékei hol találhatók;

Statisztikák arról, hogy ki mennyit töltött le saját magának, és másoknak adta letöltésre.

Egy tipikus fájlmegosztó hálózatban végzett munka a következőképpen épül fel:

A kliens lekéri a szükséges fájlt a hálózaton (ezt megelőzően lehetőség van a szervereken tárolt adatok alapján keresni a kívánt fájlt).

Ha a szükséges fájl elérhető és megtalálható, a szerver megadja a kliensnek a többi kliens IP-címét, amelyekhez a fájl megtalálható.

A fájlt kérő kliens „közvetlen” kapcsolatot létesít a kívánt fájllal rendelkező klienssel vagy ügyfelekkel, és megkezdi annak letöltését (ha a kliens jelenleg nincs leválasztva a hálózatról, vagy nincs túlterhelve). Ezenkívül a legtöbb P2P hálózatban lehetőség van egy fájl letöltésére több forrásból egyszerre.

Az ügyfelek tájékoztatják a szervert a hozzájuk csatlakozó összes kliensről és az általuk kért fájlokról.

A szerver rögzíti az adatbázisában, hogy ki mit töltött le (még akkor is, ha a fájlok nem lettek letöltve teljes egészében).

A Peer-to-Peer technológiára épülő hálózatokat peer-to-peer-nek, peer-to-peer-nek vagy decentralizáltnak is nevezik. És bár ma már főleg fájlleválasztásra használják őket, sok más területen is sikeresen alkalmazzák ezt a technológiát. Ilyenek a televíziós és audió adások, a párhuzamos programozás, az erőforrások elosztott gyorsítótárazása a szerverek feltöltéséhez, értesítések és cikkek küldése, a domain névrendszer támogatása, az elosztott erőforrások indexelése és keresése, biztonsági mentés és rugalmas elosztott adattárolás létrehozása, üzenetküldés, ellenálló rendszerek létrehozása. szolgáltatásmegtagadási típusú támadásokhoz, szoftvermodulok terjesztéséhez.


3. A P2P fő sebezhetőségei

Az elosztott rendszerek megvalósításának és használatának nemcsak előnyei, hanem a biztonsági funkciókhoz kapcsolódó hátrányai is vannak. A hackerek kívánatos célja egy ilyen kiterjedt és nagy struktúra, mint például a P2P hálózat feletti irányítás megszerzése, vagy a protokoll-megvalósítás hiányosságainak saját szükségleteik kielégítésére való kihasználása. Ráadásul egy elosztott struktúrát nehezebb megvédeni, mint egy központi szervert.

A P2P hálózatokban rendelkezésre álló ilyen hatalmas mennyiségű erőforrást nehéz titkosítani/visszafejteni, ezért a résztvevők IP-címeivel és erőforrásaival kapcsolatos információk nagy része titkosítatlanul kerül tárolásra és továbbításra, így az elfogásra érzékeny. Az elfogáskor a támadó nemcsak magát az információt kapja meg, hanem azokról a csomópontokról is tájékozódik, amelyeken tárolják, ami szintén veszélyes.

A legtöbb nagy hálózat ügyfelei csak a közelmúltban kezdték megoldani ezt a problémát a csomagfejlécek és az azonosító információk titkosításával. Megjelennek az SSL technológiát támogató kliensek, bevezetnek speciális eszközöket az erőforrások elhelyezkedésére vonatkozó információk védelmére stb.

Komoly probléma a „férgek” terjedése és az erőforrás-azonosítók meghamisítása érdekében történő meghamisítása. Például a Kazaa kliens használja az UUHash hash funkciót, amely lehetővé teszi a nagy fájlok azonosítóinak gyors megtalálását még gyenge számítógépeken is, de továbbra is hagyja a fájlok manipulálásának lehetőségét, és egy sérült fájlt ugyanazzal az azonosítóval írni.

A leírt probléma megoldásához az ügyfeleknek megbízható kivonatolási függvényeket kell használniuk („hash függvényfákat”, ha a fájlt részenként másolják), mint például az SHA-1, Whirlpool, Tiger, és csak alacsony kritikus feladatokhoz – CRC ellenőrző összegeket. Az elküldött adatok mennyiségének csökkentése és a titkosítás megkönnyítése érdekében tömörítést használhat. A vírusok elleni védelem érdekében képesnek kell lennie a férgek azonosító metainformációinak tárolására, ahogy ez különösen a Gnutella2 hálózatban történik.

További probléma a szerver- és csomópontazonosítók meghamisításának lehetősége. A továbbított szolgáltatási üzenetek hitelességének ellenőrzésére szolgáló mechanizmus hiányában, például tanúsítványok használatával, fennáll a kiszolgáló vagy csomópont (sok csomópont) meghamisításának lehetősége. Mivel a csomópontok információt cserélnek, némelyikük manipulálása az egész hálózatot vagy annak egy részét veszélyezteti. A zárt kliens- és szerverszoftverek nem jelentenek megoldást a problémára, hiszen lehetőség nyílik a protokollok és programok visszafejtésére.

Egyes kliensek csak másolják mások fájljait, de nem ajánlanak fel másolást másoknak (leechers).

A moszkvai otthoni hálózatokban minden néhány aktivista után, akik 100 GB-nál több információt tesznek elérhetővé, körülbelül száz van, aki 1 GB-nál kevesebbet tesz közzé. Ennek leküzdésére különféle módszereket alkalmaznak. Az eMule a kreditek módszerét használja: ha másolsz egy fájlt, akkor csökken a jóváírásod, ha engedélyezed a fájl másolását, a kredited nő (az xMule egy kreditrendszer, amely ritka fájlok terjesztését ösztönzi). Az eDonkey hálózat a források sokszorosítását ösztönzi, a Bittorrent a „hány blokkot kapott egy fájlból annyit adtak ki” sémát stb.


4. Néhány peer-to-peer hálózat

4.1 DirectConnect

peer-to-peer hálózati torrent peer-to-peer

A Direct Connect egy részlegesen központosított fájlmegosztó (P2P) hálózat, amely a NeoModus által kifejlesztett speciális protokollon alapul.

A NeoModust Jonathan Hess alapította 1990 novemberében, mint olyan céget, amely a Direct Connect adware programból keresett pénzt. Az első harmadik féltől származó kliens a "DClite" volt, amely soha nem támogatta teljes mértékben a protokollt. A Direct Connect új verziója már egy egyszerű titkosítási kulcsot igényelt a kapcsolat inicializálásához, ami azt remélte, hogy blokkolja a harmadik féltől származó ügyfeleket. A kulcsot feltörték, és a DClite szerzője kiadta programjának új verzióját, amely kompatibilis a NeoModus új szoftverével. Hamarosan a DClite kódot átírták, és a programot Open Direct Connect névre keresztelték. Többek között multi-document (MDI) lett a felhasználói felülete, és lehetővé vált a fájlmegosztó protokollok bővítményeinek használata (mint az MLDonkey-ban). Az Open Direct Connect szintén nem rendelkezett teljes protokolltámogatással, de Java alatt megjelent. Kicsit később más kliensek is megjelentek: DCTC (Direct Connect Text Client), DC++ stb.

A hálózat a következőképpen működik. Az ügyfelek egy vagy több szerverhez, úgynevezett hubokhoz csatlakoznak, hogy olyan fájlokat keressenek, amelyek általában nem kapcsolódnak egymáshoz (bizonyos típusú hubok részben vagy teljesen hálózatba kapcsolhatók speciális szkriptekkel vagy a Hub-Link programmal), és keresésre szolgálnak. fájlokhoz és letöltési forrásokhoz. A leggyakrabban használt hubok a PtokaX, Verlihub, YnHub, Aquila, DB Hub, RusHub. A többi csomóponttal való kommunikációhoz az ún. dchub linkek:

dchub://[ felhasználónév ]@[ IP vagy Hub Domain ]:[ hub port ]/[fájl elérési útja]/[fájlnév]

Különbségek a többi P2P rendszertől:

1. A hálózati struktúra által kondicionált

· Fejlett többfelhasználós chat

· A hálózati szerver (hub) egy adott témához (például egy bizonyos műfajú zenéhez) rendelhető, ami megkönnyíti a felhasználók megtalálását a kívánt fájltárgyakkal

· Privilegizált felhasználók jelenléte – olyan üzemeltetők, akik kibővített hub-kezelési képességekkel rendelkeznek, különös tekintettel arra, hogy figyelemmel kísérik, hogy a felhasználók megfelelnek-e a csevegési és fájlmegosztási szabályoknak.

2. Ügyfélfüggő

· Lehetőség teljes könyvtárak letöltésére

· A keresési eredmények nem csak fájlnevek, hanem könyvtárak alapján is megjelennek

· A megosztott anyagok minimális mennyiségére vonatkozó korlátozások (térfogat szerint)

· Potenciálisan korlátlan lehetőségekkel rendelkező szkriptek támogatása mind kliens oldalon, mind hub oldalon (nem igaz minden hubra és kliensre)

Konkrét problémák megoldására a DC++ kliens szerzői egy alapvetően új protokollt fejlesztettek ki Advanced Direct Connect (ADC) néven, melynek célja a fájlmegosztó hálózat megbízhatóságának, hatékonyságának és biztonságának növelése. 2007. december 2-án megjelent az ADC 1.0 protokoll végleges verziója. A protokoll fejlesztése és kiegészítése folytatódik.

4.2 bites torrent

A BitTorrent (magyarul „bit folyam”) egy peer-to-peer (P2P) hálózati protokoll az interneten keresztüli kooperatív fájlmegosztáshoz.

A fájlok átvitele részenként történik, minden torrent kliens fogadja (letölti) ezeket a részeket, egyúttal átadja (feltölti) a többi kliensnek, ami csökkenti az egyes forráskliensektől való terhelést és függőséget, valamint biztosítja az adatredundanciát. A protokollt Bram Cohen készítette, aki 2001. április 4-én megírta Pythonban az első torrent klienst, a BitTorrentet. Az első verzió piacra dobására 2001. július 2-án került sor.

Minden disztribúcióhoz létrejön egy .torrent kiterjesztésű metaadatfájl, amely a következő információkat tartalmazza:

Tracker URL;

Általános információk a terjesztésben található fájlokról (név, hossza stb.);

Az elosztott fájlok szegmenseinek ellenőrző összegei (pontosabban SHA1 hash összegei);

A felhasználó jelszava, ha regisztrálva van ezen a nyomkövetőn. A kulcs hosszát a nyomkövető állítja be.

Nem szükséges:

Teljes fájlok kivonatösszege;

Alternatív források, amelyek nem használják a BitTorrent protokollt. A legelterjedtebb támogatás az úgynevezett web seeds (HTTP protokoll), de az ftp, ed2k, magnet URI is elfogadható.

A metaadatfájl egy bencode formátumú szótár. A metaadatfájlok bármely kommunikációs csatornán terjeszthetők: felkerülhetnek webszerverekre, elhelyezhetők a hálózati felhasználók kezdőlapján, elküldhetők e-mailben, közzétehetők blogokban vagy RSS hírfolyamokban. Az „Extension for Peers to Send Metadata Files” protokoll-kiterjesztésnek köszönhetően a nyilvános metaadatfájl információs részét közvetlenül a terjesztés többi résztvevőjétől is megkaphatja. Ez lehetővé teszi, hogy csak egy mágneses link közzétételével boldoguljon. Miután a kliens valamilyen módon megkapta a metaadatokat tartalmazó fájlt, megkezdheti a letöltést.

A letöltés megkezdése előtt a kliens a torrent fájlban megadott címen csatlakozik a trackerhez, megmondja neki a címét és a torrent fájl hash mennyiségét, amelyre válaszul a kliens megkapja az ugyanazt letöltő vagy terjesztő többi kliens címét. fájlt. Ezután az ügyfél rendszeresen tájékoztatja a nyomkövetőt a folyamat előrehaladásáról, és megkapja a frissített címlistát. Ezt a folyamatot bejelentésnek nevezik.

Az ügyfelek csatlakoznak egymáshoz, és fájlszegmenseket cserélnek egy tracker közvetlen részvétele nélkül, amely csak a központhoz csatlakozó ügyfelektől kapott információkat, maguknak az ügyfeleknek a listáját és egyéb statisztikai információkat tárol. A BitTorrent hálózat hatékony működéséhez szükséges, hogy minél több kliens tudja fogadni a bejövő kapcsolatokat. A helytelen NAT vagy tűzfal konfiguráció ezt megakadályozhatja.

Csatlakozáskor az ügyfelek azonnal információt cserélnek a rendelkezésükre álló szegmensekről. Az a kliens, aki egy szegmenst szeretne letölteni (leecher), kérést küld, és ha a második kliens készen áll a letöltésre, megkapja ezt a szegmenst. Az ügyfél ezután ellenőrzi a szegmens ellenőrző összegét. Ha egyezik a torrent fájlban rögzítettel, akkor a szegmens sikeresen letöltöttnek minősül, és a kliens értesíti az összes csatlakoztatott partnert a szegmens jelenlétéről. Ha az ellenőrző összegek eltérnek, akkor a szegmens letöltése újra megkezdődik. Egyes ügyfelek kitiltják azokat a társakat, akik túl gyakran küldenek be helytelen szegmenst.

Így a szolgáltatási információ mennyisége (a torrent fájl mérete és a szegmenslistát tartalmazó üzenetek mérete) közvetlenül függ a szegmensek számától, így a szegmensek méretétől. Ezért a szegmens kiválasztásakor meg kell tartani az egyensúlyt: egyrészt nagy szegmensméret esetén kevesebb lesz a szolgáltatási információ mennyisége, ellenőrzőösszeg-ellenőrzési hiba esetén azonban le kell töltenie ismét több információ. Másrészt kis méretnél a hibák nem olyan kritikusak, mivel kisebb kötetet kell újra letölteni, de a torrent fájl és a meglévő szegmensekről szóló üzenetek mérete megnő.

Amikor a letöltés csaknem befejeződött, a kliens egy speciális módba lép, amelyet játék befejezésnek neveznek. Ebben a módban az összes többi szegmenst lekéri az összes csatlakoztatott partnertől, így elkerülhető, hogy több lassú kliens miatt lelassuljon vagy teljesen lefagyjon egy majdnem befejezett letöltés.

A protokoll specifikációja nem határozza meg, hogy a kliensnek pontosan mikor kell belépnie a játék befejezése módba, de vannak általánosan elfogadott gyakorlatok. Egyes kliensek akkor lépnek ebbe a módba, ha már nem maradt kéretlen blokk, mások pedig addig, amíg a fennmaradó blokkok száma kevesebb, mint a továbbított blokkok száma, és nem haladja meg a 20-at. a várt blokkok száma alacsony (1 vagy 2) a redundancia minimalizálása érdekében, és ha a véletlenszerű kéréseknek kisebb az esélye ugyanazon blokk ismétlődéseinek fogadására.

Hátrányok és korlátok

· A terjesztés elérhetetlensége – ha nincsenek elosztó felhasználók (magok);

· Az anonimitás hiánya:

A nem védett rendszerek felhasználóit és az ismert sebezhetőségekkel rendelkező ügyfeleket támadás érheti.

Lehetőség van megtudni a hamisított tartalmat cserélő felhasználók címét, és beperelni őket.

· A leecherek problémája – olyan ügyfelek, akik sokkal kevesebbet terjesztenek, mint amennyit letöltenek. Ez a termelékenység csökkenéséhez vezet.

· A csalók problémája – olyan felhasználók, akik módosítják a letöltött/átvitt adatok mennyiségére vonatkozó információkat.

Testreszabás – a protokoll nem támogatja a beceneveket, a csevegést vagy a felhasználói fájlok listájának megtekintését.


Következtetés

A modern peer-to-peer hálózatok összetett fejlődésen mentek keresztül, és sok tekintetben tökéletes szoftvertermékekké váltak. Garantálják nagy mennyiségű adat megbízható és nagy sebességű átvitelét. Elosztott szerkezetűek, és nem semmisülhetnek meg, ha több csomópont megsérül.

A peer-to-peer hálózatokban tesztelt technológiákat ma már számos programban használják más területekről:

Nyílt forráskódú programok disztribúcióinak gyors terjesztéséhez (nyílt forráskód);

Elosztott adathálózatokhoz, mint például a Skype és a Joost.

Az adatcsere-rendszereket azonban gyakran alkalmazzák illegális területeken: megsértik a szerzői jogi törvényeket, a cenzúrát stb. A következőket mondhatjuk: a peer-to-peer hálózatok fejlesztői tökéletesen megértették, mire fogják használni, és ügyeltek a könnyű kezelhetőségre, a kliensek anonimitására és a rendszer egészének sebezhetetlenségére. Az adatcsereprogramokat és -rendszereket gyakran az internet „szürke” zónájába sorolják – olyan zónába, ahol megsértik a törvényeket, de nehéz vagy lehetetlen bizonyítani a jogsértésben érintettek bűnösségét.

A programok és az adatcsere hálózatok valahol az internet „peremén” találhatók. Nem kapják meg a nagyvállalatok támogatását, néha senki sem segít nekik; készítőik általában hackerek, akik nem szeretik az internetes szabványokat. A tűzfalak, routerek és hasonló berendezések gyártói, valamint az internetszolgáltatók (ISP) nem szeretik az adatcsereprogramokat – a „hacker” hálózatok elveszik értékes erőforrásaik jelentős részét. Ezért a szolgáltatók minden lehetséges módon megpróbálják kiszorítani és betiltani az adatcsere-rendszereket, illetve korlátozni tevékenységüket. Erre válaszul azonban az adatcsere-rendszerek létrehozói ismét ellenintézkedéseket kezdenek keresni, és gyakran kiváló eredményeket érnek el.

Az elosztott rendszerek megvalósításának és használatának nemcsak előnyei, hanem a biztonsági funkciókhoz kapcsolódó hátrányai is vannak. A hackerek kívánatos célja egy ilyen kiterjedt és nagy struktúra, mint például a P2P hálózat feletti irányítás megszerzése, vagy a protokoll-megvalósítás hiányosságainak saját szükségleteik kielégítésére való kihasználása. Ráadásul egy elosztott struktúrát nehezebb megvédeni, mint egy központi szervert.

A P2P hálózatokban rendelkezésre álló ilyen hatalmas mennyiségű erőforrást nehéz titkosítani/visszafejteni, ezért a résztvevők IP-címeivel és erőforrásaival kapcsolatos információk nagy része titkosítatlanul kerül tárolásra és továbbításra, így az elfogásra érzékeny. Az elfogáskor a támadó nemcsak magát az információt kapja meg, hanem azokról a csomópontokról is tájékozódik, amelyeken tárolják, ami szintén veszélyes.

A legtöbb nagy hálózat ügyfelei csak a közelmúltban kezdték megoldani ezt a problémát a csomagfejlécek és az azonosító információk titkosításával. Megjelennek az SSL technológiát támogató kliensek, bevezetnek speciális eszközöket az erőforrások elhelyezkedésére vonatkozó információk védelmére stb.

Komoly probléma a „férgek” terjedése és az erőforrás-azonosítók meghamisítása érdekében történő meghamisítása. Például a Kazaa kliens használja az UUHash hash funkciót, amely lehetővé teszi a nagy fájlok azonosítóinak gyors megtalálását még gyenge számítógépeken is, de továbbra is hagyja a fájlok manipulálásának lehetőségét, és egy sérült fájlt ugyanazzal az azonosítóval írni.

Jelenleg a dedikált szerverek és csomópontok időszakonként ellenőrző információkat cserélnek egymással, és ha szükséges, hamis szervereket/csomópontokat adnak hozzá a hozzáférést tiltó feketelistához.

Folyamatban van a hálózatokat és protokollokat kombináló projektek létrehozása is (például JXTA – Bill Joy fejlesztő).


Bibliográfia

1. Yu N. Gurkin, Yu A. Semenov. „P2P fájlmegosztó hálózatok: alapelvek, protokollok, biztonság” // „Hálózatok és kommunikációs rendszerek”, 2006. 11. sz.

2011. 06. 02. 17:23 http://www.ccc.ru/magazine/depot/06_11/read.html?0302.htm

2. A. Gryzunova Napster: esettörténet InterNet magazin, 22. szám 2011.06.02. 15:30 http://www.gagin.ru/internet/22/7.html

3. Modern számítógépes hálózatok Absztrakt 2011.06.02. 15:49 http://5ballov.qip.ru/referats/preview/106448

4. 2011. 01. 28. 16:56 http://ru.wikipedia.org/wiki/Peer-to-peer

5. http://style-hitech.ru/peer-to-peer_i_tjekhnologii_fajloobmjena

28/01/2011 15:51

Moszkvai Állami Oktatási Intézmény Peer-to-peer technológiák Elvégezte: a fizika és matematika mesterszak 1. éves hallgatója Kulacsenko Nadezsda Szergejevna Ellenőrizte: Csernisenko Szergej Viktorovics

Az egyik első peer-to-peer hálózat, amelyet 2000-ben hoztak létre. Még mindig működik, bár az algoritmus súlyos hibái miatt a felhasználók jelenleg a Gnutella2 hálózatot részesítik előnyben.

Csatlakozáskor a kliens attól a csomóponttól kap egy listát, amelyhez öt aktív csomópont tartozik; Kérést küldenek nekik, hogy egy kulcsszó használatával keressenek egy erőforrást. A csomópontok megkeresik a kérésnek megfelelő erőforrásokat, és ha nem találják, továbbítják a kérést az aktív csomópontoknak a „fán” felfelé (a hálózati topológiának „fa” gráfszerkezete van), amíg meg nem talál egy erőforrást vagy a lépések maximális számát. túllépik. Ezt a keresést lekérdezés elárasztásnak nevezik.

Nyilvánvaló, hogy egy ilyen megvalósítás a kérések számának exponenciális növekedéséhez vezet, és ennek megfelelően a „fa” felső szintjein szolgáltatásmegtagadáshoz vezethet, ami a gyakorlatban sokszor megfigyelhető. A fejlesztők továbbfejlesztették az algoritmust, és olyan szabályokat vezettek be, amelyek szerint a kéréseket csak bizonyos csomópontok küldhetik fel a „fára” – az úgynevezett ultrapeer-ek (levelek) csak az utóbbit kérhetik. Bevezették a gyorsítótárazási csomópontok rendszerét is.

A hálózat ma is ebben a formában működik, bár az algoritmus hiányosságai és gyenge bővíthetősége miatt népszerűsége csökken.

A Gnutella protokoll hiányosságai alapvetően új algoritmusok kifejlesztését indították el az útvonalak és erőforrások kereséséhez, és DHT (Distributed Hash Tables) protokollok csoportjának létrehozásához vezettek – különösen a Kademlia protokollhoz, amelyet ma már széles körben használnak a legnagyobb országokban. hálózatok.

A Gnutella hálózaton a kérések TCP-n vagy UDP-n keresztül, a fájlok másolása HTTP-n keresztül történik. A közelmúltban olyan kiterjesztések jelentek meg a kliensprogramokhoz, amelyek lehetővé teszik a fájlok UDP-n keresztüli másolását és a fájlok metainformációinak XML kérését.

2003-ban elkészült egy alapvetően új Gnutella2 protokoll és létrejöttek az első ezt támogató kliensek, amelyek visszafelé kompatibilisek voltak a Gnutella kliensekkel. Ennek megfelelően egyes csomópontok csomópontokká válnak, míg a többi közönséges csomópont (levél). Minden normál csomópont egy vagy két hubhoz kapcsolódik. És egy hub több száz szokásos csomóponthoz és több tucat másik hubhoz csatlakozik. Minden csomópont rendszeresen elküldi a hubnak a kulcsszóazonosítók listáját, amelyek segítségével megtalálhatja a csomópont által közzétett erőforrásokat. Az azonosítók egy közös táblában vannak tárolva a hubon. Amikor egy csomópont „meg akar” találni egy erőforrást, akkor kulcsszókérést küld a központjába, amely vagy megtalálja az erőforrást a táblájában, és visszaadja az erőforrást birtokló csomópont azonosítóját, vagy visszaadja a többi hub listáját, amelyet a a csomópont ismét véletlenszerűen kérdez rá. Az ilyen keresést véletlenszerű séta módszerrel történő keresésnek nevezzük.

A Gnutella2 hálózat egyik figyelemre méltó tulajdonsága, hogy képes reprodukálni a hálózaton lévő fájlokkal kapcsolatos információkat anélkül, hogy magát a fájlt másolná, ami nagyon hasznos a víruskövetés szempontjából. A hálózaton továbbított csomagokhoz az XML-hez hasonló szabadalmaztatott formátumot fejlesztettek ki, amely rugalmasan valósítja meg a hálózat funkcionalitásának növelését további szolgáltatási információk hozzáadásával. A lekérdezések és a kulcsszóazonosítók listái UDP-n keresztül kerülnek elküldésre a központoknak.

Itt található a Gnutella és Gnutella2 leggyakoribb kliensprogramjainak listája: Shareaza, Kiwi, Alpha, Morpheus, Gnucleus, Adagio Pocket G2 (Windows Pocket PC), FileScope, iMesh, MLDonkey



Tetszett a cikk? Oszd meg