Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

WEBSOCKETS DATUM AUTOR. Sockets Rückblick: Vorlesung Datenkommunikation 22.08.2015WebSockets 2.

Ähnliche Präsentationen


Präsentation zum Thema: "WEBSOCKETS DATUM AUTOR. Sockets Rückblick: Vorlesung Datenkommunikation 22.08.2015WebSockets 2."—  Präsentation transkript:

1 WEBSOCKETS DATUM AUTOR

2 Sockets Rückblick: Vorlesung Datenkommunikation 22.08.2015WebSockets 2

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

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 22.08.2015WebSockets 4

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

6 Hypertext Transfer Protocol Kommunikationsfluss des Protokolls 22.08.2015WebSockets 6

7 Hypertext Transfer Protocol Kommunikationsfluss des Protokolls 22.08.2015WebSockets 7

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 22.08.2015WebSockets 8

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 22.08.2015WebSockets 9

10 Lösungsansätze - SSE 22.08.2015WebSockets 10 RequestResponse

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 22.08.2015WebSockets 11

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

13 HTML5 WebSockets Verbindungsaufbau (Opening Handshake) 22.08.2015WebSockets 13

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

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

16 HTML5 WebSockets Das Protokoll (Frame) 22.08.2015WebSockets 16

17 HTML5 WebSockets Das Protokoll (Frame) 22.08.2015WebSockets 17

18 HTML5 WebSockets Operation Codes 22.08.2015WebSockets 18 CodeFrame 0x0Fortsetzung Frame 0x1Textframe 0x2Binärframe 0x3 bis 0x7Reserviert für weitere Non-Control-Frames 0x8Connection Close Frame 0x9Ping Frame 0xAPong Frame 0xB bis 0xFReserviert für weitere Control Frames

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

20 HTML5 WebSockets Maskierung (mittels XOR) 22.08.2015WebSockets 20

21 HTML5 WebSockets - Datenframes 22.08.2015WebSockets 21 Server  ClientClient  Server

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

23 HTML5 WebSockets - Close 22.08.2015WebSockets 23 Server beendetClient beendet

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

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

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

27 Die Client API Grundlegendes Namensschema 22.08.2015WebSockets 27 BestandteilBedeutung ws oder wssProtokoll hostServer portBeliebiger Port (auch 80 grundsätzlich möglich) pathPfad auf Dateisystem queryOptionale Parameter

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

29 Die Client API Objektzustände 22.08.2015WebSockets 29 InternZustandBeschreibung 0CONNECTINGVerbindungsaufbau läuft 1OPENVerbindung hergestellt 2CLOSINGAbbau läuft derzeit 3CLOSEDVerbindung geschlossen (oder konnte nicht aufgebaut werden)

30 Die Client API Eventhandler 22.08.2015WebSockets 30 HandlerEventWird getriggert, wenn … onopenopenWS-Objekt in den Zustand OPEN wechselt onerrorerror-Verbindungsfehler -Übertragungsfehler onmessagemessageNachricht empfangen wurde oncloseclose-Verbindung geschlossen wird -Verbindung nicht aufgebaut werden konnte

31 Die Client API Weitere Attribute eines WS-Objektes 22.08.2015WebSockets 31 AttributBeschreibung binaryType:DOMStringTyp der Binärdaten (Blob oder ArrayBuffer) bufferedAmoung:longAnzahl der Bytes in der Warteschlange extensions:DOMStringErweiterungen, die vom Server ausgesucht wurden protocol:DOMStringAktuell genutztes Subprotokoll url:DOMStringURL der Verbindung

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

33 Die Client API Verbindung schließen 22.08.2015WebSockets 33 AttributBeschreibung code:longClose Status Code reason:DOMStringTextnachricht als Grund für die Beendigung der Verbindung wasClean:booleanBestimmt, ob die Verbindung ordnungsgemäß geschlossen wurde

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

35 Server Implementierungen Übersicht 22.08.2015WebSockets 35 NameSprache SuperWebSocket.NET libwebsocketsC++ Vert.xCoffeScrip, Groovy, Java, JavaScript, Python, Ruby jWebSocketJava, JavaScript Socket.IONode.js phpwebsocketPHP AutobahnPython ……

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 22.08.2015WebSockets 36

37 Server Implementierungen Beispiel Anwendung „Chatserver“ 22.08.2015WebSockets 37

38 WebSockets in der Praxis Performance im Web 22.08.2015WebSockets 38

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

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

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

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“ 22.08.2015WebSockets 42

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 22.08.2015WebSockets 43

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


Herunterladen ppt "WEBSOCKETS DATUM AUTOR. Sockets Rückblick: Vorlesung Datenkommunikation 22.08.2015WebSockets 2."

Ähnliche Präsentationen


Google-Anzeigen