From a69a5acdcf8c72f6f2b96f0f43cb3fa205fd02cf Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Wed, 18 Apr 2018 09:41:31 +0200 Subject: wip --- Makefile | 20 +++- dictionary.txt | 23 +++- images/IP-Header_eng.pdf | Bin 31300 -> 12555 bytes images/IP-Header_eng.tex | 6 +- what-is-iot-reveal.html | 24 ++-- what-is-iot-slides-orig.pdf | Bin 285395 -> 0 bytes what-is-iot-slides.pdf | Bin 88270 -> 60996 bytes what-is-iot-slides.tex | 268 ++++++++++++++++++++++++++++++++++++++++++++ what-is-iot-text.pdf | Bin 365180 -> 66466 bytes what-is-iot.md | 37 +++++- 10 files changed, 355 insertions(+), 23 deletions(-) delete mode 100644 what-is-iot-slides-orig.pdf create mode 100644 what-is-iot-slides.tex diff --git a/Makefile b/Makefile index dda4b16..0dab227 100644 --- a/Makefile +++ b/Makefile @@ -4,13 +4,15 @@ SLIDE_THEME=boxes PDFS=$(P)-text.pdf $(P)-slides.pdf HTMLS=$(P)-reveal.html -RUN_PANDOC_BEAMER=pandoc -f markdown -t beamer --highlight-style=pygments -V theme:$(SLIDES_THEME)\ +RUN_PP_BEAMER=pp -DBEAMER +RUN_PANDOC_BEAMER=pandoc -f markdown -t beamer --highlight-style=pygments -V theme:$(SLIDE_THEME) \ --pdf-engine=xelatex RUN_PANDOC_REVEALJS=pandoc -f markdown -t revealjs -s -V revealjs-url=./bower_components/reveal.js +RUN_PANDOC_TEXT=pandoc -f markdown --pdf-engine=xelatex all: $(PDFS) $(HTMLS) -slides: $(P)-slides.pdf +slides: $(P)-slides.pdf $(P)-slides.tex html: $(P)-reveal.html .PHONY: html slides @@ -28,17 +30,23 @@ spell: .$(P).md.spell $(P).md: Makefile @touch $@ -%-text.pdf: %.md - pandoc -f markdown -o $@ $< +%.beamer.md: %.md + $(RUN_PP_BEAMER) < $< > $@ -%-slides.pdf: %.md +%-text.pdf: %.beamer.md + $(RUN_PANDOC_TEXT) -o $@ $< + +%-slides.pdf: %.beamer.md + $(RUN_PANDOC_BEAMER) -o $@ $< + +%-slides.tex: %.beamer.md $(RUN_PANDOC_BEAMER) -o $@ $< %-reveal.html: %.md $(RUN_PANDOC_REVEALJS) -o $@ $< images/%.pdf: images/%.tex | Makefile - pdflatex -output-directory=images $< + xelatex -output-directory=images $< # pdfcrop $@ # mv $(patsubst %.pdf,%-crop.pdf,$@) $@ diff --git a/dictionary.txt b/dictionary.txt index 76ea32e..fd40082 100644 --- a/dictionary.txt +++ b/dictionary.txt @@ -1,12 +1,33 @@ -personal_ws-1.1 en 11 +personal_ws-1.1 en 32 +ip +Mbps +fontspec +Verdana +setsansfont +SSL TCP IoT OSI +pdf +BEAMER +usepackage +svg +IPX +Laugstřl +ifdef +MQTT allbordercolors MTU hypersetup +NetBIOS pdfborderstyle +TTL DNS UDP +ICMP colorlinks RTT +PHY +Trygve +eng +MCUs diff --git a/images/IP-Header_eng.pdf b/images/IP-Header_eng.pdf index 86ed3c3..049c0cf 100644 Binary files a/images/IP-Header_eng.pdf and b/images/IP-Header_eng.pdf differ diff --git a/images/IP-Header_eng.tex b/images/IP-Header_eng.tex index b65ecdf..a2439fc 100644 --- a/images/IP-Header_eng.tex +++ b/images/IP-Header_eng.tex @@ -4,14 +4,18 @@ \usepackage{tikz} \usetikzlibrary{arrows,decorations.pathmorphing,backgrounds,fit,positioning,shapes.symbols,chains,shapes.geometric,shapes.arrows,calc} +\usepackage{fontspec} +\setsansfont{Verdana} + \begin{document} \begin{tikzpicture}[scale=0.47] + \sffamily \foreach \x in {0,...,31} \node at (\x+0.5,20.5) {\scriptsize \x}; \foreach \x in {0,...,31} \node at (\x+0.5,13.5) {\scriptsize \x}; \foreach \x in {0,...,32} - \draw[thick, blue] (\x,13) -- (\x,21); + \draw[thick] (\x,13) -- (\x,21); \node[thick] (bit1) at (-0.5,20.5) {\scriptsize bit}; \node[thick] (bit2) at (-0.5,13.5) {\scriptsize bit}; \draw [<->, thick] (-0.5, 19.9) -- (-0.5,15.1); diff --git a/what-is-iot-reveal.html b/what-is-iot-reveal.html index 5198bf9..15c69e5 100644 --- a/what-is-iot-reveal.html +++ b/what-is-iot-reveal.html @@ -28,6 +28,7 @@ +
@@ -59,8 +60,8 @@ -
-

