Subject: ATM fragmentation/reassembly

From: Phil Karn <[email-masked]>
Date: Fri, 22 Oct 1999 00:02:01 -0700 (PDT)

Can anyone with a more up to date understanding of ATM briefly
describe for me the standard method(s) used to fragment and reassemble
variable length packets (e.g., IP)?

Back at Bellcore I was actually one of the first people to work on
this problem, but when I left in 1991 I didn't keep up on ATM
developments (being rather tired of ATM already...)

My scheme was to have a two-bit header in every cell to indicate
whether the cell was the first and/or the last cell of a packet. I
wonder if that was what was eventually standardized.

Phil

---

From: Dan Grossman <[email-masked]>
Date: Mon, 25 Oct 1999 12:21:05 -0400

Phil,
So you were one of the shadow cast at Bellcore whose existence couldn't be 
acknowleged ;-)   Tom Lyons and Bryan Lyles brought in the original 
contribution to T1S1, and Bill Bergman, George Swallow, Fred Goldstein and I 
sheparded it through the process against some pretty intense opposition.  Dave 
Tennenhouse and some of his folks at the Media Lab, and some guys from Apple 
were also involved.  There were hints that there was some support inside 
Bellcore, but Bellcore's official position at the time was negative to neutral 
on a 'new' AAL.  

So much for ancient history.

AAL5 (the AAL that everybody uses, except for some special cases) uses one bit 
of the cell header to delineate end-of-frame, and a trailer containing a 
CRC-32, a length field and some spare bits.  The decision to use one bit 
rather than two was due to a shortage of bits in the ATM cell header;  
actually, it's two encodings of a three bit field.  Between the CRC and the 
length check, the fragmentation/reassembly process is highly robust (Craig 
Partridge did an analysis a few years ago, published in Sigcomm proceedings).  
It also turns out to be fairly simple to implement in hardware or in a RISC 
comm microcontroller (as in an MPC860), and relatively friendly to 32 bit 
microprocessor busses.

RFC 2684 is the standard encapsulation for IP datagrams in AAL5.  However, for 
DSL, ISPs wanted to retain their PAP/CHAP/RADIUS infrastructure, so are using 
PPP over AAL5.