Document Sample
Chapter1 Powered By Docstoc

              Statistical Multiplexing
              Network Architecture
              Performance Metrics (just a little)

Spring 2006                       CS 332            1
                      Our Journey
• Peterson Text:
     – Chapter 1
     – Chapters 4,5,6,8 (with Chapters 2,3,7 sprinkled in as
     – Why?

Spring 2006                   CS 332                           2
                  Building Blocks
• Nodes: PC, special-purpose hardware…
     – hosts
     – Switches (host connected to at least two links that runs
       software that forwards data received on one link out on
• Links: coax cable, optical fiber…
     – point-to-point

     – multiple access                             …

Spring 2006                   CS 332                              3
               Switched Networks
• A network can be defined recursively as...
   – two or more nodes                      – two or more networks
     connected by a link, or                  connected by two or
                         Nodes on inside of   more nodes
                         cloud called switches,                          internetwork
                         nodes on outside
                         called hosts

                      Cloud can Denote any
                      Type of network:
                      P2P, multi-access,
                      switched                    Node between networks
 Spring 2006                   CS 332                                          4
                                                  called router or gateway
• Just because we have physical connectivity between all
  hosts, doesn’t mean we have provided host-to-host
     – Need to be able to specify hosts with which we wish to
     – I.e. each host needs an address (note that the address is really only
       a name – it need not relate in any way to the physical location of
       the host)
     – Routers and switches between hosts need to use address to decide
       how to forward messages
• Routing: process of determining systematically how to
  forward messages toward the destination node based on the
  destination node’s address
Spring 2006                         CS 332                                     5
              Not Just One Destination…
• Unicast – single source, single destination
• Broadcast – single source, all destinations (well,
  sort of)
• Multicast – single source, whole group of
• Anycast?!
     – Why would you want this?

Spring 2006                CS 332                      6
                      A Key Idea
• We can define a network recursively as a network
  of networks.
     – At bottom layer, it is implemented by some physical
     – At higher layers it is a “logical” network
• Key issue: how do we assign addresses at each
  layer in a manner which allows us to efficiently
  route messages?

Spring 2006                  CS 332                          7
• Circuit switching: carry bit streams
     – original telephone network
     – Connection is established before any data sent

• Packet switching: store-and-forward messages
     – Internet (Why?)
     – Send discrete blocks of data from node to node (called
       a packet or message)

Spring 2006                  CS 332                             8
              Virtual Circuit Switching
• Explicit connection setup (and tear-down) phase
• Subsequence packets follow same circuit
• Sometimes called connection-oriented model
                             0 Switch 1
                      3        1
                                                     2 Switch 2
                             2                   3     1
• Analogy:
  phone call              Host A

• Each switch             Advantages?                    1
                                                                 0 Switch 3
  maintains a VC          Disadvantages?                                      4
                                                                                  Host B

Spring 2006                        CS 332                                                  9
              Datagram Switching
• No connection setup phase
• Each packet forwarded independently
• Sometimes called connectionless model
                                Host D

• Analogy: postal           3
                                   0 Switch 1
                                                    Host E
                                                                                Host F

  system               Host C
                                                       2 Switch 2
                                   2            3          1

• Each switch                                          0

  maintains a                   Host A

  (routing) table                                                     0 Switch 3 Host B
                                                     Host G
                                                               1        3


                                                                   Host H

Spring 2006                     CS 332                                                    10
• Time-Division Multiplexing (TDM)
• Frequency-Division Multiplexing (FDM)

              L1                                           R1

              L2                                           R2

                   Switch 1                     Switch 2
              L3                                           R3
                              Note that in either
                              technique, bandwidth
                              can be wasted!
Spring 2006                       CS 332                        11
              Statistical Multiplexing
•   On-demand time-division (rather than in specific time slot)
•   Schedule link on a per-packet basis
•   Packets from different sources interleaved on link
•   Buffer packets that are contending for the link
•   Buffer (queue) overflow is called congestion Fairly allocating
                                                     link capacity and
                                                     dealing with congestion
                                                     are key issues here!


Spring 2006                     CS 332                               12
                 IPC Abstractions
• Request/Reply                • Stream-Based
  – distributed file systems       – video: sequence of frames
  – digital libraries (web)        – video applications
                                        • on-demand video
                                        • video conferencing

 Spring 2006                   CS 332                          13
• Use abstractions to hide complexity
• Abstraction naturally lead to layering
• Alternative abstractions at each layer

                  Application programs
              Request/reply Message stream
                channel         channel
                 Host-to-host connectivity

Spring 2006               CS 332             14
• Building blocks of a network architecture
• Each protocol object has two different interfaces
     – service interface: operations on this protocol
     – peer-to-peer interface: messages exchanged with peer
• Term “protocol” is overloaded
     – specification of peer-to-peer interface
     – module that implements this interface

Spring 2006                   CS 332                          15
                       Host 1                             Host 2

              High-level                         High-level
                object             interface        object

               Protocol                           Protocol

Spring 2006                         CS 332                         16
                     Protocol Machinery
• Protocol Graph
     – most peer-to-peer communication is indirect
     – peer-to-peer is direct only at hardware level
                                            Host 1                                  Host 2

                 File       Digital     Video           File       Digital     Video
                            library                                library
              application application application    application application application

                      RRP             MSP                    RRP              MSP

                              HHP                                    HHP

                                                                                RRP: request/reply protocol
                                                                                MSP: msg stream protocol

Spring 2006                                                                                         17
                  Machinery (cont)
• Multiplexing and Demultiplexing (demux key)
• Encapsulation (header/body)
                               Host 1                                  Host 2
                   Application                         Application
                    program                             program

                  Data                                          Data

                         RRP                              RRP

              RRP Data                                         RRP Data

                         HHP                             HHP

                                        HHP RRP Data

Spring 2006                                CS 332                               18
              Internet Architecture
• Defined by Internet Engineering Task Force (IETF)
• Hourglass Design
• Application vs Application Protocol (FTP, HTTP)
                FTP     HTTP          NV         TFTP

                      TCP                  UDP


                NET1        NET2       …         NETn

Spring 2006                  CS 332                     19
                   ISO Architecture
                   End host                                   End host

                              Note transport             Application
                              layer is “end-to-end”
              Presentation                               Presentation

               Session                                    Session

               Transport                                  Transport

               Network        Network       Network       Network

               Data link      Data link     Data link     Data link

                Physical       Physical       Physical     Physical

                                 One or more nodes
                                 within the network

Spring 2006                          CS 332                              20
                Performance Metrics
• Bandwidth (throughput) “width” of pipe
     – data transmitted per time unit
     – link versus end-to-end
     – notation
         • KB = 210 bytes
         • Mbps = 106 bits per second
• Latency (delay) “length” of pipe
     – time to send message from point A to point B
         • OR time for bit to travel from point A to point B
         • Also “link latency”
     – one-way versus round-trip time (RTT)
     – components
         Latency = Propagation + Transmit + Queue
         Propagation = Distance / c
         Transmit = Size / Bandwidth
Spring 2006                        CS 332                      21
              Bandwidth versus Latency

         • Relative importance
         • Infinite bandwidth

Spring 2006                CS 332        22
        Protocol Implementation Issues
• Which process model?
   – Process-per-protocol model
      • Each protocol implemented by separate process (thread)
      • Sometimes logically “cleaner” – one protocol, one process
      • Context switch required at each level of protocol graph
   – Process-per-message model
      • Each message handled by a single process with each
        protocol a separate procedure that invokes the subsequent
      • Order of magnitude more efficient (procedure call much
        more efficient than context switch)
 Spring 2006                 CS 332                         23
       Protocol Implementation Issues
• Service Interface relationship with process model
     – If high-level protocol invokes send() on lower level
       protocol, it has message in hand so no big deal
     – If high-level protocol invokes receive() on lower
       level protocol, it must wait for receipt of message,
       which basically forces a context switch.
     – No big deal if app directly calls network subsystem, but
       big deal if it occurs at each layer of protocol stack
     – Cure: low level protocol does an upcall (a procedure
       call up the stack) to deliver message to higher level
Spring 2006                   CS 332                         24
         Protocol Implementation Issues
• Message Buffers
   – In socket API, application process provides buffers for both
     outbound and incoming messages. This forces top most
     protocol to copy messages from/to network buffers.
   – Copying data from one buffer to another is one of the most
     expensive operations a protocol implementation can perform.
       • Memory is not getting fast as quickly as processors are
   – Solution: Rather than copying from buffer to buffer at each
     layer of protocol stack, network subsystem defines a message
     abstraction shared by all protocols in the protocol graph.
       • Can be viewed as string manipulations with pointers
      Note: you can’t move data any faster than the slowest copy operation!
  Spring 2006                       CS 332                              25
• Are you using streams or request/reply, and what
  are the ramifications?
• What operating system are you coding on/for and
  where is the sockets library?
• What languages can you use, in theory?
     – Why would you wish to use specific languages?
• What will you have to do in your first assignment?

Spring 2006                 CS 332                     26
• Port Numbers
     – Solaris: reserved (513-1023), ephemeral(32768-65535)
     – BSD:reserved(1-1023), ephemeral(1024-5000), nonprivileged
     – IANA: well known (1-1023), registered(1024-49151), dynamic
• Endian issues
• Compiler flags
     – Solaris –lsocket –lnsl
     – Linux no flags required
• Specifying command line arguments
• Null characters in strings?

Spring 2006                      CS 332                             27

Shared By: