Outline
- Cell Switching (ATM)
- Cells Size
- Cell Format
- Segmentation and Reassembly
- ATM Adaptation Layers
Cell Switching (ATM)
- Another important switching technology is asychronous transfer mode.
- ATM became important in the 1980s and 1990s as it was embraced by the phone companies.
- ATM is a connection-oriented packet switching technology: It uses virtual circuits in the manner described last week.
- So connection setup is done using signalling.
- Q.2931 is the ATM spec for the signalling protocol. In addition to discovering a suitable route across the ATM network, it
also allocates appropriate resources for the route to ensure quality of service.
- The addresses used to specify a destination in ATM during the set-up phase is given in one of several formats, common ones
being E.164 or NSAP. These are different from MAC addresses.
- Another thing that makes ATM a little bit different is that all packets are fixed length. 53 bytes - 5 header bytes followed by 48
bytes of payload.
- These packets are called cells. We will now look at them and ATM in more detail.
Cells
- Variable length packets are useful for several reasons:
- If you only have x bytes to send then you make a packet of that size only.
- There is less of a need to pad packets to make them a given size, if packets are allowed to be small.
- You can use variable size packets to limit the total number of packets you need to send. i.e., you send big packets. As some devices are more limited by packets/second
they can process rather than bits/seconds this can improve throughput.
- Reducing the number of packets also increases the data/header ratio.
- So what advantage does using cells of a fixed size have?
- Since all of the packets are the same size and small, the switching can be implemented in hardware which is potentially faster.
- Since all of the packets are the same length, you can have a lot of switching elements doing the same tasks in parallel, again making things faster.
Cells and Queues
- Queues are used in a switch to handle the build-up of packets which all may be destined for the same output line.
- Generally, once you take a packet from a queue and start transmitting it you transmit the whole packet -- you do not
preempt the transmission.
- The longest time a queue output can be tied up is equal to the time to transmit a maximum-sized packet.
- Fixed-length cells mean that this is exactly the length of time to transmit one cell, which is typically
shorter than the maximum packet size in variable-length packet networks.
- For example, a high-priority packet arrives at a queue in a 100 Mbps variable-length packet network just after a 4KB packet starts transmitting. It might have to wait 4096*8/100 = 327.68 µs. On an ATM network the wait time would be at most 53*8/100 = 4.24 µs.
More on Cells and Queues
- So an ATM network would typically have better control over delay and jitter (variation in delay).
- Switches often sit idle while they wait for whole packets to arrive before forwarding them. With a small cell size this wait time si reduced. This means that ATM queue sizes can often be smaller that variable length packet networks.
- A number of factors went into the choice of the fixed size of ATM Cells:
- Trying to keep the header/data ratio reasonable.
- Trying to avoid having to pad too many under-filled cells.
- Voice lines sample 1 byte every 125µs, so the time to fill an n-byte cell is n*125µs. You want to keep this
latency small enough so it is not noticeable to a human listener.
- Latency also plays a factor in whether echo canceling equipment needs to be installed.
Cell Format
4 bits | 8 bits | 16 bits | 3 bits | 1 bits | 8 bits | 384 bits (48 bytes) |
GFC | VPI | VCI | Type | CLP | HEC (CRC-8) | Payload |
- ATM cells come in two formats: UNI (user-network interface) and NNI (network-network interface).
- The above diagram is for UNI; for NNI the 4bit GFC is replaced with an extra 4 bits of VPI.
- The components of the cell are as follows:
- GFC (generic flow control) is not widely used, but is intended to provide a means to arbitrate access to the link from a shared medium at a local site to an ATM network.
- VPI (virtual path identifier)/VCI (virtual circuit identifier) will be described in more detail in a moment. For now, we can view these as a 24 bit identifier of the virtual connection.
- Type uses it high bit to indicate management (on) versus data (off) cells. For user data cells, the second bit is the explicit forward congestion indicator (EFCI). This can be set by a congested switch to tell an end node it is congested. The lower order bit is a "user signalling" bit used to help delineate frames.
- CLP (Cell loss priority) is 1 bit long and this bit be set to indicate a cell should be dropped preferentially in the event of an overload.
- HEC (Header error check) is a CRC-8 checksum used to protect the header which is important because an error in the VCI can cause a cell to be misdelivered.
Segmentation and Reassembly
- Typically, packets that are handed from a higher level protocol to ATM are longer than 48bytes.
- These must be fragmented to be sent over ATM; the destination that must be reassembled.
- This technique is called segmentation and reassembly (SAR), and is handled by a layer between
ATM and the higher level protocol called the ATM Adaption Layer (AAL).
- To support different kinds of higher level services, originally four different AAL protocols were specified.
- 1 and 2 were designed to support applications with guaranteed bit-rates like voice.
- 3 and 4 were designed to support packet data running over ATM. 3 was for connection oriented service like X.25 and 4 was for
connectionless services like IP
- Issues with 3 and 4 resulted in AAL5.
- The next slides considers the computer communication related AALs.
ATM Adaptation Layers; CS-PDU format for AAL3/4
8 bit | 8 bit | 16 bit | < 64KB | 0-24 bit | 8 | 8 | 16 |
CPI | Btag | BASize | User Data | Pad | 0 | Etag | Len |
- AAL3/4/5 packets are called protocol data units (PDUs).
- The task of segmentation/reassembly involves two different packets formats: the first of these being convergence sublayer PDUs (CS-PDUs); the second being the ATM cell format when the given AAL is in use.
- The components of a CS-PDU are as follows:
- CPI (common part indicator) indicates which version of the CS-PDU is in use. Currently, only version 0 is defined.
- Btag (Beginning Tag) and Etag (Ending tag) are supposed to match. They used to guard against the loss of the last cell of one PDU and the first cell of the next causing two PDUs to be accidentally joined into one.
- BASize (buffer allocation size) is used to hint to the reassembly process how much buffer space should be allocated. The real length might not be known at the time the header is transmitted.
- Pad is used to make sure the PDU is one less than a multiple of 4 bytes long.
- Len is the real length of the data component of the CS-PDU.
ATM Cell format for AAL3/4
40 bit | 2 bit | 4 bit | 10 bit | 352 bit (44 bytes) | 6 bit | 10 bit |
ATM Header | Type | SEQ | MID | Payload | Length | CRC-10 |
- ATM header was already described a couple of slides back.
- Type indicates the cell is: 10 - beginning of message (a CS-PDU), 00 - continuation of message, 01 - end of message, or 11 - a single-segment message.
- SEQ is a sequence number used to detect cell loss and for reassembly.
- MID is a multiplexer identifier used to multiplex several PDUs onto a single connection.
- Length shows the number of bytes of the PDU that are contained in the cell. It will be 44 except possibly for end of message cells,
where padding might be needed.
- Notice with 44 bytes of data to 9 bytes of header, the best possible bandwidth utilization is 83%.