Showing posts with label TCP NAT Traversal. Show all posts
Showing posts with label TCP NAT Traversal. Show all posts

Sunday, November 18, 2007

Download free MP3s | Anonymous p2p | Friend to friend network


CLICK on image in TV.
Then CLICK on START button.
Answer YES to pop-up questions to connect.

Download free MP3s | Anonymous p2p | Friend to friend network
Share unsigned new band MP3s with anyone.
No set-up | Connects through firewalls

See development blog (kerjodando a mod of ANts p2p)
Only people who know your private swarm page web address can connect to you.
You are 100% private and you can share with everybody.

Saturday, October 06, 2007

Test Anonymous Network for New Unsigned bands


New URL www.Dargens.com

Now has STUNT working firewall tunnelling and Upnp.

Sorry still only windows - working on mac and Linux compatibility.

Need folks to help testing.

A long way from finishing but making good steady progress.

Developer will be working full time from 8th October 2007.

Also, issue that JRE 1.60_02 and JRE 1.60_3 only work when jar is first downloaded.

JRE 1.60_01 and previous JRE versions work perfectly.

Friday, September 28, 2007

itsDargens Social Network P2P File Sharing (Testing)


Hi,

Ready to test (Sat 29th September 2007 Michaelmas).

Goto http://www.itsdargens.com/

Click on top left picture in TV.

(no need to login or register)


On next page, Click on START button where it says, "click here to start kerjodando:"

