Crea il tuo forum GRATIS su GlobalFreeForum.com.

P2P

In questa sezione avverranno le discussioni sulla scienza e sulle arti. Si possono chiedere pareri e spiegazioni o postare i propri pensieri a riguardo di un argomento. Qui potete postare spiegazioni su un qualsiasi argomento: matematica, chimica, lingue etc...

Moderatori: Gruppo Admin, Gruppo Mod

P2P

Messaggioda skary » 27/06/2011 - 12:55

Per caso mentre studiavo oggi mi è saltato fuori l'argomento Gnutella.
Stavo leggendo un po del suo funzionamento e del suo protocollo e mi sono accorto che contrariamente a quanto avevo capito non è una rete p2p pura.

Per lo meno per come avevo capito io l'accezione di tale termine ( non ostante avessi letto che lo fosse) , leggendo su wikipedia mi apre di capire che il termine p2p puro significa che non esiste nessun server centrale che gestisca alcuna informazione ... eppure leggendo un articolo in merito mi pare di intendere che per quanto riguarda la connessione ci si rivolge ad alcuni nodi prestabiliti che coordinano la connessione con il resto della rete (con il nome di gnutellahost.com) che di fatto sono server di coordinamento o no ?

Da qui la mia domanda , esiste ed in tal caso come potrebbe funzionare una rete di tipo p2p completamente assente di qualsiasi nodo centrale ? anche per quanto riguarda la connessione ?
Perché più ci penso e più fatico a trovare ad immaginarla.
Immagine

Le persone ottimiste credono che il nostro universo sia magnifico e che non vi sia modo migliore di vivere.
I pessimisti semplicemente temono che gli ottimisti abbiano ragione.
Avatar utente
skary
Utente
Utente
 
Messaggi: 1449
Iscritto il: 19/07/2007 - 21:58

Re: P2P

Messaggioda Flame_Alchemist » 27/06/2011 - 13:44

La KAD di emule e il DHT di Bittorrent sono esempi di peer to peer decentralizzato (serveless o trackerless).
To iterate is human, to recurse, divine. — L. P. Deutsch
I could be bound in a nutshell and count myself as a king of infinite space (Hamlet)
Non era proprio un genio – pensava che la figura che lui tracciava sul suo fianco nudo dopo il sesso fosse il numerale 8, per dare un'idea. — D. F. Wallace

N = 1 ==> P = NP [compscient]
Avatar utente
Flame_Alchemist
Gold Member
Gold Member
 
Messaggi: 861
Iscritto il: 14/08/2007 - 18:21

Re: P2P

Messaggioda blackpoker94 » 27/06/2011 - 14:42

L'idea che mi sono fatto io è che non esiste nessun server... xD o meglio ogni utente della rete fa sia da client che da server...
Bill Gates disse "Bug". E windows fu
blackpoker94
Utente
Utente
 
Messaggi: 40
Iscritto il: 15/05/2011 - 10:37

Re: P2P

Messaggioda skary » 27/06/2011 - 14:47

Flame_Alchemist ha scritto:La KAD di emule e il DHT di Bittorrent sono esempi di peer to peer decentralizzato (serveless o trackerless).


DHT significa solo distributed hash table e non è proprio di bittorrent dato che pure kademlia lo utilizza.
Bittorrent poi non si appoggia neppure su un protocollo p2p puro per quanto riguarda la condivisione dei dati , figurarsi per la connessione.

Per quanto riguarda KAD si usa sempre un file con un insieme di host predefiniti da contattare ... mmm inizio a pensare che non sia possibile unirsi ad una rete p2p a prescindere dall'architettura client-server (devono sempre e comunque esserci dei nodi p2p sempre raggiungibili e noti per permettere l'ingresso che di fatto fungono da server ... in effetti più ci penso e più mi pare che sia stringente ... non ci si scappa).


@blackpoker
per connetterti devi conoscere i tuoi vicini.
Per farlo devi connetterti ad un server centrale che tiene la lista dei nodi connessi alla rete.
In alternativa come mi faceva notare flame (per KAD) devi avere tu una lista di tot nodi che sono mantenuti sempre attivi (di fatto l'equivalente del server di prima).
Almeno , sempre che io abbia inteso correttamente.
Immagine

Le persone ottimiste credono che il nostro universo sia magnifico e che non vi sia modo migliore di vivere.
I pessimisti semplicemente temono che gli ottimisti abbiano ragione.
Avatar utente
skary
Utente
Utente
 
Messaggi: 1449
Iscritto il: 19/07/2007 - 21:58

Re: P2P

Messaggioda Flame_Alchemist » 27/06/2011 - 15:55

Bittorrent poi non si appoggia neppure su un protocollo p2p puro per quanto riguarda la condivisione dei dati , figurarsi per la connessione.

Da un po' di tempo sto cercando un bel paper (e con bello non intendo quelli dove c'è scritto "il primo passo per scaricare un file tramite il protocollo bittorrent è scaricare un client bittorrent") con le specifiche ben spiegate per comprendere come mai qualcuno lo considera peer to peer mentre altri no (pure wikipedia inglese è nel bel mezzo di questa controversia: alla pagina di bittorrent segna peer to peer nella prima riga, poco più a fianco esce come bittorrent protocol e nella pagina dedicata al peer to peer non lo indica).

