[JDEV] File transfer and Jabber
Jens Alfke
jens at mooseyard.com
Sun Apr 22 20:46:23 CDT 2001
On Sunday, April 22, 2001, at 09:52 AM, Rob Kooper wrote:
> Since we already have the whole connection system in jabber I was
> thinking
> of when I want to transfer a file, I'll send it to the server that I am
> connected to and send the file as chunks (size and rate depending on
> flowcontrol parameters).
In-band file transfer seems to be a somewhat controversial topic. I
brought it up a few weeks ago and several people objected to sending all
that data through the server. It is, however, by far the most
straightforward solution to firewall and NAT issues.
> The server can then either collect the chunks till
> all data is received, and then send the chunks to the receiving user
> (after
> first asking for its flow control parameters).
> [...] The flowcontrol I am talking about will contain the size of the
> packet to
> send and the time between packets.
I think it would be a lot simpler if the transfer were driven by the
recipient. First off, because that user should be able to decide whether
to receive any of the file at all. Then, if desired, the receiving
client can send <iq> queries to the sender's client to receive chunks of
the file data; each query includes the file/resource name, possibly an
authenticating 'cookie' provided by the sender, and a byte range to
receive. There's no need for explicit flow control because the receiving
client only requests chunks as fast as it can receive them.
There's no need for any special server support at all. All that's going
on is two clients sending special <iq> queries and responses to each
other. Purely a matter for client developers to standardize and
implement.
Other notes:
• File sharing can be an extension of this, where the provider
advertises (via a namespace in its public server-side storage?) what
files are available, then other clients use the same queries to request
chunks.
• The chunk size should be limited to some reasonable amount like 32k
since each chunk locks up the sender's/receiver's connection. Plus, XML
parsers may barf on huge elements.
• This also allows for out-of-order downloads: for example, some older
QuickTime movies include the header info at the end, so to stream such a
movie the receiving client might want to ask for the last few kbytes of
the file first.
• It would still be nice if the sender/receiver could negotiate whether
a direct P2P file transfer is possible, since this will always be more
efficient.
Thoughts?
--Jens
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: text/enriched
Size: 2540 bytes
Desc: not available
URL: <https://www.jabber.org/jdev/attachments/20010422/623ae31c/attachment-0002.bin>
More information about the JDev
mailing list