Aufbau und Entwurf von Protokollen

Download Report

Transcript Aufbau und Entwurf von Protokollen

Kommunikationssysteme
Teil 2.2 – Aufbau und Entwurf von Protokollen
Stephan Rupp
Informatik Masterstudium
www.dhbw-stuttgart.de
Kommunikationssysteme, Teil 2.2, S. Rupp
Informatik Master, PM2100.1, 2013
Inhalt
Aufbau und Entwurf von Protokollen
•
Protokolle
•
Entwicklung und Test
•
Protokollanalysator
Kommunikationssysteme, Teil 2.2, S. Rupp
2
Informatik Master, PM2100.1, 2013
Protokollschichten
Prinzip: Schichtung von Diensten
Schicht N + 1
nutzt …
… Dienst der
Schicht N
Kommunikationssysteme, Teil 2.2, S. Rupp
3
Informatik Master, PM2100.1, 2013
Referenzmodell der ISO-OSI
Endsysteme und Übertragungssysteme
Kommunikationssysteme, Teil 2.2, S. Rupp
4
Informatik Master, PM2100.1, 2013
ISO-OSI Referenzmodell
Funktionen der Protokollschichten
Kommunikationssysteme, Teil 2.2, S. Rupp
5
Informatik Master, PM2100.1, 2013
Netzwerk
Anwendungen
OSI – Modell für Systeme
Kommunikationssysteme, Teil 2.2, S. Rupp
6
Informatik Master, PM2100.1, 2013
Ebenen om OSI Referenzmodell
Management Plane:
Systemadministration
(OSS/NMS)
Control Plane: Steuerung
User Plane: Daten
OSS: Operation Support System, Betriebsführungssystem
Kommunikationssysteme, Teil 2.2, S. Rupp
NMS: Network Management System, Leitsystem
7
Informatik Master, PM2100.1, 2013
Anfragen auf Dienstebene
Dienstanbieter (Service Provider) leitet Anfragen weiter
Kommunikationssysteme, Teil 2.2, S. Rupp
8
Informatik Master, PM2100.1, 2013
Innerhalb der Anwendungsknoten
SDU: Service Date Unit
PDU: Protocol Data Unit
Kommunikationssysteme, Teil 2.2, S. Rupp
9
Informatik Master, PM2100.1, 2013
Hierarchie der Nachrichten
Protocol Data Units als komplette Nachricht der Schicht
•
(N) PDU = (N) SDU + (N) PCI
SDU: Service Date Unit
•
PDU: Protocol Data Unit
(N) SDU = (N+1) PDU
Kommunikationssysteme, Teil 2.2, S. Rupp
PCI: Protocol Control Information
10
Informatik Master, PM2100.1, 2013
Kommunikationsprozess
Nachrichten und Zustandsänderungen
PDU
Prozess: Zustandsautomat
(Finite State Machine)
Kommunikationssysteme, Teil 2.2, S. Rupp
Paketinhalt
Paketkopf
Quelle: Gerd Siegmund
11
Informatik Master, PM2100.1, 2013
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/receive Disconnect
Request (Dreq)
Kommunikationssysteme, Teil 2.2, S. Rupp
12
Informatik Master, PM2100.1, 2013
Zustandsdiagramm
Nachrichten lösen Zustandsänderungen aus
•
Gleiches Konzept wie bei UML Zustandsdiagrammen (State Diagram)
Kommunikationssysteme, Teil 2.2, S. Rupp
13
Informatik Master, PM2100.1, 2013
Beispiel: Client-Server in SDL Notation
Zustand
Nachricht
empfangen
Nachricht
empfangen
(warten auf Benutzer)
Nachricht
senden
Zustand
SDL: Service Description Language (vergleichbar mit Aktivitätsdiagramm bei UML)
Kommunikationssysteme, Teil 2.2, S. Rupp
14
Informatik Master, PM2100.1, 2013
Beispiel: Sequenzdiagramm
Message Sequence Diagram entspricht Sequenzdiagramm bei UML (Nachricht senden = Methode aufrufen)
Kommunikationssysteme, Teil 2.2, S. Rupp
15
Informatik Master, PM2100.1, 2013
Formale Validierung
Formale Validierung
ist in sehr einfachen
Fällen durch
Berücksichtigung
globaler Zustände
möglich.
Kommunikationssysteme, Teil 2.2, S. Rupp
16
Informatik Master, PM2100.1, 2013
Beispiel: Client-Server Kommunikation
Kriterien zur Validierung:
Kommunikationssysteme, Teil 2.2, S. Rupp
17
•
gegenseitige Blockierung
(Deadlock): Pfade ohne
Ausgang
•
unspezifizierte Signale
(ohne Empfang)
•
Nicht auführbare
Zustände (Zustand ist
nicht erreichbar)
•
Mehrdeutige Zustände
(Zustand wird durch
unterschiedliche
Ereignisse erreicht)
Informatik Master, PM2100.1, 2013
Inhalt
Aufbau und Entwurf von Protokollen
•
Protokolle
•
Entwicklung und Test
•
Protokollanalysator
Kommunikationssysteme, Teil 2.2, S. Rupp
18
Informatik Master, PM2100.1, 2013
Planen und Bauen
Planung und Design:
Transformationen eines
Modells
Modell
Bottom-Up
Prozess
Top-Down
Prozess
Bauen: Transformationen
eines Codes
Code
(OpenSource: Code als Modell)
Kommunikationssysteme, Teil 2.2, S. Rupp
19
Informatik Master, PM2100.1, 2013
Implementierung und Tests
Systemtests
Funktionale
Tests
black box
Systemanforderungen
Funktionale
Anforderungen
Integrationstests
Design
Anforderungen
Modultests
white box
SoftwareEntwickler
V-Modell
Spezifikation und
Test
Implementierung
und Test
Kommunikationssysteme, Teil 2.2, S. Rupp
Implementierung
der Module
UnitTests
20
Implementierung
der Units
Informatik Master, PM2100.1, 2013
Hardware Architektur
Controller
(Host)
Schnittstelle
(Communication Controller)
Kommunikationssysteme, Teil 2.2, S. Rupp
21
Informatik Master, PM2100.1, 2013
Software Architektur
Controller
(Host)
Schnittstelle
(Communication Controller)
Kommunikationssysteme, Teil 2.2, S. Rupp
22
Informatik Master, PM2100.1, 2013
Modell einer Protokollschicht
Schicht N als Dienstleister (Service
Provider) für Schicht N+1
Kommunikationssysteme, Teil 2.2, S. Rupp
23
Informatik Master, PM2100.1, 2013
Protokolltests
Ereignisse und Statustabellen (Event State Tables)
Kommunikationssysteme, Teil 2.2, S. Rupp
24
Informatik Master, PM2100.1, 2013
Protokolltests
Referenz und Prüfling einer Protokollschicht
Referenz
Kommunikationssysteme, Teil 2.2, S. Rupp
Prüfling
25
Informatik Master, PM2100.1, 2013
Konformitätstests
Mit externem Protokolltester
FSM: Finite State Machine, Zustandsautomat
Kommunikationssysteme, Teil 2.2, S. Rupp
ASP: Abstract Service Primitives
26
Informatik Master, PM2100.1, 2013
Realer Testaufbau
Prüfling
Testsystem
(System under Test)
(Protokolltester)
Protokollschicht
Testfälle
(Test Cases)
PDU
Simulator
Trace
ASP
Emulation der
unteren Protokollschichten
Full Trace
PDU: Packet Data Unit
Kommunikationssysteme, Teil 2.2, S. Rupp
ASP: Abstract Service Primitives
27
Informatik Master, PM2100.1, 2013
Anwendungstests
Editor
Testumgebung
Anwendung
record inputs
Skript
play back
Error
Input
Zielsystem
Events
situations
laden
Test Case
Entwicklungssystem &
Emulator
Test report
Screen shots
programmieren
und testen
Kommunikationssysteme, Teil 2.2, S. Rupp
28
Informatik Master, PM2100.1, 2013
Inhalt
Aufbau und Entwurf von Protokollen
•
Protokolle
•
Entwicklung und Test
•
Protokollanalysator
Kommunikationssysteme, Teil 2.2, S. Rupp
29
Informatik Master, PM2100.1, 2013
Protokollschichten
Kommunikationssysteme, Teil 2.2, S. Rupp
30
Informatik Master, PM2100.1, 2013
Signalisierung und Verbindung
VoIP mit Session Initiation Protokoll (SIP)
Kommunikationssysteme, Teil 2.2, S. Rupp
31
Informatik Master, PM2100.1, 2013
Protokollanalysator einsetzen
Übungen mit Wireshark
•
Wireshark installieren und eigenen Verkehr mitschneiden
Siehe auch: SIP Labor
Aufzeichnung der Abläufe mit WireShark
Die Aktivitäten am Asterisk-Server können nun mit Wireshark (Ethereal) aufgezeichnet
werden. Vor Beginn der Aufzeichnungen muss die Ethernet-Schnittstelle selektiert werden.
Kommunikationssysteme, Teil 2.2, S. Rupp Ein Notebook mit 32
PM2100.1,
2013 bereits
einer Ethernet-Schnittstelle Informatik
und einemMaster,
WLAN-Zugang
hat dabei
zwei mögliche Interfaces. Unter „Capture“ und „Interfaces“ kann die Schnittstelle festgelegt
Protokollanalysator einsetzen
Aufbau einer SIP-Nachricht – Anfrage (Request)
SP: Leerzeichen (Space)
33
Kommunikationssysteme, Teil 2.2, S. Rupp
SIP unterscheidet die folgenden Grundtypen von Nachrichten (Methods):
Informatik Master, PM2100.1, 2013
·
SIP-Version: Wie bei den Anfragen wird hiermit die für den Nachrichtenaufbau und
-ablauf verwendete Version von SIP übermittelt. Der SIP-Version folgt ein
Leerzeichen (Single Space).
Status-Code: Antwort auf die Anfrage im Request. > Verweis auf Tabelle mit StatusCodes>>
Reason Phrase: Nach einem weiteren Leerzeichen kommt dann der Status-Code in
Textform (Code: 200 – Text: OK, Code: 180 – Text: RINGING usw.). Die Zeile wird
dann mit einem CRLF abgeschlossen.
Protokollanalysator einsetzen
·
·
Aufbau einer SIP-Nachricht – Antwort (Response)
Kommunikationssysteme, Teil 2.2, S. Rupp
Transaktion, Dialog und Session
34
Informatik Master, PM2100.1, 2013
Protokollanalysator einsetzen
Ablauf einer SIP-Transaktion
Verbindungsaufbau
Verbindung
Verbindungsabbau
Kommunikationssysteme, Teil 2.2, S. Rupp
35
Informatik Master, PM2100.1, 2013
Statusinformationen
Protokollanalysator einsetzen
Mit „Stopp“ hält man die Aufzeichnung an und Wireshark stellt alle aufgezeichneten
Aufzeichnung mit Wireshark (Beispiel)
Nachrichten in einem Fenster dar:
Kommunikationssysteme, Teil 2.2, S. Rupp
36
Informatik Master, PM2100.1, 2013
Protokolle manipulieren
Beispiel: ARP Poisoning
•
Sicherheitslücke: zustandsloses Protokoll
•
Beschreibung des Szenarios siehe:
http://www.oxid.it/downloads/apr-intro.swf
•
Protokollwerkzeug Cain & Abel, siehe:
http://www.oxid.it/downloads/cain20.exe
Kommunikationssysteme, Teil 2.2, S. Rupp
37
Informatik Master, PM2100.1, 2013
Protokolle absichern
Fehlerfälle und Sicherheitsmaßnahmen
Maßnahme
Fehler
Unbeabsichtigte
Wiederholung
Verlust
Eingefügte Nachricht
Inkorrekte Sequenz
Verfälschung
Unakzeptable Verzögerung
Sequenz
Nummer
x
x
x
x
Connection ID CRC (Prüfsumme)
Berechnung
x
x
x
x
x
x
x
Maskerade
Memory Fehler in Switches
Watchdog
x
x
x
x
Inkorrekte Weiterleitung
zwischen Segmenten
Kommunikationssysteme, Teil 2.2, S. Rupp
x
38
Informatik Master, PM2100.1, 2013
Funktionale Sicherheit (engl. Safety)
•
Ziel: Gefahren für Menschen und Umwelt durch Maschinen und
Anlagen vermeiden.
Maschinen und Anlagen sind derart auszulegen, dass Fehler
und Defekte keine Gefährdung nach sich ziehen.
•
Risiko = Schadenshäufigkeit * Schadensausmaß
Risiko ohne
Schutzmaßnahme
Risiko mit
Schutzmaßnahme
•
< akzeptables Risiko
Prinzip: Senkung des Risikos auf ein akzeptables Maß durch
Sicherheitsmaßnahmen.
Kommunikationssysteme, Teil 2.2, S. Rupp
39
Informatik Master, PM2100.1, 2013
Kommunikationssysteme
ENDE Teil 2.2
Aufbau und Entwurf von Protokollen
Kommunikationssysteme, Teil 2.2, S. Rupp
40
Informatik Master, PM2100.1, 2013