(IF YOU don't see START button but something else the download and install java from here.)

To get music you need to install the p2p thing by answering yes to install questions.

Then search for mp3* and right click to download music.

Then tell me if it works.

Thanks

(What's new is that it should now connect through firewalls).

Ez

Monday, September 24, 2007

Social Network P2P Filesharing


Please email me ( ezzy.elliott@gmail.com ) it you can help test the new firewall hole punching features of itsDargens social network p2p filesharing.

Friday, August 31, 2007

Nearly There with File Galaxy


STUNT is not working, Casper has had to rewrite a huge amount of code to get it working but we are nearly there.

Next steps are:

  1. Clean data on site
  2. Get site certificate to stop warning message when downloading client
  3. Finish explanation on how to use client on the site.
  4. Fix bug that stops client working with JRE 1.6_02 (works with 1.6_02)

Monday, August 13, 2007

Audio Galaxy


1. Testing has stopped on TCP NAT traversal due to Casper having to move City. Looking to re-start soon. A real pity as we were very close to completing project. C'est la vie - Suppose there is more to life than hacking code.

2. Web Gui to have three parts:

  • Search form (done)
  • Search results page and link to queue item for download (partly done)
  • Download queue page with progress indicator and link to open downloaded file
As Vincent has quit the project due to lack of free time I am looking for a new person to do this.

3. The completed kerjodando p2p will closely resemble the old Audiogalaxy website:
  • Web based interface
  • Queue files for later delivery and
  • Full parsing of mp3 meta data.

Monday, August 06, 2007

TCP NAT Traversal Testing for Anonymous File Sharing


Firewall hole punching implemented.

Now testing step by step.

So sometimes the test group http://www.itsdargens.com/swarm/show_one/86d1cca8104f981648eb1b1d0f0f3a39
might produce unexpected results.

Please try it we need more testers.

Monday, July 30, 2007

STUNT P2P TCP NAT Traversal on a Ad-hoc Overlay Network


I've been thinking about this TCP NAT Traversal (TCP hole punching a method that allows everyone to connect quickly without port forwarding).

I think the following changes are needed to kerjodando to make it work.

  1. Trusted Peers list (and itsDargens User database table) need to include two extra hidden fields, User ID (prob already in itsDargens database) and "use STUNT" flag. For example, if 100 users on a LAN connect to one group they will all have different user IDs although they have the same ip+port. Then when a user wants to connect to another user (after trying direct connection) they connect to STUNT using their user ID and signal (using SIPS) to another users ID. STUNT then tell them what ip+port to use to connect to that user ID. Also STUNT would set the "use STUNT flag" to yes.
  2. ItsDargens user database to change to include "use STUNT" flag
  3. Trusted peer file needs to download and use the included user IDs and "use STUNT" flag as well as ip+port.
The other thing I realised is that for signaling, users will have to maintain a connection to the STUNT server as long as they have a user (user ID) in their trusted peers list that they are not connected to.

However, once they have connected to all their trusted peers they can disconnect form the STUNT server.

Also, probably there will be some users that you can't connect to even with STUNT, maybe these should be marked as such in "use STUNT" flag and counted as connected when deciding if should disconnect form STUNT server.

To me a STUNT server consists of the following processes:
  1. Maintaing TCP user connections with many users (User IDs)
  2. Recording user (user ID) ip+port for at least two test connections from the user
  3. Calculating predicted ip+port for a user (User ID)
  4. Reply to a request to connect to a User ID with predicted ip+port
  5. Telling other User to also make a request etc
  6. Recording "STUNT flag" in user database table so that it can be included in downloaded trusted peers
  7. Recording if STUNT does not work


More About STUNT:

Found STUNT ( Simple Traversal of UDP Through NATs and TCP too) library in java:

http://nutss.gforge.cis.cornell.edu//jstunt-faq.php


What does the stunt.jar library provide?

It provides a way to establish unproxied TCP connections between two end-points, both of which can be behind a NAT. It returns a SocketChannel that can be used for blocking or non-blocking IO as the application desires.


How does one write a server-client or peer-to-peer applications with the library?

We have provided a simple server-client application consisting of an EchoServer ( http://nutss.gforge.cis.cornell.edu//EchoServer.java ) that accepts inbound connections from one or more EchoClient ( http://nutss.gforge.cis.cornell.edu//EchoClient.java ) applications.



Does the library require some infrastructure?

Yes. The library requires a rendezvous server (much like a directory server) where applications with one URI can find the application with another URI and coordinate to establish a connection. The library also requires some STUNT servers that help applications find out their external IP address and port for establishing the real connection.


Does the rendezvous server proxy data?

No. The rendezvous server only helps set up the connection. After that, all data is exchanged directly between the end-points and does not go through the rendezvous server.


Who provides the rendezvous and STUNT service? Who can use them?

We at Cornell University are providing a rendezvous and STUNT service for developers and researchers to use. However, if you wish to deploy your own application that uses the library, we ask that you set up rendezvous and STUNT servers only for your own applications such that you do not overburden the Cornell service (which is for research and development purposes) and so that outages and changes in the Cornell service doesn't affect your application. The rendezvous server ( https://gforge.cis.cornell.edu/frs/?group_id=15 )and STUNT server ( https://gforge.cis.cornell.edu/frs/?group_id=15 )code is freely available.


Is this library under active development? Will you implement feature X?

The library is a proof of concept that TCP NAT Traversal is possible and is intended to be a starting-poing for application developers who want to use it in a real-world deployable project. At the same time, it is a library that can be used more-or-less unmodified for research and quicky-development and prototyping of applications. Time permitting, I would like to implement various features that are requested; but I cannot promise that all features will be implemented in a timely fashion. I will do my best to make the library more suited to its primary goal -- show how the NAT TCP problem can be solved easily by applications.


I want to implement TCP NAT traversal in my application but don't want to use your library?

The TCP NAT traversal code is contained in the file STUNTCont.java ( https://gforge.cis.cornell.edu/plugins/scmcvs/cvsweb.php/old/stunt_java/src/net/nutss/stunt/STUNCont.java?cvsroot=cvsroot%2Fnutss ). It includes extensive documentation. Feel free to adapt the code to your application. The rendezvous service and the STUNT service are modular and may be replaced by your own implementations if you wish to use the rest of the library.



Also see http://en.wikipedia.org/wiki/STUN

Aslo see:

see STUNT

http://nutss.gforge.cis.cornell.edu/stunt.php

and

http://www1.ietf.org/mail-archive/web/p2prg/current/msg00789.html

and

http://en.wikipedia.org/wiki/NAT_traversal

and

http://reports-archive.adm.cs.cmu.edu/anon/isri2005/CMU-ISRI-05-104.pdf

and

http://emu.freenetproject.org/pipermail/tech/2005-September/011611.html

Thursday, July 19, 2007

TCP NAT TRAVERSAL and WEB GUI


I'm really excited at the moment.

Development is moving forward very quickly as my two developers and me are now working on ANts p2p everyday and they seem to be very enthused.

Once we have finished some house-keeping on the SVN and sorted out connections using trusted peers only we have two big things to work on.

They are working on are:

TCP NAT traversal and

Web Gui.

Both are very important for kerjodando as it is meant to be user friendly (web gui) and should be easy for small groups to use (TCP NAT traversal).

One big reason why ANts p2p version 1 does not work that well is because of human nature.

People in general (including me) are stupid and lazy.

So most people do not 'port forward' - so can only connect to those select few who do - this creates VERY BIG BOTTLE NECKS and security weaknesses.

Do you know how many people are connected to Ts**a and one or two others only - whereas Ts**a and one or two others have 20 connections!

Secondly, most people (even me ) can't be bothered to put their correct ip address in connections page - this stops them from being used by the random walk function, looking for peers with free slots, as it will show only user's internal ip address.

This leads to a very fragmented network with bottle necks.

Where there are no NAT issues for example on a LAN ANts version 1 works fine but put a NAT in and it doesn't for the reasons I mentioned earlier.

Well anyway TCP NAT traversal will make it possible for anyone to connect to anyone else this will mean that all peers will use up their maximum connections and so there WILL BE NO BOTTLENECKS ;-)

And the web gui will mean that ANYONE (who can code a web page) will be able to design a new GUI and that our GUI will be as EASY AS YOUTUBE or SEEQPOD to use ;-)

As for the new version of ANts p2p I am not convinced - it is either better or worse it can't be no change!