Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie<br />Protocol Engineering...
Agenda<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 2<br />
Agenda<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 3<br />
Kommunikationsprotokoll (1)<br />Basically, a protocol is an agreement between the communicating parties on how communicat...
Kommunikationsprotokoll (2)<br />Ein Kommunikationsprotokoll beschreibt die Abläufe bei der Kommunikation zwischen zwei (o...
Eigenschaften von Kommunikationsprotokollen<br />Anzahl der Kommunikationspartner<br /><ul><li>2 (Unicast/Anycast)
>2 (Multicast/Broadcast)</li></ul>Synchronität<br /><ul><li>Synchron (Request/Reponse)
Asynchron</li></ul>Verbindungsorientierung<br /><ul><li>Verbindungslos (Brief)
Verbindungsorientiert (Telefonat)</li></ul>Übertragungsrichtung<br /><ul><li>Simplex (eine Richtung)
Halbduplex (zu jedem Zeitpunkt nur eine Richtung)
Duplex (gleichzeitig in beide Richtungen)</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationspr...
Anwendungsgebiete<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 7<br />
Schichtenarchitekturen<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 8<...
Verhältnisse zwischen den Schichten<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<...
Dienstprimitive<br />Benennung nach ISO/OSI-Notation<br />[<Schicht>]<Name> <Typ>([<Parameter>{,<Parameter>}])<br />Typen<...
Entwicklungsphasen<br />TODO<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Fo...
Agenda<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 12<br />
Botschaftsbeschreibung<br />Allgemein<br /><ul><li>Beschreibung der in den Botschaften enthaltenen Daten
Abstrakte Syntax
Beschreibung der zu übertragenden Botschaften
Transfersyntax (≙ konkrete Syntax)
Beschreibung der Abbildungen
Abstrakte Syntax -> Transfersyntax: </li></ul>Kodierung (Encoding, Serialisierung, Marshalling)<br /><ul><li>Transfersynta...
Deklarative Ansätze (ASN.1, Protocol Buffers)
Algebraische Ansätze (ACT ONE)</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<b...
Botschaftstypen<br />Typ der Botschaften<br /><ul><li>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</li></ul>Protocol Engineering: Beschreibung und Entwicklung von ...
ASN.1 (Allgemein)<br />Allgemeines<br /><ul><li>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</li></ul>Geschichte<br /><ul><li>Grundlage: Beschreibu...
Standardisierung als ISO 8824/8825 (1987)</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationspr...
ASN.1 (Syntax)<br />Grundlegende Sprachmittel<br /><ul><li>Typ- und Wertedefinitionen
Parametrisierte Typen
Datentyperweiterbarkeit
Makros</li></ul>Elementare Typen<br /><ul><li>BOOLEAN, INTEGER, OCTET STRING, BIT STRING, IA5String</li></ul>Operatoren au...
SEQUENCE/SEQUENCE OF
SET/SET OF
CHOICE
ENUMERATED
Default-Werte und Optionalität möglich</li></ul>Tags<br /><ul><li>Unterscheidung der Fälle z.B. bei CHOICE</li></ul>Protoc...
Beispiel: TCP Segment<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 17<...
ASN.1 (Beispiel)<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 18<br />
ASN.1 – Basic Encoding Rules<br />Allgemein<br /><ul><li>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</li></ul>Beispiel<br />	TCP Packet von Port 56237...
ASN.1 – Packed Encoding Rules<br />Allgemein<br /><ul><li>Adressierung der Kritikpunkte an den Basic Encoding Rules
Metainformationen werden als dem Dekodierer bekannt vorausgesetzt
Abkehr von TLV</li></ul>Beispiel<br />	TCP Packet von Port 56237 zu Zielport 4444<br />Protocol Engineering: Beschreibung ...
Protocol Buffers (Allgemein)<br />Allgemeines<br /><ul><li>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
Nächste SlideShare
Wird geladen in …5
×

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

1.974 Aufrufe

Veröffentlicht am

0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.974
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
13
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

  1. 1. Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen <br />Falk HartmannWissenschaftlicher Vortrag <br />im Rahmen des Promotionsverfahrens<br />Dresden, 1. Juli 2011<br />
  2. 2. Agenda<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 2<br />
  3. 3. Agenda<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 3<br />
  4. 4. Kommunikationsprotokoll (1)<br />Basically, a protocol is an agreement between the communicating parties on how communication is to proceed.<br />[Tanenbaum und Wetherall, 2010]<br />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. <br />[Larmouth, 2000]<br />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. <br />[König, 2003]<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 4<br />
  5. 5. Kommunikationsprotokoll (2)<br />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.<br />Typische Merkmale<br /> - Zeitabhängiges Verhalten<br /> Timeouts<br /> - Nichtdeterminismus<br /> Gleichzeitigkeit mehrerer Ereignisse (Botschaften, Timeouts...)<br /> Mehrere Folgereaktionen auf ein Ereignis<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 5<br />
  6. 6. Eigenschaften von Kommunikationsprotokollen<br />Anzahl der Kommunikationspartner<br /><ul><li>2 (Unicast/Anycast)
  7. 7. >2 (Multicast/Broadcast)</li></ul>Synchronität<br /><ul><li>Synchron (Request/Reponse)
  8. 8. Asynchron</li></ul>Verbindungsorientierung<br /><ul><li>Verbindungslos (Brief)
  9. 9. Verbindungsorientiert (Telefonat)</li></ul>Übertragungsrichtung<br /><ul><li>Simplex (eine Richtung)
  10. 10. Halbduplex (zu jedem Zeitpunkt nur eine Richtung)
  11. 11. Duplex (gleichzeitig in beide Richtungen)</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 6<br />
  12. 12. Anwendungsgebiete<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 7<br />
  13. 13. Schichtenarchitekturen<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 8<br />
  14. 14. Verhältnisse zwischen den Schichten<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 9<br />
  15. 15. Dienstprimitive<br />Benennung nach ISO/OSI-Notation<br />[<Schicht>]<Name> <Typ>([<Parameter>{,<Parameter>}])<br />Typen<br />request – Anfordern eines Dienstes an Dienstzugangspunkt A<br />indication – Anzeige am Partner-Dienstzugangspunkt B<br />response – Antwort am Partner-Dienstzugangspunkt B<br />confirm – Bestätigung der Diensterbringung an Dienstzugangspunkt A<br />Beispiele<br />TCONNECT request(remoteHost, remotePort, localHost, localPort)<br />Vereinfachungen <br />TCONNECTrequ(...) – übliche Verkürzung<br />CONNECTrequ(...) – wenn Schicht eindeutig<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 10<br />
  16. 16. Entwicklungsphasen<br />TODO<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 11<br />nach [König, 2003]<br />
  17. 17. Agenda<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 12<br />
  18. 18. Botschaftsbeschreibung<br />Allgemein<br /><ul><li>Beschreibung der in den Botschaften enthaltenen Daten
  19. 19. Abstrakte Syntax
  20. 20. Beschreibung der zu übertragenden Botschaften
  21. 21. Transfersyntax (≙ konkrete Syntax)
  22. 22. Beschreibung der Abbildungen
  23. 23. Abstrakte Syntax -> Transfersyntax: </li></ul>Kodierung (Encoding, Serialisierung, Marshalling)<br /><ul><li>Transfersyntax -> Abstrakte Syntax: </li></ul>Dekodierung (Decoding, Deserialisierung, Unmarshalling, Parsen)<br />Herangehensweisen<br /><ul><li>Grammatiken
  24. 24. Deklarative Ansätze (ASN.1, Protocol Buffers)
  25. 25. Algebraische Ansätze (ACT ONE)</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 13<br />
  26. 26. Botschaftstypen<br />Typ der Botschaften<br /><ul><li>Text
  27. 27. Beschreibung durch Grammatik
  28. 28. Kodierung manuell oder durch generierten Code
  29. 29. Dekodierung durch generierten Code (Parser-Generator)
  30. 30. XML
  31. 31. Beschreibung durch XML Schema
  32. 32. Kodierung/Dekodierung durch generierten Code (Binding-Technologien wie JAXB/JAXWS) oder XML-APIs wie DOM, SAX oder StAX
  33. 33. Binär
  34. 34. Beschreibung durch ASN.1 oder Protocol Buffers
  35. 35. Kodierung/Dekodierung manuell oder durch generierten Code</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 14<br />
  36. 36. ASN.1 (Allgemein)<br />Allgemeines<br /><ul><li>Abstract Syntax Notation 1
  37. 37. ASN.1 definiert abstrakte Syntax, also in Botschaften zu transportierende Daten unabhängig von ihrer konkreten Darstellung
  38. 38. Analogie zu IDLs
  39. 39. Encoding Rules
  40. 40. definieren Übersetzung in Transfersyntax
  41. 41. existieren für binäre, textuelle und XML-basierte Transfersyntax
  42. 42. Nachbildung nicht mit ASN.1 definierter Botschaften nur bedingt möglich
  43. 43. Keine Unterstützung für Berechnung abhängiger Teile der Botschaften</li></ul>Geschichte<br /><ul><li>Grundlage: Beschreibungssyntax X.409 der CCITT (1984)
  44. 44. Standardisierung als ISO 8824/8825 (1987)</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 15<br />
  45. 45. ASN.1 (Syntax)<br />Grundlegende Sprachmittel<br /><ul><li>Typ- und Wertedefinitionen
  46. 46. Parametrisierte Typen
  47. 47. Datentyperweiterbarkeit
  48. 48. Makros</li></ul>Elementare Typen<br /><ul><li>BOOLEAN, INTEGER, OCTET STRING, BIT STRING, IA5String</li></ul>Operatoren auf Typen<br /><ul><li>Wertebereichsbegrenzungen
  49. 49. SEQUENCE/SEQUENCE OF
  50. 50. SET/SET OF
  51. 51. CHOICE
  52. 52. ENUMERATED
  53. 53. Default-Werte und Optionalität möglich</li></ul>Tags<br /><ul><li>Unterscheidung der Fälle z.B. bei CHOICE</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 16<br />
  54. 54. Beispiel: TCP Segment<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 17<br />
  55. 55. ASN.1 (Beispiel)<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 18<br />
  56. 56. ASN.1 – Basic Encoding Rules<br />Allgemein<br /><ul><li>Grundlegenste Kodierung
  57. 57. Metainformationen werden nahezu komplett übernommen
  58. 58. TLV : Type, Length, Value
  59. 59. Sehr gute Eignung als Transfersyntax
  60. 60. Encoding erzeugt in der Regel relativ große PDUs ->Packed Encoding Rules</li></ul>Beispiel<br /> TCP Packet von Port 56237 zu Zielport 4444<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 19<br />Type: 02 = Integer, Length: 02 = 2 Byte, Value: 0x115c = 4444<br />
  61. 61. ASN.1 – Packed Encoding Rules<br />Allgemein<br /><ul><li>Adressierung der Kritikpunkte an den Basic Encoding Rules
  62. 62. Metainformationen werden als dem Dekodierer bekannt vorausgesetzt
  63. 63. Abkehr von TLV</li></ul>Beispiel<br /> TCP Packet von Port 56237 zu Zielport 4444<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 20<br />Value: 0x115c = 4444<br />
  64. 64. Protocol Buffers (Allgemein)<br />Allgemeines<br /><ul><li>Definition der Transfersyntax
  65. 65. Typsystem definiert Typen aus Sicht der Transfersyntax
  66. 66. Werkzeugunterstützung
  67. 67. Definition von Abbildungen auf Typsysteme der Zielsprachen (C++, Java, Python)
  68. 68. Entworfen für die Codegenerierung
  69. 69. Platzsparende Kodierung
  70. 70. durch Kodierung mit variabler Länge („varint“)
  71. 71. Nicht geeignet zur Nachbildung von mit anderen Mitteln definierten Botschaften
  72. 72. Keine Beschreibungsmöglichkeiten für abhängige Teile der Botschaft</li></ul>Geschichte<br /><ul><li>Erstveröffentlichung (Version 2.0) durch Google (2008)
  73. 73. Aktuelle Version 2.4.1</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 21<br />
  74. 74. Protocol Buffers (Syntax)<br />Grundlegende Sprachmittel<br /><ul><li>Botschaftsdefinitionen
  75. 75. Einbettung von Botschaften
  76. 76. Default-Werte und Optionalität/Wiederholung möglich
  77. 77. Erweiterbarkeit</li></ul>Elementare Typen<br /><ul><li>Integer verschiedener Wertebereiche mit Kodierung variabler bzw. fester Länge
  78. 78. Strings (UTF-8/ASCII)
  79. 79. Boolean
  80. 80. Float/Double
  81. 81. Byte-Felder</li></ul>Tags<br /><ul><li>Analog zu ASN.1</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 22<br />
  82. 82. Agenda<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 23<br />
  83. 83. Kommunikationsablauf<br />Visualisierung<br /><ul><li>Message Sequence Charts
  84. 84. Zustandsübergangsdiagramme
  85. 85. Strukturdiagramme</li></ul>Formale Beschreibungstechniken<br /><ul><li>Endliche Zustandsautomaten (FSM)
  86. 86. Prozessalgebren
  87. 87. Temporale Logiken</li></ul>Werkzeuge<br /><ul><li>LOTOS
  88. 88. SDL</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 24<br />
  89. 89. Message Sequence Charts (Allgemein)<br />Geschichte<br /><ul><li>Vorschlag durch [Grabowski und Rudolph, 1992]
  90. 90. basierend auf OSI-Zeitablaufdiagramme und ISDN Information Flow Diagrams
  91. 91. MSC´92: Normierung durch ITU-T in der Empfehlung Z.120
  92. 92. MSC´96: Denotationelle Semantik basierend auf Prozessalgebren
  93. 93. MSC´2000: Datentypen, entfernte Methodenaufrufe, Objektorientierung
  94. 94. UML Sequenzdiagramme nehmen Anleihen bei MSCs</li></ul>Allgemeines<br /><ul><li>Graphische (MSC/GR) und textuelle Variante (MSC/PR)</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 25<br />
  95. 95. Message Sequence Charts (Beispiel)<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 26<br />
  96. 96. Zustandsübergangsdiagramm (Allgemein)<br />Geschichte<br /><ul><li>Statechart Notation [Harel, 1987]
  97. 97. Verwendung zur Abbildung von Protokollabläufen verbreitet [Stevens, 1993]
  98. 98. Normierung als State Diagram innerhalb der UML 1.x</li></ul>Allgemein<br /><ul><li>Typischerweise Interpretation als endliche Zustandsautomaten</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 27<br />
  99. 99. Zustandsübergangsdiagramm (Beispiel)<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 28<br />nach [Stevens, 1993]<br />
  100. 100. Strukturdiagramm<br />Allgemein<br /><ul><li>Visualisierung der statischen Verhältnisse mehrerer Kommunikationspartner
  101. 101. Breite Anwendung im Bereich der Prozessalgebren
  102. 102. Vermutliche erste Verwendung in [Hoare, 1985]</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 29<br />
  103. 103. Endliche Zustandsautomaten (Allgemein)<br />Definition<br /> 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.<br />Geschichte<br /><ul><li>Basierend auf Arbeiten an den Bell Labs [Mealy, 1955], [Moore, 1956]</li></ul>Allgemeines<br /><ul><li>Moore-Automat: Eingaben sind mit den Übergängen assoziiert, Ausgaben mit den Zuständen
  104. 104. Mealy-Automat: Ein- und Ausgaben sind mit den Übergängen assoziiert
  105. 105. Timed Automata
  106. 106. Erweiterung um Zeitbegriff („Uhren“)
  107. 107. Übergänge können Uhren setzen bzw. vom Wert der Uhren abhängen</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 30<br />
  108. 108. Endliche Zustandsautomaten (Beispiel)<br />Visualisierung <br /><ul><li>mittels Zustandsübergangsdiagramm (Innensicht)
  109. 109. mittels Strukturdiagramm (Außensicht)</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 31<br />
  110. 110. Prozessalgebren (Allgemein)<br />Definition<br /> Prozessalgebren sind eine formale Beschreibungstechnik für komplexe Computersysteme, insbesondere für Systeme, welche kommunizierende, nebenläufige Komponenten enthalten. (nach [Bergstra et al., 2001]) <br />Geschichte<br /><ul><li>Communicating Sequential Processes (CSP) [Hoare, 1978]
  111. 111. Calculus of Communicating Systems (CCS) [Milner, 1980]
  112. 112. Finite State Processes (FSP) [Magee und Kramer, 2006]</li></ul>Allgemeines<br /><ul><li>Betrachtung von Prozessen und Aktionen
  113. 113. Abbildung auf Protocol Engineering
  114. 114. Kommunikationspartner ≙ Prozess
  115. 115. Dienstprimitivaufrufe und Botschaftsversand-/empfang ≙ Aktion</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 32<br />
  116. 116. Prozessalgebren (Allgemein)<br />Semantik<br /><ul><li>FSP definiert über Labelled Transition Systems [Magee und Kramer, 2006]
  117. 117. Prozessalgebren erlauben die Verifikation wichtiger Eigenschaften
  118. 118. Safety
  119. 119. „Nichts Negatives wird passieren.“
  120. 120. In jedem Zustand des Gesamtmodells kann keine Aktion auftreten, für die es keinen Folgezustand gibt.
  121. 121. Progress
  122. 122. „Etwas Positives wird irgendwann passieren.“
  123. 123. In jedem Zustand des Gesamtmodells wird eine der zulässigen Aktionen eventuell auftreten.
  124. 124. Gegenteil zur Starvation</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 33<br />
  125. 125. Prozessalgebren (Syntax)<br />Prozessbeschreibung<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 34<br />
  126. 126. Prozessalgebren (Beispiel)<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 35<br />
  127. 127. Prozessalgebren (Beispiel)<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 36<br />
  128. 128. Prozessalgebren (Beispiel)<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 37<br />
  129. 129. Prozessalgebren (Beispiel)<br />Prüfung von Safety und Progress-Eigenschaft<br />- Naive Implementierung des TCP-Zustandsübergangsdiagramms<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 38<br />Problem 1:<br />Aktionen, die nur sendend auftreten!<br />Problem 2:<br />Namensgleichheit zwischen ACK für SYN und FIN.<br />Problem 3:<br />Kanalmodellierung für simultanes Schließen nötig!<br />
  130. 130. Temporale Logiken (Allgemein)<br />Definition<br />Temporale Logiken sind Erweiterungen der Aussagenlogik durch Operatoren, die die Formulierung von Aussagen mit Bezugnahme auf die Zeit gestatten.<br />Geschichte<br /><ul><li>Grundlage durch Arthur Prior[Prior, 1957]
  131. 131. Temporal Logic of Actions [Lamport, 1993]
  132. 132. Fluent Linear Temporal Logic [Magee und Kramer, 2006]</li></ul>Allgemeines<br /><ul><li>Linear vs. Branching Time
  133. 133. Zeitliche Ordnung von Ereignissen vs. absolute Zeit
  134. 134. Anwendung in der Protokollmodellierung zur Spezifikation und Prüfung von Liveness-Eigenschaften
  135. 135. Zeitliche Operatoren
  136. 136. □ always/immer
  137. 137. ◊ eventually/irgendwann</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 39<br />
  138. 138. Temporale Logiken (Allgemein/Beispiel)<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 40<br />Fluent<br /><ul><li>Ableitung eines Zustands aus einem Ablaufs von Aktionen
  139. 139. Initiierende und beendende Aktionen</li></ul>Assertion<br /><ul><li>Sicherstellung einer temporallogischen Formel über Fluents
  140. 140. Automatische Prüfung z.B. in LTSA [Giannakopoulou und Magee, 2003]</li></ul>Beispiel<br /><ul><li>Sicherstellung der Liveness-Eigenschaft „Die Kommunikationspartner erreichen immer wieder einen erfolgreichen Verbindungsaufbau.“</li></li></ul><li>LOTOS<br />Allgemeines<br /><ul><li>Language Of Temporal Ordering Specification
  141. 141. Grundkonzepte:
  142. 142. Prozessalgebren, insbesondere CCS [Milner,1980]
  143. 143. Erweiterung um Unterbrechungen
  144. 144. Algebraische Botschaftsbeschreibung mittels ACT ONE
  145. 145. Einsatz für Verifikation, Leistungsvorhersage und Test</li></ul>z.B. im GSM-Bereich [Iglesias et al., 2001] <br /><ul><li>Hoher Formalisierungsgrad verhindert breite praktische Anwendung</li></ul>Implementierungen<br /><ul><li>Topo(Toolset for Product Realisation with Lotos) [Mañas et al.,1993]</li></ul>Geschichte<br /><ul><li>Standardisierung als ISO 8807 (1990)
  146. 146. Erweiterung um Grafische Variante GLOTOS als ISO 8807/AM1</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 41<br />
  147. 147. SDL<br />Allgemeines<br /><ul><li>Specification and Description Language
  148. 148. Grundkonzepte
  149. 149. Zustandsautomaten für Prozesse (Agenten)
  150. 150. Semantik basierend auf CSP [Hoare, 1978]
  151. 151. Botschaftsmodellierung typischerweise basierend auf ASN.1
  152. 152. Standardisierung als ITU-T Z.100
  153. 153. Graphische (SDL/GR) und textuelle Variante (SDL/PR)
  154. 154. Integration von MSC
  155. 155. Starker Einsatz im Telekommunikationsbereich (z.B. ISDN-Dienstedefinition)</li></ul>Implementierungen<br /><ul><li>Cinderella SDL (grafisches Modellierungstool)
  156. 156. Tau SDL Suite (jetzt IBM, Teil der Rational-Produktlinie)</li></ul>Geschichte<br /><ul><li>SDL ´76: Erste Version
  157. 157. SDL ´88: Klare Grammatik und Semantik
  158. 158. Aktuelle Version SDL 2000</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 42<br />
  159. 159. Agenda<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 43<br />
  160. 160. Fazit<br />Aktueller Stand<br /><ul><li>Mächtige formale Beschreibungsmittel
  161. 161. Verbreitung auf spezielle Bereiche beschränkt
  162. 162. ASN.1 und SDL relativ verbreitet in der Telekommunikation
  163. 163. Hoher Einarbeitungsaufwand
  164. 164. Interpretation der Verifikationsergebnisse erfordert Erfahrung</li></ul>Trends<br /><ul><li>Protokollmodellierung/Codegenerierung
  165. 165. Verifikation von Sicherheitsprotokollen
  166. 166. Verifikation der Protokollimplementierung</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 44<br />
  167. 167. Protokollmodellierung/Codegenerierung<br />Botschaftschreibung<br /><ul><li>Eher evolutionäre Entwicklungen
  168. 168. ASN.1
  169. 169. Verbesserter Tool-Support z.B. ASN1Compiler (Objective Systems)
  170. 170. Neue Einsatzbereiche, z.B. Medical Device Encoding Rules (ISO/IEEE 11073) zum Vitaldatenaustausch im medizinischen Gerätebau [Schrenker und Cooper, 2001]
  171. 171. Protocol Buffers</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 45<br />
  172. 172. Protokollmodellierung/Codegenerierung<br />Protokollabläufe<br /><ul><li>Domänenspezifische Sprachen für Spezialfälle</li></ul>The Austin Protocol Compiler [McGuire und Gouda, 2005]<br /><ul><li>TAP - Timed Abstract Protocol Notation
  173. 173. Sprache zur Beschreibung asynchroner Protokolle
  174. 174. Vorgehen
  175. 175. Beschreibung des Protokolls in TAP
  176. 176. Verifikation der Protokollbeschreibung
  177. 177. Umsetzung in implementierungsfreundliches Protokollmodell
  178. 178. Generierung von Protokoll-Stubs in C
  179. 179. Garantiert Übertragung der verifizierten Eigenschaften der Spezifikation in die Implementierung </li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 46<br />
  180. 180. Protokollmodellierung/Codegenerierung<br />spi2java [Busenius und Ivanova,2008] , [Pironti und Sisto, 2007], [Pozza et al., 2004]<br /><ul><li>Basierend auf Spi-Kalkül (-Kalkül mit kryptografischen Operationen)
  181. 181. Generiert Java-Code
  182. 182. Garantiert Übereinstimmung des Codes mit der im Spi-Kalkül formulierten Spezifikation</li></ul>Annäherung UML/SDL [Bochmann et al., 2010]<br /><ul><li>Bereits existierende Gemeinsamkeiten: MSC, State Charts
  183. 183. Entwicklung eines UML-Profiles für SDL (neue Version 2009)
  184. 184. Kauf von Telelogic zu IBM (Tau SDL Suite)</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 47<br />
  185. 185. Verifikation von Sicherheitsprotokollen<br />Grundidee<br /><ul><li>Verifikation von Sicherheitsprotokollen (z.B. zum Schlüsselaustausch, zur Authentifizierung)
  186. 186. Modellierung der Kommunikationspartner und eventueller EindringlingedurchProzessalgebren, z.B. CSP [Ryan und Schneider, 2000]
  187. 187. Abbildung der gewünschten Protokolleigenschaften in temporallogische Formeln
  188. 188. Geheimhaltung, Anonymität, Unleugbarkeit</li></ul>CAPSL<br /><ul><li>CAPSL – Common Authentification Protocol Specification Language [Millen, 1997]
  189. 189. CASPER-Compiler: Generierung von Spezifikationen für Model Checker, z.B. FDR (Formal Systems)
  190. 190. Codegenerierung für Java</li></ul>SPIN<br /><ul><li>Vorgehensweise zur Modellierung in PROMELA [Yongjianund Rui, 2004]</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 48<br />
  191. 191. Verifikation der Protokollimplementierung<br />Verifikation der Protokollimplementierung <br />[Jurjens, 2009]<br /><ul><li>First-order Logic-Ansatz
  192. 192. Übersetzungder (Java-)Implementierung in Prädikatenlogikmittels Kontrollfluss-Analyse
  193. 193. Übergabe an ATP mittels Austauschformat
  194. 194. „Gegenentwurf“ zu spi2java, Verifikation ausgehend vom Code</li></ul> [Bokoret al., 2007]<br /><ul><li>Ausgangspunkt: Synchronesrundenbasiertes Diagnose-Protokoll (DD), entwickeltfüreinframebasiertes Time-Triggered-System
  195. 195. Ziel: Berechnung eines konsistenten Global-Health-Vector
  196. 196. Portierung auf Time-Triggered-Architecture
  197. 197. Modellierung und Analyse der Konsistenzbedingung mittels SAL
  198. 198. Fehlverhalten auf Time-Triggered-Architecture
  199. 199. Lösung: Read- und Send-Alignment zur Resynchronisation der verfügbaren Information</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 49<br />
  200. 200. Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Vielen Dank für Ihre Aufmerksamkeit!<br />Folie 50<br />
  201. 201. Agenda<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 51<br />
  202. 202. Standardisierungsorganisationen<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 52<br />
  203. 203. Abkürzungen (1)<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 53<br />
  204. 204. Abkürzungen (2)<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 54<br />
  205. 205. Konferenzen<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 55<br />
  206. 206. Literatur (1)<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 56<br />
  207. 207. Literatur (2)<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 57<br />
  208. 208. Literatur (3)<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 58<br />
  209. 209. Literatur (4)<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 59<br />
  210. 210. Literatur (5)<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 60<br />
  211. 211. Beispiel: HTTP und seine Grundlagen<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 61<br />
  212. 212. ACT ONE (Allgemein)<br />Allgemein<br /><ul><li>Algebraic specification techniques for Correct design of Trusty software systems (version 1)
  213. 213. Botschaften als abstrakte Datentypen, welche algebraisch beschrieben werden
  214. 214. Sorten (natürliche Zahlen)
  215. 215. Operatoren (Addition)
  216. 216. Gleichungen (Kommutativität der Addition)
  217. 217. Keine Abbildung in konkrete Syntax definiert
  218. 218. Steuerung von Codegeneratoren über Annotationen möglich [Schröder, 2003]</li></ul>Geschichte<br /><ul><li>Basierend auf [Ehrig und Mahr, 1985]
  219. 219. Standardisiert als Anhang zur Spezifikation ISO 8807 (LOTOS)</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 62<br />
  220. 220. ACT ONE (Beispiel)<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 63<br />
  221. 221. Zeitablaufdiagramm (Allgemein)<br />Geschichte<br /><ul><li>OSI Time Sequence Diagramm (vor 1990)</li></ul>Allgemein<br /><ul><li>Typischerweise Darstellung des zeitlichen Ablaufs der Aufrufs der Dienstprimitive
  222. 222. Beispielhafte Darstellung
  223. 223. Keine formale Grundlage
  224. 224. Weiterentwicklung und Standardisierung als Message Sequence Charts</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 64<br />
  225. 225. Zeitablaufdiagramm (Beispiel)<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 65<br />nach [König, 2003]<br />
  226. 226. Zustandsübergangsdiagramm (Beispiel)<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 66<br />Ausschnitt zeigt Übergänge aus der Sicht des Initiators, welcher die Verbindung auch aktiv schließt.<br />nach [Stevens, 1993]<br />
  227. 227. MDML<br />Allgemein<br /><ul><li>Definition der abstrakten Syntax
  228. 228. Zuordnung der Kodierung/Dekodierung zu den einzelnen Elementen der abstrakten Syntax
  229. 229. Beschreibung abhängiger Teile der Botschaft möglich(Prüfsummen, Längen)</li></ul>Geschichte<br /><ul><li>Textuelle, XML-basierte Syntax (2008)
  230. 230. Graphische Syntax [Schmidt 2010]</li></ul>Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 67<br />
  231. 231. Endliche Zustandsautomaten (Beispiel)<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 68<br />
  232. 232. spi2java<br />Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen<br />Folie 69<br />

×