[JDEV] Q: oob and direct P2P communications
Jens Alfke
jens at mac.com
Thu Mar 29 11:51:18 CST 2001
On Thursday, March 29, 2001, at 12:43 AM, Daniel Veillard
<veillard at redhat.com> wrote:
> Of course this is completely dependant on the actual firewall setup,
> and also never forget that running HTTP on a port different than 80
> is usually extremely simple ;-)
I don't know of any kind of firewall that allows incoming connections to
arbitrary hosts inside. Usually this has to be configured on a
host-by-host basis, and no network admin I've ever met would take kindly
to doing this just so you could swap files with your buddies.
As for NAT, the problem is even worse since the machines inside don't
even have real addresses. The best you could do here is configure the
NAT server to map a particular incoming port to a specific machine on
the network; not very useful for us.
> Scaling, since the server may have to keep them around and somewhat
> acts as the bottleneck for the number of client you can support at once
There's no need to guarantee that file transfers will be stored for
offline users. I think it would be perfectly appropriate if such a
message were rejected if the recipient were offline.
I'm not convinced file transfers are going to bring servers to their
knees. SMTP servers hold up fairly well. And the rest of Jabber is
pretty low-bandwidth. Moreover, ICQ and Yahoo manage to support zillions
of users while having protocols that send file transfers through the
server when necessary.
> Welcome to reinventing TCP on top of a different transport protocol.
Not exactly. Jabber presumably provides reliable delivery, and
reassembling a file from out of order pieces is trivial.
So my assertion remains: The oob specification in itself is inadequate
for the real world: very large numbers of hosts will not be able to
connect without some kind of help from a server. I think that making oob
and file transfer functional takes precedence over abstract
architectural goals like keeping server traffic to a minimum. Given that
the server may have to get involved, the question becomes: how is this
best to be done?
Here's another modest proposal: a lightweight relaying mechanism that
creates a virtual socket between the two clients. In the worst case,
each client opens a new socket to its local server and the two servers
(which are known to be able to connect directly) open a socket between
them to relay the traffic.
--Jens
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: text/enriched
Size: 2505 bytes
Desc: not available
URL: <https://www.jabber.org/jdev/attachments/20010329/e7ac86a8/attachment-0002.bin>
More information about the JDev
mailing list