Re: I Need help ftp'ing from my home xbox to my friends
NAT- Network Address Translation. (this is long, but informative)
basically it is the reason everyone in the world can access the internet without having to have a public IP address for every computer. this is the world of IPv4 IPv6 will allow for a public address for every machine, but that is a ways away. right now the most we can have publicly addressable is 16,777,214 addresses. Keep in mind that subnets like 10.x.x.x , 192.x.x.x and 172.x.x.x comprise private networks along with other addresses that make up testing and other non-public uses, so the amount of addresses available for the public to use on the internet drops those address pools out of use. with the remaining address being far smaller in number than the number of users on the internet, there has to be a way to make them stretch. This is done by NAT. which is the basis for all home routers. It allows for multiple computers to share one public IP address to access the internet. basically, you can serve many clients with one address. Routers are here to connect different address space networks together. That is why the name "gateway" sticks. Whether it is private home network to the internet or multiple subnets within a private network (like businesses) together.
EXAMPLE: public IP address of a.a.a.a (outside interface)
private network of b.b.b.b (inside interface)
every client connected to the router that has this "b" ip address can get to the internet, WHY? well simple. a client on the "b" network types in http://www.microsoft.com in their web browser. That request hits the router that has the "a" address on outside interface and a "b" address on the inside interface (private network). The router looks at the request and sees if anyone on the "b" network is www.micorsoft.com (via DNS, I will not get into this, but it is how the internet converts a alpha website name into IP address and hex), well the router sees nothing is on the "b" network that is www.microsoft.com, so it knows by a default route that any request that can't be served on the inside network, must be on the outside network (the internet, in this case). So the request is converted to hit the internet as coming from the router's outside address "a" not the client inside address "b". A port number is assigned by the router to specify the request as coming from the particluar client so it knows where to send the response when it comes back. the server at microsoft has no knowledge of your client computer "b" address and only sees the request as coming from the address of the outside interface on the router "a" address. The webpage is sent from microsoft back to the router with a corresponding port number attached to it. The router knows that by the port number that it sees on the respond from microsoft, that it goes to the particular client on the "b" network who initiated the request for the information.
This is the 10,000 foot view of NAT and how it is used for use on the internet. As proof, if you have more than one computer on your network, go to www.whatsmyip.com on each machine and see what address it says each of the computers is. You will notice they have the same public IP address. This is the address of the outside interface "a" of the router in every case.
The reason i bring this up is that you can have mulitple rules that bring similar results. You can set up your router so that every request that comes to it via say port 23 only goes to one machine on the inside of its network. If you don't have this rule in the router, the router has no idea who the request goes to since the port number doesn't match any previous inside client requests. It looks like the incoming request from the internet is unwelcomed and drops it. the router is the gateway. Run "ipconfig" from a command prompt and the gateway address is always the inside interface of the router. So with this in mind, you can specify rules in the router that state anything on port 23 udp or tcp goes to an internal ftp server. or for extra security you can set it so that only a request with a port of 23231 (port not in use) will go to the internal ftp server and not port 23. this keeps fishers out there from seeing your internal ftp server, but remember when telnetting to the inside server from the internet you must specify which port telent a.a.a.a:23231 for it to work. you can even have rules that state only one ip address with port 23231 or 23 or whatever is the ONLY request that will be sent to the internal ftp server or whatever server you want. This makes things much more secure. At this point we are getting into firewalling and that is a bigger animal than NAT.
I hope this helps explain things a bit more to you. If you have ANY questions, please don't hesitate to ask. Give specifics to your situation and i will be more than glad to help.
common port numbers for directed traffic types
http://www.iana.org/assignments/port-numbers
Jeff