Ali Kamandi Spring 2007 kamandi@sharif.edu Sharif University of - - PowerPoint PPT Presentation

ali kamandi spring 2007 kamandi sharif edu sharif
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Ali Kamandi Spring 2007 kamandi@sharif.edu Sharif University of Technology

slide-2
SLIDE 2

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”

slide-3
SLIDE 3

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
slide-4
SLIDE 4

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

slide-5
SLIDE 5

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

slide-6
SLIDE 6

6

Point-to-point vs. broadcast links/

wireless media

switched networks connecting “clouds” (existing physical networks)

  • inter-networking using gateways

(a) (b)

base station

slide-7
SLIDE 7

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

slide-8
SLIDE 8

S S D D S S D D

Circuit Switching Circuit Switching Packet Switching Packet Switching “ “telephone network telephone network” ” Internet Internet

slide-9
SLIDE 9

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)
slide-10
SLIDE 10

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

slide-11
SLIDE 11

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

slide-12
SLIDE 12

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

slide-13
SLIDE 13

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
slide-14
SLIDE 14

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, ……

slide-15
SLIDE 15

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

slide-16
SLIDE 16

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

slide-17
SLIDE 17

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

slide-18
SLIDE 18

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

slide-19
SLIDE 19

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

slide-20
SLIDE 20

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

slide-21
SLIDE 21

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

slide-22
SLIDE 22

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

slide-23
SLIDE 23

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)

slide-24
SLIDE 24

24

slide-25
SLIDE 25

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

slide-26
SLIDE 26

IPv4 - 32 bits (4.3 billion addresses) IPv 6 – 128 bits (1038 addresses)

that’s 100 trillion trillion trillion …

slide-27
SLIDE 27

27 applicatio n

SMTP Telnet NFS/Sun RPC FTP DNS HTTP RealAudio RealVideo

slide-28
SLIDE 28

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
slide-29
SLIDE 29

29

The most influential paper about placing

functionality is [Saltzer84]

“End-to-End Arguments in System Design” by Saltzer, Reed, and Clark

slide-30
SLIDE 30

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,…

slide-31
SLIDE 31

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
slide-32
SLIDE 32

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
slide-33
SLIDE 33

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
slide-34
SLIDE 34

34

End-to-end argument

  • Better to implement functions close to

application

  • … except when performance requires otherwise

Why?

slide-35
SLIDE 35

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

slide-36
SLIDE 36

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?

slide-37
SLIDE 37

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

slide-38
SLIDE 38

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…”

slide-39
SLIDE 39

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

slide-40
SLIDE 40

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
slide-41
SLIDE 41

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

slide-42
SLIDE 42

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
slide-43
SLIDE 43

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

slide-44
SLIDE 44

44

Do These Belong in the Network?

  • Multicast?
  • Routing?
  • Quality of Service (QoS)?
  • Name resolution? (is DNS “in the network”?)
  • Web caches?
slide-45
SLIDE 45

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!

slide-46
SLIDE 46

46

Layering and E2E Principle regularly violated:

  • Firewalls
  • Transparent caches
  • Other middleboxes

Battle between architectural purity and

commercial pressures

slide-47
SLIDE 47

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:

slide-48
SLIDE 48

48

What priority order would a commercial design

have?

What would a commercially invented Internet

look like?

What goals are missing from this list? Which goals led to the success of the Internet? How well has today’s Internet satisfied these

goals?