Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Preview:

DESCRIPTION

 

Citation preview

Protocol Engineering: Beschreibung und Entwicklung von

Kommunikationsprotokollen

Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie

Dresden, 1. Juli 2011

Falk Hartmann

Wissenschaftlicher Vortrag im Rahmen des Promotionsverfahrens

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Agenda

Folie 2

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Agenda

Folie 3

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Kommunikationsprotokoll (1)

Basically, a protocol is an agreement between the communicating parties on how communication is to proceed.

[Tanenbaum und Wetherall, 2010]

A well-defined set of messages […] each of which carries a defined meaning (semantics), together with the rules governing when a particular message can be sent.

[Larmouth, 2000]

Ein Kommunikationsprotokoll ist eine Verhaltenskonvention, die die zeitliche Abfolge der Interaktionen zwischen den diensterbringenden Instanzen vorschreibt und die Formate (Syntax und Semantik) der auszutauschenden Nachrichten definiert.

[König, 2003]

Folie 4

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Kommunikationsprotokoll (2)

Ein Kommunikationsprotokoll beschreibt die Abläufe bei der Kommunikation zwischen zwei (oder mehr) Kommunikationspartnern und die Syntax und Semantik der zwischen den Kommunikationspartnern ausgetauschten Botschaften.

Typische Merkmale- Zeitabhängiges Verhalten

Timeouts- Nichtdeterminismus

Gleichzeitigkeit mehrerer Ereignisse (Botschaften, Timeouts...)Mehrere Folgereaktionen auf ein Ereignis

Folie 5

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Eigenschaften von Kommunikationsprotokollen

Anzahl der Kommunikationspartner- 2 (Unicast/Anycast)- >2 (Multicast/Broadcast)

Synchronität- Synchron (Request/Reponse)- Asynchron

Verbindungsorientierung- Verbindungslos (Brief) - Verbindungsorientiert (Telefonat)

Übertragungsrichtung- Simplex (eine Richtung)- Halbduplex (zu jedem Zeitpunkt nur eine Richtung)- Duplex (gleichzeitig in beide Richtungen)

Folie 6

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Anwendungsgebiete

Folie 7

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Schichtenarchitekturen

Folie 8

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Verhältnisse zwischen den Schichten

Folie 9

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Dienstprimitive

Benennung nach ISO/OSI-Notation[<Schicht>]<Name> <Typ>([<Parameter>{,<Parameter>}])

Typenrequest – Anfordern eines Dienstes an Dienstzugangspunkt Aindication – Anzeige am Partner-Dienstzugangspunkt Bresponse – Antwort am Partner-Dienstzugangspunkt Bconfirm – Bestätigung der Diensterbringung an Dienstzugangspunkt A

BeispieleTCONNECT request(remoteHost, remotePort, localHost, localPort)

Vereinfachungen TCONNECTrequ(...) – übliche VerkürzungCONNECTrequ(...) – wenn Schicht eindeutig

Folie 10

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Entwicklungsphasen

TODO

Folie 11

nach [König, 2003]

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Agenda

Folie 12

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Botschaftsbeschreibung

Allgemein- Beschreibung der in den Botschaften enthaltenen Daten

- Abstrakte Syntax- Beschreibung der zu übertragenden Botschaften

- Transfersyntax (≙ konkrete Syntax)- Beschreibung der Abbildungen

- Abstrakte Syntax → Transfersyntax: Kodierung (Encoding, Serialisierung, Marshalling)

- Transfersyntax → Abstrakte Syntax: Dekodierung (Decoding, Deserialisierung, Unmarshalling, Parsen)

Herangehensweisen- Grammatiken- Deklarative Ansätze (ASN.1, Protocol Buffers)- Algebraische Ansätze (ACT ONE)

Folie 13

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Botschaftstypen

Typ der Botschaften- Text

- Beschreibung durch Grammatik- Kodierung manuell oder durch generierten Code- Dekodierung durch generierten Code (Parser-Generator)

- XML- Beschreibung durch XML Schema- Kodierung/Dekodierung durch generierten Code (Binding-Technologien

wie JAXB/JAXWS) oder XML-APIs wie DOM, SAX oder StAX- Binär

