T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154)...

48
1 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering Process (PEP) [email protected]

Transcript of T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154)...

Page 1: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

1 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

T-110.300: Protocol Design

• Protocol Design Theory• Methods • Protocol Engineering Process (PEP)

[email protected]

Page 2: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

2 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Motivation• Telecom systems engineering is a huge industry

– networks, terminals, services

• Also datacom networks consist of protocols– IP technologies today and in future are based on protocols– protocols exist between services and applications– also security systems include protocols

• Basic ideas about protocol systems are portable to every systems that communicate– independent of methods and languages

• Research and industry have use for the know how– research centers, software and hardware manufacturers, telecom and

datacom operators, ISPs, content providers, ...

Page 3: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

3 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Objectives of the lecture• Protocol Engineering Theory

– layered protocol systems, communication, definition of behavior

– specification, design and implementation of protocols– methods used in protocol engineering

• MSC, UML, SDL, ASN.1, TTCN

• Protocol Engineering Processes (PEP)– Presentation of iterative and incremental way of

protocol software engineering

Page 4: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

4 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Protocol engineering

• Protocol engineering as a discipline of its own

Protocolengineering

Communicationsystems

Formallanguages

Softwareengineering

Page 5: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

5 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Protocol engineeringProtocol Engineering Process Overview

Protocol engineering covers the whole life-cycle of a protocol

l requirements are set during overall system design

l protocol design produces complete specification

l specification needs to be verified

l protocol implementation is derived from specification

l implementation must be tested thoroughly

Page 6: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

6 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

History of protocol engineeringFirst communication protocols were designed in late 60s

(alternating bit protocol by Bartlett at al in 1969)l Theory of protocol verification dates back to late 70s (IBM

Zurich 1978)l Special-purpose protocol design languages were

developed during 80sl The increase of CPU power has made analysis of

moderate sized real life protocols feasible during last 5 years

l Protocol design and implementation tools and development environment products since early 90s

l Since the end of 90s the object oriented methods have been studied and developed

Page 7: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

7 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Protocol engineering today• Protocol standardisation quality is miscellaneous

– a lot of natural language documentation– state machines, signalling charts, tables– > a need to standardise standardisation => SDL and MSC => UML

• In design SA/SD methods have been replaced with OO methods– OMT, UML

• Implementation: – C => C++ and Java– CVOPS => OVOPS => SDL => UML– Frameworks and code generation are used

• Testing with TTCN

Page 8: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

8 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Protocol designProtocol architectures: designing layers

l allocate a well-defined function for each layer

l keep the number of layers to the minimum

l create a layer boundary at a point where the number of interactions is minimized

l design interlayer interactions as service primitives (confirmed and unconfirmed services)

l use layers to allow different levels of abstraction

l allow changes to layer functions or even change of a complete layer protocol without affecting other layers

=> set of functional protocol entities composing a stack

Page 9: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

9 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Protocol Engineering Process

- Requirements- Analysis- Design- Implementation- Testing- Maintenance

- Requirements- Analysis- Design- Specification- Verification

Protocol SpecificationProcess

Protocol ImplementationProcess

Specification

Implementation

• Iterative, parallel

• Two related processes

Page 10: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

10 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Protocol Engineering Process

Phases inside processes are also iterative

Requirements Analysis Design

Implementation

Testing

Maintenance

Page 11: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

11 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Protocol Engineering Process• Iterative

• refinement in cycles

• Incremental• knowledge and information is added during each round

• Output of each phase should be documented and easily managed

• textual descriptions• languages and methods• tool independent file formats• change management, e.g. versioning systems

• Defining the methodologies and patterns• rules• guidelines• practises

Page 12: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

12 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Protocol Engineering ProcessSummary of protocol engineering

Protocol life-cyclel problem - results into requirementsl analysis - results into tentative solutionl design - results into specificationl verification - results into proved specification----------l implementation - results into executable softwarel testing - results into final software

