0% found this document useful (0 votes)
75 views23 pages

Wk12 - Motivations-Protocol Design and Validation

The document discusses motivations and aspects of protocol design, including understanding requirements and constraints, evaluating tradeoffs, learning from related solutions, and the importance of validation through implementation, testing, and real-world deployment to ensure protocols work as intended and enable interoperability. Key aspects of protocol design addressed include functional decomposition, communication partners and roles, and identifying partners through names, identifiers, addresses, and locators.

Uploaded by

Dahlia Gamal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
75 views23 pages

Wk12 - Motivations-Protocol Design and Validation

The document discusses motivations and aspects of protocol design, including understanding requirements and constraints, evaluating tradeoffs, learning from related solutions, and the importance of validation through implementation, testing, and real-world deployment to ensure protocols work as intended and enable interoperability. Key aspects of protocol design addressed include functional decomposition, communication partners and roles, and identifying partners through names, identifiers, addresses, and locators.

Uploaded by

Dahlia Gamal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 23

Motivations for

Protocol Design and Validation

Introduction
Slides
Thank you to
Jörg Ott jo and
Carsten Bormann
For the entire content
Motivation: Why still Protocol Design?

• New applications appear all the time – more and more net-based
• Within applications, functional decomposition and distribution
makes protocol design an inherent part of system design

• Evolution of communication technology incurs new demands


• Environmental changes require reconsidering the design of
existing protocols
• Migration ( “convergence”) requires re-thinking solutions to old
problems for a new environment (e.g. IP telephony, IP TV)
• Vast variety of problems and solutions
• Simple (e.g., just use RPC) vs. complex (BGP-4 for telephone numbers)
• All layers (from wireless MAC to QoS to auto-configuration to applications)
• Closed environments (within a product) to open standards
What is Protocol Design?

Many possible views


• Mathematical modeling
• Design and correctness proofs
• Protocol engineering process
• Management and process aspects of protocol design (software engineering view)
• Building blocks and design patterns
• Mechanisms for certain functions in creating protocols
• Tool chains for protocol specification, implementation, and validation
• Automating the creation process (but not the conceptual thinking)
• …
• We are interested in
• Why some designs work better (get accepted) than others (which don’t)
• Ideas of what is known as good practice beyond the engineering literature
• Understanding relationship between functional and non-functional aspects
• Considering some non-technical real-world aspects as well
Requirements Aspects

Understanding which problem to solve


Real problems vs. thoughts about solutions in search for a problem
Understanding the requirements
Functional: features, security, …
Non-functional: scale, operational aspects, time-to-market, cost
Understanding the constraints
Functional: operational environment
Non-functional: cost, weight, energy consumption, memory, CPU,

Understanding the acceptable tradeoffs
Must vs. nice-to-have
Is this some special case of a more general problem?
If so: does the problem become simpler by generalizing?
If not, is the more general problem worth solving?
Some General Protocol Design Aspects (1)

• Design scope
• Part of a specific application design
• Creation of a platform for a competitive environment
• Design target
• Complete solution, e.g., for an application
• Creation of building blocks targeted at flexible re-use
• Use of building blocks or technologies to create a particular solution
• Important design decision: Make or take
• Re-use existing technologies (accept less than 100% match)
• Benefit from experience, code, etc.
• But: who has change control, how long will the technology be supported,
does it really fit, will both protocols evolve in parallel, …?
• Create new technology from scratch (accept higher risk, longer time to market)
Some General Design Aspects (2)

• Learning from solutions to related problems


• Borrow concepts and mechanisms – but only where applicable!
• Avoid mistakes. Look at real-world deployments before
borrowing
• Yet avoid the “second system syndrome”
• Remember requirements during the design phase
• Optimize for the common case (if at all)
• Don’t over engineer – Keep it simple
• Avoid options and parameters
• Remember that it needs to be implemented in the end
• (we will address these and more such issues during the course)
Some General Protocol Design Aspects (3)

Separation of concerns
• Treat and solve independent aspects independently
• Caveat: what is really independent?
(Strict) layering
• Black box, well-defined service access points (SAPs) with layer-internal protocols
• Intends to completely shield lower layers and communication details from higher
layers
Leaky abstraction
• Strict layering will not always work, particularly if things go wrong
• Expose issues rather than trying to conceal them at any cost
• Applies to protocol design, to coding (and code generation), and others
Cross-layer optimization gaining importance
• Deal with dependencies on the lower layers
• Limit: your system is not always directly connected to the weakest link (layer)
Design Validation

Protocol design is relevant to later protocol validation


• From a correctness perspective
• From a performance perspective
Correctness of a specification
• May involve formal specification as design methods
• Using your favorite modeling or specification language
• May involve formal proofs
• Mostly for “simple” protocols and problems
Performance of a specification
• Mathematical modeling and analysis
• Evaluation by means of “implementation” and simulation
Both validations provide important feedback for the design process
Implementation & Validation

Protocol implementations need to be correct and interoperable


• Beware of complexity!
• In some cases, code may be generated from specifications using tools
Again: validation
• Limited functional validation through testing
– Test cases may be generated from specifications
– Usually cover only usage scenarios of limited complexity (explosion of number of tests)
• Performance validation through emulation and field tests with measurements
Difficulty: getting even close to the real-world conditions (in the lab)
• True validation will only occur through real world deployment (“in the wild”)
• Different platforms, different implementations, different user behavior, different
environmental conditions, (different interpretations of the spec), …
– Will also tell something about the impact on the network at large
• Implementation experience provides most important feedback
Conformance vs. Interoperability