- Beschreibung durch ASN.1 oder Protocol Buffers- Kodierung/Dekodierung manuell oder durch generierten Code

Folie 14

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

ASN.1 (Allgemein)

Allgemeines- Abstract Syntax Notation 1- ASN.1 definiert abstrakte Syntax, also in Botschaften zu transportierende

Daten unabhängig von ihrer konkreten Darstellung- Analogie zu IDLs- Encoding Rules

- definieren Übersetzung in Transfersyntax- existieren für binäre, textuelle und XML-basierte Transfersyntax

- Nachbildung nicht mit ASN.1 definierter Botschaften nur bedingt möglich- Keine Unterstützung für Berechnung abhängiger Teile der Botschaften

Geschichte- Grundlage: Beschreibungssyntax X.409 der CCITT (1984)- Standardisierung als ISO 8824/8825 (1987)

Folie 15

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

ASN.1 (Syntax)

Grundlegende Sprachmittel- Typ- und Wertedefinitionen- Parametrisierte Typen- Datentyperweiterbarkeit- Makros

Elementare Typen- BOOLEAN, INTEGER, OCTET STRING, BIT STRING, IA5String

Operatoren auf Typen- Wertebereichsbegrenzungen- SEQUENCE/SEQUENCE OF- SET/SET OF- CHOICE - ENUMERATED - Default-Werte und Optionalität möglich

Tags- Unterscheidung der Fälle z.B. bei CHOICE

Folie 16

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Beispiel: TCP Segment

Folie 17

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

ASN.1 (Beispiel)

Folie 18

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

ASN.1 – Basic Encoding Rules

Allgemein- Grundlegenste Kodierung- Metainformationen werden nahezu komplett übernommen- TLV : Type, Length, Value- Sehr gute Eignung als Transfersyntax- Encoding erzeugt in der Regel relativ große PDUs → Packed Encoding Rules

BeispielTCP Packet von Port 56237 zu Zielport 4444

Folie 19

Type: 02 = Integer, Length: 02 = 2 Byte, Value: 0x115c = 4444

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

ASN.1 – Packed Encoding Rules

Allgemein- Adressierung der Kritikpunkte an den Basic Encoding Rules- Metainformationen werden als dem Dekodierer bekannt vorausgesetzt- Abkehr von TLV

BeispielTCP Packet von Port 56237 zu Zielport 4444

Folie 20

Value: 0x115c = 4444

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Protocol Buffers (Allgemein)

Allgemeines- Definition der Transfersyntax- Typsystem definiert Typen aus Sicht der Transfersyntax- Werkzeugunterstützung

- Definition von Abbildungen auf Typsysteme der Zielsprachen (C++, Java, Python)

- Entworfen für die Codegenerierung- Platzsparende Kodierung

- durch Kodierung mit variabler Länge („varint“)- Nicht geeignet zur Nachbildung von mit anderen Mitteln definierten

Botschaften- Keine Beschreibungsmöglichkeiten für abhängige Teile der Botschaft

Geschichte- Erstveröffentlichung (Version 2.0) durch Google (2008)- Aktuelle Version 2.4.1

Folie 21

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Protocol Buffers (Syntax)

Grundlegende Sprachmittel- Botschaftsdefinitionen- Einbettung von Botschaften- Default-Werte und Optionalität/Wiederholung möglich- Erweiterbarkeit

Elementare Typen- Integer verschiedener Wertebereiche mit Kodierung variabler bzw. fester

Länge- Strings (UTF-8/ASCII)- Boolean- Float/Double- Byte-Felder

Tags- Analog zu ASN.1

Folie 22

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Agenda

Folie 23

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Kommunikationsablauf

Visualisierung- Message Sequence Charts- Zustandsübergangsdiagramme- Strukturdiagramme

Formale Beschreibungstechniken- Endliche Zustandsautomaten (FSM)- Prozessalgebren- Temporale Logiken

Werkzeuge- LOTOS- SDL

Folie 24

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Message Sequence Charts (Allgemein)

