400 likes | 535 Views
Kommunikationssysteme Teil 2.2 – Aufbau und Entwurf von P rotokollen. Stephan Rupp Informatik Masterstudium. www.dhbw-stuttgart.de . Inhalt. Aufbau und Entwurf von P rotokollen Protokolle Entwicklung und Test Protokollanalysator. Protokollschichten.
E N D
KommunikationssystemeTeil 2.2 – Aufbau und Entwurf von Protokollen Stephan Rupp Informatik Masterstudium www.dhbw-stuttgart.de
Inhalt Aufbau und Entwurf von Protokollen • Protokolle • Entwicklung und Test • Protokollanalysator
Protokollschichten Prinzip: Schichtung von Diensten Schicht N + 1 nutzt … … Dienst der Schicht N
Referenzmodell der ISO-OSI Endsysteme und Übertragungssysteme
ISO-OSI Referenzmodell Funktionen der Protokollschichten
OSI – ModellfürSysteme Anwendungen Netzwerk
Ebenenom OSI Referenzmodell Management Plane: Systemadministration (OSS/NMS) Control Plane: Steuerung User Plane: Daten OSS: Operation Support System, Betriebsführungssystem NMS: Network Management System, Leitsystem
Anfragen auf Dienstebene Dienstanbieter (Service Provider) leitet Anfragen weiter
Innerhalb der Anwendungsknoten SDU: Service Date Unit PDU: Protocol Data Unit
Hierarchie der Nachrichten Protocol Data Units als komplette Nachricht der Schicht • (N) PDU = (N) SDU + (N) PCI • (N) SDU = (N+1) PDU SDU: Service Date Unit PDU: Protocol Data Unit PCI: Protocol Control Information
Kommunikationsprozess Nachrichten und Zustandsänderungen PDU Paketkopf Prozess: Zustandsautomat (Finite State Machine) Paketinhalt Quelle: Gerd Siegmund
Beispiel: Client - Server Kommunikation Client und Server als Zustandsautomaten Zustände (States): 0: Disconnected (DISC) 1: Waiting (WAIT) 2: Connected (CONN) Zustandsübergänge (Transitions): +/-1: send/receive Connect Request (Creq) +/-2: send/receive Connect Acknowledge (Cack) +/-3: send/receiveDisconnect Request (Dreq)
Zustandsdiagramm Nachrichten lösen Zustandsänderungen aus • Gleiches Konzept wie bei UML Zustandsdiagrammen (State Diagram)
Beispiel: Client-Server in SDL Notation SDL: Service Description Language (vergleichbar mit Aktivitätsdiagramm bei UML) Zustand Nachricht empfangen (warten auf Benutzer) Nachricht empfangen Nachricht senden Zustand
Beispiel: Sequenzdiagramm Message SequenceDiagram entspricht Sequenzdiagramm bei UML (Nachricht senden = Methode aufrufen)
FormaleValidierung Formale Validierung ist in sehr einfachen Fällen durch Berücksichtigung globaler Zustände möglich.
Beispiel: Client-Server Kommunikation Kriterien zur Validierung: • gegenseitigeBlockierung (Deadlock): PfadeohneAusgang • unspezifizierteSignale (ohneEmpfang) • NichtauführbareZustände (Zustandistnichterreichbar) • MehrdeutigeZustände (ZustandwirddurchunterschiedlicheEreignisseerreicht)
Inhalt Aufbau und Entwurf von Protokollen • Protokolle • Entwicklung und Test • Protokollanalysator
Planen und Bauen Planung und Design: Transformationen eines Modells Bauen: Transformationen eines Codes (OpenSource: Code als Modell) Modell Bottom-Up Prozess Top-Down Prozess Code
black box white box Implementierung und Tests V-Modell System- tests System- anforderungen Spezifikation und Test Funktionale Tests Funktionale Anforderungen Integrations- tests Design Anforderungen Modul- tests Implementierung der Module Implementierung und Test Unit- Tests Implementierung der Units Software- Entwickler
Hardware Architektur Controller (Host) Schnittstelle (Communication Controller)
Software Architektur Controller (Host) Schnittstelle (Communication Controller)
ModelleinerProtokollschicht Schicht N als Dienstleister (Service Provider) für Schicht N+1
Protokolltests Ereignisse und Statustabellen (Event State Tables)
Protokolltests Referenz und Prüfling einer Protokollschicht Referenz Prüfling
Konformitätstests Mit externem Protokolltester FSM: Finite State Machine, Zustandsautomat ASP: Abstract Service Primitives
Realer Testaufbau Prüfling (System under Test) Testsystem (Protokolltester) Protokollschicht Testfälle (Test Cases) PDU Simulator Trace ASP Emulation der unteren Protokoll-schichten Full Trace PDU: Packet Data Unit ASP: Abstract Service Primitives
Input Anwendungstests Testumgebung Editor Anwendung record inputs Skript Events play back Error situations Zielsystem laden Test Case Entwicklungs-system & Emulator Test report Screen shots programmieren und testen
Inhalt Aufbau und Entwurf von Protokollen • Protokolle • Entwicklung und Test • Protokollanalysator
Signalisierung und Verbindung VoIP mit Session Initiation Protokoll (SIP)
Protokollanalysatoreinsetzen Übungenmit Wireshark • Wireshark installieren und eigenenVerkehrmitschneiden Sieheauch: SIP Labor
Protokollanalysatoreinsetzen Aufbaueiner SIP-Nachricht – Anfrage (Request) SP: Leerzeichen (Space)
Protokollanalysatoreinsetzen Aufbaueiner SIP-Nachricht – Antwort (Response)
Protokollanalysatoreinsetzen Ablaufeiner SIP-Transaktion Verbindungsaufbau Verbindung Verbindungsabbau
Protokollanalysatoreinsetzen Aufzeichnungmit Wireshark (Beispiel)
Protokollemanipulieren Beispiel: ARP Poisoning • Sicherheitslücke: zustandslosesProtokoll • Beschreibung des Szenariossiehe: http://www.oxid.it/downloads/apr-intro.swf • Protokollwerkzeug Cain & Abel, siehe: http://www.oxid.it/downloads/cain20.exe
Protokolleabsichern Fehlerfälle und Sicherheitsmaßnahmen
FunktionaleSicherheit (engl. Safety) • Ziel: Gefahren für Menschen und Umwelt durch Maschinen und Anlagen vermeiden. • Risiko = Schadenshäufigkeit * Schadensausmaß • Prinzip: Senkung des Risikos auf ein akzeptables Maß durch Sicherheitsmaßnahmen. Maschinen und Anlagen sind derart auszulegen, dass Fehler und Defekte keine Gefährdung nach sich ziehen. Risiko ohne Schutzmaßnahme Risiko mit Schutzmaßnahme < akzeptables Risiko
Kommunikationssysteme • ENDE Teil 2.2 • Aufbau und Entwurf von Protokollen