On Monday 24 April 2006 21:15, Matthew Toseland wrote:
> On Fri, Apr 21, 2006 at 09:40:06PM +0200, Thomas King wrote:
> > Dear Freenet Hackers,
> > I occasionally use Freenet and I am highly interested in this technology
> > (not only because of my studies). However, during my usage I experienced
> > a few network problems due to NATs.
> >
> > So, I think about to apply for Google's Sommer of Code with the following
> > proposal:
> > - Adding STUN-support (RFC 3489) to Freenet to automatically collect NAT
> > related information. These information will be used to automatically
> > configure Freenet.
>
> We already have basic NAT hopping support (including on network IP
> address detection); more will be coming... The main remaining problem is
> the combination of NATs and dynamic IPs.
> Proposed measures in the near future:
> - Remembering the last detected address for each node across restarts
>   (separately from its claimed address).
Okay, I can also add such a feature.

> - 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.

>
> 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. 
There are lots of public available STUN server out there. Almost all sip-based 
VoIP applications use STUN to detect their official ip address. So, I doubt 
it will be possible to detect a freenet client only by intercepting STUN 
packets (if we add not a freenet-specific fingerprint to the STUN 
communication).
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. 

> I will gladly answer any questions any would-be freenet developer has on
> how the code works in order to assist them in building useful features. If
> you want to apply for Google SoC then by all means do, but it looks like
> there will be some competition.
I like competition. ;-)

>
> > Thanks in advance,
> > Thomas King
-------------- 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/20060425/8830ca03/attachment.pgp>

Reply via email to