What differentiates a computer from an IoT device?

+
+

What is an IoT Device?

  • Constrained in (one or more of):
      @@ -70,6 +71,9 @@
    • Storage
+

Going back to basics

What is the internet again?

@@ -89,7 +93,7 @@
  • Wikipedia: OSI model#Examples
  • Layer 1: Physical Layer

    @@ -100,7 +104,9 @@
  • RS-232
  • Details: IP

    -

    +

    !ifdef(REVEAL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !ifdef(BEAMER) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    +

    Details: IP

    -

    -
    -

    Details: IP

    -

    +

    !comment ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Notes

    Assignments

    diff --git a/what-is-iot-slides-orig.pdf b/what-is-iot-slides-orig.pdf deleted file mode 100644 index 2ca5201..0000000 Binary files a/what-is-iot-slides-orig.pdf and /dev/null differ diff --git a/what-is-iot-slides.pdf b/what-is-iot-slides.pdf index 30e1052..1d916d8 100644 Binary files a/what-is-iot-slides.pdf and b/what-is-iot-slides.pdf differ diff --git a/what-is-iot-slides.tex b/what-is-iot-slides.tex new file mode 100644 index 0000000..cfe6a53 --- /dev/null +++ b/what-is-iot-slides.tex @@ -0,0 +1,268 @@ +\hypertarget{what-is-iot}{% +\section{What is IoT}\label{what-is-iot}} + +\begin{frame}{What is IoT} +\protect\hypertarget{what-is-iot-1}{} + +\begin{itemize} +\tightlist +\item + Not “a computer connected to the internet” + + \begin{itemize} + \tightlist + \item + Then it is really just another computer connected to the internet + \end{itemize} +\item + Must be something else + + \begin{itemize} + \tightlist + \item + It is simply devices that are resource constrained + + \begin{itemize} + \tightlist + \item + Usually in more than one way + \end{itemize} + \end{itemize} +\item + Autonomous operation, the connection might not be permanent +\end{itemize} + +\end{frame} + +\begin{frame}{IoT is just a concept} +\protect\hypertarget{iot-is-just-a-concept}{} + +\begin{itemize} +\tightlist +\item + \emph{The Internet of Things (IoT) is the network of physical devices, + vehicles, home appliances and other items embedded with electronics, + software, sensors, actuators, and connectivity which enables these + objects to connect and exchange data.}\footnote<.->{Wikipedia + “Internet of Things”} +\end{itemize} + +\end{frame} + +\begin{frame}{What is an IoT Device?} +\protect\hypertarget{what-is-an-iot-device}{} + +\begin{itemize} +\tightlist +\item + Constrained in (one or more of): + + \begin{itemize} + \tightlist + \item + Memory + \item + CPU + \item + Network bandwidth and/or latency + \item + Storage + \end{itemize} +\end{itemize} + +\note{What differentiates a computer from an IoT device?} + +\end{frame} + +\hypertarget{going-back-to-basics}{% +\section{Going back to basics}\label{going-back-to-basics}} + +\begin{frame}{What is the internet again?} +\protect\hypertarget{what-is-the-internet-again}{} + +\end{frame} + +\begin{frame}{OSI model} +\protect\hypertarget{osi-model}{} + +\begin{enumerate} +[1.] +\tightlist +\item + Physical Layer +\item + Data Link Layer +\item + Network Layer +\item + Transport Layer +\item + Session Layer +\item + Presentation Layer +\item + Application Layer +\end{enumerate} + +\begin{itemize} +\tightlist +\item + \href{https://en.wikipedia.org/wiki/OSI_model}{Wikipedia: OSI model} +\item + \href{https://en.wikipedia.org/wiki/OSI_model\#Examples}{Wikipedia: + OSI model\#Examples} +\end{itemize} + +\note{Does not match the TCP/IP stack very closely.} + +\end{frame} + +\begin{frame}{Layer 1: Physical Layer} +\protect\hypertarget{layer-1-physical-layer}{} + +\begin{itemize} +\tightlist +\item + 10BASE5, 10BASE2 +\item + 10BASE-T / 100BASE-TX / 1000BASE-TX +\item + 802.11a/b/g/n PHY +\item + RS-232 +\end{itemize} + +\note{Ethernet: Hubs and switches (that act on this level) is not on +it’s own layer. It is more of a implementation detail in the +architecture diagram. + +RS-232 signaling is used in \emph{all} MCUs, many have several ports +available. It is extremely flexible, both used for implementing +applications and debugging. Frequently an easy way to hack embedded +devices. “USB dongles”, “USB TTL” all use RS-232 signaling. + +Note that this only applies to its logical signals, not voltage levels. +The signaling does not specify any max data rate, very high rates +(\textgreater{}= 1Mbps) is often supported.} + +\end{frame} + +\begin{frame}{Layer 2: Data Link Layer} +\protect\hypertarget{layer-2-data-link-layer}{} + +\begin{itemize} +\tightlist +\item + Ethernet +\item + WiFi +\item + Bluetooth +\item + Token Ring +\end{itemize} + +\end{frame} + +\begin{frame}{Layer 3: Network Layer} +\protect\hypertarget{layer-3-network-layer}{} + +\begin{itemize} +\tightlist +\item + IP +\item + ICMP +\item + IPX +\end{itemize} + +\end{frame} + +\begin{frame}{Layer 4: Transport Layer} +\protect\hypertarget{layer-4-transport-layer}{} + +\begin{itemize} +\tightlist +\item + TCP +\item + UDP +\end{itemize} + +\end{frame} + +\begin{frame}{Layer 5: Session Layer} +\protect\hypertarget{layer-5-session-layer}{} + +\begin{itemize} +\tightlist +\item + “sockets” +\item + NetBIOS +\end{itemize} + +\end{frame} + +\begin{frame}{Layer 6: Presentation Layer} +\protect\hypertarget{layer-6-presentation-layer}{} + +\begin{itemize} +\tightlist +\item + SSL +\end{itemize} + +\note{This layer is not really much used in the IP stack} + +\end{frame} + +\begin{frame}{Layer 7: Application Layer} +\protect\hypertarget{layer-7-application-layer}{} + +\begin{itemize} +\tightlist +\item + HTTP +\item + MQTT +\item + DNS +\item + (everything else..) +\end{itemize} + +\end{frame} + +\begin{frame}{Details: IP} +\protect\hypertarget{details-ip}{} + +\includegraphics{images/ip-header.pdf} + +\note{Note that the “total length” field is 16 bits, 2 bytes, it’s +maximum value is 64k, 65536.} + +\end{frame} + +\begin{frame}{Details: IP} +\protect\hypertarget{details-ip-1}{} + +\includegraphics{images/IP-Header_eng.pdf} + +\end{frame} + +\hypertarget{notes}{% +\section{Notes}\label{notes}} + +\begin{frame}{Assignments} +\protect\hypertarget{assignments}{} + +\begin{itemize} +\tightlist +\item + Measure round trip time/latency. Measure UDP, TCP. Measure when the + packet size is greater than the MTU +\end{itemize} + +\end{frame} diff --git a/what-is-iot-text.pdf b/what-is-iot-text.pdf index 790477a..7b96348 100644 Binary files a/what-is-iot-text.pdf and b/what-is-iot-text.pdf differ diff --git a/what-is-iot.md b/what-is-iot.md index 8433398..9c97909 100644 --- a/what-is-iot.md +++ b/what-is-iot.md @@ -26,7 +26,7 @@ header-includes: * *The Internet of Things (IoT) is the network of physical devices, vehicles, home appliances and other items embedded with electronics, software, sensors, actuators, and connectivity which enables these objects to connect and exchange data.*^[Wikipedia "Internet of Things"] -## What differentiates a computer from an IoT device? +## What is an IoT Device? * Constrained in (one or more of): * Memory @@ -34,6 +34,10 @@ header-includes: * Network bandwidth and/or latency * Storage +::: notes +What differentiates a computer from an IoT device? +::: + # Going back to basics ## What is the internet again? @@ -54,7 +58,7 @@ header-includes: ::: notes -Følges ikke veldig slavisk +Does not match the TCP/IP stack very closely. ::: @@ -67,8 +71,17 @@ Følges ikke veldig slavisk ::: notes -Huber og switcher (som gjør en slags routing) er ikke en av disse lagene. Mere en implementasjonsdetalj. -RS-232 sin signallering brukes i *alle* MCUer, mange har flere porter tilgjengelige. Kun signallering, ikke spenningsnivåer. Mange støtter veldig høye datarater (>= 1Mbit/s) +Ethernet: Hubs and switches (that act on this level) is not on it's own +layer. It is more of a implementation detail in the architecture diagram. + +RS-232 signaling is used in *all* MCUs, many have several ports +available. It is extremely flexible, both used for implementing +applications and debugging. Frequently an easy way to hack embedded +devices. "USB dongles", "USB TTL" all use RS-232 signaling. + +Note that this only applies to its logical signals, not voltage +levels. The signaling does not specify any max data rate, very high rates +(>= 1Mbps) is often supported. ::: @@ -115,15 +128,27 @@ This layer is not really much used in the IP stack ## Details: IP +!ifdef(REVEAL) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ![](images/ip-header.svg) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!ifdef(BEAMER) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +![](images/ip-header.pdf) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -## Details: IP +::: notes -![](images/ip-header.pdf) +Note that the "total length" field is 16 bits, 2 bytes, it's maximum value is 64k, 65536. + +::: ## Details: IP ![](images/IP-Header_eng.pdf) +!comment +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Notes -- cgit v1.2.3