CSE 390 Advanced
Computer Networking
Lecture 3: Internet Architecture
(Layer cake and an hourglass)
Based on slides from D. Choffnes Northeastern U. Revised
Fall 2014 by P. Gill
Last time …
2
History + Introduction
… Today: architecture, physical, + data link layer
Goals of the Internet Architecture (Clark ‘88)
3
1. Connect existing networks
2. Robust in face of failures (not nuclear war…)
3. Support multiple types of services
4. Accommodate a variety of networks
5. Allow distributed management
6. Easy host attachment
7. Cost effective
8. Allow resource accountability
Robust
4
1. As long as the network is not partitioned, two endpoints should be
able to communicate
2. Failures (excepting network partition) should not interfere with
endpoint semantics (why?)
Maintain state only at end-points
Fate-sharing, eliminates network state restoration
If information associated with an entity is lost, then the entity itself must
have been lost
stateless network architecture (no per-flow state)
Routing state is held by network (why?)
No failure information is given to ends (why?)
Types of Services
5
Use of the term “communication services” already
implied that they wanted application-neutral network
Realized TCP wasn’t needed (or wanted) by some
applications
Separated TCP from IP, and introduced UDP
What’s missing from UDP?
Variety of Networks
6
Incredibly successful!
Minimal requirements on networks
No need for reliability, in-order, fixed size packets, etc.
IP over everything
Then: ARPANET, X.25, DARPA satellite network..
Now: ATM, SONET, WDM…
Host Attachment
7
Clark observes that the cost of host attachment may be
somewhat higher because hosts have to be smart
Imagine a time before all that functionality existed in the
OS!
But the administrative cost of adding hosts is very low,
which is probably more important
Happens within a logical domain, no need to coordinate
with others
Real Goals
1. Something that works…..
2. Connect existing networks
3. Survivability (not nuclear war…)
4. Support multiple types of services
5. Accommodate a variety of networks
6. Allow distributed management
7. Easy host attachment
8. Cost effective
9. Allow resource accountability
8
Internet Motto
We reject kings , presidents, and voting.
We believe in rough consensus and running code.”
David Clark
9
Questions
10
What priority order would a 1. Something that works…..
commercial design have? 2. Connect existing networks
3. Survivability (not nuclear
war…)
What would a
commercially invented 4. Support multiple types of
services
Internet look like?
5. Accommodate a variety of
networks
What goals are missing 6. Allow distributed
from this list? management
7. Easy host attachment
Which goals led to the 8. Cost effective
success of the Internet? 9. Allow resource accountability
Organizing Network Functionality
11
Networks are built from many components
Networking technologies
Ethernet, Wifi, Bluetooth, Fiber Optic, Cable Modem, DSL
Network styles
Circuit switch, packet switch
Wired, Wireless, Optical, Satellite
Applications
Email, Web (HTTP), FTP, BitTorrent, VoIP
How do we make all this stuff work together?!
Problem Scenario
12
Web Email Bittorrent VoIP
• This is a nightmare scenario
• Huge amounts of work to add new apps or media
• Limits growth and adoption
Ethernet 802.11 Bluetooth Cellular
More Problems
13
Bittorrent Bittorrent
Application endpoints
may not be on the same
media
Ethernet 802.11
Solution: Use Indirection
14
Web Email Bittorrent VoIP
API
• O(1) work to add new apps, media
Magical Network Abstraction Layer
•API
Few limitsAPI
on new technology
API
Ethernet 802.11 Bluetooth Cellular
Layered Network Stack
15
Modularity
Applications Does not specify an implementation
Instead, tells us how to organize functionality
Layer N Encapsulation
Interfaces define cross-layer interaction
…
Layers only rely on those below them
Layer 2 Flexibility
Reuse of code across the network
Layer 1 Module implementations may change
Unfortunately, there are tradeoffs
Physical Interfaces hide information
Media As we will see, may hurt performance…
Key Questions
16
How do we divide functionality into layers?
Routing Security
Congestion control Fairness
Error checking And many more…
How do we distribute functionality across devices?
Example: who is responsible for security?
Switch Switch
Router
17 Outline
Layering
The OSI Model
Communicating
The End-to-End Argument
The ISO OSI Model
18
OSI: Open Systems Interconnect Model
Host 1 Switch Host 2
Application Application
Presentation Layers
All communicate
devices implement Presentation
Layers communicate
Session the peer-to-peer
first three layers
peer-to-peer Session
Transport Transport
Network Network Network
Data Link Data Link Data Link
Physical Physical Physical
Layer Features
19
Application
Presentation Service
Session
What does this layer do?
Interface
Transport How do you access this layer?
Network Protocol
Data Link How is this layer implemented?
Physical
Physical Layer
20
Service
Application Move information between two
systems connected by a physical link
Presentation
Interface
Session Specifies how to send one bit
Transport Protocol
Network Encoding scheme for one bit
Data Link Voltage levels
Timing of signals
Physical
Examples: coaxial cable, fiber
optics, radio frequency transmitters
Data Link Layer
21
Service
Application Data framing: boundaries between
packets
Presentation Media access control (MAC)
Session Per-hop reliability and flow-control
Transport Interface
Network
Send one packet between two hosts
connected to the same media
Data Link Protocol
Physical Physical addressing (e.g. MAC address)
Examples: Ethernet, Wifi, DOCSIS
Network Layer
22
Service
Application Deliver packets across the network
Handle fragmentation/reassembly
Presentation Packet scheduling
Session Buffer management
Transport Interface
Network
Send one packet to a specific destination
Protocol
Data Link Define globally unique addresses
Physical Maintain routing tables
Example: Internet Protocol (IP), IPv6
Transport Layer
23
Service
Application Multiplexing/demultiplexing
Congestion control
Presentation
Reliable, in-order delivery
Session Interface
Transport Send message to a destination
Network Protocol
Data Link Port numbers
Reliability/error correction
Physical Flow-control information
Examples: UDP, TCP
Session Layer
24
Service
Application Access management
Presentation Synchronization
Session Interface
Transport It depends…
Network Protocol
Data Link
Token management
Insert checkpoints
Physical
Examples: none
Presentation Layer
25
Service
Application Convert data between different
representations
Presentation E.g. big endian to little endian
Session E.g. Ascii to Unicode
Transport Interface
Network It depends…
Data Link
Protocol
Define data formats
Physical Apply transformation rules
Examples: none
Application Layer
26
Application Service
Presentation Whatever you want :)
Session Interface
Whatever you want :D
Transport
Protocol
Network Whatever you want ;)
Data Link Examples: turn on your smartphone
Physical and look at the list of apps
Encapsulation
27
How does data move through the layers?
Data Application
Presentation
Session
Transport
Network
Data Link
Physical Data
Real Life Analogy Doesn’t know how the
28
Postal network works
Label containsUn-packing
routing info
Doesn’t know
contents of letter
Postal Service
Network Stack in Practice
29
Host 1 Switch Host 2
Application Application
Presentation Presentation
Video
FTP Client
Session
Client Video Server
Session
FTP Server
UDP
Transport
TCP UDP
Transport
TCP
Network
IP Network
IP Network
IP
Data Link
Ethernet
802.11n Data Link
Ethernet
802.11n Data Link
Ethernet
802.11n
Physical Physical Physical
Encapsulation, Revisited
30
HTTP Web Web
Header Page Server
TCP HTTP Web
TCP
Header Header Page
TCP Segment
IP TCP HTTP Web
IP
Header Header Header Page
IP Datagram
Ethernet IP TCP HTTP Web Ethernet
Ethernet
Header Header Header Header Page Trailer
Ethernet Frame
The Hourglass
31
HTTP, FTP, RTP, IMAP, Jabber, …
• One Internet layer means all networks
TCP, UDP, ICMP
interoperate
Think about the
• All applications function
IPv4 on all networks
difficulty of
• Room for development above and belowIPv6…
deploying IP
• But, changing IP802.11x,
Ethernet, is insanely hard
DOCSIS, …
Fiber, Coax, Twisted Pair, Radio, …
Orthogonal Planes
32
Control plane: How Internet paths are established
Application
Presentation Well cover this
Session later…
Transport
IP BGP RIP OSPF Control Plane
Data Link
Physical
Orthogonal Planes
33
Data plane: How data is forwarded over Internet paths
Host 1 Switch(es) Host 2
Application Application
Transport Transport
Network Network Network
Data Link Data Link Data Link
Reality Check
34
The layered abstraction is very nice
Does it hold in reality?
No.
Firewalls Transparent Proxies NATs
Analyze application Simulate application Break end-to-end
layer headers endpoints within the network reachability
network
35 Outline
Layering
The OSI Model
Communicating
The End-to-End Argument
From Layers to Eating Cake
36
IP gives us best-effort datagram forwarding
So simple anyone can do it
Large part of why the Internet has succeeded
…but it sure isn’t giving us much
Layers give us a way to compose functionality
Example: HTTP over TCP for Web browsers with reliable
connections
…but they do not tell us where (in the network) to
implement the functionality
Where to Place Functionality
37
How do we distribute functionality across devices?
Example: who is responsible for security?
? ? ?
? ?
Switch Switch
Router
“The End-to-End Arguments in System Design”
Saltzer, Reed, and Clark
The Sacred Text of the Internet
Endlessly debated by researchers and engineers
Basic Observation
38
Some applications have end-to-end requirements
Security, reliability, etc.
Implementing this stuff inside the network is hard
Every step along the way must be fail-proof
Different applications have different needs
End hosts…
Can’t depend on the network
Can satisfy these requirements without network level
support
Example: Reliable File Transfer
39
Integrity Integrity
Check Check
Integrity App has to do a
Check check anyway!
Solution 1: Make the network reliable
Solution 2: App level, end-to-end check, retry on failure
Example: Reliable File Transfer
40 Please
Retry
• In-network implementation…
Doesn’t reduce host complexity
Does increase network complexity
Increased overhead for apps that don’t need
functionality Full functionality can
• But, in-network performance mayatbe
be built Appbetter
level
Solution 1: Make the network reliable
Solution 2: App level, end-to-end check, retry on failure
Conservative Interpretation
41
“Don’t implement a function at the lower levels of
the system unless it can be completely implemented
at this level” (Peterson and Davie)
Basically, unless you can completely remove the
burden from end hosts, don’t bother
Radical Interpretation
42
Don’t implement anything in the network that can be
implemented correctly by the hosts
Make network layer absolutely minimal
Ignore performance issues
Moderate Interpretation
43
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 on
applications that do not require that functionality…
…and if it doesn’t cost too much $ to implement
Reality Check, Again
44
Layering and E2E principals regularly violated
Firewalls Transparent Proxies NATs
Conflicting interests
Architectural purity
Commercial necessity
Takeaways
45
Layering for network functions
Helps manage diversity in computer networks
Not optimal for everything, but simple and flexible
Narrow waist ensures interoperability, enables
innovation
E2E argument (attempts) to keep IP layer simple
Think carefully when adding functionality into the
network