Introduction Outline Statistical Multiplexing Network Architecture Performance Metrics

  • Slides: 27
Download presentation
Introduction Outline Statistical Multiplexing Network Architecture Performance Metrics (just a little) Spring 2006 CS

Introduction Outline 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

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

Building Blocks • Nodes: PC, special-purpose hardware… – hosts – Switches (host connected to

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 another). • 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

Switched Networks • A network can be defined recursively as. . . – two or more nodes connected by a link, or – two or more networks connected by two or more nodes Nodes on inside of cloud called switches, nodes on outside called hosts Cloud can Denote any Type of network: P 2 P, multi-access, switched Spring 2006 CS 332 internetwork Node between networks called router or gateway 4

Routing • Just because we have physical connectivity between all hosts, doesn’t mean we

Routing • Just because we have physical connectivity between all hosts, doesn’t mean we have provided host-to-host connectivity – Need to be able to specify hosts with which we wish to communicate – 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 –

Not Just One Destination… • Unicast – single source, single destination • Broadcast – single source, all destinations (well, sort of) • Multicast – single source, whole group of destinations • Anycast? ! – Why would you want this? Spring 2006 CS 332 6

A Key Idea • We can define a network recursively as a network of

A Key Idea • We can define a network recursively as a network of networks. – At bottom layer, it is implemented by some physical medium – 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

Strategies • Circuit switching: carry bit streams – original telephone network – Connection is

Strategies • 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

Virtual Circuit Switching • Explicit connection setup (and tear-down) phase • Subsequence packets follow same circuit • Sometimes called connection-oriented model 0 Switch 1 1 3 2 3 5 • Analogy: phone call • Each switch maintains a VC table Spring 2006 11 2 Switch 2 1 0 Host A 7 Advantages? Disadvantages? CS 332 1 0 Switch 3 3 2 4 Host B 9

Datagram Switching • No connection setup phase • Each packet forwarded independently • Sometimes

Datagram Switching • No connection setup phase • Each packet forwarded independently • Sometimes called connectionless model Host D • Analogy: postal system • Each switch maintains a forwarding (routing) table 3 Host C Host E 0 Switch 1 1 2 Host F 3 2 Switch 2 1 0 Host A Host G 1 0 Switch 3 Host B 3 2 Host H Spring 2006 CS 332 10

Multiplexing • Time-Division Multiplexing (TDM) • Frequency-Division Multiplexing (FDM) L 1 R 1 L

Multiplexing • Time-Division Multiplexing (TDM) • Frequency-Division Multiplexing (FDM) L 1 R 1 L 2 R 2 L 3 Spring 2006 Switch 1 Switch 2 Note that in either technique, bandwidth can be wasted! CS 332 R 3 11

Statistical Multiplexing • • • On-demand time-division (rather than in specific time slot) Schedule

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 – distributed file systems – digital libraries (web) • Stream-Based

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

Layering • Use abstractions to hide complexity • Abstraction naturally lead to layering •

Layering • Use abstractions to hide complexity • Abstraction naturally lead to layering • Alternative abstractions at each layer Application programs Request/reply Message stream channel Host-to-host connectivity Hardware Spring 2006 CS 332 14

Protocols • Building blocks of a network architecture • Each protocol object has two

Protocols • 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

Interfaces Host 1 High-level object Protocol Spring 2006 Host 2 Service interface Peer-to-peer interface

Interfaces Host 1 High-level object Protocol Spring 2006 Host 2 Service interface Peer-to-peer interface CS 332 High-level object Protocol 16

Protocol Machinery • Protocol Graph – most peer-to-peer communication is indirect – peer-to-peer is

Protocol Machinery • Protocol Graph – most peer-to-peer communication is indirect – peer-to-peer is direct only at hardware level Host 2 Host 1 Digital Video File library application application RRP MSP 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

Machinery (cont) • Multiplexing and Demultiplexing (demux key) • Encapsulation (header/body) Host 1 Host 2 Application program Data RRP RRP Data HHP HHP RRP Data Spring 2006 CS 332 18

Internet Architecture • Defined by Internet Engineering Task Force (IETF) • Hourglass Design •

Internet Architecture • Defined by Internet Engineering Task Force (IETF) • Hourglass Design • Application vs Application Protocol (FTP, HTTP) FTP HTTP NV TFTP UDP TCP IP NET 1 Spring 2006 NET 2 CS 332 … NETn 19

ISO Architecture End host Application Note transport layer is “end-to-end” Application Presentation Session Transport

ISO Architecture End host Application Note transport layer is “end-to-end” Application Presentation Session Transport Network Data link 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

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

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

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 protocol • 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

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

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

Implementation • Are you using streams or request/reply, and what are the ramifications? •

Implementation • 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

Implementation • Port Numbers – Solaris: reserved (513 -1023), ephemeral(32768 -65535) – BSD: reserved(1

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