• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
 

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

on

  • 962 views

 

Statistics

Views

Total Views
962
Views on SlideShare
962
Embed Views
0

Actions

Likes
0
Downloads
7
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