Készítette:Darázsi LászlóXZ1J94 Muráti ÁkosJNC2FC Szeles JózsefVC4DV7
Alkalmazási szintű hálózati protokoll tervezése A rendszer protokolljának megtervezése Központosított átfedő létrehozása Napster jellegű rendszer Egyenrangú (P2P) hálózat létrehozása a protokoll alapján Kliens oldali ügyfélprogram (C#) és a központi kiszolgáló elkészítése (PHP) Alkalmazási szintű többesadás Multicast feladatkör beépítése a rendszerbe
Napster jellegű fájlcserélő! A fájlok indexelése a központi kiszolgálón Kérést a központi webszerver fogadja A webszerver lefuttatja metódusnak megfelelő lekérdezést Visszaadja azt az IP címet, ahol a keresett fájl található
Adatbázis táblák FieldTypeNullDefault Client_IDint(20)No Hostvarchar(255)No SecretvarChar(255)YesNULL Portint(11)No0 LastCheckdatetimeYesNULL Online(1)Nof FieldTypeNullDefault File_IDint(20)No Hashvarchar(255)YesNULL Client_IDint(20)No0 FoldertinytextNo NametinytextYesNULL Typevarchar(20)YesNULL ContentstinytextYesNULL Sizeint(11)Yes0 ErrorCountint(11)No0 FieldTypeNullDefault Client_IDint(20)No0 File_IDint(20)No0 Files Downloads Clients
RPC hívások listája p2p.heartbeat p2p.bye p2p.list_share p2p.register_share p2p.unregister_share p2p.register_download p2p.unregister_download XMLRPC_method_not_found
Protokollüzenetek Bejelentkezés Fájlmegosztás Fájlmegosztás törlése Kijelentkezés
Protokollüzenetek Kliens bejelentkezés Fájlmegosztás Fájlkeresés Letöltés Kijelentkezés
A megoldás során: Kliensszoftvert.NET technológiát használva C# nyelven implementáltuk Szerver megvalósítása PHP felhasználásával A webszerver MySQL adatbáziskezelőt futtat Kliens-szerver kommunikációhoz (HTTP felett) XML alapú RPC hívások Peer-Peer kommunikáció Async socketen keresztül Tervezett funkciók Új kliens felvétele az adatbázisba, vagy ha már a kliensről van bejegyzés az adatbázisban, akkor a kliens adatainak frissítése Kliens törlése az adatbázisból Új megosztás felvétele az adatbázisba Megosztás törlése az adatbázisból
Keresés a megosztások között Peerek közti fájlletöltés Aktív letöltések nyilvántartása Beragadt kliensek automatikus offline-ra állítása Régi és új kliensek megkülönböztetése bejelentkezéskor Hitelesítés secret használatával A kliensalkalmazás telepítése elérhető:
A program felépítése – Kapcsolati információk
Keresések megjelenítése
Megosztásaink megjelenítése
Letöltött és letöltés alatt levő fájlok megjelenítése
A küldött és fogadott információk megjelenítése
Elméleti szinten Többesadás fát a szerver építi fel és tartja nyilván a kliensek heartbeat üzeneteikor Kliensek IP-jük alapján egy bináris keresőfában lennének eltárolva A Node leválásával a részfa leszekad De, heartbeat üzenettel újra felfűzésre kerülnek (3. heartbeat ütemben helyreáll) Egy kliens üzenetet küld a szomszédjainak TTL számlálóval Az üzenet TTL számlálóját csökkentik a kliensek és továbbküldik, kivéve annak akitől kapták Az üzenet küldése addig történik, amíg TTL>0