\section{Requirements}

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

   \subsection{Connectivity}

   \begin{sitem}
      \item Building Blocks
      \begin{sitem}
         \item links: coax cable, optical fiber...
         \item nodes: general-purpose workstations...
      \end{sitem}  

      \item Direct Links
      \begin{sitem}
         \item point-to-point
         \pichere{p-to-p.eps}
         \item multiple access
         \pichere{multiaccess.eps}
      \end{sitem}
   \end{sitem}
\end{slide}

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

   \begin{sitem}
      \item Indirect Connectivity
      \begin{sitem}
         \item switched networks

         \pichere{psn.eps,height=2.75in}

         \item internetworks

         \pichere{internet_clouds.eps,height=2.75in}

      \end{sitem}
   \end{sitem}
\end{slide}

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

   A network can be defined recursively as two or more nodes connected 
   by  a physical link, or by two or more networks connected by one or 
   more nodes.

   \begin{sitem}
      \item Switching Strategies
      \begin{sitem}
         \item circuit switching: dedicated circuit; send/receive a bit stream
         \item packet switching: store-and-forward; send/receive messages (packets)
      \end{sitem}

      \item Addressing and Routing
      \begin{sitem}
         \item address: byte-string that identifies a node; usually unique
         \item routing: process of determining how to forward messages towards
          the destination node based on its address
         \item types of addresses
         \begin{sitem}
            \item unicast: node-specific
            \item broadcast: all nodes on the network
            \item multicast: some subset of nodes on the network
         \end{sitem}
      \end{sitem}
   \end{sitem}
\end{slide}

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

   \subsection{Cost-Effective Resource Sharing}

   Must share ({\it multiplex}) network resources (nodes and links)
   among multiple users.

   \pichere{mux.eps}

   Common Multiplexing Strategies
   \begin{sitem}
      \item Time-Division Multiplexing (TDM)
      \item Frequency-Division Multiplexing (FDM)
   \end{sitem}
\end{slide}

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

   Statistical Multiplexing
   \begin{sitem}
      \item Time-division, but on demand rather than fixed
      \item Reschedule link on a per-packet basis
      \item Packets from different sources interleaved on the link
      \item Buffer packets that are {\it contending} for the link
      \item Packet queue may be processed FIFO, but not necessarily
      \item Buffer overflow is called {\it congestion}
   \end{sitem}

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

\end{slide}

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

   \subsection{Functionality}

   The application programs running on the hosts connected to the
   network must be able to communicate in a meaningful way.

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

   Network supports common process-to-process channels; e.g.,
   \begin{sitem}
      \item Request/Reply: for file access and digital libraries
      \item Message Stream: for video applications
      \begin{sitem}
         \item video: sequence of frames
         \item resolution: 1/4 TV-size image = 352x240 pixels;
         \item 24-bit color: frame = $(352\times{}240\times{}24)/8=247.5$KB;
         \item frame rate: 30 fps = 7500KBps = 60Mbps
         \item video on-demand versus video-conferencing
      \end{sitem}
   \end{sitem}
\end{slide}

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

   What Goes Wrong in the Network?
   \begin{sitem}
      \item Bit-level errors (electrical interference)
      \item Packet-level errors (congestion)
      \item Link and node failures
      \bigskip\bigskip
      \item Messages are delayed
      \item Messages are deliver out-of-order
      \item Third parties eavesdrop
   \end{sitem}

   The key problem is to fill in the gap between what applications
   expect and what the underlying technology provides.

\end{slide}

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

   \subsection{Performance}

   Bandwidth (throughput)
   \begin{sitem}
      \item Amount of data that can be transmitted per time unit
      \item Example: 10Mbps
      \item link versus end-to-end
      \item Notation 
      \begin{sitem}
         \item KB = $2^{10}$ bytes
         \item Mbps = $10^6$ bits per second
      \end{sitem}
      \item Bandwidth related to ``bit width''
   \end{sitem}

   \pichere{bit_width.eps}

\end{slide}

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

   Latency (delay)
   \begin{sitem}
      \item Time it takes to send message from point A to point B
      \item Example: 24 milliseconds (ms)
      \item Sometimes interested in in round-trip time (RTT)
      \item Components of latency
      \begin{quote}
         Latency = Propagation + Transmit + Queue\\
         Propagation = Distance / SpeedOfLight\\
         Transmit = Size / Bandwidth
      \end{quote}
      \item Speed of light
      \begin{sitem}
         \item $3.0\times{}10^8$ meters/second in a vacuum
         \item $2.3\times{}10^8$ meters/second in a cable
         \item $2.0\times{}10^8$ meters/second in a fiber
      \end{sitem}
      \item Notes
      \begin{sitem}
         \item no queuing delays in direct link
         \item bandwidth not relevant if Size = 1 bit
         \item process-to-process latency includes software overhead
         \item software overhead can dominate when Distance is small
      \end{sitem}
   \end{sitem}
\end{slide}

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

   \begin{sitem}
      \item Relative importance of bandwidth and latency
      \begin{sitem}
         \item small message (e.g., 1 byte): 1ms vs 100ms dominates 
          1Mbps vs 100Mbps
         \item large message (e.g., 25 MB): 1Mbps vs 100Mbps dominates 
          1ms vs 100ms
      \end{sitem}

      \item Delay $\times$ Bandwidth Product

      \pichere{pipe.eps}
   
      Example: 100ms RTT and 45Mbps Bandwidth = 560 KB of data

      \item Application Needs
      \begin{sitem}
         \item bandwidth requirements: burst versus peak rate
         \item jitter: variance in latency (inter-packet gap)
      \end{sitem}
   \end{sitem}
\end{slide}
