On Wed, Jan 10, 2007 at 05:56:10PM +0100, <Alessandro Ordine>:
~> stavo riflettendo mentre studiavo i grafici delle simulazioni che avete
~> fatto per QSPNv2.
~> In ogni gnode, nel caso peggiore ci sono in media circa 256 pacchetti di
~> broadcast per starter node.
Consideriamo un gnode con k=256 nodi.
Nel caso peggiore, cioe' un grafo completo in cui tutti i nodi sono degli
starter node, si ha Phi_m = k.
Phi_m non indica i broadcast, ma la quantita' media di TP che passano da ciascun
nodo. Cioe', in questo caso, da ogni nodo passano in media circa 256 TP.
Un TP non e' affatto un normale broadcast, anzi non si puo' proprio chiamare
broadcast.
Se esageriamo, e facciamo si' che un singolo TP sia di 128 byte, includendo
chiavi pubbliche e tutto quello che e' possibile includere, vediamo che da
ogni nodo dovranno passare 32Kb di dati.
~> Quindi nel caso peggiore ci sono
~> 256^4=4294967296 pacchetti di broadcast nell'intera rete!!! Una caciara come
~> diciamo a Roma :-)
Non proprio. Un TP e' limitato dentro un livello,
(adesso, aggiungendo i livelli, supponiamo che le discovery vengano effettuate
contemporaneamente in tutta la rete, per la prima volta),
quindi il calcolo e' un po' piu' complicato:
i pkt generati in un g1:
g1=256*256 # da ogni nodo, 256 TP
i pkt generati in tutti i g1 di tutta la rete:
(supponendo che la rete sia di 2^32)
gt1=g1*256^3
poi dobbiamo considerare che in ogni livello avviene una cosa simile.
Ma qual'e' il layout dei gnode? Usiamo un grafo completo anche in ogni
livello. Questo sarebbe il caso peggiore.
Quindi Phi_m sarebbe sempre 256, ma nel lvl 2, quando un TP passa
attraverso un gnode, raggiunge tutti i nodi al piu' una volta, quindi
g1=256*256*256
gt1=g1*256^2
g2=256*256*256*256
gt2=g2*256
g3=256*256*256*256*256
gt3=g3
In totale:
gt3+gt2+gt1 == 3298534883328 ~= 3.29 * 10^12
Ora pero', pensandoci un altro po', ci accorgiamo che questi conti sono
totalmente inutili. Infatti:
1) I TP vengono scambiati "localmente". 3298534883328 non e' il numero
di pkt scambiati tra tutti i nodi, ma e' il numero di pkt
generati/creati.
E' come se ogni nodo parlasse con il suo vicino e noi stessimo
contando il numero di pkt che si generano totalemente nella rete.
Ovviamente e' un numero enorme, perche' i nodi sono molti, pero'
il carico imposto a ogni nodo e' irrisorio: ogni nodo sta'
semplicemente parlando con il suo vicino.
In sostanza, e' sbagliato considerare i TP come pkt
broadcast/multicast.
Sempre in questo caso apocalittico, il conto che bisognerebbe fare
e' quello di vedere il carico imposto a ogni nodo:
Prima abbiamo visto che era 32Kb per un nodo di un gnode. Ora
consideriamo i livelli (sempre nella situazione di grafo
completo a ogni livello).
Da ogni gnode, passano 256 TP. Quello che importa qui e che da
ogni nodo del gnode, ne passano pure solamente 256. Quindi il
conto e' facile:
32*4Kb == 128 Kb
Quindi il carico imposto a ogni nodo, durante questa discovery
gigante e' di 128Kb!
2) Ora vediamo un po' alcune considerazioni pratiche:
a) E' quasi impossibile che si arrivi in uno stato in cui 2^32 nodi
sono gia' connessi tra loro, non hanno mai fatto una discovery,
e tutti contemporaneamente iniziano a farla.
La rete, invece, cresce discretamente: prima un piccolo core,
poi vari nodi si agganciano, e cosi' via. L'andamento potrebbe
essere anche esponenziale, ma non importa.
b) La probabilita' che 2^32 nodi si dispongano come un grafo
completo (e per di piu' a ogni livello), e' quasi pari a zero ;)
a dopo
--
:wq!
"I don't know nothing" The One Who reached the Thinking Matter '.'
[ Alpt --- Freaknet Medialab ]
[ GPG Key ID 441CF0EE ]
[ Key fingerprint = 8B02 26E8 831A 7BB9 81A9 5277 BFF8 037E 441C F0EE ]
_______________________________________________
Netsukuku mailing list
[email protected]
http://lists.dyne.org/mailman/listinfo/netsukuku