Methods and languages for each phasel UML for requirements capturing and analysisl MSC diagrams for signaling proceduresl SDL with ASN.1 for protocol entity designl Reachability analysis for verificationl C code generation for software implementationl TTCN with ASN.1 for software testing

Page 13: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

13 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Waterfall ModelRequirementsspecification

Specification

Design

Implementation

Testing

Process is iterative,but not incremental.

Page 14: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

14 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Analysis

Design

ImplementationIntegration

Requirementspecification

Prototyping/testing

version 1version 2version 3

Boehm’s Spiral Model

Page 15: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

15 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Spiral Model Properties• Is iterative and incremental• Is not attached to any specific application area• Does not provide means to fix time• Does not provide means to manage the process

Page 16: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

16 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Parallel Phase Process Model

Analyse

System Requirements

Design

Implementation

Testing

Time

Stage 1

Stage 1

Stage 2

Stage 1

Stage 1

Stage 2

Stage 2

Stage 3

Par

alle

l pha

ses

Stage 1 Stage 2 Stage 3

Page 17: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

17 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Literate Programming• Donald Knuth’s idea

– how programming code and documentation could be combined

– Literate Programming. Stanford, California: Center for the Study of Language and Information, 1992

• Each phase of the process produce documents that are combined to one structural process output documentation

• no tool dependent formats are allowed• structural document management using e.g. XML• every phase output is put to versioning system• project output is stored in one database that allows getting and

putting files through public networks– security issues are raised

• This is ideal situation - excessive tool support is needed

Page 18: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

18 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Process Documentation ExampleRequirements

Analyse

Design

Implementation

Process Output

HTML

UML

UML XMIASN.1, IDL

C, C++, Java

XML

XMI

Page 19: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

19 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Protocol Engineering Process • Requirements capturing (Why?)

– dictionary– descriptions of the system properties

• Analysis (What?)– system components and interaction

• e.g. conceptual class diagrams

– roles and behaviour • e.g. MSC scenarios, UML sequence charts and use cases

Page 20: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

20 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

PEP cont.• Design (How?)

– System structures• subsystems and interfaces between them

– Protocol entity structure with interface descriptions• e.g. class diagrams using UML

– Functional model providing early simulation• e.g. behaviour and processes using SDL or UML

– Data definition• e.g. messages using ASN.1

• Validation– to prevent dead-locks, unreachable states, etc.– automatic or semi-automatic protocol validation with a

proper tool

Page 21: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

21 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

PEP cont.• Implementation

– behaviour• state machines• data handling, error handling• time management

– internal messages– external messages

• encoding/decoding

– implementation for the target environment• frameworks, patterns• languages

– SDL, UML, ASN.1, C, C++, Java• code generation

Page 22: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

22 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

PEP cont.• Testing

– module testing• autonomous functionality• during implementation phase

– integration testing• system internal interfaces

– conformance testing• ensuring that the system as whole works as specified• external interfaces• execution against reference implementations or testers (e.g.

using TTCN)

Page 23: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

23 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Protocol designSignaling procedures

Interactions between protocol entities can be described as signaling procedures.

Description method for signaling procedures is Message Sequence Chart (MSC) Notation, standardized by ITU-T inRec Z.120

Software tools for editing MSC diagrams, e.g. SDT MSC editor

Page 24: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

24 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Protocol designMessage Sequence Chart

Graphical MSC notation

l entities = vertical lines with names

l signaling messages = arrows

l messages have names

l order of messages MSC-diagram is not a complete description of the behavior of entities, typically only basic (successful) cases are described as MSCs

Page 25: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

25 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Protocol designMessage Sequence Chart - Example: GSM handover

MS BSCBTS-newBTS-old

Channel_activate

Channel_activate_ack

Handover_command

Handover_command

Handover_accessloop

Handover_detect

Physical_information

Move_to_new_channel

Handover_completeHandover_complete

Page 26: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

26 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Protocol designDesigning Protocol Data Units (PDUs)