Per quanto riguarda KAD si usa sempre un file con un insieme di host predefiniti da contattare

Un po' di tempo fa --due anni, credo -- lessi le specifiche di KAD (caso più unico che raro, vista la penuria di tali paper) e notai, fra l'altro, una formalizzazione matematica che mi parse abbastanza elegante.
Per entrare in KAD basta conoscere l'indirizzo di un nodo, che poi mi permette di trovarne altri... Io il primo nodo non lo vedo come un server, ma come un altro client che so essere presente nella rete. Poi di fatto potrebbe essere un pc sempre acceso (come probabilmente avviene nel caso di emule e simili). Ma in altre implementazioni potrebbe essere una lista di nodi di cui uno è in linea in un preciso istante (non è in linea perché deve rimanere in linea, ma perché per caso si trova connesso e raggiungibile). Fra l'altro potrebbe essere vuota la rete KAD (o meglio, non esistere), e in quel caso la formerei io, sperando che altri pc abbiano il mio indirizzo, altrimenti ci sarebbe grossa frammentazione.

Comunque si nota molta stigmatizzazione che viene data dai media a questi protocolli semplicemente notando la penuria di paper scritti decentemente. Per esempio, cercando su google qualcosa sul pure p2p escono risultati che vanno dal medio-buono al pessimo con una netta preponderanza di questi ultimi, quindi è necessario stare molto attenti leggendoli.
To iterate is human, to recurse, divine. — L. P. Deutsch
I could be bound in a nutshell and count myself as a king of infinite space (Hamlet)
Non era proprio un genio – pensava che la figura che lui tracciava sul suo fianco nudo dopo il sesso fosse il numerale 8, per dare un'idea. — D. F. Wallace

N = 1 ==> P = NP [compscient]
Avatar utente
Flame_Alchemist
Gold Member
Gold Member
 
Messaggi: 861
Iscritto il: 14/08/2007 - 18:21

Re: P2P

Messaggioda skary » 27/06/2011 - 17:52

Si bhe la rete KAD come quella Gnutella è quanto di più vicino ho trovato all'idea che mi son fatto di p2p puro e resistente.
Perché mi domandavo se un domani un botnet incomincia un attacco DoS a questi server d'ingresso (saranno un centinaio non credo di più) mano a mano che i nodi si disconnettono non potrebbero più riconnettersi.

E comunque tali nodi , per quanto riguarda la fase che gnutella chiama PING-PONG (e che mi pare venga ripresa anche da KAD con nome differente) agiscono da server e non è bello.

Purtroppo i miei ricordi di TLC si fanno annebbiati per cui non so se quanto dico sia una bestialità o meno , però sarebbe bello che un servent (come li chiamano i gnutellani) che desiderasse connettersi alla rete possa fare una richiesta ad altri client in broadcast sul suo segmento.
Se non trova nessuno passa ai segmenti adiacenti (sempre con domande in broadcast) , così facendo forse (sento puzza di boiata) si potrebbe evitare di passare da un nodo centrale.

Il problema è che non so se si possa mandare messaggi in broadcast anche a segmenti in cui non si risiede (parlo del livello rete) però non ho idea di come e se possano generarsi conflitti con i router di frontiera o gli eventuali NAT (devo assolutamente rivedere TLC appena ho tempo , non ricordo una mazza).
Immagine

Le persone ottimiste credono che il nostro universo sia magnifico e che non vi sia modo migliore di vivere.
I pessimisti semplicemente temono che gli ottimisti abbiano ragione.
Avatar utente
skary
Utente
Utente
 
Messaggi: 1449
Iscritto il: 19/07/2007 - 21:58

Re: P2P

Messaggioda Flame_Alchemist » 27/06/2011 - 18:55

Perché mi domandavo se un domani un botnet incomincia un attacco DoS a questi server d'ingresso (saranno un centinaio non credo di più) mano a mano che i nodi si disconnettono non potrebbero più riconnettersi.

