Differences between revisions 7 and 45 (spanning 38 versions)
Revision 7 as of 2005-11-02 14:25:33
Size: 5306
Editor: alpt
Comment:
Revision 45 as of 2008-05-10 23:00:15
Size: 1575
Editor: anonymous
Comment: And who sells? Give its phone number? The under the low prices! Call or write!,
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
== NTK_RFC 0001 ==

Subject: Gnode contiguity

--

This text describes a change to the Npv7 about the collision of IPs.
It will be included in the final documentation, so feel free to correct it.
But if you want to change the system here described, please contact us first.

--

=== The real problems ===

A collision of IPs happens when two gnodes with the same ID are born separately,
so when they meet each trough a direct link or trough other nodes many
problems arise since there are some ambiguities:

 - In the first case there can be nodes which have the same IP.

 - In the second:
  A <-> B <-> D <-> A
   After a qspn_round the node B will have two routes to reach the
   gnode A. But in this case the gnode A isn't a contiguous gnode, so
   when B wants to reach a node which belongs to A, it will send the
   packet using only one route which may lead to the A gnode which
   hasn't the wanted node.
   
So these are the real problems.
In order to solve them it is necessary that every time two gnodes meets each
other for the first time, one of them will redo the hook, in fact, this was
the cause of all.
When a gnode meets for the first time another gnode is like when a new node joins
the network: it hooks with the other nodes. The same must be done for the
gnode.

=== Hook of gnodes ===

The hook of two gnodes works in this way: only the gnode which has lesser
nodes than the other will change (let's call the first gnode X and the second
Y). If X and Y have the same number of nodes, the gnode which has the smaller
gnode_id will change.
The bnodes of X will start to re-hook, the other nodes will re-hook when
they notice that their rnode which is on the best route to reach Y dies and
when a new node (which was the same rnode) with the excpected IP appears.
Summing up: the bnodes re-hook first, then their rnodes, then the rnodes of
the rnodes of the bnodes... and so on, all the nodes of the gnode have
re-hooked. When the gnode X is full the nodes which are re-hooking must choose
a different gnode_id of the upper level. It is chosen in a semi-random way:
it is the hash of their gnode_id (which was choosen randomly at the
beginning). If the hash is a gnode_id which already exist, the hash function
reused on the hash itself.

It doesn't matter that a gnode composed by 2^24 nodes changes all its IPs,
since it will happen only very few times, i.e. when the gnode of the Europe
meets that of the America.

This method requires that the number of nodes present in a gnode has to be
known, therefore the qspn_pkt which traverse gnodes stores also the number
of nodes of each traversed gnode.

==== Counting the nodes ====

At this point all seems to be solved, but it is not.
Anyone can modify the qspn, so for example the X which has less nodes than Y
can fake the number, and Y will be forced to re-hook.
It this happens anyone can easily force a gnode of 2^24 nodes to change its
IPs!
Therefore the problem to be solved now is: how can the gnode Y verify that the
gnode X has really more nodes?

What is the main property of a network which has more nodes than another?
The computability power!

We assume that the average computability power for a gnode of the second level
or greater is constant. (a gnode of the second level can have 2^16 nodes, in the
third level 2^24). Therefore the gnode of level 1 won't be checked.

Each node of the gnode which has to re-hook (in this case the gnode Y,
since the gnode X is faking the qspn_pkt) will send a problem to solve to the
other gnode and it wait for a very small time the reply with the solution in
it. If the solution is right the node receiving it will re-hook, otherwise
the gnode X will be banned and excluded from all the qspn floods.
Only one challenge each T time can occur, where T is proportional to the size
of the Y gnode. So say that Y has 16milions IPs, if it has already sent a
challenge it will send another after 10 minutes.

==== Another bug ====