The MSC diagrams from the previous step describe information as messages with names, but no detailed contents.

This representation is called the abstract syntax of PDUs

This encoded representation is called the transfer syntax of PDUs

PDUs are derived from MSC diagrams asl messages, which are composed ofl information elements, which are composed ofl parameters with specified data types

For transmission the PDU encoding is defined asl exact encoding of each parameter data type as bits and bytesl (optional) identifiers for information elements and PDUsl exact bit and byte order

Page 27: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

27 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Protocol designDesigning PDUs

Design methods:l the most common informal method is to use bit/byte maps, which

make no distinction between abstract and transfer syntaxesl abstract syntax definition languages: ASN.1, XDR, CORBA IDLl encoding rules are associated to abstract syntax definition languages:

Basic Encoding Rules (BER), Packed ERs (PER)

Design toolsl graphical message editorsl abstract syntax language tools, e.g. ASN.1-to-C translators like the

Nokia CASN Compiler for ASN.1l data definition within integrated design environments, e.g. SDT

Page 28: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

28 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Protocol designProtocol entity behavior

The MSCs resulting from the system design are used as starting point for this step

Not only the basic scenarios but also error situations must be taken into account

Protocol entities are usually modeled as state automata

Correctly behaving protocol entity mustl accept all correct sequences of input messagesl detect any incorrect sequence of messagesl recover from such protocol errors

Page 29: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

29 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Protocol designFinite State Automaton

FSA model of a protocol

(i) set of input elements I and set of output elements O, i.e.PDUs and Abstract Service Primitives (ASPs)

(ii) set of states S and state transition function succ:

S x I -> S (input transitions)succ

S x O -> S (output transitions)

Page 30: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

30 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Protocol designExtended Finite State Automaton (EFSA)

The resulting representation of protocol entity is extended finite state automaton (EFSA)

Example of a graphical EFSA notation is UML State Chart

Software tools for editing State Charts, e.g. SDT SC editor

Basic FSA notation is usually extended byl typed variables within state automaton (context variables)l typed parameters within input and output messagesl conditions (predicates) for state transitions may be given as Boolean

expressionsl transitions may include actions given as block statementsl hierarchical states

Page 31: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

31 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

SDL

l Specification and Description Language

l Standardised by ITU-T (former CCITT)

l Recommendation Z.100, CCITT Blue Book

l Designed for systems engineering

l First version 1988, new version 1992 (object concepts)

l Formal language

l Can also be used for implementation

Page 32: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

32 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

What to Describe with SDL• Reactive systems: input - output

– Telecommunication systems and protocols• Discrete systems

– Finite State Machines (FSM)• Not suitable for

– Continuous systems • steering a car

– Heavy calculation• weather models

Page 33: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

33 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

SDL is a formal language• Unambiguous specification of systems• Can be applied in many phases

– specification– design– implementation– documentation

• Supports also informal specifications• Formality does not say how to specify an arbitrary system

Page 34: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

34 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Overview of SDL• SDL system is a model of a real world system

– definition of system components– hierarchical model– Does not restrict the model, no absolute patterns

• a System consists of– blocks, that are connected with channels

• a Block consists of– processes, that are connected with signal routes– sub-blocks, that contain sub-blocks or processes

• a Process has– attributes defined with variables and external procedures– behaviour defined with EFSM, with states and transitions

Page 35: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

35 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

The Structure of the SDL system

Page 36: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

36 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

The Structure of the SDL system

Page 37: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

37 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

The Structure of the SDL system

Page 38: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

38 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

SDL System Behavior• Behavior is defined for processes

– blocks cannot have any behavior, they are only hierarchical building blocks

• Behavior is defined by using Extended Finite State Machines– Extended = variables are used– SDL has its own graphical language for state machines

• Input-Action-Transition defines the behavior– a signal is received– some tasks are carried out, signal(s) sent out– transition to another state

• Conventional programming is possible– procedures– control structures– etc.

