Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
Upcoming SlideShare
Loading in...5
×
 

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

on

  • 1,061 views

 

Statistics

Views

Total Views
1,061
Views on SlideShare
1,061
Embed Views
0

Actions

Likes
0
Downloads
8
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen Presentation Transcript

  • Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Falk HartmannWissenschaftlicher Vortrag
    im Rahmen des Promotionsverfahrens
    Dresden, 1. Juli 2011
  • Agenda
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 2
  • Agenda
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 3
  • 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]
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 4
  • 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
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 5
  • 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)
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 6
  • Anwendungsgebiete
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 7
  • Schichtenarchitekturen
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 8
  • Verhältnisse zwischen den Schichten
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 9
  • Dienstprimitive
    Benennung nach ISO/OSI-Notation
    [<Schicht>]<Name> <Typ>([<Parameter>{,<Parameter>}])
    Typen
    request – Anfordern eines Dienstes an Dienstzugangspunkt A
    indication – Anzeige am Partner-Dienstzugangspunkt B
    response – Antwort am Partner-Dienstzugangspunkt B
    confirm – Bestätigung der Diensterbringung an Dienstzugangspunkt A
    Beispiele
    TCONNECT request(remoteHost, remotePort, localHost, localPort)
    Vereinfachungen
    TCONNECTrequ(...) – übliche Verkürzung
    CONNECTrequ(...) – wenn Schicht eindeutig
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 10
  • Entwicklungsphasen
    TODO
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 11
    nach [König, 2003]
  • Agenda
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 12
  • 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)
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 13
  • 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
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 14
  • 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)
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 15
  • 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
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 16
  • Beispiel: TCP Segment
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 17
  • ASN.1 (Beispiel)
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 18
  • 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
    Beispiel
    TCP Packet von Port 56237 zu Zielport 4444
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 19
    Type: 02 = Integer, Length: 02 = 2 Byte, Value: 0x115c = 4444
  • ASN.1 – Packed Encoding Rules
    Allgemein
    • Adressierung der Kritikpunkte an den Basic Encoding Rules
    • Metainformationen werden als dem Dekodierer bekannt vorausgesetzt
    • Abkehr von TLV
    Beispiel
    TCP Packet von Port 56237 zu Zielport 4444
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 20
    Value: 0x115c = 4444
  • 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
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 21
  • 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
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 22
  • Agenda
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 23
  • Kommunikationsablauf
    Visualisierung
    • Message Sequence Charts
    • Zustandsübergangsdiagramme
    • Strukturdiagramme
    Formale Beschreibungstechniken
    • Endliche Zustandsautomaten (FSM)
    • Prozessalgebren
    • Temporale Logiken
    Werkzeuge
    • LOTOS
    • SDL
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 24
  • 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)
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 25
  • Message Sequence Charts (Beispiel)
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 26
  • 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
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 27
  • Zustandsübergangsdiagramm (Beispiel)
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 28
    nach [Stevens, 1993]
  • Strukturdiagramm
    Allgemein
    • Visualisierung der statischen Verhältnisse mehrerer Kommunikationspartner
    • Breite Anwendung im Bereich der Prozessalgebren
    • Vermutliche erste Verwendung in [Hoare, 1985]
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 29
  • Endliche Zustandsautomaten (Allgemein)
    Definition
    Ein 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
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 30
  • Endliche Zustandsautomaten (Beispiel)
    Visualisierung
    • mittels Zustandsübergangsdiagramm (Innensicht)
    • mittels Strukturdiagramm (Außensicht)
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 31
  • Prozessalgebren (Allgemein)
    Definition
    Prozessalgebren 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
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 32
  • 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
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 33
  • Prozessalgebren (Syntax)
    Prozessbeschreibung
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 34
  • Prozessalgebren (Beispiel)
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 35
  • Prozessalgebren (Beispiel)
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 36
  • Prozessalgebren (Beispiel)
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 37
  • Prozessalgebren (Beispiel)
    Prüfung von Safety und Progress-Eigenschaft
    - Naive Implementierung des TCP-Zustandsübergangsdiagramms
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    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!
  • Temporale Logiken (Allgemein)
    Definition
    Temporale 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
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 39
  • Temporale Logiken (Allgemein/Beispiel)
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    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.“
  • 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
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 41
  • 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
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 42
  • Agenda
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 43
  • 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
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 44
  • 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
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 45
  • 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
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 46
  • 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)
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 47
  • Verifikation von Sicherheitsprotokollen
    Grundidee
    • Verifikation von Sicherheitsprotokollen (z.B. zum Schlüsselaustausch, zur Authentifizierung)
    • Modellierung der Kommunikationspartner und eventueller EindringlingedurchProzessalgebren, 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 [Yongjianund Rui, 2004]
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 48
  • Verifikation der Protokollimplementierung
    Verifikation der Protokollimplementierung
    [Jurjens, 2009]
    • First-order Logic-Ansatz
    • Übersetzungder (Java-)Implementierung in Prädikatenlogikmittels Kontrollfluss-Analyse
    • Übergabe an ATP mittels Austauschformat
    • „Gegenentwurf“ zu spi2java, Verifikation ausgehend vom Code
    [Bokoret al., 2007]
    • Ausgangspunkt: Synchronesrundenbasiertes Diagnose-Protokoll (DD), entwickeltfüreinframebasiertes 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
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 49
  • Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Vielen Dank für Ihre Aufmerksamkeit!
    Folie 50
  • Agenda
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 51
  • Standardisierungsorganisationen
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 52
  • Abkürzungen (1)
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 53
  • Abkürzungen (2)
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 54
  • Konferenzen
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 55
  • Literatur (1)
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 56
  • Literatur (2)
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 57
  • Literatur (3)
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 58
  • Literatur (4)
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 59
  • Literatur (5)
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 60
  • Beispiel: HTTP und seine Grundlagen
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 61
  • 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)
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 62
  • ACT ONE (Beispiel)
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 63
  • 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
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 64
  • Zeitablaufdiagramm (Beispiel)
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 65
    nach [König, 2003]
  • Zustandsübergangsdiagramm (Beispiel)
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 66
    Ausschnitt zeigt Übergänge aus der Sicht des Initiators, welcher die Verbindung auch aktiv schließt.
    nach [Stevens, 1993]
  • 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]
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 67
  • Endliche Zustandsautomaten (Beispiel)
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 68
  • spi2java
    Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
    Folie 69