[Podcast] Kernel Panic - Board on Fire ~~> #005: Time Sensitive Networking - Was wann wo wieso?
In dieser Folge erzählt Johannes Zink uns was was Time Sensitive Networking (TSN) und das Precision Time Protocol (PTP) sind und warum sie zum Beispiel für Industrieanlagen und Bühnentechnik so wichtig sind.
TSN ist eine Gruppe von Standards, die eine deterministischere Übertragung von Daten über das gewohnte Ethernet-Protokoll erlauben, um z.B. Audiodaten aussetzerfrei über ein Netzwerk zu übertragen oder Steuerkommandos verlässlich an Aktoren in Industrieanlagen zu schicken.
Ein besonders interessanter Standard aus dieser Gruppe ist PTP, das Precision Time Protocol, das eine bis auf wenige Nanosekunden genaue Zeitsynchronisation über Ethernet-Verbindungen ermöglicht.
Über den Kernel Panic - Board on Fire Podcast
In wahrscheinlich jedem Berufsfeld gibt es Schauergeschichten, die man sich abends am Lagerfeuer mit einer Taschenlampe am Kinn erzählen kann. So auch in der Welt der Software. In diesem Podcast geben wir in unregelmäßigen Abständen Entwicklerinnen und Entwicklern die Möglichkeit ihre Schauergeschichten zu erzählen. Es geht um monatelange Fehlersuchen, deren Ergebnis nur eine Hand voll Zeilen falscher Code sind, um subtil fehlerhafte Hardware, die zu sporadisch auftretenden Geistern im System führt, um bröckelnde Software, deren Quellcode schon vor Jahren verloren gegangen ist, und manchmal auch um ganz was anderes.
Shownotes
Wer nicht die ganze Folge hören möchte kann sich an den folgenden Zeitmarken orientieren:
- 00:00
- Johannes stellt sich und das Thema vor und es gibt ein paar einleitende warme Worte. Es werden Abkürzungen wie TSN und PTP geklärt und grob abgesteckt warum Zeitsynchronisation überhaupt nötig ist.
- 07:00
- Grobes Abstecken in welchen Fällen eine Synchronisation der Frequenz zwischen Geräten ausreicht (z.B. Audio/Video Liveübertragung), in welchen Fällen eine lokale Zeitsynchronisation innerhalb eines Netzes ausreicht (z.B. Motorsteuerung in Industrieanlagen) und in welchen Fällen eine absolute Zeitsynchronisation auf globaler Größenordnung notwendig ist (eher Spezialfälle).
- 14:30
Wie entscheiden Teilnehmer eines PTP-Netzes darüber welche ihrer Uhren als Zeitgeber für das Netz verwendet werden soll?
Dafür gibt es einen Algorithmus, der z.B. eine GPS-Referenz höher bewertet als einen lokalen Quarzoszillator und so den besten Knoten als Zeitbasis auswählt.
- 19:30
Wie übertragen PTP-Knoten ihre aktuelle Uhrzeit nanosekundengenau?
Im üblichen Fall sendet PTP zwei Pakete ab um die aktuelle Zeit an einem Knoten mitzuteilen. Zuerst ein mehr oder weniger leeres Ping-Paket, bei dem der Knoten selbst in Hardware ganz genau den Zeitpunkt bestimmt in dem das Paket auf die Leitung gegangen ist und im Nachgang ein Paket in dem der Zeitstempel des ersten Pakets steht.
- 25:00
Wie wird die Laufzeit der Pakete auf der Leitung kompensiert?
Es werden bidirektional Ankunfts- und Absendezeiten ausgetauscht und unter der Annahme, dass die Laufzeit in beide Richtungen symmetrisch ist, kann sie herausgerechnet werden.
- 26:30
Was passiert wenn eine Verbindung nicht direkt Punkt-zu-Punkt ist und z.B. ein Switch zwischen den Parteien zufällige Verzögerungen einfügt? Oder was wenn die Laufzeiten in Hin- und Rückrichtung eben nicht symmetrisch sind?
TL;DR: It depends.
- 36:15
- Vergleich von PTP (sehr genau, in der Regel nur in einem lokalen Netz mit speziellen PTP-fähigen Geräten) und NTP (meist gut genug, über das Internet und mit gewöhnlicher Hardware).
- 38:15
- Anwendungen: Audio-/Videoübertragung, Sensoren und Aktoren in Industrieanlagen, Automotive, Avionik, Stromnetze …
- 50:15
Übergang von PTP zum Determinismus-Anteil von TSN.
Bei einer Live-Audioübertragung sollen Daten z.B. verlässlich und mit konstanter Laufzeit vom Sender zum Empfänger fließen. Bei normalem "best effort" Ethernet ist das nicht immer erfüllbar. Der älteste Ansatz dazu ist Prioritäten zu definieren um zwischen wichtigen und weniger wichtigen Daten zu unterscheiden. Das Prioritätskonzept erfordert aber viel Konfigurationsaufwand und stößt schnell an seine Grenzen.
- 56:00
- Eine Alternative zu Prioritäten ist es feste Bandbreiten zwischen Partnern im Voraus zu reservieren.
- 72:00
- Exkursion zu anderen TSN-Erweiterungen, Traffic Shapern und dem Standardisierungsprozess.
- 74:00
- Bogen schließen, zusammenfassen und abschließende warme Worte loswerden.
Weiterführende Links
[Podcast] Kernel Panic - Board on Fire ~~> #008: Aus dem Takt - Das Doppelpack Clock-Glitches
In dieser Folge reden Ahmad und Leonard über Takte / Clocks in Prozessoren. Darüber warum es so viele gibt, wie sie erzeugt und im Chip verteilt werden und darüber, was dabei eigentlich so schief gehen kann.
[Podcast] Kernel Panic - Board on Fire ~~> #007: GPU und nu? Der Weg zum offenen Grafiktreiber
In dieser Folge erzählt Lucas Stach uns wie er in die Entwicklung der offenen Grafiktreiber Nouveau und Etnaviv hineingeraten ist und was so ein Grafiktreiber eigentlich tut. Wir reden darüber warum Grafikkarten überhaupt Software ausführen und wie diese Software von der Anwendung bis in die Grafikkarte kommt.
[Podcast] Kernel Panic - Board on Fire ~~> #006: Der Browser im Fahrkartenautomaten - Webtechnologie trifft Embedded-GUIs
In dieser Folge erzählt Bastian Krause uns warum man öfter als man vielleicht denkt Webbrowser auf Embeddedgeräten vorfindet und was die verwendeten Browser von normalen Desktopbrowsern unterscheidet. Außerdem reden wir über Browserengines im Allgemeinen und auch ein bisschen über automatisiertes Testing von Webapplikationen.