Page 39: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

39 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Process Diagram

Page 40: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

40 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

SDL State Machine Diagramprocess type Tili

dcl Ti l iNro Numero;dcl Saldo SaldoTyyppi;dcl veloitus SaldoTyyppi;dcl summa SaldoTyyppi;

‘alustus’

odota_talletusta

Talletus(summa)

saldo:=saldo+summa

tili_ok

tili_ok

Talletus(summa)

saldo:=saldo+summa

tili_ok

Nosto(summa)

summa>saldo

Ylitysto sender

saldo:=saldo-summa

Ylitysto sender

Ylitysto sender

-

saldo:=saldo-summa-veloitus

tili_ylitetty

tili_ylitetty

Talletus(summa)

saldo:=saldo+summa

saldo>0

tili_ylitetty tili_ok

False

True

FalseTrue

*

Sulje

Page 41: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

41 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Intro to ASN.1• A message can be viewed from two abstraction levels

Message Message01101001 10110101

Concrete level

Abstract level

Encoding Decoding

Representation during transmission=

Transfer syntax

Representation inside systems=

Local syntax

Logical message information contents = Abstract syntax

Page 42: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

42 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Abstract syntaxes for PDUs• Abstract syntax of a PDU deals with

– composition of a PDU from information elements– data types of information elements

• No attention to bits or bytes of the PDU being constructed– Responsibility of abstract syntax: Contents of a

message– Responsibility of transfer syntax: Message

representation

• Message transfer syntax is derived from message abstract syntax

Page 43: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

43 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Abstract syntaxes for PDUs• Definition: in natural language or with a formal notation• Example: A semi-formal tabular notation

PDU name Informationelements

Notes

MovePDU Piece ...

from Square ...

to Square ...

InformationElement

Data value Notes

Piece king, queen, ... ,piece

...

Square vertical row Values: a..h

horizontal row Values: 1..8

Page 44: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

44 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

ASN.1 Overview• ASN.1 is a language for definition of abstract syntaxes

• Associated with ASN.1 there are encoding rules, which determine transfer syntax for any ASN.1 value– Basic Encoding Rules (BER)– Canonical Encoding Rules (CER)– Distinguished Encoding Rules (DER)– Packed Encoding Rules (PER)

• More about encoding rules in a later lecture

• ASN.1 can be used together with other definition languages like SDL

Page 45: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

45 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

ASN.1 overview• Message concepts and their relationships

Generic rules

ASN.1language

Encoding rulese.g. BER

Message specification

Abstract syntax(message structure)

Transfer syntax(message encoding)

Implementation

Local syntax(message structure)

Encoding routines

Page 46: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

46 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

ASN.1 - Basic concepts• ASN.1 is a data type definition language

• Basic data concepts– Record => SEQUENCE type– List/array => SEQUENCE OF

type– Mutually exclusive alternatives => CHOICE type– Primitive data types => ASN.1 primitive types– Constants => values

• Structuring– Package/module => module

Page 47: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

47 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

• Example:

MyModule MODULE DEFINITIONS ::=BEGIN

MyType ::= INTEGER

myValue INTEGER ::= 100

END• ASN.1 is similar to type specification parts of

programming languages

ASN.1 - Basic concepts, cntd.

A type definition.

A value definition

A module definition

Page 48: T-110.300: Protocol Design - cse.tkk.fi€¦ · ©Tik-109.401 / Aanen, TKy, Mlu, MTu 1 (154) T-110.300: Protocol Design • Protocol Design Theory • Methods • Protocol Engineering

48 (154) © Tik-109.401 /Aanen, TKy, Mlu, MTu

Future work• SDL

– SDL 2000– combination of SDL and UML– UML Action Language

• Real-time UML– profile for building communications systems

• Using UML in standardisation– ETSI profile

• Java Protocol Framework (JPF)– implemented by VTT– patterns to use Conduits, UML and Java in protocol

engineering