Transcript ppt
CS244 Lecture 3
Architecture and Principles
1. End to end arguments in system
design (1981)
2. Tussles in cyberspace:
Defining Tomorrow’s Internet (2005)
Nick McKeown
End-to-End Arguments in System Design
[Saltzer, Reed, Clark 1981]
End-to-end in a nutshell
“The function in question can completely and correctly be
implemented only with the knowledge and help of the
application standing at the end points of the
communication system. Therefore, providing that
questioned function as a feature of the communication
system itself is not possible. (Sometimes an incomplete
version of the function provided by the communication
system may be useful as a performance enhancement.)”
2
Commonly used examples
1. Error handling in file transfer
2. End-to-end, versus in-network encryption
3. The partition between TCP and IP of
error handling, flow control and
congestion control.
3
What you said
“For some applications, such as banking,
application specific acknowledgements or
transactions may be necessary to ensure
consistency. In this respect, I think the question of
what we define as an acceptable end-point is
crucial in terms of what services we can expect the
communication system to provide.”
4
What you said
“I feel like this [paper] leads people to say, ‘This is
bad because it violates the End to End
Principle’, rather than, for example, ‘This is bad
because it makes assumptions about what
future applications might want.’ ”
-- Jason Clavelli
5
Some consequences
• In layered design, the E2E principle provides
guidance on where functions belong.
• “Dumb, minimal” network and “intelligent” endpoints.
Many argue that:
E2E principle allowed the Internet to grow
rapidly because innovation took place at the
edge, in applications and services.
6
On the other hand…
E2E principle appears to have become diluted:
NATs, firewalls, VPN tunnel endpoints, …
– Perhaps not surprising: E2E principle grew in an era
of trust among users. Now network must protect itself.
The network is no longer “dumb, minimal”
– Now over 7,000 RFCs.
– Router OS’s based on 100M lines of source code.
Q: Is this a problem?
7
What belongs in, what out?
Questions:
•Does routing belong in the “dumb, minimal”
network?
•How about multicast, mobility, QoS…?
•Are NATs necessary, good, or evil?
•Is the E2E principle constraining innovation
of the infrastructure?
8
Additional references
[rfc3724] “The Rise of the Middle and the Future of
End-to-End: Reflections on the Evolution of the
Internet Architecture” - Kempf et al.
[Blumenthal] “Rethinking the design of the
Internet: The end-to-end arguments vs. the
brave new world”, ACM Transactions on Internet
Technology, Vol. 1, No. 1, August 2001, pp 70-109.
9
Tussle in Cyberspace:
Defining Tomorrow’s Internet
Actor-Network Theory (ANT)
•Assumes equal treatment of humans and non-humans in an
interacting network.
•Distinction between ‘mediators’ and ‘intermediaries’: “silk and
nylon”.
10
Context
Why did the authors write the paper?
What had changed since the Internet was
invented?
11
Problem Statement
“The Internet was created in simpler times. Its creators and
early users shared a common goal —they wanted to build a
network infrastructure to hook all the computers in the
world together so that as yet unknown applications could
be invented to run there. All the players, whether
designers, users or operators, shared a consistent vision
and a common sense of purpose.”
“Perhaps the most important consequence of the Internet’s
success is that the common purpose that launched and
nurtured it no longer prevails.”
12
Types of Tussle
1. Economics
2. Trust
1. Openness
13
Trust
“One of the most profound and irreversible changes in the
Internet is that by and large, many of the users do not trust
each other. The users of the Internet no longer represent a
single community with common motivation and shared
trust.”
“[There] is a profound tussle, between people who want to
be left alone, and people who want to bother them.”
Q: How are we encouraged to think about this?
14
What you said
“The design of interfaces is the common theme linking the
Tussle paper and the end-to-end argument paper we are
discussing…I agree the end-to-end argument is still valid
today, but the transparency it encourages needs more
careful considerations in a playing field where trust cannot
be taken for granted.”
-- Ana Klimovic
15
What you said
“I'm pessimistic that there is much that system designers
can do to bias the tussle in favor of the user at this point.
Consider the recent net neutrality debate…”
--Wen-Chen Chen
16
Questioning sacred cows
1. End to end argument
Q: How is it affected by “tussles”?
1. Separate policy from mechanism
Q: What does it mean?
If the goal is to hook computers together and let
users run any application they want, then a
simple transparent network enables “user
empowerment”, choice and innovation.
17
A lesson
Hypothesis about QoS: Internet providers
had no incentive to deploy.
1.There is a real cost to deploy
2.Users had no way to choose providers
(local or remote).
Q: How is this related to tussles?
18
Consequences
What do the authors recommend we do?
What are the concrete steps?
19
Context for Next Class
20
Software Defined Network (SDN)
Control
Program
Control
Program
Control
Program
Global Network Map
Control Plane
Control
Packet
Forwarding
Control
Packet
Forwarding
Control
Packet
Forwarding
Control
Packet
Forwarding
Control
Packet
Forwarding
Software Defined Network
A network in which the control plane is
physically separate from the forwarding
plane.
and
A single control plane controls
several forwarding devices.
(That’s it)
Software Control Plane
SDN
Intended consequences...
1.
2.
3.
4.
Put network owners and operators in control.
Networks that are more reliable and more secure.
Networks that cost less: simpler, streamlined hardware.
Networks that cost less to operate (fewer features).
An example
Routing
function Dijkstra(Graph, source):
for each vertex v in Graph:
dist[v] := infinity ;
previous[v] := undefined;
dist[source] := 0 ;
Q := the set of all nodes in Graph ;
while Q is not empty:
// The main loop
u := vertex in Q with smallest distance in dist[] ;
remove u from Q ;
if dist[u] = infinity:
break ;
Edsger Dikjstra
1930-2002
Photo: Hamilton Richards
for each neighbor v of u:
alt := dist[u] + dist_between(u, v) ;
if alt < dist[v]:
dist[v] := alt ;
previous[v] := u ;
decrease-key v in Q;
return dist[], previous[];
end function
The Opte
1. Figure out which routers and links are present.
2. Run Dijkstra’s algorithm to find shortest paths.
“If a packet is going to B,
then send it to output 3”
Data
1 “If
2
, send to 3”
3
95%
1. Figure out which routers and links are present.
2. Run Dijkstra’s algorithm to find shortest paths.
5%
50,000 lines of code
50,000 lines of code
50,000 lines of code
Dijkstra
IS-IS
BGP
MPLS
Firewall…
Global Network Map
Network OS