[crossfire] Steam Protocol Proposal

Mark Wedel mwedel at sonic.net
Mon May 8 02:33:51 CDT 2006


  Some general quick thoughts:

  As stated before, selective 'per packet' compression has the nice advantage 
very easy to do - no need for extra buffers on the client or server side needed.
That said, if someone is willing to write that extra code, sounds good to me.

  A quick question is - are multiple simultaneous stream types supported?  For 
example, suppose I'm using zlib stream all the time.  But for passwords, SSL is 
used.  Does that mean the SSL data is encapsulated in the zlib stream, or does 
it mean that the zlib stream ends, and the ssl stream starts, ssl stream ends, 
then zlib restarts?

  I'm personally thinking that it is much easier to only support a single stream 
at a time.

  I actually don't think the mechanism proposed would work really good for SSL 
and password data - this is because of the latency involved in the negotiating 
the stream type (client has to wait for the server to respond that it is OK to 
send SSL data before it can actually do so, which means the round trip time from 
the server to client).  Unless you use the SSL stream all the time (enter it 
once, and never exit it), I think you'd be better off with finding out if the 
server can handle SSL at start up via the setup command, and then doing stuff like:

C->S:  ssldata <datablock>

  In fact, given the latency involved in switch modes, you really don't want to 
switch very often.  On the S->C side, not a big deal, as once the server 
receives the request from the client, it can switch to that mode.  But on the 
C->S side of things, if it really wants to send that next packet in SSL mode 
because it has a password, it really can't send anything else to the server 
until the mode is negotiated (the server I don't believe would be happen to 
receive an apply command while it is waiting for a password).

  However, that last problem can be solved somewhat by another patch/suggestion 
I believe which would send the command and password at the same time.




More information about the crossfire mailing list