[standards-jig] IBB Again

David 'TheRaven' Chisnall theraven at sucs.org
Mon May 5 18:14:55 UTC 2003

So, to summarise:

Jabber is not the mechanism for delivering every type of data.
People will actually need to use other protocols at some point.
The protocols fall into two categories:
 - Those requiring reliable TCP style delivery, such as file transfers.
 - Those requiring speed and simplicity, but not reliability, such as 
UDP / RTP based things such as video conferencing.
The people on each end of these connections will be Jabber users, and 
Jabber should be able to set up the connections using some kind of magic.
Some of these people will be hidden behind firewalls, and so will not be 
able to initiaite, or receive connections.
If both parties are in such a possition then a fall-back would be nice 
which routed the stream through Jabber.

Therefore what is needed is a way to:
Specify the type of connection required (Reliable / Unreliable, Stream / 
Packet based).  
Specify the connection abilities of the client (can make connections, 
can receive connections on specific port, can do neither).
If one party can make a connection and the other can receive, then we 
are all happy, and can let them get on with it.
If neither can, then we need to try to tunnel the transmission.  This 
can be done by each client opening a local socket and instructing the 
external program to connect locally, while data is transmitted over the 
Jabber network.

Some issues with tunnelling:
Bandwidth is expensive, and sending lots of binary data is going to 
break the server.
Karma should limit this, and hopefully TCP's rate limiting algorithm 
will adjust to compensate for this.  UDP messages can just be dropped by 
the server.

More information about the Standards mailing list