[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ih] The origin of variable length packets

> Sending fixed length packets would be more work (or as much work) as 
> sending variable length ones!  In both cases, you need a length to 
> indicate how much data is there.  But in the fixed length case you 
> have to send more bits than you need and fill out the packet with 
> zeros.
> Wastes bandwidth and is more work. Not a lot more, but in those days 
> one saved everyplace you could!

Hi John:

Have to disagree with you a little bit.

If you're looking at the fixed vs. variable packet issue architecturally you
swiftly hit the following observations:

    1. The data being sent is variable in size

    2. Fixed sized data units on the line cause some wastage (amount varies
      from substantial to minimal depending on how well the variable sized
      data packets into the fixed-sized data unit). [your point above]

    3. Variable sized packets can reduce the packet header overhead
      by going longer (assuming the data being sent permits).

    4. If you have parallel hardware in the interconnect devices,
	fixed sized data units are far more efficient.  Parallelizing
	variable data units is really unpleasant (cf. patents from
	George Varghese and me in the late 1990s).

Complicating things is that for the fixed sized packet crowd, points 2
and 3 are in conflict.  To avoid data wastage you want small fixed size
packets, but to avoid overhead wastage you want big fixed size packets.
(If you can keep the overhead wastage small -- per some fixed sized packet
semi-distributed LAN technologies, things look better).

The ARPANET had no parallelism in the connection points -- it was running
over a shared bus in the IMPs.  So you obviously pick variable sized
packets.  A further driver is that the links costs far more than the
interconnect, so the efficiency of variable sized was important.

When, later, speed requirements pushed us to build parallel backplanes
in routers, we hit the variable vs. fixed issue again (the great ATM
battle of the early 1990s).   One thing that saved us was the realization
that what we did inside the routers (namely break those variable packets
into fixed data units to move the data between interfaces) had little to
do with what we put on the wire (variable sized packets).

[What made this step a realization as opposed to a "no duh" moment was that
it meant inefficiencies inside the router/switch as you converted to
fixed-sized -- you had to run the backplane faster than the network
links and at a time you were straining for speed, that felt wrong.
That led to folks arguing for ATM -- which was, effectively, externalizing
the innards of the switch.  (In retrospect, a bad idea but very appealing
at the time).  We had to really optimize the router innards to convince folks.]