[Foundation] Last Call standards

Dave Waite mass at akuma.org
Fri Dec 13 16:56:15 CST 2002

Justin Karneges wrote:

>This doesn't sound like a problem, except let me share my experiences with the 
>council and DTCP.  Most of the council does not care about this sort of 
>thing.  The only person I can ever talk to about it is temas.  This number 
>should be higher.
As a council member, I feel filetransfer is important. I have a number 
of friends who do not currently use Jabber because of glaring bugs in 
file-transfer (and not even so much that it is or is not there, but that 
it is there and works so horribly between different clients). I really 
would like to see a comprehensive out-of-band transfer document. in-band 
transfer is another matter, but I'm not really that opposed to it as 
long as out-of-band exists.

However, there are quite a few JEPS for file transfer and even more 
'theories' running around about how file transfer should/could work. I 
have shied away from participating in file transfer work because there 
are so many conflicting proposals and implementations out there - I want 
to see a single file-transfer standard finalized, and while I would be 
more than happy in providing advice to that JEP, I haven't seen the 
community rally behind just one yet. Taking a side in skirmishes just 
isn't worth my time. This is not saying I won't provide technical 
evaluation and help if asked for it - I will always do this. It is more 
that I have had faith that someone would set up and consolidate the 
issues and opinions and try to unite the camps - someone besides me. ;-)

That said, what I'm _hoping_ for in a filetransfer is:

- Use of standard network protocols for initiation and transfer. Most 
often when people think they can do it better themselves, they either 
can't or the existing mechanism didn't meet their precise needs. Using 
something like SIP for initiation or HTTP for transfer means I can use 
existing code in my language of choice for implementation, or at least 
as a major stepping stone.

- Proxied data transfer, with optional direct transfer. I mostly want to 
see file transfer work in all network configurations, not be overly 
complicated for the sake of optimization. Preferably, it would only fail 
if there was some sort of transient or policy error (remote user went 
offline, proxy service unavailable, file transfer exceeds maximum size 
or user quota). I also would like someone who exposes a flash client or 
java applet client to their user base to be able to support file 
transfer out-of-the-box, which is difficult with direct transfers.

I would prefer direct transfer, but understand that it would take quite 
a bit of logic in order to make this work. (For example, both entities 
could have real IPs but be behind firewalls which block ICMP - 
attempting a direct connection first would mean that the file transfer 
would sit idle until the operating system gives up on retrying the 
initial connection).

- Understanding that the client is supposed to be thin, and that 'server 
knows best'. For non-enterprise users, there should not be configuration 
required for getting a client to transfer files correctly. The 
configuration should be a function of the server and be performed by the 
service administrator. For corporate servers, administrators who want to 
enable file transfer can configure whether direct connections would work 
and even additional parameters required for direct connections. Having a 
proxy server open to the outside in this environment means that there is 
no additional network traffic, only additional latency in the transfer 
and load on that machine. Even on a public server, you can do 'tricks' 
like having the server attempt a dummy transfer operation whenever the 
client's session starts to determine if inbound communication is possible.

For a distributed client/server system, the logic for filetransfer 
belongs on the server. There also exists the possibility for offline 
file transfer - having files waiting for when the client connects again. 
Only the server would know if this sort of service is available for that 

- Allows enterprise environments to disable or restrict file transfer. 
Some companies are required by law to track electronic communications, 
and they need to either be able to restrict file transfer to only be 
proxied, or disable file transfer thru IM altogether.

- Provides the option for later support for security and encryption.

- Is scalable at least to 10 TB files and 500k users connected to one 
server / farm (this is ignoring the network bandwidth issues, and 
focusing exclusively on the hardware requirements for the proxy service 
and whether the proxying can be adapted to this hardware)

I'm not hoping for people to dream up a generic tunnelling protocol or 
initiation protocol for non-Jabber protocols. If they wish to do this, I 
would hope they would do so under the IETF.

Also keep in mind that while I only want one 'standard' file transfer 
protocol, I wouldn't mind others being proposed as informational which 
provide additional functionality (e.g. a mac client using Rendezvous, or 
tftp transfers on a local network.)

-David Waite

More information about the Members mailing list