On Wednesday 26 April 2006 00:05, Matthew Toseland wrote:
> > > - ARKs. If you can connect to one node, it can tell your other peers
> > >   what your new address is via an Address Resolution Key or similar
> > >   mechanism.
> >
> > Sounds interesting. We should discuss this in more detail. Could you
> > please describe was is already available and what should be implemented.
>
> ARKs were once implemented in 0.5, and didn't work (because routing
> didn't work). The idea is simply that you have an updatable key
> associated with each node, (on 0.7 it would be a USK), which contains
> the node's current reference. The identity and pubkey should not change,
> but the physical.udp can. When we have connected to the network but
> can't connect to all our peers, we look up our neighbour's ARKs (these
> are included on their references or are generated from their pubkeys),
> to find what their new IP is. This is designed as an in-freenet
> substitute for dyndns (which is blocked in China), but obviously doesn't
> work if you can't get a single connection up.
Sounds interesting. However, I think if I apply for SoC it would be enough if 
I work on STUN and UPnP.

>
> > > Now, with regards to STUN, this is a mechanism whereby you can contact
> > > a well known server to discover your own IP address, and those of any
> > > NATs, in order to do hole punching? Note that if you can contact ANY of
> > > your peers, you can discover your IP anyway, tell your other peers what
> > > your IP is, and connect to them... Nonetheless, STUN support does sound
> > > useful (provided that STUN servers are widely deployed, that STUN
> > > clients are widely deployed, and that the way Freenet uses it will not
> > > distinguish it from other STUN clients). Is it feasible to do this in
> > > Java? Does it require raw packets? And is there already a (java)
> > > library out there to do it? (Less duplicated code => less bugs)!
> >
> > STUN does not only tell you your official ip address, instead it also
> > tells you what kind of NAT is in-between you and your communication peer.
> > This information can be helpful to setup a communication between two
> > hosts that are behind NATs.
>
> That is potentially useful yes; it could tell us that we are on the same
> LAN as the node, and we could publish our LAN address to our darknet
> peers.
I agree.

>
> > Yes, STUN is easily doable with Java. All you need are UDP packets. I
> > already started implementing a STUN library a few month ago because I
> > would like to use such a library in another tool. So far, the basic stuff
> > is implemented. However, I would like to develop additional features.
>
> Excellent. There aren't any existing libraries we could use? There are
> for UP&P...
A few month ago, I was looking for a STUN library. During my search I found 
one STUN library. The library was a quick hack and unmaintained, so I decided 
to develop my own STUN library.
There are a few UPnP-libraries out there. I think one of my SoC tasks should 
be to evaluate the different libraries. If a particular library is 
appropriate (regarding features, sourcecode quality, and license) I should 
add this library. If I cannot find an appropriate library (probably very 
unlikely) I should develop my own UPnP-library. 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 481 bytes
Desc: not available
URL: 
<https://emu.freenetproject.org/pipermail/tech/attachments/20060426/c60fb630/attachment.pgp>

Reply via email to