Certo, ma il punto di forza di queste rete è che basta che sia online un client (presente anche solo in un file di un pc che si sta connettendo) per poter generare un'intera kad. Non è detto che nei file d'ingresso (sarebbe riduttivo, nella mia visione, poi servirebbe vedere una reale implementazione) ci siano solo i "server", anzi penso che questo file venga popolato con tutti quelli che sono connessi da un po' di tempo (si può ipotizzare che saranno connessi anche dopo qualche ora, e in effetti sperimentalmente si verifica questo) senza che necessariamente siano sempre connessi. Quindi per esempio anche il mio portatile potrebbe finire in questo file (ovviamente non di tutti i pc, ma solo dei miei vicini di KAD).

Il problema è che non so se si possa mandare messaggi in broadcast anche a segmenti in cui non si risiede (parlo del livello rete) però non ho idea di come e se possano generarsi conflitti con i router di frontiera o gli eventuali NAT (devo assolutamente rivedere TLC appena ho tempo , non ricordo una mazza).

No, credo che un messaggio broadcast non possa entrare in altri segmenti. Un broadcast in una rete si blocca al primo router che trova (cioè, nella maggior parte delle reti domestiche, al modem-router che collega al doppino). (Sarebbe per esempio impossibile creare tabelle di routing)
agiscono da server e non è bello.

Anche se si usassero messaggi di broadcast questo pezzo non cambierebbe (a meno che mi sfugga qualcosa) perché l'unica cosa differente sarebbe la scoperta del primo client a cui collegarsi.
To iterate is human, to recurse, divine. — L. P. Deutsch
I could be bound in a nutshell and count myself as a king of infinite space (Hamlet)
Non era proprio un genio – pensava che la figura che lui tracciava sul suo fianco nudo dopo il sesso fosse il numerale 8, per dare un'idea. — D. F. Wallace

N = 1 ==> P = NP [compscient]
Avatar utente
Flame_Alchemist
Gold Member
Gold Member
 
Messaggi: 861
Iscritto il: 14/08/2007 - 18:21

Re: P2P

Messaggioda skary » 27/06/2011 - 19:56

Flame_Alchemist ha scritto:
Perché mi domandavo se un domani un botnet incomincia un attacco DoS a questi server d'ingresso (saranno un centinaio non credo di più) mano a mano che i nodi si disconnettono non potrebbero più riconnettersi.

Certo, ma il punto di forza di queste rete è che basta che sia online un client (presente anche solo in un file di un pc che si sta connettendo) per poter generare un'intera kad. Non è detto che nei file d'ingresso (sarebbe riduttivo, nella mia visione, poi servirebbe vedere una reale implementazione) ci siano solo i "server", anzi penso che questo file venga popolato con tutti quelli che sono connessi da un po' di tempo (si può ipotizzare che saranno connessi anche dopo qualche ora, e in effetti sperimentalmente si verifica questo) senza che necessariamente siano sempre connessi. Quindi per esempio anche il mio portatile potrebbe finire in questo file (ovviamente non di tutti i pc, ma solo dei miei vicini di KAD).

Il problema è che non so se si possa mandare messaggi in broadcast anche a segmenti in cui non si risiede (parlo del livello rete) però non ho idea di come e se possano generarsi conflitti con i router di frontiera o gli eventuali NAT (devo assolutamente rivedere TLC appena ho tempo , non ricordo una mazza).

No, credo che un messaggio broadcast non possa entrare in altri segmenti. Un broadcast in una rete si blocca al primo router che trova (cioè, nella maggior parte delle reti domestiche, al modem-router che collega al doppino). (Sarebbe per esempio impossibile creare tabelle di routing)
agiscono da server e non è bello.

Anche se si usassero messaggi di broadcast questo pezzo non cambierebbe (a meno che mi sfugga qualcosa) perché l'unica cosa differente sarebbe la scoperta del primo client a cui collegarsi.


mmm
Il fatto è che pensavo , reti come freeNet che devono essere resistenti o le reti KAD (che generano qualche perplessità alle varie agenzie del copyright) anche se dopo il primo login ti lasciano gli IP dei tuoi vicini , quello che ti rimane sono IP dinamici , che statisticamente non restano online per più di 24h l'uno (con eccezioni ovviamente).

Quindi se i server con IP statici , principali , che vengono adoperati per collegarsi alla rete venissero intasati per un periodo sufficientemente lungo , durante il quale tu non ti colleghi per più di 24h , allora è probabile che finisca per il non avere più riferimenti validi nel tuo file.