Geschichte- Vorschlag durch [Grabowski und Rudolph, 1992]- basierend auf OSI-Zeitablaufdiagramme und ISDN Information Flow Diagrams- MSC´92: Normierung durch ITU-T in der Empfehlung Z.120- MSC´96: Denotationelle Semantik basierend auf Prozessalgebren- MSC´2000: Datentypen, entfernte Methodenaufrufe, Objektorientierung- UML Sequenzdiagramme nehmen Anleihen bei MSCs

Allgemeines- Graphische (MSC/GR) und textuelle Variante (MSC/PR)

Folie 25

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Message Sequence Charts (Beispiel)

Folie 26

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Zustandsübergangsdiagramm (Allgemein)

Geschichte- Statechart Notation [Harel, 1987]- Verwendung zur Abbildung von Protokollabläufen verbreitet [Stevens, 1993]- Normierung als State Diagram innerhalb der UML 1.x

Allgemein- Typischerweise Interpretation als endliche Zustandsautomaten

Folie 27

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Zustandsübergangsdiagramm (Beispiel)

Folie 28

nach [Stevens, 1993]

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Strukturdiagramm

Allgemein- Visualisierung der statischen Verhältnisse mehrerer Kommunikationspartner- Breite Anwendung im Bereich der Prozessalgebren- Vermutliche erste Verwendung in [Hoare, 1985]

Folie 29

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Endliche Zustandsautomaten (Allgemein)

DefinitionEin endlicher Zustandsautomat ist ein Verhaltensmodell basierend auf einer endlichen Menge von Zuständen, einer Menge von Übergängen zwischen den Zuständen und Ein- und Ausgaben, welche mit den Übergängen bzw. Zuständen verknüpft sind.

Geschichte- Basierend auf Arbeiten an den Bell Labs [Mealy, 1955], [Moore, 1956]

Allgemeines- Moore-Automat: Eingaben sind mit den Übergängen assoziiert, Ausgaben mit

den Zuständen- Mealy-Automat: Ein- und Ausgaben sind mit den Übergängen assoziiert- Timed Automata

- Erweiterung um Zeitbegriff („Uhren“)- Übergänge können Uhren setzen bzw. vom Wert der Uhren abhängen

Folie 30

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Endliche Zustandsautomaten (Beispiel)

Visualisierung - mittels Zustandsübergangsdiagramm (Innensicht)- mittels Strukturdiagramm (Außensicht)

Folie 31

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Prozessalgebren (Allgemein)

DefinitionProzessalgebren sind eine formale Beschreibungstechnik für komplexe Computersysteme, insbesondere für Systeme, welche kommunizierende, nebenläufige Komponenten enthalten. (nach [Bergstra et al., 2001])

Geschichte- Communicating Sequential Processes (CSP) [Hoare, 1978]- Calculus of Communicating Systems (CCS) [Milner, 1980]- Finite State Processes (FSP) [Magee und Kramer, 2006]

Allgemeines- Betrachtung von Prozessen und Aktionen- Abbildung auf Protocol Engineering

- Kommunikationspartner ≙ Prozess- Dienstprimitivaufrufe und Botschaftsversand-/empfang ≙ Aktion

Folie 32

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Prozessalgebren (Allgemein)

Semantik- FSP definiert über Labelled Transition Systems [Magee und Kramer, 2006]- Prozessalgebren erlauben die Verifikation wichtiger Eigenschaften

- Safety- „Nichts Negatives wird passieren.“- In jedem Zustand des Gesamtmodells kann keine Aktion auftreten,

für die es keinen Folgezustand gibt.- Progress

- „Etwas Positives wird irgendwann passieren.“- In jedem Zustand des Gesamtmodells wird eine der zulässigen

Aktionen eventuell auftreten.- Gegenteil zur Starvation

Folie 33

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Prozessalgebren (Syntax)

Prozessbeschreibung

Folie 34

P, Q : Prozessex, y : Aktionena, a’ : Namen für Aktionen

Präfix x → P

Ein Prozess, der mit der Aktion x beginnt und sich dann wie P verhält.