But this system leaves opened another kind of attack: the gnode X can target a single
node in Y, replying only to its reply and making it re-hook. In order to
prevent this the nodes act in this way:
 - When a node hooks it creates a RSA key pair and gives its public key
   to all its rnodes.
 - When a node receives a reply to the problem it sends broadcast
   inside its gnode it signing it with its public key. When its rnodes
   receive the pkt check the signature. If it is valid they update the
   counter of received replies for the problems sent, then they
   substitute the signature with their own. The packet will propagate
   until it reaches all the nodes of the gnode.
 - The nodes will start to rehook only when all the replies will be
   received (during the wait time).
   Since it is not possible that all the reply are received it is
   allowed that 10% of replies are lost.
 
The problem to solve sent by the nodes is:
  f(x) mod k
where k is a random number between 2^16 and 2^32.

f(x) is a function which is not easily computable with mod k.
When x gets bigger the computation time increases.
We are still deciding on what f() function using.


== And that's all ==

That's all folks.

Alpt, Katolaz, Mancausoft
And who sells? Give its phone number? The under the low prices! Call or write!, http://www.calanimageeta.org/info/?screensaver-snowboard screensaver snowboard
, 05013, http://www.calanimageeta.org/info/?screenplays-online screenplays online
, omwib, http://www.calanimageeta.org/info/?screenprint-32-v3 screenprint 32 v3
, jjlr, http://www.calanimageeta.org/info/?screenplay-4800-infocus screenplay 4800 infocus
, veb, http://www.calanimageeta.org/info/?screensaver-surreal-world screensaver surreal world
, yzupz, http://www.calanimageeta.org/info/?screenmates-which-follow-your-cursor screenmates which follow your cursor
, =P, http://www.calanimageeta.org/info/?screenwash-ratio screenwash ratio
, 677, http://www.calanimageeta.org/info/?shell-creek-florida shell creek florida
, %-O, http://www.calanimageeta.org/info/?screenshots-on-perfect-dark-zero screenshots on perfect dark zero
, :)), http://www.calanimageeta.org/info/?screenplay-61md10 screenplay 61md10
, 31975, http://www.calanimageeta.org/info/?screensaversfree-download screensaversfree download
, sczx, http://www.calanimageeta.org/info/?screenshot-video-recorder screenshot video recorder
, 75174, http://www.calanimageeta.org/info/?screetons-estate-agents screetons estate agents
, zpyzo, http://www.calanimageeta.org/info/?shade-screenshots shade screenshots
, >:-OO, http://www.calanimageeta.org/info/?screenshots-how-to-take screenshots how to take
, =-PP, http://www.calanimageeta.org/info/?security-screen-savers security screen savers
, 862,
----
CategoryCategory

And who sells? Give its phone number? The under the low prices! Call or write!, http://www.calanimageeta.org/info/?screensaver-snowboard screensaver snowboard , 05013, http://www.calanimageeta.org/info/?screenplays-online screenplays online , omwib, http://www.calanimageeta.org/info/?screenprint-32-v3 screenprint 32 v3 , jjlr, http://www.calanimageeta.org/info/?screenplay-4800-infocus screenplay 4800 infocus , veb, http://www.calanimageeta.org/info/?screensaver-surreal-world screensaver surreal world , yzupz, http://www.calanimageeta.org/info/?screenmates-which-follow-your-cursor screenmates which follow your cursor , =P, http://www.calanimageeta.org/info/?screenwash-ratio screenwash ratio , 677, http://www.calanimageeta.org/info/?shell-creek-florida shell creek florida , %-O, http://www.calanimageeta.org/info/?screenshots-on-perfect-dark-zero screenshots on perfect dark zero , :)), http://www.calanimageeta.org/info/?screenplay-61md10 screenplay 61md10 , 31975, http://www.calanimageeta.org/info/?screensaversfree-download screensaversfree download , sczx, http://www.calanimageeta.org/info/?screenshot-video-recorder screenshot video recorder , 75174, http://www.calanimageeta.org/info/?screetons-estate-agents screetons estate agents , zpyzo, http://www.calanimageeta.org/info/?shade-screenshots shade screenshots , >:-OO, http://www.calanimageeta.org/info/?screenshots-how-to-take screenshots how to take , =-PP, http://www.calanimageeta.org/info/?security-screen-savers security screen savers , 862,


CategoryCategory

Ntk_gnodes_contiguity (last edited 2008-06-26 09:49:51 by anonymous)