Ali Kamandi Spring 2007 kamandi@sharif.edu Sharif University of - - PowerPoint PPT Presentation
Ali Kamandi Spring 2007 kamandi@sharif.edu Sharif University of - - PowerPoint PPT Presentation
Ali Kamandi Spring 2007 kamandi@sharif.edu Sharif University of Technology There are many types of networks! Transportation Networks Transportation Networks Transport goods using trucks, ships, airplanes, Postal Services Postal
2
There are many types of networks!
Transportation Networks
Transportation Networks
Transport goods using trucks, ships, airplanes, …
Postal Services
Postal Services
Delivering letters, parcels, etc.
Broadcast and cable TV networks
Broadcast and cable TV networks
Telephone networks
Telephone networks
Internet
Internet
“Social/Human networks”
“Social/Human networks”
…
3
- Providing certain services
Providing certain services
- transport goods, mail, information or data
- Shared resources
Shared resources
- used by many users, often concurrently
- Basic building blocks
Basic building blocks
- nodes (active entities): process and transfer goods/data
- links (passive medium): passive “carrier” of goods/data
- Typically “multi-hop”
Typically “multi-hop”
- two “end points” cannot directly reach each other
- need other nodes/entities to relay
4
- Delivery of information (“data”) among computers of all
kinds
servers, desktops, laptop, PDAs, ......
- General-Purpose
Not for specific types of data or groups of nodes, or using
specific technologies
- Utilizing a variety of technologies
“physical/link layer” technologies for connecting nodes copper wires, optical links, wireless radio, satellite
5
Two possibilities Two possibilities
- infrastructure-less (ad hoc, peer-to-peer)
- (end) nodes also help other (end) nodes, i.e., peers, to
relay data
- infrastructure-based
- use special nodes
(switches, routers, gateways) to help relay data
6
Point-to-point vs. broadcast links/
wireless media
switched networks connecting “clouds” (existing physical networks)
- inter-networking using gateways
(a) (b)
base station
7
Multiplexing Strategies
- Circuit Switching
- set up a dedicated route (“circuit”) first
- carry all bits of a “conversation” on one circuit
- riginal telephone network
Analogy: railroads and trains
- Packet Switching
- divide information into small chunks (“packets”)
- each packet delivered independently
- “store-and-forward” packets
- Internet
Analogy: highways and cars
S S D D S S D D
Circuit Switching Circuit Switching Packet Switching Packet Switching “ “telephone network telephone network” ” Internet Internet
9
Sharing of network resources among multiple users
Host Host Host Channel Application Host Application Host
- Common multiplexing strategies for circuit switching
- Time Division Multiplexing Access (TDMA)
- Frequency Division Multiplexing Access (FDMA)
- Code Division Multiplexing Access (CDMA)
Host A B Packet Switch AA BB AA BB BB
u uMultiplexing data from multiple processes
Multiplexing data from multiple processes
u u“
“Store Store-
- and
and-
- forward
forward” ”
u uAutomatic speed adaptation
Automatic speed adaptation
u uAdaptive alternate routing
Adaptive alternate routing
11
Item Item Ci Circui uit- t-switche ched Pa Pack cket- et-swi witche tched
Dedicated “copper” path Yes No Bandwidth available Fixed Dynamic Potentially wasted bandwidth Yes No (not really!) Store-and-forward transmission No Yes Each packet/bit always follows the same route Yes Not necessarily Call setup Required Not Needed When can congestion occur At setup time On every packet Effect of congestion Call blocking Queuing delay
12
Turn host-to-host connectivity into process-to-
process communication
Fill gap between what applications expect and
what the underlying technology provides
multiplexing vs. demultiplexing
Host Host Host Channel Application Host Application Host
13
Networking is more than connecting nodes!
Naming/Addressing
- How to find name/address of the party (or parties) you
would like to communicate with
- Address: bit- or byte-string that identifies a node
- Types of addresses
Unicast: node-specific Broadcast: all nodes in the network Multicast: some subset of nodes in the network
Routing/Forwarding:
- process of determining how to send packets towards
the destination based on its address
- Finding out neighbors, building routing tables
14 Bandwidth (throughput)
- data transmitted per time unit
- link versus end-to-end
Latency (delay)
- time to send message from point A to point B
- components
Latency = Propagation + Transmit + Queue Propagation = Distance / c Transmit = Size / Bandwidth Delay Bandwidth Product: # of bits that can be carried in transit
Reliability, availability, … Efficiency/overhead of implementation, ……
15
Bridging the gap between
what applications expect
- reliable data transfer
- response time, latency
- availability, security ….
what (physical/link layer) technologies provide
- various technologies for connecting
computers/devices
applications technologies
Web Email File Sharing Multimedia Coaxial Cable Optical Fiber Wireless Radio
16
Do we re-implement every application for every technology? Obviously not, but how does the Internet architecture avoid
this? Application Transmission Media
Web Email Skype KaZaa Coaxial Cable Optical Fiber Wireless Radio
17
What is (Network) Architecture?
- not the implementation itself
- “design blueprint” on how to “organize” implementations
what interfaces are supported where functionality is implemented
Two (Internet) Architectural Principles
- Layering
how to break network functionality into modules
- End-to-End Arguments
where to implement functionality
18
Layering is a particular form of modularization
system is broken into a vertical hierarchy of
logically distinct entities (layers)
each layer use abstractions to hide complexity
without layering apps media
Web Email Skype KaZaa Coaxial Cable Optical Fiber Wireless Radio Web Email Skype KaZaa Coaxial Cable Optical Fiber Wireless Radio
intermediate layers with layering
19
One or more nodes within the network End host Application Presentation Session Transport Network Data link Physical Network Data link Physical Network Data link Physical End host Application Presentation Session Transport Network Data link Physical
20
Service: what a layer does Service interface: how to access the service
- interface for layer above
Peer interface (protocol): how peers communicate
- a set of rules and formats that govern the communication
between two network boxes
- protocol does not govern the implementation on a single
machine, but how the layer is implemented between machines
21
Protocols: specification/implementation of a
“service” or “functionality”
Each protocol object has two different interfaces
- service interface: operations on this protocol
- peer-to-peer interface: messages exchanged
with peer
Host 1 Host 2 Service interface Peer-to-peer interface High-level
- bject
High-level
- bject
Protocol Protocol
22
A layer can use only the service provided by the layer
immediate below it
Each layer may change and add a header to data packet
Layering adds overhead!
data data data data data data data data data data data data data data
23
OSI: conceptually define services, interfaces,
protocols
Internet: provide a successful implementation
Application Presentation Session Transport Network Datalink Physical Internet Net access/ Physical Transport Application IP LAN Packet radio TCP UDP Telnet FTP DNS OSI (formal) Internet (informal)
24
25
A single Internet layer module:
Allows all networks to interoperate
- all networks technologies that support IP can exchange
packets
Allows all applications to function on all networks
- all applications that can run on IP can use any network
Simultaneous developments above and below IP
IPv4 - 32 bits (4.3 billion addresses) IPv 6 – 128 bits (1038 addresses)
that’s 100 trillion trillion trillion …
27 applicatio n
SMTP Telnet NFS/Sun RPC FTP DNS HTTP RealAudio RealVideo
28
Benefits of layering
- Encapsulation/informing hiding
Functionality inside a layer is self-contained;
- ne layer does not need to know how other layers are
implemented
- Modularity
- can be replaced without impacting other layers
Lower layers can be re-used by higher layer
- Consequences:
- Applications do not need to do anything in lower layers;
- information about network hidden from higher layers
Drawbacks?
- Obviously, too rigid, may lead to inefficient implementation
29
The most influential paper about placing
functionality is [Saltzer84]
“End-to-End Arguments in System Design” by Saltzer, Reed, and Clark
30
Draw a modular boundary around the
communication subsystem
For each function might be implemented
- By the communication subsystem
- By its client
- As a joint venture
- Redundantly (each doing its own version)
Function: reliable data transmission, encryption,
duplicate message detection, message sequencing,…
31
Some applications have end-to-end
performance requirements
- reliability, security, etc.
Implementing these in the network is very
hard:
- every step along the way must be fail-proof
32
Transferring file from host A to host B
- 1. At host A: read file from disk
- 2. A: ask the data communication system to
transmit the file
- 3. The data communication network moves the
packets from A to B
- 4. B: data comm. Program removes the packets
and hands the contained data on to file transfer application
- 5. B: write the data on the disk of host B
33
Design Concerns:
- 1. At host A: read incorrect data
- 2. File system, file transfer program or data communication
system might make a mistake in buffering and copying the data (in A or B)
- 3. The hardware processor or local memory might have a
transient error while buffering or copying (A or B)
- 4. Communication system might drop or change the bits in a
packet, or lose a packet or deliver a packet more than
- nce
- 5. Either of the hosts may crash
34
End-to-end argument
- Better to implement functions close to
application
- … except when performance requires otherwise
Why?
35
Solution 1: make each step reliable, and then concatenate
them
Solution 2: end-to-end check and retry
OS Appl. OS Appl. Host A Host B OK
36
Solution 1 not complete
- What happens if any network element misbehaves?
- The receiver has to do the check anyway!
Solution 2 is complete
- Full functionality can be entirely implemented at
application layer with no need for reliability from lower layers
Is there any need to implement reliability at lower layers?
37
Implementing this functionality in the network:
Doesn’t reduce host implementation complexity Does increase network complexity Probably imposes delay and overhead on all
applications, even if they don’t need functionality
However, implementing in network can enhance
performance in some cases
38
According to [Saltzer84]:
“…functions placed at the lower levels may be
redundant or of little value when compared to the cost
- f providing them at the lower level…”
“…sometimes an incomplete version of the function
provided by the communication system (lower levels) may be useful as a performance enhancement…”
39
“Don’t implement a function at the lower
levels of the system unless it can be completely implemented at this level” (Peterson and Davie)
Unless you can relieve the burden from hosts,
then don’t bother
40
Don’t implement anything in the network that
can be implemented correctly by the hosts
- e.g., multicast
- Makes network layer absolutely minimal
- Ignores performance issues
Don’t rely on anything that’s not on the data
path
- Makes network layer more complicated
41
Think twice before implementing
functionality in the network
If hosts can implement functionality
correctly, implement it a lower layer only as a performance enhancement
But do so only if it does not impose burden
- n applications that do not require that
functionality
42
Don’t put application semantics in network
- Leads to loss of flexibility
- Cannot change old applications easily
- Cannot introduce new applications easily
Normal E2E argument: performance issue
- introducing more functionality imposes more overhead
- subtle issue, many tough calls (e.g., multicast)
Extended version:
- short-term performance vs long-term flexibility
43
network layer provides one simple service: best
effort datagram (packet) delivery
transport layer at network edge (TCP) provides
end-end error control
- performance enhancement used by many
applications (which could provide their own error control)
all other functionalities …
- all application layer functionalities
- network services: DNS
implemented at application level
44
Do These Belong in the Network?
- Multicast?
- Routing?
- Quality of Service (QoS)?
- Name resolution? (is DNS “in the network”?)
- Web caches?
45
Install functions in network that aid application
performance….
…without limiting the application flexibility of the
network
Trade-offs:
- application has more information about the data and
semantics of required service (e.g., can check only at the end of each data unit)
- lower layer has more information about constraints in
data transmission (e.g., packet size, error rate)
Note: these trade-offs are a direct result of layering!
46
Layering and E2E Principle regularly violated:
- Firewalls
- Transparent caches
- Other middleboxes
Battle between architectural purity and
commercial pressures
47
1.
Connect existing networks
- initially ARPANET and ARPA packet radio network
2.
Survivability
- ensure communication service even with network
and router failures
3.
Support multiple types of services
4.
Must accommodate a variety of networks
5.
Allow distributed management
6.
Allow host attachment with a low level of effort
7.
Be cost effective
8.
Allow resource accountability
In order of importance:
48