38.157 Protocol Design-course, overview

advertisement
38.157 Protocol Design-course, overview
• Lecturer: Prof. Jorma Jormakka
• Exercises: Prof. Jorma Jormakka
• Lecures Spring 20001 will probably be moved to Autumn 2001
in order to coordinate the course with the TIK course protocol
production, which is rather similar in content. We will see.
• 38.157 is at least 13 years old course and was previously called
72.157 Communication protocol design (Tiedonsiirron
yhteyskäytäntöjen suunnittelu). Originally the content was
protocol development tools from VTT (CVOPS), formal
languages (SDL, Lotos) applied to OSI protocol development.
• What is it now? There are three approaches to make protocols:
ITU-T/ETSI-method, OOD/ODP-method and IETF-method.
• In each method: general approach, design process,
architectures, protocol mechanisms, tools, languages.
38.157 Protocol Design-course, overview
• There is another course, 38.151 Service Creation and
Development. It concentrates on service design. Java-based
solutions are there, so are related IN-based approaches.
• A service is more customized, fast created and deployed,
more dynamic.
• Protocol Design deals with protocol layers above the network
layer, so it is upper layer and application software design and
development.
• Applications are often value added services, but the
difference with service creation is that the services in
protocol design course are more generic and more stable.
• They are created in protocol design methods, while in service
creation you want faster development process and more
dynamics. Protocol design is more method oriented.
38.157 Protocol Design-course, overview
• Whether to teach small amount of material deeply and well
and have a difficult exam, or cover large amount of material
less deeply and have a rather easy exam?
• The first alternative is good for basic mathematics as it
teaches logical thinking. It is also good if you need precisely
some knowledge.
• The second alternative is better if: there are many things
which may be needed, you will anyway forget the details and
have to refresh the knowledge if you need it, the purpose is to
teach that there are always coming new things which must be
learned very fast and applied immediately. It is also better for
giving a whole picture of the field. The course is not a set of
uncorrelated fragments where the topic changes for each
lecture as it may appear at first, but it covers the essential
aspects of what is protocol design.
38.157 Protocol Design-course, overview
• Protocol design covers a rather wide area. It differs from
TIK Protocol production in this respect. The idea is that
while there is a need for deep courses on a specific topic,
everybody should have some knowledge of all important
areas in telecommunications. Many people will work on
protocol development and the techniques in this course and
on 38.151 are among the techniques, which people usually
need in their work.
• There is another goal: to try to understand what is protocol
design. What are the questions upper layer protocols try to
solve? What are the known solution methods? Where tools
can be used? What are technologically superior design
processes?
38.157 Protocol Design-course, overview
• Goal: to be able oneself to estimate technological characteristics
of different design processes rather than stating slogans.
• ITU-T/ETSI-process:
– slow, traditional, producing heavy ponderous solutions
– or, a practical process producing working standards and tools
• OOD/ODP-process:
– TINA-like architectures, which never work, useless languages like Object
Z, too heavy solutions, what for viewpoints?
– or, modern software design methods, rather goods languages and tools
• IETF-process:
– ad hoc development methods, unsolved problems, no tools
– or, simple solutions, working protocols, some useful concepts
• Java-process:
– write once, run everywhere
– or, not a very suitable technology to problems on protocol design
38.157 Protocol Design-course, overview
• ITU-T/ETSI-process
– standards for interoperability, no reference implementations,
fair to vendors
– largely the view of users (operators)
– top down design
– influenced by the automatic code generation trend
– precise specifications, time and work power used for
specifications is not a major issue. It is possible to create a
very precise well tested specification.
– formal process, languages (SDL, MSC, ASN.1, GDMO,
TTCN, Lotos,...)
– tools for specification, verification, implementation, testing
– architectures (SS7, IN, GSM, TMN, OSI)
– useful components (ACSE, ROSE, CCR, TCAP,..)
38.157 Protocol Design-course, overview
• Object oriented -process
– Open Distributed processing (ODP)
– Object Oriented Design (OOD)
– Computer science originated approach
– UML, OMT languages for specification
– ODP viewpoints, transparences
– IDL-interface definition language
– implementation and testing not by formal methods
– architectures (CORBA, DCOM, TINA)
– components: CORBA-services, CORBA-facilities, trader
– tools supported to some extent (UML editors, IDL
compilers)
– design patterns
38.157 Protocol Design-course, overview
• That is, if majority has not passed object oriented design
course, if they have, then they know UML, Design Patterns
etc. but that is not a problem, then we continue further by
looking at the applications in telecommunications.
• UML (Unified Modeling Language) contains class
diagrams, object diagrams, message charts, state
automatons etc. which we go through.
• Design Patterns are one way of structuring software.
Conduits is one way of using design patterns in
telecommunications software. This course does not explain
conduits. There are other applications.
• IDL (Interface Definition Language) is a simple interface
language of CORBA with methods and attributes. It can be
compared to ASN.1 with GDMO, but it is more simple.
• Problems encountered with these methods.
38.157 Protocol Design-course, overview
• IEFT-process
– university, hobbyist (in a positive sense), only recently
for commercial telecommunications, IEFT acceptance
process should be investigated
– end user view, operator’s role to be minimized
– performance studies
– reference implementations
– standards not written in precise formal ways, so, this is
not like ITU-T, precise implementation independent
interface standards.
– useful concepts: socket interface, RPC (example NFS)
– architecture and how it developed
– open questions changing, QoS, management, mobility,
security,...proposed solutions for them.
38.157 Protocol Design-course, overview
• As there are very few method in this approach, we look at
what there is.
• Distribution can be made on file level, like in NFS, on
middle layers as in socket interface, or at user interface as
in X11. What are the limitations?
• Why CORBA adds a presentation layer on top of TCP
socket interface? Presentation and session layers were
supposed to be not needed.
• How are made stream interfaces for real time traffic?
• Simplification of ITU-T solutions, like SNMP, LDAP.
38.157 Protocol Design-course, overview
• What are the central questions?
– naming, locating, negotiation, transaction, interworking,
agreed interfaces, specification methods/languages,
components in architectures, distribution on what level,
different communication types (remote procedure call,
notification, streams, ..) etc. These upper layer questions
are not yet even listed.
• What are known common mechanisms?
– how these questions are solved in different architectures
and protocols? when the solutions are good when bad?
These questions are not yet sufficiently understood.
• For continued studies on protocol design one could select one
question and study it deeply, survey the existing solutions and
develop a new solution suitable for some circumstances.
• It is not just picking up a standard/making design and coding.
38.157 Protocol Design-course, overview
• Conclusions: why should anyone take this course?
• General knowledge: These methods are basic methods
used in communication software development and design.
Every telecommunication engineer should have this
knowledge.
• Practical knowledge: The methods/languages are often
needed in practice. This course gives a starting point.
ASN.1, TTCN, SDL, UML are quite simple when learned.
• Research: The course tries also to explain what are the
questions studied and methods used in protocol design as a
field of research. Usually people are completely lost when
trying to do research in this field asking what is research
here. If you intend to do continued studies on this field, the
course may be helpful.
38.157 Protocol Design-course, overview
• SDL (Specification and Description Language), v 92
• ITU-T standard notation for protocols, used heavily by
ETSI. Most ETSI standards use this notation and the
protocols are verified using the SDL descriptions.
• Looks like flow charts and is basically easy to read, but it
actually defines state machines, not flow charts, and there
are a number of unfamiliar symbols if one has not learned
it. System and process level descriptions.
• SDL data types
• Lotos
• basic reading knowledge of Lotos specification language.
Lotos is not much used, but it is of different type and it is
useful to know in order not to reinvent it.
38.157 Protocol Design-course, overview
• Tree and Tabular Combined Notation (TTCN)
• ITU-T protocol conformance testing language.
• Protocol testing methodology (black box, upper tester,
lower tester, points of control and observation)
• Conformance testing process.
• Writing simple TTCN, reading TTCN definitions
• Other testing methods used in industry will be added to
this part, TTCN is only one alternative.
• Experiences of typical problems in practical interworking
tests, what caused them, how they could be solved.
38.157 Protocol Design-course, overview
• Abstract Syntac Notation number 1 (ASN.1)
• To start this, we must look at the problem of the
presentation layer and explain the problems of the OSI
presentation layer compared with e.g. CORBA ORB.
• Language for defining Protocol Data Units (PDUs) and
Abstract Service Primitives (ASPs)
• For some reason this language is considered very difficult,
which it is not - it is quite logical and easy to learn.
• Writing basic ASN-1 definitions: Type definitions, value
definitions, modules, macros.
• Less importantly, understanding BER-encoding and
decoding by hand BER-encoded PDUs, useful for
debugging.
38.157 Protocol Design-course, overview
• Message Sequence Charts (MSCs)
• There are many formalisms form message charts and the
ITU-T MSC is maybe the least obvious to understand. All
message charts are simple to understand but there are
notations for timers, alternative behaviors, loops etc.
• We go through the MSC standard.
• Some comments what else message charts could contain,
like modeling of performance issues on message charts.
38.157 Protocol Design-course, overview
• Additions, what ever is new at the time.
• There are always some new approaches, they are explained
to the extent the lecture understands it.
• An example could be: As QoS issues are of particular
interest now (since the Internet has problems with QoS),
there could be explained for instance the hybrid approach
which adds (quite simple) differential equations to state
automaton descriptions in order to model QoS of
protocols. Does this make any sense, it would be hard to
write a compiler for such definitions at least.
38.157 Protocol Design-course, overview
• Protocol production cycle contains basically the phases
– specification
– implementation
– testing
– maintenance
• With the specification part there are phases
– requirements
– less precise specification (like MSCs)
– more precise specification (like SDL diagrams)
– behavior and interface specifications
• In a certain meaning this is true, but there are variations in
different approaches. We can start with a business model
describing roles instead of requirements, we can divide the
specification phase in many steps.
38.157 Protocol Design-course, overview
• Such a division can be containing e.g. the information content,
distribution to functional elements, technological design.
• The goal of protocol is to make a good design. There is no such
thing as correct/incorrect design, only good and bad. What is
good depends on what you want to achieve. Contradictory goals:
– simple system or system supporting many options
– implementation independent interface specification or
specification with a reference implementation
– future proof design or design that can easily be realized with
existing parts
– precisely specified design or frame architecture
– demonstrating new ideas or sound engineering solution.
• comparing solutions one should remember what is good in each
principle, like a design is not simple if it supports many options.
38.157 Protocol Design-course, overview
• Implementing a specification leads to programming and to
debugging problems. This is in a way interesting work.
However, design problems I understand differently. Let us
take some design problems, like negotiation
– originator sends a list of options it supports
– receiver drops out those it does not support
– this is a basic negotiation solution in OSI
• It is not the only solution to negotiation.
– Consider cases when some option can be used if some
other option is selected, else not. Then we get
negotiation of sets of options. It seems to be harder to
fix the sets, this kind of negotiation is realized in many
OSI-protocols, a good example is Virtual Terminal
which is mostly negotiation whole protocol.
38.157 Protocol Design-course, overview
• We can continue with the negotiation problem:
– What if for security reasons neither side wants to give
any information of options before authentication, then
the two massage negotiation is not necessarily the
optimal solution
– This negotiation works only with one connection for
connection oriented protocols. Consider the case of
Virtual Home Environment, there we want to negotiate
options for communication with Service provider
profile, User profile, Terminal profile and we transfer
these profiles. This is harder, there are many protocols,
how to negotiate their usage and even to name them. It
should work for connectionless protocols also.
– Trader is also negotiation, though from different point
of view. The problem is what services are available.
38.157 Protocol Design-course, overview
• We can continue with the negotiation problem:
– Mobile agents are capable of discussing with agent
languages. User’s agent negotiates with service
provider’s agents. Both agents have a strategy and
user’s agent tries to select good service offerings.
• We can se, that negotiation is one design problem on upper
levels. The simple OSI-negotiation is suitable for
negotiating of transfer syntax and some other features, but
the question is much deeper. One should know different
solutions to negotiation type problems in order to invent a
new solution.
• Let us take another example of a design problem:
• What components an architecture should contain?
38.157 Protocol Design-course, overview
• What components an architecture should contain?
– it is rather generally accepted, that component
architectures are good
– many architectures contain rather similar components:
name server, locator, security component, database
related components, components for transaction, remote
procedure call, notification, stream interfaces, some
management components etc.
– There does not seem to be a general understanding what
set of components are necessary but new architectures
tend to include similar components as the older
architectures, so there should be some set of necessary
and useful components.
38.157 Protocol Design-course, overview
• More design problems:
• What is a good structure for a protocol development tool? This
question has been studied in many tool implementation projects
but it is not solved.
• The tool could contain a scheduler, automaton, coding/decoding
functions for PDUs/Primitives, tracing of behavior and useful
routines for memory handling etc.
• This kind of structure suits for state automaton based layered
protocols.
• The structure could also try to replace automatons with objects
(what are the differences between an object and an automaton?,
size?, inheritance?) and use current ideas from computer science.
• There are contradictory views: stateless automaton (like a reentry function) is good, object (having data and therefore a state)
is also good. In general, this seems like an open question.
38.157 Protocol Design-course, overview
• More design problems:
– layered architecture or not?
– OSI architecture is layered, but OSI application layer structure
is not layered, it contains ASEs and SACF, MACF.
– CORBA-architecture is not fully layered.
• How to use the lower layers?
– OSI-model has ROSE-macro: request, response, errors, and
ROSE bind, unbind. This is a quite nice way to define
mapping to lower layers.
– CORBA has stubs linked to the program, another useful
abstraction.
– What interfaces lower layers should give is not quite solved:
RPC, notification, streams, bulk data transfer, but missing
usually are management/measurement interfaces.
38.157 Protocol Design-course, overview
• Discussing these design problems is the most important part
of the course. There is no literature on the subject, but design
should be solving these kind of problems in a good way.
• Often in a protocol course there is a time consuming practical
assignment. Such teaches programming and can be useful in
work later. In this course teaching programming is not the
goal. That is learned by implementing large software systems.
Neither is the purpose teaching use of particular development
tools so that the students already know these tools if they
need them later. These goals would be too practical - training
for a certain work profile.
• The practical assignment is intentionally easy in this course.
• The goals here are to teach what are the design problems,
what are the ways these problems are currently solved, what
are the terms, languages and tools that can be used.
38.157 Protocol Design-course, overview
• What do you need to know to take this course?
• Nothing particular: what is taught in other courses will not
be of much help. If you knew the things that are needed in
the course you might not need the course at all.
• Does this mean that the course is especially easy? No,
there are many things, only they are not treated in other
courses. It is possible to learn them in this course.
• You should know what is an automaton, basic things about
protocols, no harm if you have deep knowledge.
• C/C++ language and some knowledge of Unix is helpful
for the practical assignment if it is done with the OVOPStool, but maybe the assignment is with the SDT-tool next
time. Exercises are kind of dull but hopefully useful.
• Is the course especially difficult to pass? No, the exam is
not too difficult. It is a 3 credits course.
38.157 Protocol Design-course, overview
• What about the course material?
• There was a new text book in Finnish under preparation for
several years, but it was insisted that the course be given in
English, so there is no ready material and the lecture notes
will be a collection of what is available in English.
• The number of students on the course is too small (5
recently) to motivate spending again a major effort in
preparing new material in English.
• No material will be available through the WWW-pages. No
exercises will have model solutions. No WWW-pages.
• Therefore, if you intend to take the course, participate in
lectures and in exercises. It will be much easier to learn the
material. The material will not be exactly the same as what
is said on the lectures as lectures are my view on the filed
and material will be what can be found in English.
38.157 Protocol Design-course, overview
• Exercises:
– Learning to write and to read formal languages (MSC,
SDL, Lotos, ASN.1, TTCN). Simple exercises which
are solved on paper or with a tool.
– Demonstrations of tools (there has been UML-editor,
ASN.1-compiler, CVOPS-tool, SDT-tool for SDL,
MSC, TTCN-demo). The demonstrations depend on
what we can arrange. Hopefully SDT-tool.
– Design exercises, given a problem design a system
doing this, make the beginning of the design process in
order to understand the whole picture.
– Practical assignment: make a protocol or modify an
existing protocol using CVOPS or OVOPS-tools.
Purpose, to learn how such tools work.
38.157 Protocol Design-course, exercise
• In the Internet searching information using search machines
often does not find the information you need, you may get too
many references and URLs are not existing. As an example,
try to find ETSI Camel standard with Alta Vista, it will give
all camel safaris etc.
• Design a software system specification building a permanent
information base when given some keywords, like
telecommunication, Russian trade etc.
• To the extent it is possible within the exercise time (2 hours)
give business model, requirements, specification (MSC, SDL,
etc.), components, architecture, interfaces.
• Identify design problems and discuss alternative solutions,
what you try to achieve (simple?, precise?...).
• Outline a solution. The problem is thus:
• How would you design the system without taking the course?
Download