Mit Datenaggregation und Sensorfusion
PD Stefan Bosse
Universität Bremen - FB Mathematik und Informatik
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT -
Wie kann praktisch Kommunikation von Sensorknoten untereinander und mit Berechnungsknoten stattfinden?
Welche Protokolle können verwendet werden?
Es sollen das Internet der Dinge (IoT) betrachtet werden, d.h. Einbindung von Sensorknoten in das Internet
Welche physikalischen Übertragungstechnologien sind nutzbar?
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - Kommunikationtechnologien
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - Kommunikationtechnologien
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - Kommunikationtechnologien
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - Kommunikationtechnologien
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - Protokollschichten
https://de.wikipedia.org/wiki/ZigBee Verschiedene Protokollschichten in Sensornetzwerken (ähnlich ISO-OSI Schichtenmodell)
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - Netzwerke und Protokolle
Häufig werden Sensorknoten über vorhandene Netzwerke eingebunden
Dann werden gängige Kommunikationsprotokolle verwendet, gegeben durch das ISO Schichtenmodell der Netzwerkkommunikation und der physikalischen Technologie:
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - Netzwerke und Protokolle
Man unterscheidet:
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - Netzwerke und Protokolle
Der Kommunikationsendpunkt muss durch den Kommunikationsstartpunkt erreichbar und adressierbar sein! D.h. der Endpunkt muss öffentlich sichtbar sein wenn sich A und B nicht kennen.
Hier fangen jetzt die Problem an:
Welches Adressierungsschema soll für die Knoten verwendet werden? Gibt es öffentliche oder private Adressen? Wann und wo müssen die Adressen eindeutig sein (keine Dopplung)?
Sind zwei Knoten A und B nicht direkt (in einem Netzwerk) verbunden wird Routing (Pfadfindung) benötigt
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - IP Kommunikation
IP-v4
IP-v6
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - IP Kommunikation
IP-v4
IP-v6
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - IP Kommunikation
Das Internet ist ein Netz aus Netzen (hierarchisch und verteilt)
Die Anzahl der Geräte (gerade durch IoT und Sensornetzwerke) übersteigt die tatsächlich möglichen IP4 Adressen. IP6 ist derzeit davon noch nicht betroffen.
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - IP Kommunikation
Domainen im Internet und Netze aus Netzen
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - IP Kommunikation
Kommunikation zwischen privaten IP Netzwerken über NAT
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - IP Kommunikation
Zwischen einem Rechner A und B befindet sich ein NAT Gerät
Dieses NAT Gerät ist nach außen durch eine IP Adresse ipaddrpub öffentlich sichtbar (wobei es auch hierarchische Netze mit mehreren NAT Ebenen geben kann)
Rechner in dem NAT Netzwerk haben verschiedene private IP Adressen ipaddrprv,i.
Wenn nun Kommunikation unter Verwendung der öffentlichen IP Adresse stattfindet muss das NAT die Nachrichten verändern (Austausch privater Adresse mit öffentlicher, ipaddrprv,i → ipaddrpub)
Von außen empfangene Nachrichten müssen ebenfalls wieder umgerechnet werden (ipaddrpub → ipaddrprv,i) und dem richtigen Rechner zugeführt werden!
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - IP Kommunikation
Daher können in privaten Netzwerken keine öffentlich sichtbaren Services angeboten werden (also z.B. HTTP Server)!
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - IP Kommunikation
Symmetrische NAT Netzwerke sind eine echte Hürde für direkte 1:1 Kommunikation von Sensorknoten (und sonstigen Rechnern), vor allem wenn A und B durch symmetrische NATs getrennt sind
Eine Methode um 1:1 Verbindungen durch NATs herzustellen (zumindest via UDP) ist das sogennante Hole-Punshing Verfahren
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - IPv6 Kommunikation
https://www.scaleuptech.com/blog/ipv4-vs-ipv6
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - IPv6 Kommunikation
https://ip.engineering/ipv6-subnetting-overview-and-case-study/ Neben Endroutern gibt es Aggregatoren (beide Sites), die eine hierarchische Graphenstruktur aufbauen. Die Abbildung zeigt die Adresskodierung der einzelnen Netzwerkknoten
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - IPv6 Kommunikation
IPv6 ist attraktiv für IoT Netzwerke: Einfache Konfiguration (via HW MAC Adressen), Nachbarschaftssuche via dem SEND Protokoll, kein NAT, jedes Geräte ist praktisch global sichtbar und erreichbar.
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - IPv6 Kommunikation
IPv6 ist attraktiv für IoT Netzwerke: Einfache Konfiguration (via HW MAC Adressen), Nachbarschaftssuche via dem SEND Protokoll, kein NAT, jedes Geräte ist praktisch global sichtbar und erreichbar.
Aber auf IPv6 basiertes IoT hat auch Nachteile: Adressen sind menschlich nicht mehr "merkbar" und transferrierbar, und entgegen weit verbreiteter Behauptung dass IPv& mehr Sicherheit bietet kann genau das Gegenteil eintreten.
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - IPv6 Kommunikation
Nach Said Jawad Saidi (10 Jun 2022, APNIC) werden folgende Nachteile (Sicherheit und Privatsphäre) von IPv6-IoT untersucht und genannt:
https://blog.apnic.net/2022/06/10/iot-devices-endanger-ipv6-privacy/
Die EUI-64-Adressierung beeinträchtigt die Privatsphäre der Benutzer und wird daher durch IPv6-Datenschutzerweiterungen überlagert.
Ein einzelnes mit dem Internet verbundenes Gerät, das EUI-64 verwendet, kann die Verfolgung anderer Geräte ermöglichen, selbst wenn alle anderen Geräte Datenschutzmechanismen wie IPv6-Datenschutzerweiterungen verwenden und der ISP Präfixrotation verwendet.
14,4 Millionen Geräte verwenden das alte EUI-64-Adressierungsschema, wodurch 19% der Teilnehmer anfällig für Datenschutzverluste sind.
Mehr als 2 Millionen Teilnehmeranschlüsse sind von Datenschutzlecks bei CDNs betroffen. IoT-Geräte spielen eine große Rolle bei EUI-64-Datenschutzverlusten.
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - IP Kommunikation
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - IP Kommunikation
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - HTTP
Node B
hs=http:new()hs:service('a:9099', function (url,address,params,body) data = JSON.decode(body) return JSON.encode({3,2,1}) end )
Node A
hs=http:new()hs:put('a:9099',JSON.encode({1,2,3}), function (text,err) data = JSON.decode(text) end)
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - HTTP
Zoltan Horvat/Israel Cidon (Links) HTTP POSt Anfrage (Rechts) TCP Kommunikation für eine HTTP GET Anfrage
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - WebSockets
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - WebSockets
Da der Verbindungsaufbau immer mit einem öffentlichen Server (ggfs. nur im Intranet) stattfindet kann ein Klientenknoten sich in einem privaten Netzwerk befinden (nicht öffentlich sichtbar).
Auch wenn zwei Knoten A und B über WebSockets kommunizieren wollen wird dieses nur über den öffentlichen Server stattfinden und keiner der Knoten A und B müssen öffentlich sichtbar sein → Kommunikation über Relaisknoten C
Eine direkte Kommunikation zwischen zwei Sensorknoten über WebSockets geht nur dann wenn wenigstens ein Knoten direkt erreichbar ist (also ohne NAT) und einen HTTP Service anbietet. Aber im WEB Browser kann kein Service angeboten werden!
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - WebSockets
Renuka B S,2020 Initierung von WebSocket Kanälen über eine HTTP Anfrage und schließlich direkte Kommunikation via TCP
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - WebRTC
hpbn.co/webrtc Vergleich der Protokollarchitektur von WebSockets und WebRTC
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - WebRTC
Es gibt zwei Fragestellung:
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - WebRTC
hpbn.co/webrtc RTCPeerconnection Architektur
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - NAT und UDP Hole Punching
https://bford.info/pub/net/p2pnat
Das Problem: Das öffentlich sichtbare Tupel ⟨ipaddr,ipport⟩ eines Peer Ports muss auch für eingehende Datenströme verwendet werden.
Wenn ein Klient Daten über einen Port mit NAT sendet merkt sich der NAT das Mapping und eine Rücksendung an den Senderport wird an das richtige Gerät und den Prozess vermittelt.
Aber wie soll Klient A mit Klient B Kontakt aufnehmen wenn zuvor Klient B keinen Kontakt mit A aufgenommen hat? Es muss versucht werden den NAT von B "durchzuschalten"
Dazu werden (leere Ping) UDP Pakete zwischen den Klienten gegenseitig zugesendet.
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - STUN, TURN
https://help.estos.com/help/de-DE/procall/7/erestunservice/dokumentation/htm/IDD_FUNCTIONALITY.htm
help.estos.com
Klient A ist direkt erreichbar. Klient B kann Daten direkt an Klient A senden
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - STUN, TURN
Erfolgloser Verbindungsaufbau über einen NAT-Router hinweg.
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - STUN, TURN
Erfolgreiche Kommunikation unter Zuhilfenahme eines STUN-Servers.
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - STUN, TURN
Erfolgloser Kommunikationsversuch über ein "Symmetric NAT".
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - STUN, TURN
Erfolgreicher Kommunikationsversuch über ein "Symmetric NAT" durch Nutzung eines TURN-Servers.
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - Content Deliver Networks
Auch Sensornetzwerke sind CDN und können von einer dezentralen verteilten Architektur profitieren.
CDN versa nicht CDN https://www.globaldots.com/resources/blog/content-delivery-network-explained/
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - WEB Browser
Im WEB Browser (als Sensor-, Aggregations-, oder Anwendundgsknoten) stehen zur Verfügung:
Aber: Berechnung sollte in separate Threads (WEB Worker) ausgelagert werden. In einem WEB Worker stehen dann nur noch zur Verfügung:
Auch unsere Lua VM im WEB Browser wird in einem separaten Worker Threadprozess ausgeführt (unabhängig vom Hauptthread der nur für den Zugriff und Veränderung des DOM zuständig ist)
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - Vernetzung und Kommunikation in LuaOS
Verschiedene Arten der Kommunikation und Vernetzung von Sensorknoten mit Lua VM innerhalb und außerhalb von NAT Netzwerken
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - Vernetzung und Kommunikation in LuaOS
PD Stefan Bosse - DSN - Modul D - Kommunikationstechnologien und Protokolle im IoT - Vertiefung