Ammettiamo per esempio (perché ho idea che ho frainteso cosa tu intendi con il fatto che pochi nodi possono costruire una rete KAD) che la rete KAD in questione è composta da 10 nodi di cui 1 è il famoso "server" sempre online ad indirizzo statico che serve a far loggare gli altri ed i nuovi che non si sono mai loggati.

Io lo attacco ad oltranza e questo va offline (il server per il login) , nel mentre 5 dei restanti 9 si disconnettono ; di questi 2 per 48h mentre 3 per pochi minuti (quindi quei 3 riusciranno a rientrare sfruttando gli indirizzi dei 4 che non si sono mai mossi) essi entreranno però con un nuovo indirizzo IP dinamico che comunicheranno ai 4 che non si sono mossi (nel mente è passata un ora) , ora si disconnettono anche i famosi 4 di prima (quelli che non si erano mossi) e rientrano pochi minuti dopo con un ip differente (possono rientrare in quanto i precedenti 3 gli avevano comunicato il loro nuovo ip).
A questo punto nella mia situazione ipotetica sono passate 2h dall'attacco al server centrale e sono rimasti 7 nodi connessi , tutti quanti in grado di disconnettersi e riconnettersi , ma con ip differenti rispetto a quelli di quando l'attacco era cominciato ; ecco che 46h più tardi quando i 2 nodi (quelli che si erano disconnessi inizialmente e premettevo che sarebbe stato per un lungo periodo) tenteranno di riconnettersi scopriranno che nessuno degli ip nella loro lista è funzionante.

Se la situazione si protrae sufficientemente a lungo la rete si spopola.
Se invece di essere attaccato il server centrale fosse posto sotto sequestro (la situazione sarebbe irreversibile) i nodi superstiti potrebbero riorganizzarsi scambiandosi info per un nuovo server , ed andrebbero quindi avanti , ma gli altri 2 non potrebbero più sapere quale è il nuovo server e sarebbero tagliati fuori , quindi se i sequestri fossero fatti sistematicamente ricadremmo nuovamente nella situazione in cui la rete si spopola (sto pensando a reti come FreeNet che devono essere resistenti per operare dove ci sono regimi e censura).

Ora tu probabilmente obbietterai dicendo che è impossibile che tutti i nodi abbiano cambiato ip nel lasso di tempo in cui un nodo è offline a meno che questo non vi resti per anni o mesi.
Vero , ma questo a patto che tutti i nodi abbiano una visione pressoché completa della topologia della rete , cosa che mi pare abbia un costo proibitivo (computazionalmente) , la situazione che descrivevo sopra credo si possa applicare a quelli che tu chiami vicini KAD (sono ignorantissimo in materia non so se mi sono espresso correttamente e se i miei presupposti siano corretti) che suppongo essere in numero limitato.

Per quanto riguarda il broadcast avevi ragione non è possibile (ip lo supporta ma solo su reti private).
Lo scopo che avevo in mente era che se sono rimasto tagliato fuori e non so chi contattare posso :
fare una scansione di tutta la rete Internet alla ricerca di un ip che mi confermi che fa parte della rete p2p che cercavo
controllare se nelle reti vicine ci sono ip che fanno parte della rete p2p che cercavo.

Dato che l'utente è sempre (quasi sempre) una foglia nei collegamenti internet avrei dovuto controllare prima nella mia rete locale se trovavo qualcuno , in caso negativo risalire di un livello e vedere che reti ci sono a disposizione , tentare per ognuna di esse.

In caso negativo risalire ancora di un livello , vedere che reti sono a disposizione , per ognuna di esse vedere che sottoreti sono disponibili e per ognuna delle sottoreti cercare un utente della rete p2p che sia attivo... e così via finchè non lo trovo.

Se nelle sottoreti avessi potuto usare il broadcast sarei stato più rapido ... ma non è possibile.
Immagine

Le persone ottimiste credono che il nostro universo sia magnifico e che non vi sia modo migliore di vivere.
I pessimisti semplicemente temono che gli ottimisti abbiano ragione.
Avatar utente
skary
Utente
Utente
 
Messaggi: 1449
Iscritto il: 19/07/2007 - 21:58

Re: P2P

Messaggioda crap0101 » 27/06/2011 - 22:23

al riguardo avevo letto un (creo fosse una breve presentazione) testo dal titolo
Kademlia: A Peer-to-peer Information System Based on the XOR Metric
.
Se vi capita leggetelo e dite come vi sembra (io dovrei rileggermelo che non lo ricordo benissimo).
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
Avatar utente
crap0101
Utente
Utente
 
