Multiple Channels Over Serial Link

Kernel Mailing List (
Wed, 17 Jul 1996 11:49:02 -0700 (PDT)

I was wondering if it was possible (I know it is I just want to know if
someone has already done it) to create "multiple channels" over an
asynchronous serial link e.g. modem. My problem is that the networking or
ppp code? doesn't handle prioritization of packets as I would like it. I
see no reason why a telnet session over a modem link should run slow just
because there is an ftp going on also. With an mtu and mru of 296 or even
128 and the fact that the line can only transmit in one direction at a
time (33.6) it seems to me that it might be possible to run daemons on
both ends that would guarantee a certain percentage of the bandwith, like
a 75% , 25% split over the line in both directions. Further more I think
that if I were designing it the bandwidth splits would need to be at least
at the byte level if not at the bit level. What I would want to do is then
use these channels to connect to two different ppp daemons on each end for
different addresses. On address could filter out anything but say telnet
and finger, netstat or whatever I like and the other would be where all
other packets our routed essentially you would have two ppp interfaces on
each end with different routing.

Now that i think of it these operations should be at bit level with 8
channels each direction configurable. With the modern error correction
features of modems it is almost unneccessary to have anything more than
just control over channel configs.

You could break up each end into send ratio configurations in increments
of 12.5% = 1/8

for instance on the client side we might have

channel 1 - 75% here is my channel to be used for telnet and
other non bandwidth hogging kind of stuff it
is pretty big but is send side only

channel 2 - 25% this is the send side for ftp transactions
it is small because we are mostly interested
in receiving ftp data not sending it

on the server side

channel 1 - 50% here is the channel for sending telnet etc.
data to the client, the RX channel from the clients side

channel 2 - 50% here is the channel for sending ftp etc. data
to the client, ther RX channel from the clients side

an example transaction would be the following and would repeat in loops
i.e. the line is never quiet.

client sends a byte (6 bits containing channel 1 data 2 bits
containing channel 2 data)
server responds with a byte (4 bits containing channel 1 data 4
bits containing channel 2 data)

on each end the RXed bit fields are reassembled into byte streams for
feeding to ppp protocol or whatever.

I dont think any real error control is needed here just a simple daemon on
each end which I would be willing to write, after all media errors are
handled by the modem. Errors between the modem if external and the bus are
rare but if they happen the protocols that are running over the channels
would most likely handle them.

I really just want to know if something like this exists or has been
successfully implemented?