Talk Slides on Services Architectures

Download Report

Transcript Talk Slides on Services Architectures

Services Architectures –
Network Intermediaries
and End-to-end
Abstractions
Dan Duchamp
Stevens Institute of Technology
Tilman Wolf
University of Massachusetts Amherst
Outline


Premise: The next-generation Internet needs
to do more than provide end-to-end bit pipes
Three topics:
1.
2.
3.

Process




Network services and incentives (Dan)
Implementation challenges (Tilman)
Trust and naming (guest speaker: Paul Francis)
Questions
Brief presentation of context
Long discussion
Comments and questions welcome anytime!
Network Services
and Incentives
Questions




What services should the network provide?
Should the network offer service at the application level
rather than at the datagram level?
Should anybody be allowed to provide services or not
(and thus reduce potential for spam, phishing, spyware,
etc.)?
Will ease/speed of new service deployment be as
important in the future as it has been in the past? Will the
rate increase or decrease?
Questions (cont.)





Capitalists would like to know: how should
accounting/billing work?
Should we construct a network that could, for example,
bill per page view?
Socialists would like to know: how can "undesirable
uses" of the Internet be limited?
What is the appropriate position for network architects to
take regarding the design of censor-able, tap-able, spyable Internet?
What is the right technical tradeoff point between (1) a
"civilized" appropriately-governable Internet, and (2) an
Internet permitted "free expression"?
Session Layer Management
of Network Intermediaries
Dan Duchamp
Computer Science Department and
Wireless Network Security Center (WiNSeC)
Stevens Institute of Technology
Hoboken, NJ
The Discrete Internet

Original Internet:
 Infrastructure
supported by US government
 Users like-minded, like-behaving
 Intelligent hosts at edges of dumb routing fabric

Current Internet:
 Commercially
owned
 Subject to government oversight
Why Deploy Intermediaries?

Commercial incentives:
 “Added
value” – avoid being “dumb pipe”
 Place service hosts closer to client hosts to
improve latency (e.g., Akamai)

Customer incentives:
 Enforce
customer policies on customer-owned
networks (e.g., firewall)
 IP address flexibility/security (NAT)

Government incentives:
 Law
enforcement & surveillance
The Point Is …
Internet has already been broken into
discrete pieces
 Situation is not going to change
 We can either complain about it (end-toend zealots) or deal with it

Basic Idea


End-to-end layer 5 (L5) session runs over
sequence of layer 4 (L4) transport connections
Intermediaries explicitly addressed, each
terminates an L4 connection
Consequences
Easier to manage intermediaries if they
are explicitly addressed
 Easier to manage network too
 Transport connections now long-lived &
heavily used—that’s how they work best:

 Amortize
Path MTU discovery
 Maintain sstresh/cwnd settings
 More statistical multiplexing = less burstiness
Hypothesized Benefits
Cleaner programming model
 Improved congestion control
 Improved core link utilization
 More efficient physical/routing design
 Improved session performance via pipeline
parallelism

 Important
qualification: improved performance
after session has been established

Easier traffic engineering
Foreseen Technical Problems
How to locate desired intermediate service?
 Session setup too slow
 Study buffer management
 How to manage intermediary state?
 Additional points of failure & types of failures
 What is right app-intermediary control
semantics/protocol?
 Want “piecewise security”—service X should
see only one part of payload, service Y only
another part

Foreseen Philosophical Problems
Unambitious: just what we don’t need—
another hack to the socket/TCP/IP model
 Network is still pretty dumb: should know
more about session semantics?
 If L5 handles end-to-end delivery
semantics, what does L4 do?

Relation to FIND/GENI
Yes, it’s true—L5 is just a tweak, not a new
architecture
 But: gives a concrete base for experiments
with certain architectural issues:

 What
is a service? Where is it implemented?
Who really provides it—network or host?
 State management
 Semantics/protocol for control signaling
between end system & intermediary
 Mapping of function to layers
Questions




What services should the network provide?
Should the network offer service at the application level
rather than at the datagram level?
Should anybody be allowed to provide services or not
(and thus reduce potential for spam, phishing, spyware,
etc.)?
Will ease/speed of new service deployment be as
important in the future as it has been in the past? Will the
rate increase or decrease?
Questions (cont.)