Alternative x → P|y → Q

Ein Prozess, der entweder mit der Aktion x beginnt und sich dann wie P verhält oder mit der Aktion y beginnt und sich dann wie Q verhält.

Parallele KompositionP||Q

Die nebenläufige Abarbeitung der Prozesse P und Q. Die Prozesse synchronisieren sich auf gleichnamigen Aktionen.

Prozessbenennunga:P

Der Prozess, der aus P hervorgeht, wenn den Namen aller Aktionen ein a vorangestellt wird.

AktionsumbenennungP/{a1’/a1,...,an’/an}

Der Prozess, der aus P hervorgeht, wenn in allen Aktionen, deren Name mit ai beginnt, der Namensbeginn durch ai’ ersetzt wird (für 0≤i≤n).

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Prozessalgebren (Beispiel)

Folie 35

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Prozessalgebren (Beispiel)

Folie 36

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Prozessalgebren (Beispiel)

Folie 37

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Prozessalgebren (Beispiel)

Prüfung von Safety und Progress-Eigenschaft- Naive Implementierung des TCP-Zustandsübergangsdiagramms

Folie 38

Problem 1:Aktionen, die nur sendend auftreten!

Problem 2:Namensgleichheit zwischen ACK für SYN und FIN.

Problem 3:Kanalmodellierung für simultanes Schließen nötig!

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Temporale Logiken (Allgemein)

DefinitionTemporale Logiken sind Erweiterungen der Aussagenlogik durch Operatoren, die die Formulierung von Aussagen mit Bezugnahme auf die Zeit gestatten.

Geschichte- Grundlage durch Arthur Prior [Prior, 1957] - Temporal Logic of Actions [Lamport, 1993]- Fluent Linear Temporal Logic [Magee und Kramer, 2006]

Allgemeines- Linear vs. Branching Time- Zeitliche Ordnung von Ereignissen vs. absolute Zeit- Anwendung in der Protokollmodellierung zur Spezifikation und Prüfung von

Liveness-Eigenschaften - Zeitliche Operatoren

- □ always/immer- ◊ eventually/irgendwann

Folie 39

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Temporale Logiken (Allgemein/Beispiel)

Folie 40

Fluent- Ableitung eines Zustands aus einem Ablaufs von Aktionen- Initiierende und beendende Aktionen

Assertion- Sicherstellung einer temporallogischen Formel über Fluents- Automatische Prüfung z.B. in LTSA [Giannakopoulou und Magee, 2003]

Beispiel- Sicherstellung der Liveness-Eigenschaft „Die Kommunikationspartner

erreichen immer wieder einen erfolgreichen Verbindungsaufbau.“

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

LOTOS

Allgemeines- Language Of Temporal Ordering Specification- Grundkonzepte:

- Prozessalgebren, insbesondere CCS [Milner,1980]- Erweiterung um Unterbrechungen

- Algebraische Botschaftsbeschreibung mittels ACT ONE- Einsatz für Verifikation, Leistungsvorhersage und Test

z.B. im GSM-Bereich [Iglesias et al., 2001] - Hoher Formalisierungsgrad verhindert breite praktische Anwendung

Implementierungen- Topo (Toolset for Product Realisation with Lotos) [Mañas et al.,1993]

Geschichte- Standardisierung als ISO 8807 (1990)- Erweiterung um Grafische Variante GLOTOS als ISO 8807/AM1

Folie 41

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

SDL

Allgemeines- Specification and Description Language- Grundkonzepte

- Zustandsautomaten für Prozesse (Agenten)- Semantik basierend auf CSP [Hoare, 1978]- Botschaftsmodellierung typischerweise basierend auf ASN.1

- Standardisierung als ITU-T Z.100- Graphische (SDL/GR) und textuelle Variante (SDL/PR)- Integration von MSC- Starker Einsatz im Telekommunikationsbereich (z.B. ISDN-Dienstedefinition)

Implementierungen- Cinderella SDL (grafisches Modellierungstool)- Tau SDL Suite (jetzt IBM, Teil der Rational-Produktlinie)

