\section{Asynchronous Transfer Mode (ATM)}

% -----------------------------------------------------------------
\begin{slide}{}

   \subsection{Overview}
   \begin{sitem}
      \item Connection-oriented packet-switched network
      \item Used in both WAN and LAN settings
      \item Signalling (connection setup) Protocol:  Q.2931
      \item Specified by ATM Forum
      \item Packets are called {\it cells}: 5-byte header + 48-byte payload
      \item Commonly transmitted over SONET (but not necessarily)
   \end{sitem}
\end{slide}

% -----------------------------------------------------------------
\begin{slide}{}

   \subsection{Cells}

   \begin{sitem}
      \item Variable versus Fixed-Length
      \begin{sitem}
         \item no optimal fixed-length
         \begin{sitem}
            \item if small: high header-to-data overhead 
            \item if large: low utilization for small messages
         \end{sitem}
         \item fixed-length are easier to switch in hardware
         \begin{sitem}
            \item simpler
            \item enables parallelism
         \end{sitem}
      \end{sitem}
      \item Small size improves queue behavior
      \begin{sitem}
         \item finer-grained pre-emption point for scheduling link
         \begin{sitem}
            \item maximum packet = 4KB
            \item link speed = 100Mbps
            \item transmission time = $4096 \times 8 / 100 = 327.68\mu$s
            \item high priority packet may sit in the queue 327.68$\mu$s
            \item in contrast, $53 \times 8 / 100 = 4.24\mu$s for ATM
         \end{sitem}
         \item near cut-through behavior
         \begin{sitem}
            \item two 4KB packets arrive at same time
            \item link idle for 327.68$\mu$s while both arrive
            \item at end of 327.68$\mu$s, still have 8KB to transmit
            \item in contrast, can transmit first cell after 4.24$\mu$s
            \item at end of 327.68$\mu$s, just over 4KB left in queue
         \end{sitem}
      \end{sitem}
   \end{sitem}
\end{slide}

% -----------------------------------------------------------------
\begin{slide}{}

   \begin{sitem}
      \item Carrying Voice in Cells
      \begin{sitem}
         \item voice digitally encoded at 64Kbps (8-bit samples at 8KHz)
         \item need full cell's worth of samples before sending cell
         \item example: 1000-byte cells implies 125ms per cell (too long)
         \item smaller latency implies no need for echo cancellors
      \end{sitem}
      \item Settled on compromise of 48 bytes: (32+64)/2
   \end{sitem}
\end{slide}

% -----------------------------------------------------------------
\begin{slide}{}

   \subsection{Cell Format}

   \begin{sitem}
      \item User-Network Interface (UNI)
      
      \pichere{atmcell.eps,height=0.5in}

      \begin{sitem}
         \item host-to-switch format
         \item GFC: Generic Flow Control (still being defined)
         \item VCI: Virtual Circuit Identifier
         \item VPI: Virtual Path Identifier
         \item Type: management, congestion control, AAL5 (later)
         \item CLP: Cell Loss Priority
         \item HEC: Header Error Check (CRC-8)
      \end{sitem}

      \item Network-Network Interface (NNI)
      \begin{sitem}
         \item switch-to-switch format
         \item GFC becomes part of VPI field
      \end{sitem}
   \end{sitem}
\end{slide}

% -----------------------------------------------------------------
\begin{slide}{}

   \subsection{Segmentation and Reassembly}

   \pichere{frag_reass.eps,height=2.5in}

   ATM Adaptation Layer (AAL)
   \begin{sitem}
      \item AAL 1 and 2 designed for applications that need guaranteed rate 
            (e.g., voice, video)
      \item AAL 3/4 designed for packet data
      \item AAL 5 is an alternative standard for packet data
   \end{sitem}
\end{slide}

% -----------------------------------------------------------------
\begin{slide}{}

   \subsection{AAL 3/4}

   \begin{sitem}
      \item Convergence Sublayer Protocol Data Unit (CS-PDU)

      \pichere{AAL3.eps,height=0.4in}

      \begin{sitem}
         \item CPI: common part indicator (version field)
         \item Btag/Etag: beginning and ending tag
         \item BAsize: hint on amount of buffer space to allocate
         \item Length: size of whole PDU
      \end{sitem}

      \item Cell Format

      \pichere{atmaal.eps,height=0.4in}

      \begin{sitem}
         \item Type
         \begin{sitem}
            \item BOM: beginning of message
            \item COM: continuation of message
            \item EOM: end of message
         \end{sitem}
         \item SEQ: sequence number
         \item MID: message id
         \item Length: number of bytes of PDU in this cell
      \end{sitem}
   \end{sitem}
\end{slide}

% -----------------------------------------------------------------
\begin{slide}{}

   \subsection{AAL5}

   \begin{sitem}
      \item CS-PDU Format

      \pichere{AAL5.eps,height=0.5in}

      \begin{sitem}
         \item pad so trailer always falls at end of ATM cell
         \item Length: size of PDU (data only)
         \item CRC-32 (detects missing or misordered cells)
      \end{sitem}

      \bigskip
      \item Cell Format
      \begin{sitem}
         \item end-of-PDU bit in Type field of ATM header
      \end{sitem}
   \end{sitem}
\end{slide}

% -----------------------------------------------------------------
\begin{slide}{}

   \subsection{VPI/VCI}

   \begin{sitem}
      \item Host: treat as 24-bit circuit identifier
      \begin{sitem}
         \item if cheap: one-per application; use for demultiplexing
         \item if expensive: multiplex several applications onto one VCI
      \end{sitem}

      \bigskip
      \item Network: aggregate multiple circuits into one path
   \end{sitem}

   \pichere{vpath.eps,height=1.5in}

\end{slide}