Capitalists would like to know: how should
accounting/billing work?
Should we construct a network that could, for example,
bill per page view?
Socialists would like to know: how can "undesirable
uses" of the Internet be limited?
What is the appropriate position for network architects to
take regarding the design of censor-able, tap-able, spyable Internet?
What is the right technical tradeoff point between (1) a
"civilized" appropriately-governable Internet, and (2) an
Internet permitted "free expression"?
Implementation
Challenges
Questions




If services are (partially) provided in the network,
what is the appropriate "cut" between what is
done in the network and what is done at the
host? Does one “cut” fit all?
How should services be accessed? Should the
end-system application choose or should the
network enforce service use?
How much should the network know about data
semantics?
Is the web browser the "last application"? That
is, every future service will have its host
implementation as a browser plugin?
Questions (cont.)




Should all services be visible to end-systems?
Should all data modifications be reported to endsystems?
Should communication between services be
allowed?
How should service state be handled?
What services are necessary at the edges of
networks with different operating principles (e.g.,
Internet to/from sensor net)
Service-Centric
End-to-End Abstractions in
Next-Generation Networks
Tilman Wolf
Department of Electrical and Computer Engineering
University of Massachusetts Amherst
Information vs. Data

Current Internet considers data as unchangeable entity




End-systems want to transfer information
Use of explicit “information transfer” semantics


Network communicates and processes information in suitable
way
High-level semantics sufficient





Information encoded on end-systems
Network unaware of semantics
Streaming vs. random access
Point-to-point vs. multipoint
Interactive vs. “canned”
Bandwidth-sensitive vs. delay-sensitive
Requires network to do more than forward bits
Information Transfer and Data Services



Processing of data not limited to end-systems anymore
Data processing throughout the network
Services:
Application Layer
Application Layer








Reliability
Privacy
Congestion control
Caching
Security (e.g., firewall,
IPS/IDS)
Quality of service
Multicast
Payload transcoding
processing
processing
Transport Layer
Transport Layer
Network Layer
Network Layer
Network Layer
Link Layer
Link Layer
Link Layer
Physical Layer
Physical Layer
Physical Layer
Information Transfer and Data Services Layer
processing
processing
processing
processing
Network Layer
Network Layer
Network Layer
Link Layer
Link Layer
Link Layer
Physical Layer
Physical Layer
Physical Layer
Services


Services can be combined for end-to-end information
transfer
Example 1:

Reliable and private communication
information
encoding

encryption
decryption
privacy
service
privacy
service
reliability
service
reliability
service
information
decoding
Example 2:

Web caching
information
encoding
reliability
service
reliability
service
reliability
service
information
encoding
reliability
service
reliability
service
web
caching
reliability
service
information
decoding
Services

Example 3:

Content distribution and transcoding
reliability
service
information
encoding
reliability
service
payload
transcoding
reliability
service
reliability
service
information
decoding
reliability
service
information
decoding
reliability
service
multicast

reliability
service
reliability
service
How can all this be implemented?
Service Platforms

Network processors are specialized processing system
for packet processing



Typical configurations



Control processor
System-on-a-chip
multiprocessor
Optimized for networking
workloads
Tens to hundreds of
processing engines
Multiple memory interfaces,
co-processors
Commercially available

Intel, AMCC, Freescale,
Hifn, etc.
Memory
I/O
Multiple
data path
processors
Service Specification

Abstraction for services along connection


Example 1: transfer between nodes


{N1 | TCP_TX > N2 | TCP_RX}
Example 3: transcoding at arbitrary intermediate node


{N1 > N2}
Example 2: reliable transfer between nodes


Similar to “UNIX pipe” concept
{N1 | TCP_TX > * | TXP_RX | TRANSCODE | TCP_TX
> N2 | TCP_RX}
Leads to placement problem

Assignment of processing tasks to underlying infrastructure
Service Placement

Mapping
problem
appears on
all layers
of system



