The End-to-End Argument

Design Principles and Architectures for
End-to-End Quality of Service
Chris Gill
[email protected]
Center for Distributed Object Computing
Department of Computer Science
Washington University, St. Louis, MO
http://www.cs.wustl.edu/~cdgill/End_to_End.ppt
Theme: Layering in Distributed Systems
• End-to-end layers
– Application components, middleware services, and transport
protocols distributed over multiple end-systems
• Hop-to-hop layers
– Network: internetworking e.g., IP routing between LANs
– Data Link: e.g., frame management in LANs, bridges
– Physical: EE aspects for a medium: voltages, timing
• Different time scales
– End-to-end vs. hop-to-hop, in-band vs. out-of-band mechanisms
• Design Trade-offs
– How to decide what functionality belongs where
The End-to-End Argument
• J.H. Saltzer, D.P. Reed and D.D. Clark, “End-To-End
Arguments in System Design”, ACM Transactions on
Computer Systems, 4(4):277-288, November 1984.
• Design Principle: “A lower level subsystem that supports a
distributed application may be wasting its effort providing
a function that must by nature be implemented at the
application level anyway” - depends on other design forces
• Examples
– FTP correctness, message delivery, data encryption, duplicate
message suppression, FIFO message ordering, transactions
The End-to-End Argument: FTP
Correctness
• Question: where to perform bit error detection and/or
correction for file transfer in a distributed system?
• End-to-end path: I/O device to application to OS to
protocol stack to LAN to router to protocol stack to router
to LAN to protocol stack to OS to application to I/O device
• Hop-to-hop error detection/retransmit, or error correction
is overly expensive unless link is highly unreliable, and
will not solve the entire problem, as sender crashes, I/O bit
errors, and other threats still require end-to-end solution
• Application-specific solution is an end-to-end checksum
every so many bytes and at EOF
The End-to-End Argument: Message
Delivery
• A message is much shorter than a byte stream (e.g., FTP)
and is at less risk for corruption
• However, there are still many threats along the path
– E.g., packet dropping due to router congestion
• Hop-to-hop ACK/retransmit may be useful for congestion
control depending on link reliability and router
capabilities, but still cannot ensure “perfect” reliability
– E.g., receiver crashes right after receipt, unbounded priority
inversion on receiver, etc.
• Need an application-specific end-to-end solution such as a
transactional commit protocol
The End-to-End Argument: Secure
Transmission
• If hop-to-hop encryption is performed, network nodes will
need to securely manage encryption keys
• Unless the application also performs decryption, the
message will be vulnerable on the destination end-system
• The application will also need to perform authentication
of the messages it receives
• Therefore, intermediate encryption is redundant here
• However, intermediate encryption still might be useful to
ensure no unauthorized exposure of information occurs,
say outside a departmental firewall: additional requirement
The End-to-End Argument: Duplicate
Messages
• For efficiency, and possibly correctness, it is useful to
discard duplicate messages
• Even if the network discards all duplicate messages, it has
no way to detect duplication at the application level
– E.g., a repeated user login request due to slow system response
• Since the application needs a way to suppress duplicates
anyway, that function can also be used to suppress
duplicates originating in lower layers
• Therefore eliminating duplicates in lower layers is
wasteful, unless motivated by another design force
The End-to-End Argument: FIFO Ordering
• Independent paths are useful for robustness in the face of
link failures (e.g., spanning tree re-convergence for
routing), for priority-preserving virtual circuits, etc.
• Latency differences (e.g., due to congestion,
retransmission) between consecutive messages routed
along independent paths may result in reordering
• However, distributed applications over multiple endsystems are asynchronous, so for many application if the
order of messages is important, then a higher level
message synchronization protocol is needed anyway
The End-to-End Argument: Applied
• Distributed reads and writes in the SWALLOW distributed
data storage system - anticipates DOC applications (1984)
• Object id plus message version is sufficient to detect
duplicate writes at application layer of server, plus
duplicate replies for reads are easily discarded at client
• Writes on server are ACKed back to client after data is
stored safely, and the read value response is the ACK
• Performing duplicate elimination and acknowledgement at
the application level simplifies the lower layers, and
improves performance by reducing both in-band overhead
and message traffic from lower level ACKs
The End-to-End Argument: Endpoints
• The message delivery and secure transmission examples
highlight a more fundamental issue: where a path ends
• Different applications may apply requirements to different
path segments, and may have different overall paths
– Client-server application: two-way reply appears on the screen
– Manufacturing application: remote robot arm rotates 15 clockwise
• Different inherent semantics for various approaches
– CORBA 2-way calls vs. transactional MOM
• Different applications may produce different decisions
WRT the end-to-end argument
QoS Architectures
• Aurrecoechea, C., Campbell, A.T. and L. Hauw, "A Survey
of QoS Architectures," ACM/Springer Verlag Multimedia
Systems Journal , Special Issue on QoS Architecture, Vol.
6 No. 3, pg. 138-151, May 1998
• Presents a set of QoS design principles
• Presents an architecture (they use the term framework) for
QoS specification and enforcement
• Surveys other QoS management architectures, circa 1998
• Terrific bibliography (modulo a few erroneous dates) will highlight a few papers that proposed design principles
QoS Design Principles
• Integration principle - QoS must be configurable,
predictable, and maintainable over all layers
– Kurose, J.F. “Open Issues and Challenges in Providing Quality of
Service Guarantees in High Speed Networks”, ACM Computer
Communications Review, vol. 23, no. 1, pp. 6-15, Jan 1993
• End-to-end QoS depends on all modules traversed in the
end-to-end path, each of which must offer:
– QoS configurability based on some specification
– Resource guarantees and enforcement mechanisms
– Maintenance of ongoing flows
QoS Design Principles, Continued
• Separation principle - media transfer, control, and
management are three functionally distinct activities
– Lazar, A.A., “A Real-time Control, Management, and Information
Transport Architecture for Broadband Networks”, Proc.
International Zurich Seminar on Digital Communications, pp. 281295, 1992
• Three activities at three scales of complexity
– Media transfer - simple transmission: hop-to-hop forwarding
– Control - more complex but related to media transfer: routing,
queue scheduling, fine-grain monitoring etc.
– Management - distributed, possibly end-to-end: reservations,
reconfiguration, large-scale monitoring, etc.
QoS Design Principles, Continued
• Transparency principle - applications should be shielded
from the complexity of the underlying QoS policies and
management mechanisms
• Reduces accidental complexity by decoupling QoS aspects
from application functionality
• Delegates inherent complexity to a layer below the
application
– Combined with the end-to-end argument, this makes a good case
for QoS management in middleware
QoS Design Principles, Continued
• Multiple time scales principle - guides division of QoS
control and management functionality between modules
– (also from) Lazar, A.A., “A Real-time Control, Management, and
Information Transport Architecture for Broadband Networks”,
Proc. International Zurich Seminar on Digital Communications,
pp. 281-295, 1992
• Three activities at three scales of time
– Media transfer - rapid transmission
– Control - additional overhead but still close to media time scale
– Management - distributed, possibly end-to-end time scales
• Balancing design force to the end-to-end argument
QoS Design Principles, Continued
• Performance principle - a collection of widely agreed
design idioms pertaining to overall system performance
– The end-to-end argument
– Avoiding multiplexing
• Tennenhouse, D.L., “Layered Multiplexing Considered
Harmful”, Protocols for High-Speed Networks, Elsevier
Science Publishers (North-Holland), 1990
– Structuring communications protocols
• Clark, D. and Tennenhouse, D.L., “Architectural Consideration
for a New Generation of Protocols”, ACM SIGCOMM 1990
– Pushing protocol processing down into hardware
QoS Architecture: Specification
• Each category captures a class of application level QoS
requirements as declarative (what rather than how) policies
that are enforced by layer-specific mechanisms
– Flow synchronization - degree of frame tightness between flows
• interestingly, applies to frame-based event-driven applications
– Flow performance - throughput, delay, jitter, loss
– Level of service - deterministic, predictive, best effort gurantees
– QoS management policy - adaptation and scaling capabilities
– Cost of service - competitive, collaborative, individual/social good
QoS Architecture: Mechanisms
• Provisioning
– Initial flow establishment and end-to-end re-negotiation
– Setting up configurations of resources and functionality in support
of media transfer and processing
– End-to-end time scale
• Control
– In-band handling of flows on time-scales close to media transfer
• Management
– Out-of-band reconfiguration of flows to ensure contracts are met
– Time scales between media transfer and end-to-end
QoS Mechanisms: Provisioning
• QoS mapping
– Transforms application QoS requirements into policies for
configuring and operating mechanisms in systems layers
• Admission control
– Determines whether new requirements can be met given current
reservations and resources
• Resource reservation
– Once admission control has been performed, allocates (binds)
resources to the new flow(s)
QoS Mechanisms: Control
• Flow shaping
– In-band traffic pacing, smoothing, pruning to improve overall good
• Flow scheduling
– Forwarding/processing based on per-flow or aggregate policy
• Flow policing
– Detects misbehaving flows
• Flow control
– Sender pacing or receiver feedback adaptation
• Flow synchronization
– Control of flows based on aggregate policies
QoS Mechanisms: Management
• QoS monitoring
– Each layer may track QoS achieved by other modules (feedback)
• QoS maintenance
– Tunes operations based on perceived/expected QoS
• QoS degradation
– QoS cannot be corrected by lower layers, must handle or pass up
• QoS availability
– Performance monitoring/assessment/signaling intervals
• QoS scalability
– Filtering and adaptation over heterogeneous resources/end-systems
Survey of Related QoS Architectures
•
•
•
•
•
•
•
•
•
•
IBM European Networking Center (Heidelberg) - HeiRAT
Columbia U - eXtended integrated Resource Model (XRM)
U Pennsylvania - OMEGA
IETF - IntServ
Lancaster U, Alcatel - QoS-A
OSI - QoS Framework
UC Berkeley - Tenet Architecture
TINA-C - QoS Framework
U Pierre et Marie Curie - MASI End-to-End model
Washington U (Gopal) - End System QoS Framework
Conclusions
• Application-specific QoS requirements must be considered
– Timeliness, correctness, liveness, security
• Application-specific design forces combine with the
inherent complexities of distribution
– Asynchrony, failures, latency, etc.
• System design principles articulate key idioms/forces
• Design patterns and pattern languages appear helpful
– Identifying and codifying trade-offs driven by design forces
• End-to-end argument supports the case for middleware
– Need flexibility to plug in application-specific high-level policies
– Encapsulation of common mechanisms in middleware reduces
accidental complexity for the application