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>
