Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

WEBSOCKETS DATUM AUTOR.

Ähnliche Präsentationen


Präsentation zum Thema: "WEBSOCKETS DATUM AUTOR."—  Präsentation transkript:

1 WEBSOCKETS DATUM AUTOR

2 Sockets Rückblick: Vorlesung Datenkommunikation 2 21.04.2017
WebSockets 2 Sockets Rückblick: Vorlesung Datenkommunikation 2

3 Sockets Die wichtigsten Eigenschaften
WebSockets 3 Sockets Die wichtigsten Eigenschaften reservierter Bereich im Arbeitsspeicher Kommunikationsendpunkt Austausch von Daten In Rechnernetzten Zwischen Prozesse (Interprozesskommunikation) Bidirektional seit 1983 Standard 3

4 Agenda Das HTTP Protokoll Interaktivität und Echtzeitfähigkeit im Web
WebSockets 4 Agenda Das HTTP Protokoll Interaktivität und Echtzeitfähigkeit im Web HTML5 WebSockets Die Client API Server Implementierungen WebSockets in der Praxis Ausblick und Fazit 4

5 Hypertext Transfer Protocol
WebSockets 5 Hypertext Transfer Protocol Request-Response-Nachrichtenaustausch

6 Hypertext Transfer Protocol
WebSockets 6 Hypertext Transfer Protocol Kommunikationsfluss des Protokolls

7 Hypertext Transfer Protocol
WebSockets 7 Hypertext Transfer Protocol Kommunikationsfluss des Protokolls

8 Hypertext Transfer Protocol
WebSockets 8 Hypertext Transfer Protocol Einschränkungen Kommunikation kann nur vom Client aus initiiert werden Keine native Unterstützungen für bidirektionale Kommunikation Codierung der Protokollelemente erfolgt als Text Großer Overhead „Zustandslosigkeit“ bzw. „Gedächtnislos“  Keine Interaktivität und Echtzeitfähigkeit (nativ) möglich

9 WebSockets 9 Lösungsansätze Wie kann Interaktivität und „Echtzeitfähigkeit“ erreicht werden? Plug-in basierte Ansätze (Browser) XmlHttpRequest Polling und Long-Polling Comet Server-Sent Events

10 WebSockets 10 Lösungsansätze - SSE Request Response

11 Lösungsansätze? Nachteile der Implementierungen
WebSockets 11 Lösungsansätze? Nachteile der Implementierungen (noch) Hoher Overhead / Datenmengen nur „konstruierte“ Lösungsansätze oft nur „scheinbare“ Verbindung von Server zu Client (Quasiinteraktivität) Schwächen bei der Kommunikationskontrolle Fehlerbehandlung Fehlende Spezifikationen

12 HTML5 WebSockets Ursprünglich von Google vorgeschlagen (2009)
WebSockets 12 HTML5 WebSockets Ursprünglich von Google vorgeschlagen (2009) Standard RFC 6455 (2011) besteht aus Protokollspezifikation JavaScript Webbrowser API

13 HTML5 WebSockets Verbindungsaufbau (Opening Handshake) 13 21.04.2017

14 HTML5 WebSockets Der „Sec WebSocket Accept“ Mechanismus 14 21.04.2017

15 HTML5 WebSockets Der „Sec WebSocket Accept“ Mechanismus 15 21.04.2017

16 WebSockets 16 HTML5 WebSockets Das Protokoll (Frame)

17 WebSockets 17 HTML5 WebSockets Das Protokoll (Frame)

18 HTML5 WebSockets Operation Codes Code Frame 0x0 Fortsetzung Frame 0x1
WebSockets 18 HTML5 WebSockets Operation Codes Code Frame 0x0 Fortsetzung Frame 0x1 Textframe 0x2 Binärframe 0x3 bis 0x7 Reserviert für weitere Non-Control-Frames 0x8 Connection Close Frame 0x9 Ping Frame 0xA Pong Frame 0xB bis 0xF Reserviert für weitere Control Frames

19 HTML5 WebSockets Fragmentierung (Stückweise Übertragung der Nutzdaten)
WebSockets 19 HTML5 WebSockets Fragmentierung (Stückweise Übertragung der Nutzdaten)

20 WebSockets 20 HTML5 WebSockets Maskierung (mittels XOR)

21 HTML5 WebSockets - Datenframes
WebSockets 21 HTML5 WebSockets - Datenframes Server  Client Client  Server

22 HTML5 WebSockets Der Verbindungsabbau (Statuscodes) Code Bedeutung
WebSockets 22 HTML5 WebSockets Der Verbindungsabbau (Statuscodes) Code Bedeutung 1000 Normal Closure 1001 Going Away 1002 Protocol Error 1003 Unsupported Data 1004 Reserved 1005 No Status Recieved 1006 Abnormal Closure 1007 Invalid Frame Payload Data 1008 Policy Violation 1009 Message Too Big

23 HTML5 WebSockets - Close
WebSockets 23 HTML5 WebSockets - Close Server beendet Client beendet

24 HTML5 WebSockets Beispiel Kommunikation (Traffic Analyse) 24
WebSockets 24 HTML5 WebSockets Beispiel Kommunikation (Traffic Analyse)

25 WebSockets - Implementierungen
WebSockets 25 WebSockets - Implementierungen Client JavaScript Webbrowser API (Bestandteil des Standards) Server Socket.IO Websocket-PHP Vert.x