Traditional thinking:
• All implementations must conform to specification
• If specification is good, this ensures interoperability
Modern thinking:
• Implementations have errors
• Specifications have errors and ambiguities
• Interoperability is actually more important than
conformance
– This includes interoperability with erroneous, but deployed
systems
Operations and Maintenance

Rollout
Monitoring
• Protocol and device operation
• Its impact on its environment
Diagnosis, Debugging
Protocol evolution over time
• To fix bugs
• To meeting changing or new requirements
– To get rid of unnecessary requirements and constraints
• To deal with changing environmental conditions
A Note on Protocols in the Real World

Protocol design usually makes assumptions


• About the environment it will operate in
– Technical terms: packet network, delay, packet loss, MTU, range of data rate, etc.
– Organization terms: trust, common management, configuration, interaction, etc.
• Lower layer services and characteristics to build upon
• Higher layer applications using it
Protocols may be successful or even “hyped”
– Examples today: HTTP, SIP, XML, to some extent SOAP, …
If they are, they will be used outside their specified limits
• In different environments, at different scales, for different purposes, …
People will blame the designer if they don’t work properly then
• Applicability statements are not necessarily read or adhered to
Subject Areas of Protocol Design

• General design space


• Functional building blocks
• Meta design aspects
Protocol Design is about Trade-Offs…

…given sets of requirements and environmental constraints.


“Good, fast, cheap – pick two, you cannot have all three.”
Examples
• Reliability vs. delay
• Functionality vs. bandwidth
• Extensibility vs. efficiency
• Functionality vs. simplicity
Virtually any design decision taken to achieve one goal will
counteract another
• Need to find a reasonable compromise to achieve desired
function at acceptable cost
Where Theory meets Practice…

Many design rules for protocols can be found


• Mechanisms to achieve certain functionality
• Keep it flexible and extensible
• Make it effective and efficient (optimize)
• Make it resilient
• …
To be applied wisely (not blindly)
• Considering the trade-offs
Beware of complexity
• People will blame the their device or technology if the stuff doesn’t (inter)work
• Regardless of where the problem is
• Too expensive or too difficult to use
Premature optimization is the root of all evil
• ...
Communication Partners and their Roles

Point-to-point vs. multipoint communications


• How many parties are involved in the protocol (from a semantics perspective)?
Unicasting vs. group-overlays vs. multicasting
– What type of information exchange is assumed?
Client-server vs. peer-to-peer communications
• Are the involved parties “equal” or do they have different responsibilities
– Note: peer-to-peer is more general than today’s widespread applications)
• In case of groups: are some more important than others?
– More than just two different classes of peers
• End-to-end vs. intermediaries vs. router-assist
– What kind of entities may, are, or must be involved? Are they “visible” or not?
• Communication among end systems vs. among network elements
– Transport and application vs. routing, network, maintenance protocols
• End-to-middle communications
Identifying Communication Partners

Names
• Human readable identifiers that can be remembered!
(e.g., DNS name, URI, URN)
Identifiers
• Machine-processable identifier (e.g., HI)
Addresses
• Protocol-level identifier (e.g., IP address)
Locators
• Information about the location of a partner in the network topology
Need to be managed (unique assignment)
• Or chosen randomly (and defended) in ad-hoc environments (birthday paradox)
One needs to resolved into the other
• Address books, (distributed) data bases (e.g., DNS, DHTs), protocol exchanges,
caching, (manual) configuration, …
Some Protocol Design “Knobs & Variables”

Stateful vs. stateless operation


• How much information is preserved across information exchanges
– Notion of an “association” or a “connection”
• Where is this state kept (one or both peers in the point-to-point case)?
Fixed nodes vs. mobile nodes
• impact on routing, reachability, …
Wireline vs. wireless communications
• Implications of different link layer technologies in general
Infrastructure-based vs. ad-hoc/autonomous communications
• What types of infrastructure are assumed? (e.g., routing, naming)
Security within the protocol vs. relying on security elsewhere
• Which implications (e.g., for required infrastructure such as PKI)
Functional Building Blocks

Naming and addressing


Rendezvous or invocation mechanisms
Semantics and properties of protocol operations
– Idempotent operations, delta vs. full state updates, synchronization,
Interaction paradigms
– Synchronous, asynchronous, both
– RPC-style operation vs. event notifications at any time
Reliability”
– Includes flow control, sequence preservation, etc.
– How probable is it that a certain operation will not fail.
– Example: transferring a file from A to B unchanged
– Multitude of different protocol mechanisms available
Functional Building Blocks (2)

Multiplexing
– Within the application protocol vs. using lower/requiring higher
layer mechanisms
“Multi-threading”
– Allowing multiple ongoing interactions at the same time
– E.g. lock-step vs. “windowing”
Security
– Authentication, integrity, non-repudiation (sender, receiver),
confidentiality
– Authorization of operations
(Auto)configuration
– How to get a system into a working condition
Meta Aspects of Protocol Design (1)

Independent of specific functions, yet to be provided in line with the


respective protocol
Adaptivity
– Capability of adapting to different environmental conditions (typically “QoS”)
(graceful degradation of service as long as acceptable)
– Example: play-out delay and codec adaptation with IP multimedia
Scalability
– Capability of working across a wide range of environmental parameters
• Typical example: Number of operational nodes
• Data rate, error rate, path length, delay (see above)
• Number and size of data items
Efficiency
– Maintaining a reasonable level of overhead
• Example: protocol encoding, protocol headers
Meta Aspects of Protocol Design (2)

Performance
– Number of protocol interactions, packets, bits, processing
– But don’t optimize (too early in the process)!
Security (again!)
Deployability
– One special case: robustness (against DoS, single point of failure,
etc.)
– Another special case: ability for stepwise introduction into the real
world
Evolvability
– Backward and forward compatibility
Operability and manageability

You might also like