[JDEV] NAT Issues

Michael Brown michael at aurora.gen.nz
Sat Dec 16 02:45:17 CST 2000


[Just before I start, I should mention that I haven't had a great deal of
experience sending and receiving files from a Jabber client, so if I am
missing something please let me know]

I've just been fooling with ICQ a bit and it got me thinking - (how) does
Jabber handle this problem?

The problem with ICQ is that the file transfer almost never works.  The
reason for this is simple.  I, and most of my friends either are behind a
firewall or a NAT server.

Just talking about NAT for a bit - this means that I cannot receive any
files (or chat sessions, or anything else that requires a direct
connection).  I can send files fine because opening an outgoing connection
from a NAT client with no problem, but as soon as someone tries to open a
connection to me (send me a file) the request gets to the NAT server and it
has no idea which client to forward it to.

The end user perception of this problem is that "ICQ is flaky" or "I can
never seem to be able to download half the songs I try to in Napster", and
this is going to translate into "Jabber will never let me send files" etc.
I think this is going to be a major problem with Jabber, because we are
going to want to establish direct connections for anything that is too large
or inappropriate to go through the server.

Since NAT is used by ICS in any Microsoft OS later than Win98SE, I think
there will be more and more clients connect behind NAT servers.  Also I
believe (and can someone correct me if I am wrong please) that Linuxs IP
Masquerading is the same thing (although a lot harder to spell).

I believe that some "NAT aware" applications place the private IP address
inside the packet, so that the NAT server can route packets to the correct
NAT client, but I also under stand that there must be something configured
on the NAT server machine to enable it to do this (I think MS calls this a
"NAT Editor" - the supply one for ftp I believe).

Has this be covered already?  If so, is there a solution?

Thanks,

Michael.

[Of course thinking more about this, I am not sure how I get the first
incoming
message in ICQ, unless the first one always comes though the server.
Hmmm...]





More information about the JDev mailing list