Messaggi: 392
Iscritto il: 02/01/2008 - 03:43
Località: ora sono qua

Re: P2P

Messaggioda skary » 27/06/2011 - 23:01

Purtroppo no
Ho letto solo frettolosamente su wikipedia per KAD e un articoletto che ho trovato (5 pg circa) per gnutella.
Immagine

Le persone ottimiste credono che il nostro universo sia magnifico e che non vi sia modo migliore di vivere.
I pessimisti semplicemente temono che gli ottimisti abbiano ragione.
Avatar utente
skary
Utente
Utente
 
Messaggi: 1449
Iscritto il: 19/07/2007 - 21:58

Re: P2P

Messaggioda Flame_Alchemist » 28/06/2011 - 08:44

perché ho idea che ho frainteso cosa tu intendi con il fatto che pochi nodi possono costruire una rete KAD
Un nodo singolo può costituire una rete KAD, non è necessario che siano migliaia (come nel caso appunto di emule). Io per esempio se scrivessi una implementazione di kad e la volessi usare sui miei due pc potrei tranquillamente (ovviamente non avrebbe molto senso, sarebbero altre le soluzioni da usare) e potrei dare in giro il mio IP per fare in modo che chiunque si possa connettere.

che la rete KAD in questione è composta da 10 nodi di cui 1 è il famoso "server" sempre online ad indirizzo statico che serve a far loggare gli altri ed i nuovi che non si sono mai loggati.
Io lo attacco ad oltranza e questo va offline (il server per il login)... Se la situazione si protrae sufficientemente a lungo la rete si spopola. Se invece di essere attaccato il server centrale fosse posto sotto sequestro (la situazione sarebbe irreversibile) i nodi superstiti potrebbero riorganizzarsi scambiandosi info per un nuovo server... (sto pensando a reti come FreeNet che devono essere resistenti per operare dove ci sono regimi e censura).

Sì, in queste condizioni limite la rete si spopolerebbe senza dubbio. Anzi, non si spopolerebbe, cesserebbe di esistere. A questo punto entra il fattore sociale, è semplice creare un'altra rete: l'indirizzo del nuovo "server" può essere pubblicato su internet o può essere scambiato di persona.

In casi reali è improbabile che si riesca a fare un dos che mandi offline tutti i "server", prima di tutto perché non sono determinabili tra i milioni di utenti connessi. Poi ho la sensazione che il ddos vada fatto su un altro protocollo (per esempio HTTP) perché se volessi attaccare mandando moltissime richieste kad (tipo find_value) passerebbero prima per i miei vicini, e loro finirebbero offline (perché probabilmente sono dei pc domestici e non reggono migliaia di connessioni), senza causare particolari problematiche alla rete (che avrebbe ancora la maggior parte dei client ancora connessi).

la situazione che descrivevo sopra credo si possa applicare a quelli che tu chiami vicini KAD (sono ignorantissimo in materia non so se mi sono espresso correttamente e se i miei presupposti siano corretti) che suppongo essere in numero limitato.

Il protocollo kad usa una metrica a XOR, ovvero fa uno XOR tra il mio indirizzo a 160 bit e quello di un altro: il numero che esce è la distanza. Per come è costruita la rete, io conosco bene tutto ciò che mi è vicino, meno bene quello che è lontano. I vicini sono organizzati in k-bucket in modo che, per l'i-esimo k-bucket ogni indirizzo presente abbia distanza compresa tra 2**i e 2**(i+1) da me; ogni bucket può contenere 20 indirizzi (e credo che i vada da 0 a 160). Così copro tutte le distanze possibili ma salvo pochi indirizzi per ogni distanza, che non è un problema, in quanto la ricerca è poi ricorsiva. Salvo 160*20=3200 indirizzi, quindi.

Kademlia: A Peer-to-peer Information System Based on the XOR Metric.
Se vi capita leggetelo e dite come vi sembra (io dovrei rileggermelo che non lo ricordo benissimo).

Queste sono le specifiche di Kademlia: a me è sembrato davvero interessante e con della bella matematica.
To iterate is human, to recurse, divine. — L. P. Deutsch
I could be bound in a nutshell and count myself as a king of infinite space (Hamlet)
Non era proprio un genio – pensava che la figura che lui tracciava sul suo fianco nudo dopo il sesso fosse il numerale 8, per dare un'idea. — D. F. Wallace

N = 1 ==> P = NP [compscient]
Avatar utente
Flame_Alchemist
Gold Member
Gold Member
 
Messaggi: 861
Iscritto il: 14/08/2007 - 18:21


Torna a Il Pozzo della conoscenza

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

cron