Connected: An Internet Encyclopedia
B.2 Backwards compatible SLIP servers

Up: Connected: An Internet Encyclopedia
Up: Requests For Comments
Up: RFC 1144
Up: B Compatibility with past mistakes
Prev: B.1 Living without a framing `type' byte
Next: C More aggressive compression

B.2 Backwards compatible SLIP servers

B.2 Backwards compatible SLIP servers

The SLIP described in [12] doesn't include any mechanism that could be used to automatically negotiate header compression. It would be nice to allow users of this SLIP to use header compression but, when users of the two SLIP varients share a common server, it would be annoying and difficult to manually configure both ends of each connection to enable compression. The following procedure can be used to avoid manual configuration.

Since there are two types of dial-in clients (those that implement compression and those that don't) but one server for both types, it's clear that the server will be reconfiguring for each new client session but clients change configuration seldom if ever. If manual configuration has to be done, it should be done on the side that changes infrequently --- the client. This suggests that the server should somehow learn from the client whether to use header compression. Assuming symmetry (i.e., if compression is used at all it should be used both directions) the server can use the receipt of a compressed packet from some client to indicate that it can send compressed packets to that client. This leads to the following algorithm:

There are two bits per line to control header compression: allowed and on. If on is set, compressed packets are sent, otherwise not. If allowed is set, compressed packets can be received and, if an UNCOMPRESSED_TCP packet arrives when on is clear, on will be set./49/ If a compressed packet arrives when allowed is clear, it will be ignored.

Clients are configured with both bits set (allowed is always set if on is set) and the server starts each session with allowed set and on clear. The first compressed packet from the client (which must be a UNCOMPRESSED_TCP packet) turns on compression for the server.


Next: C More aggressive compression

Connected: An Internet Encyclopedia
B.2 Backwards compatible SLIP servers