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

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen

950
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
950
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×