Geschichte- SDL ´76: Erste Version- SDL ´88: Klare Grammatik und Semantik- Aktuelle Version SDL 2000

Folie 42

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Agenda

Folie 43

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Fazit

Aktueller Stand- Mächtige formale Beschreibungsmittel- Verbreitung auf spezielle Bereiche beschränkt

- ASN.1 und SDL relativ verbreitet in der Telekommunikation- Hoher Einarbeitungsaufwand

- Interpretation der Verifikationsergebnisse erfordert Erfahrung

Trends- Protokollmodellierung/Codegenerierung- Verifikation von Sicherheitsprotokollen- Verifikation der Protokollimplementierung

Folie 44

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Protokollmodellierung/Codegenerierung

Botschaftschreibung- Eher evolutionäre Entwicklungen- ASN.1

- Verbesserter Tool-Support z.B. ASN1Compiler (Objective Systems)- Neue Einsatzbereiche, z.B. Medical Device Encoding Rules (ISO/IEEE

11073) zum Vitaldatenaustausch im medizinischen Gerätebau [Schrenker und Cooper, 2001]

- Protocol Buffers

Folie 45

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Protokollmodellierung/Codegenerierung

Protokollabläufe- Domänenspezifische Sprachen für Spezialfälle

The Austin Protocol Compiler [McGuire und Gouda, 2005]- TAP - Timed Abstract Protocol Notation - Sprache zur Beschreibung asynchroner Protokolle- Vorgehen

- Beschreibung des Protokolls in TAP- Verifikation der Protokollbeschreibung- Umsetzung in implementierungsfreundliches Protokollmodell - Generierung von Protokoll-Stubs in C

- Garantiert Übertragung der verifizierten Eigenschaften der Spezifikation in die Implementierung

Folie 46

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Protokollmodellierung/Codegenerierung

spi2java [Busenius und Ivanova,2008] , [Pironti und Sisto, 2007], [Pozza et al., 2004]

- Basierend auf Spi-Kalkül (-Kalkül mit kryptografischen Operationen)- Generiert Java-Code- Garantiert Übereinstimmung des Codes mit der im Spi-Kalkül formulierten

Spezifikation

Annäherung UML/SDL [Bochmann et al., 2010]- Bereits existierende Gemeinsamkeiten: MSC, State Charts- Entwicklung eines UML-Profiles für SDL (neue Version 2009)- Kauf von Telelogic zu IBM (Tau SDL Suite)

Folie 47

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Verifikation von Sicherheitsprotokollen

Grundidee- Verifikation von Sicherheitsprotokollen (z.B. zum Schlüsselaustausch, zur

Authentifizierung)- Modellierung der Kommunikationspartner und eventueller Eindringlinge durch

Prozessalgebren, z.B. CSP [Ryan und Schneider, 2000]- Abbildung der gewünschten Protokolleigenschaften in temporallogische

Formeln- Geheimhaltung, Anonymität, Unleugbarkeit

CAPSL- CAPSL – Common Authentification Protocol Specification Language [Millen,

1997]- CASPER-Compiler: Generierung von Spezifikationen für Model Checker, z.B.

FDR (Formal Systems)- Codegenerierung für Java

SPIN- Vorgehensweise zur Modellierung in PROMELA [Yongjian und Rui, 2004]

Folie 48

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Verifikation der Protokollimplementierung

Verifikation der Protokollimplementierung [Jurjens, 2009]- First-order Logic-Ansatz- Übersetzung der (Java-)Implementierung in Prädikatenlogik mittels

Kontrollfluss-Analyse- Übergabe an ATP mittels Austauschformat- „Gegenentwurf“ zu spi2java, Verifikation ausgehend vom Code

[Bokor et al., 2007]- Ausgangspunkt: Synchrones rundenbasiertes Diagnose-Protokoll (DD),

entwickelt für ein framebasiertes Time-Triggered-System- Ziel: Berechnung eines konsistenten Global-Health-Vector- Portierung auf Time-Triggered-Architecture - Modellierung und Analyse der Konsistenzbedingung mittels SAL- Fehlverhalten auf Time-Triggered-Architecture- Lösung: Read- und Send-Alignment zur Resynchronisation der

