ATM Adaptation Layer 5
Computers use ATM Adaptation Layer 5 (AAL5) to send data across an ATM network. Interestingly, although ATM uses small fixed-size cells, at the lowest level, AAL5 presents an interface that accepts and delivers large, variable-length packets. Thus, the interface computers use to send data makes ATM appear much like a connectionless technology. In particular, AAL5 allows each packet to contain between 1 and 65,535 octets of data.
Unlike most network frames that place control information in the header, AAL5 places control information in an 8-octet trailer at the end of the packet. The AAL5 trailer contains a 16-bit length field, a 32-bit cyclic redundancy check (CRC) used as a frame checksum, and two 8-bit fields labeled UU and CPI that are currently unused.
Each AAL5 packet must be divided into cells for transport across an ATM network, and then must be recombined to form a packet before being delivered to the receiving host. If the packet, including the 8-octet trailer, is an exact multiple of 48 octets, AAL5 allows the final cell to contain between 0 and 40 octets of data, followed by zero padding, followed by the 8-bit trailer. In other words, AAL5 places the trailer in the last 8 octets of the final cell, where it can be found and extracted without knowing the length of the packet.
AAL5 Convergence, Segmentation, and Reassembly
When and application sends data over an ATM connection using AAL5, the host delivers a block of data to the AAL5 interface. AAL5 generates a trailer, divides the information into 48-octet pieces, and transfers each piece across the ATM network in a single cell. On the receiving end of the connection, AAL5 reassembles incoming cells into a packet, checks the CRC to ensure that all pieces arrives correctly, and passes the resulting block of data to the host software. The process of dividing a block of data into cells and regrouping them is known as ATM segmentation and reassembly (SAR).
By separating the functions of segmentation and reassembly from cell transport, AAL5 follows the laytering principle. The ATM cell transfer layer is classified as machine-to-machine because the layering principle applies from one machine to the next (e.g., between a host and a switch or between two switches). The AAL5 layer is classified as end-to-end because the layering principle applies from the source to the destination - AAL5 presents the receiving software with data in exactly the same size blocks as the application passed to the AAL5 on the sending end.
How does AAL5 on the receiving side know how many cells comprise a packet? The sending AAL5 uses the low-order bit of the PAYLOAD TYPE field of the ATM cell header to mark the final cell in a packet. One can think of it as an end-to-end bit. Thus, the receiving AAL5 collects incoming cells until it finds one with an end-of-packet bit set. ATM standards use the term convergence to describe mechanisms that recognize the end of a packet. Although AAL5 uses a single bit in the cell header for convergence, other ATM adaptation layer protocols are free to use other convergence mechanisms.
To summarize: A computer uses ATM Adaptation Layer 5 to transfer a large block of data over an ATM virtual circuit. On the sending host, AAL5 generates a trailer, segments the block of data into cells, and transmits each cell over the virtual circuit. On the receiving host, AAL5 reassembles the cells to reproduce the original block of data, strips off the trailer, and delivers the block of data to the receiving host software. A single bit in the cell header marks the final cell of a given data block.
Datagram Encapsulation and IP MTU size
We said that IP uses AAL5 to transfer datagrams across an ATM network. Before data can be sent, a virtual circuit (PVC or SVC) must be in place to the destination computer and both ends must agree to use AAL5 on the circuit. To transfer a datagram, the sender passes it to AAL5 along with the VPI/VCI identifying the circuit. AAL5 generates a trailer, divides the datagram into cells, and transfers the cells across the network. At the receiving end, AAL5 reassembles the cells, checks the CRC to verify that no bits were lost of corrupted, extracts the datagram, and passes it to IP.
In reality, AAL5 uses a 16-bit length field, making it possible to send 64K octets in a single packet. Despite the capabilities of AAL5, TCP/IP restricts the size of the datagrams that can be sent over ATM. The standards impose a default of 9180 octets per datagram. Thus, AAL5 accepts, transfers, and delivers datagrams of 9180 octets or less. To summarize:
When TCP/IP sends data across an ATM network, it transfers an entire datagram using ATM Adaptation Layer 5. Although AAL5 can accept and transfer packets that contain up to 64K octets, the TCP/IP standards specify a default MTU of 9180 octets or less. IP must fragment any datagram larger than 9180 octets before passing it to AAL5.
Packet Type and Multiplexing
Observant readers will have noticed that the AAL5 trailer does not include a type field. Thus, an AAL5 frame is not self-identifying. As a result, the simplest form of encapsulation described above does not suffice if the two ends want to send more than one type of data across a single VC. (e.g., packets other then IP). Two possibilities exist:
- The two computers at the ends of a virtual circuit agree a priori that the circuit will be used for a specific protocol (e.g., the circuit will only be used to send IP datagrams).
- The two computers at the ends of a virtual circuit agree a priori that some octets of the data area will be reserved for use as a type field.
The former scheme, in which the computers agree on the high-level protocol for a given circuit, has the advantage of not requiring additional information in a packet. For example, if the computers agree to transfer IP, a sender can pass each datagram directly to AAL5 to transfer, nothing needs to be sent besides the datagram and the AAL5 trailer. The chief disadvantage of such a scheme lies in duplication of virtual circuits: a computer must create a separate virtual circuit for each high-level protocol. Because most carriers charge for each virtual circuit, customers try to avoid using multiple circuits because it adds unncessary cost.
The latter scheme, in which two computers use a single virtual circuit for multiple protocols, has the advantage of allowing all traffic over the same circuit, but the disadvantage of requiring each packet to contain octets that identify the protocol type. The scheme also has the disadvantage that packets from all protocols travel with the same delay and priority.
The TCP/IP stndards specify that computers can choose between the two methods of using AAL5. Both the sender and receiver must agree on how the circuit will be used, the agreement may involve manual configuration. Furthermore, the standards suggest that when computers choose to include type information in the packet, they should use a standard IEEE 802.2 Logical Link Control (LLC) header followed by a SubNetwork Attachment Point (SNAP) header.
The LLC field consists of three octets that contain the hexadecimal values AA.AA.03. The SNAP header consists of five octets: three that contain an Organizationally Unique Identifer (OUI) and two for a type. Field OUI identifies the packet type. For an IP datagram, the OUI field contains 00.00.00 to identify the organization responsible for Ethernet standards, and the TYPE field contains 08.00, the value used when encapsulation IP in an Ethernet frame. Software on the sending host must prefix the LLC/SNAP header to each packet before sending it on to AAL5, and software on the receiving host must examine the header to determine how to handle the packet.