26 Die Client API Browsersupport
WebSockets 26 Die Client API Browsersupport Beispiele: Chrome ab V. 16, FF ab V. 11, IE ab V. 10

27 Die Client API Grundlegendes Namensschema Bestandteil Bedeutung
WebSockets 27 Die Client API Grundlegendes Namensschema Bestandteil Bedeutung ws oder wss Protokoll host Server port Beliebiger Port (auch 80 grundsätzlich möglich) path Pfad auf Dateisystem query Optionale Parameter

28 Die Client API WebSocket-Objekt Erzeugung Notation Beispiel 28
WebSockets 28 Die Client API WebSocket-Objekt Erzeugung Notation Beispiel

29 Die Client API Objektzustände Intern Zustand Beschreibung CONNECTING
WebSockets 29 Die Client API Objektzustände Intern Zustand Beschreibung CONNECTING Verbindungsaufbau läuft 1 OPEN Verbindung hergestellt 2 CLOSING Abbau läuft derzeit 3 CLOSED Verbindung geschlossen (oder konnte nicht aufgebaut werden)

30 Die Client API Eventhandler Handler Event Wird getriggert, wenn …
WebSockets 30 Die Client API Eventhandler Handler Event Wird getriggert, wenn … onopen open WS-Objekt in den Zustand OPEN wechselt onerror error Verbindungsfehler Übertragungsfehler onmessage message Nachricht empfangen wurde onclose close Verbindung geschlossen wird Verbindung nicht aufgebaut werden konnte

31 Die Client API Weitere Attribute eines WS-Objektes Attribut
WebSockets 31 Die Client API Weitere Attribute eines WS-Objektes Attribut Beschreibung binaryType:DOMString Typ der Binärdaten (Blob oder ArrayBuffer) bufferedAmoung:long Anzahl der Bytes in der Warteschlange extensions:DOMString Erweiterungen, die vom Server ausgesucht wurden protocol:DOMString Aktuell genutztes Subprotokoll url:DOMString URL der Verbindung

32 Die Client API Die send(…) Methode zur Datenübertragung
WebSockets 32 Die Client API Die send(…) Methode zur Datenübertragung Parameter: Text Parameter: Binär (Blob) Parameter: Binär (ArrayBuffer)

33 Die Client API Verbindung schließen Attribut Beschreibung code:long
WebSockets 33 Die Client API Verbindung schließen Attribut Beschreibung code:long Close Status Code reason:DOMString Textnachricht als Grund für die Beendigung der Verbindung wasClean:boolean Bestimmt, ob die Verbindung ordnungsgemäß geschlossen wurde

34 Die Client API Beispiel Anwendung „Chatserver“ 34 21.04.2017
WebSockets 34 Die Client API Beispiel Anwendung „Chatserver“

35 Server Implementierungen
WebSockets 35 Server Implementierungen Übersicht Name Sprache SuperWebSocket .NET libwebsockets C++ Vert.x CoffeScrip, Groovy, Java, JavaScript, Python, Ruby jWebSocket Java, JavaScript Socket.IO Node.js phpwebsocket PHP Autobahn Python

36 Server Implementierungen
WebSockets 36 Server Implementierungen Beispiel anhand des Frameworks WebSockets-PHP Open Source Eine Hauptklasse „WebSocketServer“ (588 LoC) einfache Klasse „User“ bereits integriert Eigene WS-Klasse einfach von Vorgabe ableiten

37 Server Implementierungen
WebSockets 37 Server Implementierungen Beispiel Anwendung „Chatserver“

38 WebSockets in der Praxis
WebSockets 38 WebSockets in der Praxis Performance im Web

39 WebSockets in der Praxis
WebSockets 39 WebSockets in der Praxis Performance und Overhead Vergleich mit Polling

40 WebSockets in der Praxis
WebSockets 40 WebSockets in der Praxis Aspekte der IT Sicherheit Same Origin Policy SSL bzw. TLS Authentifizierung

41 WebSockets in der Praxis
WebSockets 41 WebSockets in der Praxis Verhalten gegenüber den „gängigen“ Attacken Denail-of-Service Man-in-the-Middle Network Scan Port Scanner

42 Fazit Verbesserungen die WebSockets bringen Nachteile Performance
WebSockets 42 Fazit Verbesserungen die WebSockets bringen Performance Echte Interaktivität zwischen Server und Client „Echtzeitfähigkeit“ gelten allgemein als „sicher“ einfache Verwendung Nachteile Mögliche Probleme bei Verwendung eines Proxys im System Cache Anonymisierung oder Filtern Überwachung „Browsersupport“

43 Ausblick Große Veränderungen im heutigen Web Komplexere Webseiten
WebSockets 43 Ausblick Große Veränderungen im heutigen Web Komplexere Webseiten Größere Datenmengen und Traffic Mobile Endgeräte HTTP 2.0 SPDY („Speedy“, von Google) Stream Control Transmission Protocol

44 WEBSOCKETS Vielen Danke für Ihre Aufmerksamkeit Quellen
https://github.com/ghedipunk/PHP-WebSockets


Herunterladen ppt "WEBSOCKETS DATUM AUTOR."

Ähnliche Präsentationen


Google-Anzeigen