View Single Post
  #1 (permalink)  
Old December 5th, 2002
LeeWare LeeWare is offline
Valued Member contributor
 
Join Date: August 4th, 2002
Location: Chicago, USA
Posts: 321
LeeWare is a great assister to others; your light through the dark tunnel
Post NAT Issues / Uploads

Understanding NAT Issues.

In Maximizing Upload/Downloads Success I outlined a procedure which includes a provision for people who are having problems

sharing files with others (specifically people on hosts which are using NAT.) I can see by the responses from one of the

more knowlegable users (you know who you are) that there is some confusion over the problem my suggestions were intended to

address.

This thread is being started to clarify these issues for anyone interested in some ofthe challenges facing users who wish to

share files on Gnutella but can't seem to get it to work correctly.

I recommend that you read this post carefully and make an effort to clearly understand the problem before posting counter

productive comments.

My intent is to make sure that the comments posted to this thread add to the value of the conversation. This discussion seeks

to addess this issue technically.

Recommendation #1 Understand your connection to the Internet. You can go to the following site and look at the various

broadband implementations:

http://www.dslreports.com/pictures

Your connection to the Internet will fall under one of these categories the problems you are likely to have will be related

to your connection.

Recommendation#2 Most firewall issues can be address by LimeWire and most p2p application that support push request. This

usually works unless both users are behind firewalls.


Recommendation#3 Learn a little about the problem / Technology

For general information on how gnutella based applications work (ping, pong query, queryhits, http get and push requests.)

Goto the following site and view the flash presentation great resource for non-techies.

http://www.toadnode.com/site_how_toa...ilx?idVisitor={0917DC6F-6B2A-4B6C-8CE1-15832277C0C5}

Now, for the issue of NAT and forcing the IP. If you don't know what NAT is, or how it works, you can find a complete

overview of the technology here:

http://www.howstuffworks.com/nat.htm


User Issue: "I get lots of hits on my files but no downloads, is something wrong?"

Yes, if your using NAT.

The basic problem with NAT and p2p based application is this:

Your messages can make it onto the network because NAT does the translation between your machine and the machines you are

talking to. (Which means you can search and even download from other people without a problem.) If you can connect, search

and download you don't have to worry about port forwarding or anything of that nature as these activities prove that you can

talk to the network.

Remember this issue we are attempting to address is being able to send or have files uploaded from our/ your computer onto

the network.

When you are using a p2p application that application reads the IP address from the machine it is installed on. Now if the IP

happens to be a NAT Address (192.168.*.* or 10.*.*.* most likely) it inserts this IP into the QueryHit messages and even the

Pong Messages (This happens at the application level NOT the network level.)

Any communications with a NAT based host on the Gnutella network will result in the messages from that machine containing the

NAT address in the Pong message and the QueryHit messages. When someone clicks on these results in their favorite p2p

application it will first attempt to contact the host ip embedded in the queryhit message (which happens to be a private net

ip.)

Private Net Ip address cannot be routed over the public Internet please see: http://www.faqs.org/rfcs/rfc1918.htm for more

information on private network addresses.

When this fails it immediately attempts to send a PUSH request to the host that originally sent queryhit but this fails

because the host just before the original sender cannot communicate with a Private NET IP so the message is dropped (These

are all application level communication failures.)

So how do you fix this? Force the IP or binding in the Application this causes the correct IP to be embedded in the messages

leaving your p2p application. By default most p2p applications assume that you have a public net IP address and this option

is not configured by default.

These issues are not new ones but very old ones to anyone that's been around a while.

http://www.oreillynet.com/cs/weblog/view/wlg/317

Read the sections on experiments and results from the following article.

http://www.firstmonday.org/issues/is...dar/index.html



Hope this helps to clarify the issue or confuse you a little more :-)
__________________
Lee Evans, President
LeeWare Development
http://www.leeware.com
Reply With Quote