verfügbaren Information

Folie 49

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Vielen Dank für Ihre Aufmerksamkeit!

Folie 50

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Agenda

Folie 51

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Standardisierungsorganisationen

CCITT Comité Consultatif International Téléphonique et Télégraphique (jetzt ITU-T)

ISO International Organization for Standardization

ITU International Telecommunication Union

ITU-T ITU, Telecommunication Standardization Sector

OMG Object Management Group

Folie 52

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Abkürzungen (1)

Folie 53

ACT ONE Algebraic specification techniques for Correct design of Trusty software systems

ASN.1 Abstract Syntax Notation

BER Basic Encoding Rules

CCS Calculus of Communicating Systems

CSP Communicating Sequential Processes

FSM Finite State Machine

FSP Finite State Processes

IP Internet Protocol

HTTP HyperText Transfer Protocol

LOTOS Language Of Temporal Ordering Specification

LTS Labelled Transition System

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Abkürzungen (2)

Folie 54

MT-SICS Mettler Toledo Standard Interface Command Set

OBD-2 On-Board-Diagnose

OSI Open Systems Interconnection

PER Packed Encoding Rules

SAL Symbolic Analysis Laboratory

SOAP Simple Object Access Protocol

SDL Specification and Description Language

TCP Transmission Control Protocol

TTCN Testing and Test Control Notation

UML Unified Modeling Language

WAP Wireless Application Protocol

XML Extensible Markup Language

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Konferenzen

FORTE - International Conference on Formal Techniques for Networked and Distributed Systems

ICNP – International Conference on Network Protocols

TestCom - International Conference on Testing Communicating Systems

TTCN-3 User Conferences

WRiPE (ab 2011) - International Workshop on Rigorous Protocol Engineering

Folie 55

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Literatur (1)

Folie 56

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Literatur (2)

Folie 57

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Literatur (3)

Folie 58

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Literatur (4)

Folie 59

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Literatur (5)

Folie 60

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Beispiel: HTTP und seine Grundlagen

Folie 61

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

ACT ONE (Allgemein)

Allgemein- Algebraic specification techniques for Correct design of Trusty software

systems (version 1)- Botschaften als abstrakte Datentypen, welche algebraisch beschrieben

werden- Sorten (natürliche Zahlen)- Operatoren (Addition)- Gleichungen (Kommutativität der Addition)

- Keine Abbildung in konkrete Syntax definiert- Steuerung von Codegeneratoren über Annotationen möglich [Schröder, 2003]

Geschichte- Basierend auf [Ehrig und Mahr, 1985]- Standardisiert als Anhang zur Spezifikation ISO 8807 (LOTOS)

Folie 62

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

ACT ONE (Beispiel)

Folie 63

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Zeitablaufdiagramm (Allgemein)

Geschichte- OSI Time Sequence Diagramm (vor 1990)

Allgemein- Typischerweise Darstellung des zeitlichen Ablaufs der Aufrufs der

Dienstprimitive- Beispielhafte Darstellung- Keine formale Grundlage- Weiterentwicklung und Standardisierung als Message Sequence Charts

Folie 64

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Zeitablaufdiagramm (Beispiel)

Folie 65

nach [König, 2003]

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Zustandsübergangsdiagramm (Beispiel)

Folie 66

nach [Stevens, 1993]

Ausschnitt zeigt Übergänge aus der Sicht des Initiators, welcher die Verbindung auch aktiv schließt.

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

MDML

Allgemein- Definition der abstrakten Syntax- Zuordnung der Kodierung/Dekodierung zu den einzelnen Elementen der

abstrakten Syntax- Beschreibung abhängiger Teile der Botschaft möglich

(Prüfsummen, Längen)

Geschichte- Textuelle, XML-basierte Syntax (2008)- Graphische Syntax [Schmidt 2010]

Folie 67

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

Endliche Zustandsautomaten (Beispiel)

Folie 68

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

spi2java

Folie 69

Recommended