End-to-end
Routers
Port processors
End-to-end Information Transfer
Endsystem
Router
Endsystem
Router
Router
Data Services
mapping
Router
Router
Endsystem
network
Router
Service Provisioning on Routers
Data service
Mapping Computation on
Network Processors
Data service
mapping
mapping
Router
Port
Port
Switching
fabric
Port
Port
Network processor
Proc.
Proc.
Proc.
Proc.
Proc.
Proc.
Service Placement

Layered graph approach

Single metric for communication and computation
Source of
connection
Extra layer
with vertical
“processing
steps”
Destination
of
connection
Service Placement

Ramdomized mapping approach:




Random
placement
Fast analytics
evaluation
Repeat
Performance

Incrementally
better results
Summary and Next Steps

Abstraction based on information and data
services
 Network
can provide best setup for end-to-end
communication
 Requires processing capabilities throughout the
network

Tackle implementation issues
 Service
specification
 Service placement
 Prototype demonstration
Questions




If services are (partially) provided in the network,
what is the appropriate "cut" between what is
done in the network and what is done at the
host? Does one “cut” fit all?
Is the web browser the "last application"? That
is, every future service will have its host
implementation as a browser plugin?
How should services be accessed? Should the
end-system application choose or should the
network enforce service use?
How much should the network know about data
semantics?
Questions (cont.)




Should all services be visible to end-systems?
Should all data modifications be reported to endsystems?
Should communication between services be
allowed?
How should service state be handled?
What services are necessary at the edges of
networks with different operating principles (e.g.,
Internet to/from sensor net)
Trust and Naming
Questions







Should the Internet provide "trust"?
Should we have source/identity validation?
If application creators (apparently) want source/identity
validation, why not provide it?
Is a better tradeoff between trust/flexibility achievable?
How?
What should we use to identify end-system processes,
users, etc.?
How should we maintain identity mapping under
mobility?
Should the network understand the semantics of a data
exchange?
End-Middle-End
Architectures
Paul Francis
Cornell University
Most basic function in the Internet:

Send a packet from an app on one host to
an app on another host

Often doesn’t work…
 Sometimes
an unwanted connection can be
made
 Often a wanted connection cannot be made
What is the problem?
IPv6 folks think (thought?) the problem is
NATs
 But firewalls often err

 Port
number only meaningful at the endhost
 Addresses change

Shouldn’t access control be done at the
hosts?
 Argument
of IPv6’ers and E2E purists
We still need firewalls
DoS
 Privacy of endhost

 IP
address gives away private information
 Study of 100K mobile dyndns users

Reality of infrastructure evolution
 Sometimes
middle
its just easier to put a box in the
Other reasons to put stuff in the middle
Proximity (web caches)
 Benefits of scale (spam filtering)
 Centralized control
 Ease of deployment

End-Middle-End architecture

Need an architecture that allows all
stakeholders in a connection to:
 Know
what is going on
 Assert their policies
 Access control policies
 Steering policies
 Security policies
 Transport policies
Do we need a blank slate?

Maybe

But lots of progress can be made on the
existing infrastructure

Formed EME IRTF Research group
 Initiated
by Francis and Handley
 Chaired by Tilman Wolf
 Early stages
EME requirements

Authentication, access control, and privacy
 Name-based
Middlebox discovery and control
 Steering through middleboxes
 Anycast, multicast
 Mobility, multihoming
 Multi-party negotiation
 Performance
 Incremental deployability

EME Architecture

“Demote” 5-tuple connection
 Ephemeral
Use name-based signaling to manage
connections
 Make this name-based approach part of
the common sockets API

Slightly more detail

Two types of signaling
 Off-path
Used when IP address(es) not known
 Or to obtain (optional) credentials
 SIP is a good model

 On-path
Used when IP address(es) known and have
credentials
 Get through firewalls
 Steer connections

Questions







Should the Internet provide "trust"?
Should we have source/identity validation?
If application creators (apparently) want source/identity
validation, why not provide it?
Is a better tradeoff between trust/flexibility achievable?
How?
What should we use to identify end-system processes,
users, etc.?
How should we maintain identity mapping under
mobility?
Should the network understand the semantics of a data
exchange?