From 198bd175e3dea90041b1e183d5b337dc26d0e848 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Fri, 27 Apr 2018 02:17:52 +0200 Subject: wip --- slides/Makefile | 5 -- slides/images/IP-Header_eng.pdf | Bin 11359 -> 0 bytes slides/images/IP-Header_eng.tex | 47 ------------- slides/images/ip-header.pdf | Bin 17867 -> 0 bytes slides/images/ip-header.pgf | 53 +++++++++++++++ slides/images/ip-header.svg | 2 - slides/images/ip-header.xml | 1 - slides/images/ip-packet.pgf | 47 ------------- slides/images/udp-header.pgf | 37 ++++++++++ slides/images/udp-packet.pgf | 32 --------- slides/toc.md | 16 ++--- slides/what-is-iot-reveal.html | 78 +++++++-------------- slides/what-is-iot-slides.pdf | Bin 311586 -> 313148 bytes slides/what-is-iot-slides.tex | 147 +++++++++++++++++++++------------------- slides/what-is-iot-text.pdf | Bin 321798 -> 314159 bytes slides/what-is-iot.md | 8 +-- 16 files changed, 205 insertions(+), 268 deletions(-) delete mode 100644 slides/images/IP-Header_eng.pdf delete mode 100644 slides/images/IP-Header_eng.tex delete mode 100644 slides/images/ip-header.pdf create mode 100644 slides/images/ip-header.pgf delete mode 100644 slides/images/ip-header.svg delete mode 100644 slides/images/ip-header.xml delete mode 100644 slides/images/ip-packet.pgf create mode 100644 slides/images/udp-header.pgf delete mode 100644 slides/images/udp-packet.pgf diff --git a/slides/Makefile b/slides/Makefile index a94dcd6..727031c 100644 --- a/slides/Makefile +++ b/slides/Makefile @@ -84,8 +84,3 @@ define refresh = endef $(foreach var,$(VARS),$(eval $(call refresh,$(var)))) - -# Dependencies -$(P).md: images/IP-Header_eng.tex -$(P).md: images/ip-header.pdf -$(P).md: images/ip-header.svg diff --git a/slides/images/IP-Header_eng.pdf b/slides/images/IP-Header_eng.pdf deleted file mode 100644 index 251c3a5..0000000 Binary files a/slides/images/IP-Header_eng.pdf and /dev/null differ diff --git a/slides/images/IP-Header_eng.tex b/slides/images/IP-Header_eng.tex deleted file mode 100644 index 8de7312..0000000 --- a/slides/images/IP-Header_eng.tex +++ /dev/null @@ -1,47 +0,0 @@ -\iffalse -Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. -\fi - -\begin{tikzpicture}[scale=0.30] - \sffamily - \foreach \x in {0,7,8,15,16,31} % {0,...,32} - \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,8,16,32} % {0,...,32} - \draw[thick] (\x,20) -- (\x,21); - \foreach \x in {0,...,32} - \draw[thick] (\x,14) -- (\x,20); -% \foreach \x in {0,...,32} -% \draw[thick] (\x,13) -- (\x,14); - \node[thick] (bit1) at (-0.6,20.5) {\scriptsize bit}; -% \node[thick] (bit2) at (-0.6,13.5) {\scriptsize bit}; - -\iffalse - \draw [<->, thick] (-0.6, 19.9) -- (-0.6,15.1); - \draw [thick] (-1, 20) -- (-0.1,20); - \draw [thick] (-1, 15) -- (-0.1,15); - \node[fill=white] at (-1.1,17.5) {\tiny 20 bytes}; -\fi - \foreach \y/\v in {0,4,8,12,16,20} - \node at (-0.6,{19.5-(\v / 4)}) {\scriptsize \v}; - - \filldraw[thick,draw=black, fill=white] (0,20) rectangle (4,19); \node (mode) at (2,19.5) {\scriptsize version}; - \filldraw[thick,draw=black, fill=white] (4,20) rectangle (8,19); \node (mode) at (6,19.5) {\scriptsize len}; -% \draw[thick, draw=black, fill=white] (8,20) rectangle (16,19); \node (stratum) at (11.5,19.5) {\scriptsize type of service (TOS)}; - \draw[thick, draw=black, fill=white] (8,20) rectangle (16,19); \node (stratum) at (11.5,19.5) {\scriptsize TOS}; - \draw[thick, draw=black, fill=white] (16,20) rectangle (32,19); \node (li) at (24,19.5) {\scriptsize full length of packet}; - \filldraw[thick,draw=black, fill=white] (0,19) rectangle (16,18); \node (mode) at (8,18.5) {\scriptsize identification}; -% \draw[thick, draw=black] (16,19) rectangle (19,18); \filldraw[white] (16.5,18.43) rectangle (19,18.88); \node [](li) at (17.5,18.67) {\tiny IP flags}; \node at (16.5,18.25) {\tiny x};\node at (17.5,18.25) {\tiny D};\node at (18.5,18.25) {\tiny M}; - \draw[thick, draw=black] (16,19) rectangle (19,18); \filldraw[white] (16.5,18.43) rectangle (19,18.88); \node at (16.5,18.5) {\scriptsize X};\node at (17.5,18.5) {\scriptsize D};\node at (18.5,18.5) {\scriptsize M}; - \draw[thick, draw=black, fill=white] (19,19) rectangle (32,18); \node (li) at (24,18.5) {\scriptsize fragment Offset}; - \filldraw[thick,draw=black, fill=white] (0,18) rectangle (8,17); \node (mode) at (4,17.5) {\scriptsize time to live (TTL)}; - \draw[thick, draw=black, fill=white] (8,18) rectangle (16,17); \node (stratum) at (11.5,17.5) {\scriptsize protocol}; - \draw[thick, draw=black, fill=white] (16,18) rectangle (32,17); \node (li) at (24,17.5) {\scriptsize header checksum}; - \filldraw[thick,draw=black, fill=white] (0,17) rectangle (32,16); \node (mode) at (16,16.5) {\scriptsize source IP address}; - \filldraw[thick,draw=black, fill=white] (0,16) rectangle (32,15); \node (mode) at (16,15.5) {\scriptsize destination IP address}; - \draw[thick,draw=black, fill=white] (0,15) rectangle (31.5,14); - \draw[fill=white, draw=white] (31.4,14.96) rectangle (31.6,14.05); - \draw[thick] (31.5,14.97) decorate [decoration=saw] { -- (31.5,14.02)}; - \node (mode) at (16,14.5) {\scriptsize IP options (variable length)}; -\end{tikzpicture} diff --git a/slides/images/ip-header.pdf b/slides/images/ip-header.pdf deleted file mode 100644 index 2ad03c7..0000000 Binary files a/slides/images/ip-header.pdf and /dev/null differ diff --git a/slides/images/ip-header.pgf b/slides/images/ip-header.pgf new file mode 100644 index 0000000..25c506c --- /dev/null +++ b/slides/images/ip-header.pgf @@ -0,0 +1,53 @@ +\scalebox{0.5}{ +\begin{tikzpicture}[ +every node/.style={font=\bfseries}, +basebox/.style={anchor=north west, minimum height=2em, draw, rectangle}, +bitbox/.style={basebox, minimum width=2em}, +bytebox/.style={basebox, minimum width=16em}, +wordbox/.style={basebox, minimum width=32em}, +qwordbox/.style={basebox, minimum width=64em}, +] + +\path +(-9em, 2em) node[basebox, minimum width=5em] {Offsets} +(-9em, 0em) node[basebox, minimum width=5em] {Octet} +(-4em, 2em) node[basebox, minimum width=4em] {Octet} +(-4em, 0em) node[basebox, minimum width=4em] {Bit} +; + +\foreach \x in {0,...,3} + \node[bytebox] at (\x * 16em, 2em) {\scriptsize \x}; +\foreach \x in {0,...,31} + \node[bitbox] at (\x * 2em, 0em) {\scriptsize \x}; + +\foreach \x in {0,32,...,160} + \node[basebox, minimum width=4em] at (-4em, \x * -1/16*1em - 2em) {\scriptsize \x}; + +\foreach \x in {0,4,...,20} + \node[basebox, minimum width=5em] at (-9em, \x * -0.5em - 2em) {\scriptsize \x}; + +\path +(0em, -1 * 2em) node[basebox, minimum width=8em] {Version} +(8em, -1 * 2em) node[basebox, minimum width=8em] {IHL} +(16em, -1 * 2em) node[basebox, minimum width=16em] {TOS} +(32em, -1 * 2em) node[wordbox] {Packet length} + +(0em, -2 * 2em) node[wordbox] {Identification} +(32em, -2 * 2em) node[bitbox] {X} +(34em, -2 * 2em) node[bitbox] {D} +(36em, -2 * 2em) node[bitbox] {M} +(38em, -2 * 2em) node[basebox, minimum width=26em] {Fragement offset} + +(0em, -3 * 2em) node[bytebox] {TTL} +(16em, -3 * 2em) node[bytebox] {Protocol} +(32em, -3 * 2em) node[wordbox] {Header checksum} + +(0em, -4 * 2em) node[qwordbox] {Source ip address} +(0em, -5 * 2em) node[qwordbox] {Destination ip address} +(0em, -6 * 2em) node[qwordbox] {Options (variable length)} + +%(0em, -7 * 2em) node[qwordbox, minimum height=4 em] {Payload} +; + +\end{tikzpicture} +} diff --git a/slides/images/ip-header.svg b/slides/images/ip-header.svg deleted file mode 100644 index 83c1600..0000000 --- a/slides/images/ip-header.svg +++ /dev/null @@ -1,2 +0,0 @@ - -
IHL
IHL
Version
Version
ECN
ECN
DSCP
DSCP
15
[Not supported by viewer]
4
[Not supported by viewer]
8
[Not supported by viewer]
7
[Not supported by viewer]
Total length
Total length
23
[Not supported by viewer]
16
[Not supported by viewer]
31
[Not supported by viewer]
24
[Not supported by viewer]
Identification
Identification
Flags
Flags
Fragment offset
Fragment offset
Header checksum
Header checksum
Time to live
Time to live
Protocol
Protocol
Source address
Source address
Destination address
Destination address
0
[Not supported by viewer]
0
[Not supported by viewer]
8
[Not supported by viewer]
12
[Not supported by viewer]
16
[Not supported by viewer]
Options
Options
20 - 32
[Not supported by viewer]
Bit
Bit
Byte
Byte
\ No newline at end of file diff --git a/slides/images/ip-header.xml b/slides/images/ip-header.xml deleted file mode 100644 index 4ac4521..0000000 --- a/slides/images/ip-header.xml +++ /dev/null @@ -1 +0,0 @@ -7VvbbqMwEP0aHisBJiR5bJJ2u9JeKqXafXbBIVYNzhqnafbr1wYTLiZtKhVDuqnUFsbGlzPH45kxWGAev3xhcLP+TkNELNcOXyywsFx34ozEXynY5wLPG+eCiOEwFzmlYIn/IiW0lXSLQ5TWKnJKCcebujCgSYICXpNBxuiuXm1FSb3XDYyQJlgGkOjS3zjkazUtd1zK7xCO1kXPjj/NSx5h8BQxuk1Uf5YLVtlPXhzDoi010XQNQ7qriMCNBeaMUp5fxS9zRCS0BWz5c7dHSg/jZijhpzzg5g88Q7JVU/96900Nje8LOLIJIfmIbYHZbo05Wm5gIEt3Qv9CtuYxEXeOuFzRhN/CGBOp+1+IhTCBQqw6Qoyjl6ODdQ4QCGYhGiPO9qKKesC1FWr7xv2uoiMlWlfU4ykZVKyIDi2XyIgLBU47UEADSkwtxTQZKliO2x9YngbWzfzHUIHyTmCV1xFQIw2oxXJ+P1SkDnx5BakD7T4aKl+DynJ9IjqYhfi5Bpf/ZyvN50xMlF9BgqPEAteiBkErXpaKq0j9z1pJNzApZHL7yqViVNWCijjrtZA29CV7risl5Yw+oTkllAlJQhMkNYUJaYjUcBeBUAkS8plUGBYb07UqiHEYym5aWVDnSYdLpmFbnIlOhDYeuB/Ag7FBHnh904Dl2A2TBdNx3RqMzJHAcQyyYNI3C4ZtDJq7gklj4Oj+a3c8GF948CoP/B55oLvnD5RDkuk3iUT3A3WpPO9tlwp05VI5uvvZ3eqREdRl+RxnwqhPM2rUufYvRHiPSTBKBJPeNXAuRHiNCOM+iTAxuTX0HmcNmwi+3R8RijaqGeJQjBuvBEz8nPKfnkHPytXj01sCo3SoYGluaAtYfldY6THcLYNRLIfu2nS1ShEfKm6jZu64BbfugNODnjsEQ2HHXDtYo+Ap3cZDBU4jXItJ62516ucTDzhGljxklBsXfkZDxU2zai24OZ0RTo8X7xnlNKBkqHhpRxZG8dLDqiXdskAyDYYhQ+lgN4Qmzw5rsbohdHUq1pLjX6CU40Q5HGcHnm8SPJOeu31x3N9DBKOO+/R/4sFZHZQ55lgA9PDtEx+UnRULpgZZYPK41HEvNDidBgAYpIEeaX/mNP+gaTBu0GB82ktnH0IDPW/wcyM967NxqL2WU9LOHGqgZws6TIWLAdtX4hf0bkWH7Vo31o/X4lN1tn70NMgM6ylKXQMiZsV/4WNWQaKzoTjh2UBGM2u0kNhvOU3zt+GdEywZp5ucPwFOogd5s7jyut29GgFNS2QLuoJdz6bM9lzP1H0g7tm6HQLsDba3xZGdsb0tn9CAHCXhtfzqojQip24LKNQ+xHgTk8qkRy2TLmQMEchlKrfafBsSqod7yYoS8ubrGH4DyzTL5KmHSji1do6+h180xCGLENcayvRymHWbqsRt+aFIXr38GAfc/AM= \ No newline at end of file diff --git a/slides/images/ip-packet.pgf b/slides/images/ip-packet.pgf deleted file mode 100644 index 5a977a2..0000000 --- a/slides/images/ip-packet.pgf +++ /dev/null @@ -1,47 +0,0 @@ -\begin{tikzpicture}[scale=0.30] - \sffamily - \foreach \x in {0,7,8,15,16,31} % {0,...,32} - \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,8,16,32} % {0,...,32} - \draw[thick] (\x,20) -- (\x,21); - \foreach \x in {0,...,32} - \draw[thick] (\x,14) -- (\x,20); -% \foreach \x in {0,...,32} -% \draw[thick] (\x,13) -- (\x,14); - \node[thick] (bit1) at (-0.6,20.5) {\scriptsize bit}; -% \node[thick] (bit2) at (-0.6,13.5) {\scriptsize bit}; - -\iffalse - \draw [<->, thick] (-0.6, 19.9) -- (-0.6,15.1); - \draw [thick] (-1, 20) -- (-0.1,20); - \draw [thick] (-1, 15) -- (-0.1,15); - \node[fill=white] at (-1.1,17.5) {\tiny 20 bytes}; -\fi - \foreach \y/\v in {0,4,8,12,16,20} - \node at (-0.6,{19.5-(\v / 4)}) {\scriptsize \v}; - - \filldraw[thick,draw=black, fill=white] (0,20) rectangle (4,19); \node (mode) at (2,19.5) {\scriptsize version}; - \filldraw[thick,draw=black, fill=white] (4,20) rectangle (8,19); \node (mode) at (6,19.5) {\scriptsize len}; -% \draw[thick, draw=black, fill=white] (8,20) rectangle (16,19); \node (stratum) at (11.5,19.5) {\scriptsize type of service (TOS)}; - \draw[thick, draw=black, fill=white] (8,20) rectangle (16,19); \node (stratum) at (11.5,19.5) {\scriptsize TOS}; - \draw[thick, draw=black, fill=white] (16,20) rectangle (32,19); \node (li) at (24,19.5) {\scriptsize full length of packet}; - \filldraw[thick,draw=black, fill=white] (0,19) rectangle (16,18); \node (mode) at (8,18.5) {\scriptsize identification}; -% \draw[thick, draw=black] (16,19) rectangle (19,18); \filldraw[white] (16.5,18.43) rectangle (19,18.88); \node [](li) at (17.5,18.67) {\tiny IP flags}; \node at (16.5,18.25) {\tiny x};\node at (17.5,18.25) {\tiny D};\node at (18.5,18.25) {\tiny M}; - \draw[thick, draw=black] (16,19) rectangle (19,18); \filldraw[white] (16.5,18.43) rectangle (19,18.88); \node at (16.5,18.5) {\scriptsize X};\node at (17.5,18.5) {\scriptsize D};\node at (18.5,18.5) {\scriptsize M}; - \draw[thick, draw=black, fill=white] (19,19) rectangle (32,18); \node (li) at (24,18.5) {\scriptsize fragment Offset}; - \filldraw[thick,draw=black, fill=white] (0,18) rectangle (8,17); \node (mode) at (4,17.5) {\scriptsize time to live (TTL)}; - \draw[thick, draw=black, fill=white] (8,18) rectangle (16,17); \node (stratum) at (11.5,17.5) {\scriptsize protocol}; - \draw[thick, draw=black, fill=white] (16,18) rectangle (32,17); \node (li) at (24,17.5) {\scriptsize header checksum}; - \filldraw[thick,draw=black, fill=white] (0,17) rectangle (32,16); \node (mode) at (16,16.5) {\scriptsize source IP address}; - \filldraw[thick,draw=black, fill=white] (0,16) rectangle (32,15); \node (mode) at (16,15.5) {\scriptsize destination IP address}; - \draw[thick,draw=black, fill=white] (0,15) rectangle (32,14); -% \draw[thick,draw=black, fill=white] (0,15) rectangle (31.5,14); -% \draw[fill=white, draw=white] (31.4,15) rectangle (31.6,16); -% \draw[thick] (31.5,14.97) decorate [decoration=saw] { -- (31.5,14.02)}; - \node (mode) at (16,14.5) {\scriptsize IP options (variable length)}; - - \filldraw[thick,draw=black, fill=white] (0,12) rectangle (32,14); \node (mode) at (16,13) {\scriptsize payload}; - -\end{tikzpicture} diff --git a/slides/images/udp-header.pgf b/slides/images/udp-header.pgf new file mode 100644 index 0000000..b7d9f3f --- /dev/null +++ b/slides/images/udp-header.pgf @@ -0,0 +1,37 @@ +\scalebox{0.5}{ +\begin{tikzpicture}[ +every node/.style={font=\bfseries}, +basebox/.style={anchor=west, minimum height=2em, draw, rectangle}, +bitbox/.style={basebox, minimum width=2em}, +bytebox/.style={basebox, minimum width=16em}, +wordbox/.style={basebox, minimum width=32em}, +qwordbox/.style={basebox, minimum width=64em}, +] + +\path +(-9em, 2em) node[basebox, minimum width=5em] {Offsets} +(-9em, 0em) node[basebox, minimum width=5em] {Octet} +(-4em, 2em) node[basebox, minimum width=4em] {Octet} +(-4em, 0em) node[basebox, minimum width=4em] {Bit} +; + +\foreach \x in {0,...,3} + \node[bytebox] at (\x * 16em, 2em) {\scriptsize \x}; +\foreach \x in {0,...,31} + \node[bitbox] at (\x * 2em, 0em) {\scriptsize \x}; + +\node[basebox, minimum width=4em] at (-4em, -2em) {\scriptsize 0}; +\node[basebox, minimum width=4em] at (-4em, -4em) {\scriptsize 32}; + +\node[basebox, minimum width=5em] at (-9em, -2em) {\scriptsize 0}; +\node[basebox, minimum width=5em] at (-9em, -4em) {\scriptsize 4}; + +\path +( 0 * 2em, -1 * 2em) node[wordbox] {source port} +(16 * 2em, -1 * 2em) node[wordbox] {destination port} +( 0 * 2em, -2 * 2em) node[wordbox] {length} +(16 * 2em, -2 * 2em) node[wordbox] {checksum} +; + +\end{tikzpicture} +} diff --git a/slides/images/udp-packet.pgf b/slides/images/udp-packet.pgf deleted file mode 100644 index 405f805..0000000 --- a/slides/images/udp-packet.pgf +++ /dev/null @@ -1,32 +0,0 @@ -\scalebox{0.5}{ - -\begin{tikzpicture}[ -every node/.style={font=\bfseries} -] - -\path -(-6.5em, 2em) node[draw, rectangle, minimum width=5em, minimum height=2em] {Offsets} -(-6.5em, 0em) node[draw, rectangle, minimum width=5em, minimum height=2em] {Octet} -(-2em, 2em) node[draw, rectangle, minimum width=4em, minimum height=2em] {Octet} -(-2em, 0em) node[draw, rectangle, minimum width=4em, minimum height=2em] {Bit} - -(16em, -2em) node[draw, rectangle, minimum width=32em, minimum height=2em] {source port} -(48em, -2em) node[draw, rectangle, minimum width=32em, minimum height=2em] {destination port} -(16em, -4em) node[draw, rectangle, minimum width=32em, minimum height=2em] {length} -(48em, -4em) node[draw, rectangle, minimum width=32em, minimum height=2em] {checksum} -; - -\foreach \x in {0,...,3} - \node[draw, rectangle, minimum width=16em, minimum height=2em] at (\x * 16em + 8em, 2em) {\scriptsize \x}; -\foreach \x in {0,...,31} - \node[draw, rectangle, minimum width=2em, minimum height=2em] at (\x * 2em + 1em, 0em) {\scriptsize \x}; - -\node[draw, rectangle, minimum width=4em, minimum height=2em] at (-2em, -2em) {\scriptsize 0}; -\node[draw, rectangle, minimum width=4em, minimum height=2em] at (-2em, -4em) {\scriptsize 32}; - -\node[draw, rectangle, minimum width=5em, minimum height=2em] at (-6.5em, -2em) {\scriptsize 0}; -\node[draw, rectangle, minimum width=5em, minimum height=2em] at (-6.5em, -4em) {\scriptsize 4}; - -\end{tikzpicture} - -} diff --git a/slides/toc.md b/slides/toc.md index 7b7e857..cdc431e 100644 --- a/slides/toc.md +++ b/slides/toc.md @@ -23,17 +23,15 @@ * ESP8266 details - Power usage * Going back to basics * What is the internet again? - * OSI model - * Layer 1: Physical Layer - * Layer 2: Data Link Layer - * Layer 3: Network Layer - * Layer 4: Transport Layer - * Layer 5: Session Layer - * Layer 6: Presentation Layer + * TCP/IP Layers + * Packet encapsulation + * Network interface + * Internet + * Transport * Layer 7: Application Layer * Details: IP - * Details: IP - * Details: UDP + * Details: IP Header + * Details: UDP Header * Lecture: MQTT * MQTT * Device and application architecture with MQTT diff --git a/slides/what-is-iot-reveal.html b/slides/what-is-iot-reveal.html index 2990fce..dc069b9 100644 --- a/slides/what-is-iot-reveal.html +++ b/slides/what-is-iot-reveal.html @@ -475,30 +475,23 @@ code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warni

Going back to basics

What is the internet again?

-
-

OSI model

-
    -
  1. Physical Layer
  2. -
  3. Data Link Layer
  4. -
  5. Network Layer
  6. -
  7. Transport Layer
  8. -
  9. Session Layer
  10. -
  11. Presentation Layer
  12. -
  13. Application Layer
  14. -
+
+

TCP/IP Layers

+ +
+

Packet encapsulation

+ +
+

Network interface

- -
-

Layer 1: Physical Layer

+
  • Ethernet
      -
    • 10BASE5, 10BASE2
    • -
    • 10BASE-T / 100BASE-TX / 1000BASE-TX
    • -
    • 802.11a/b/g/n PHY
    • +
    • 10BASE5, 10BASE2, 10BASE-T / 100BASE-TX / 1000BASE-TX
    • +
  • +
  • Wi-Fi +
      +
    • 802.11a/b/g/n
    • +
  • RS-232
  • -
    -

    Layer 3: Network Layer

    +
    +

    Internet

    • IP
    • ICMP
    • -
    • IPX
    -
    -

    Layer 4: Transport Layer

    +
    +

    Transport

    • TCP
    • UDP
    • +
    • SCTP
    • +
    • QUIC
    -
    -

    Layer 5: Session Layer

    -
      -
    • “sockets”
    • -
    • NetBIOS
    • -
    -
    -

    Layer 6: Presentation Layer

    -
      -
    • SSL
    • -
    -

    Layer 7: Application Layer

      @@ -550,11 +522,11 @@ code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warni
    • CoAP
    • (everything else..)
    -
    -

    Details: IP

    +
    +

    Details: IP Header

    -
    -

    Details: UDP

    +
    +

    Details: UDP Header

    Lecture: MQTT

    diff --git a/slides/what-is-iot-slides.pdf b/slides/what-is-iot-slides.pdf index 18256ff..a62a47c 100644 Binary files a/slides/what-is-iot-slides.pdf and b/slides/what-is-iot-slides.pdf differ diff --git a/slides/what-is-iot-slides.tex b/slides/what-is-iot-slides.tex index 6da20bb..1b65fc0 100644 --- a/slides/what-is-iot-slides.tex +++ b/slides/what-is-iot-slides.tex @@ -679,97 +679,108 @@ The signaling does not specify any max data rate, very high rates \end{frame} -\begin{frame}{Details: IP} -\protect\hypertarget{details-ip}{} +\begin{frame}{Details: IP Header} +\protect\hypertarget{details-ip-header}{} \begin{center} -\begin{tikzpicture}[scale=0.30] - \sffamily - \foreach \x in {0,7,8,15,16,31} % {0,...,32} - \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,8,16,32} % {0,...,32} - \draw[thick] (\x,20) -- (\x,21); - \foreach \x in {0,...,32} - \draw[thick] (\x,14) -- (\x,20); -% \foreach \x in {0,...,32} -% \draw[thick] (\x,13) -- (\x,14); - \node[thick] (bit1) at (-0.6,20.5) {\scriptsize bit}; -% \node[thick] (bit2) at (-0.6,13.5) {\scriptsize bit}; - -\iffalse - \draw [<->, thick] (-0.6, 19.9) -- (-0.6,15.1); - \draw [thick] (-1, 20) -- (-0.1,20); - \draw [thick] (-1, 15) -- (-0.1,15); - \node[fill=white] at (-1.1,17.5) {\tiny 20 bytes}; -\fi - \foreach \y/\v in {0,4,8,12,16,20} - \node at (-0.6,{19.5-(\v / 4)}) {\scriptsize \v}; - - \filldraw[thick,draw=black, fill=white] (0,20) rectangle (4,19); \node (mode) at (2,19.5) {\scriptsize version}; - \filldraw[thick,draw=black, fill=white] (4,20) rectangle (8,19); \node (mode) at (6,19.5) {\scriptsize len}; -% \draw[thick, draw=black, fill=white] (8,20) rectangle (16,19); \node (stratum) at (11.5,19.5) {\scriptsize type of service (TOS)}; - \draw[thick, draw=black, fill=white] (8,20) rectangle (16,19); \node (stratum) at (11.5,19.5) {\scriptsize TOS}; - \draw[thick, draw=black, fill=white] (16,20) rectangle (32,19); \node (li) at (24,19.5) {\scriptsize full length of packet}; - \filldraw[thick,draw=black, fill=white] (0,19) rectangle (16,18); \node (mode) at (8,18.5) {\scriptsize identification}; -% \draw[thick, draw=black] (16,19) rectangle (19,18); \filldraw[white] (16.5,18.43) rectangle (19,18.88); \node [](li) at (17.5,18.67) {\tiny IP flags}; \node at (16.5,18.25) {\tiny x};\node at (17.5,18.25) {\tiny D};\node at (18.5,18.25) {\tiny M}; - \draw[thick, draw=black] (16,19) rectangle (19,18); \filldraw[white] (16.5,18.43) rectangle (19,18.88); \node at (16.5,18.5) {\scriptsize X};\node at (17.5,18.5) {\scriptsize D};\node at (18.5,18.5) {\scriptsize M}; - \draw[thick, draw=black, fill=white] (19,19) rectangle (32,18); \node (li) at (24,18.5) {\scriptsize fragment Offset}; - \filldraw[thick,draw=black, fill=white] (0,18) rectangle (8,17); \node (mode) at (4,17.5) {\scriptsize time to live (TTL)}; - \draw[thick, draw=black, fill=white] (8,18) rectangle (16,17); \node (stratum) at (11.5,17.5) {\scriptsize protocol}; - \draw[thick, draw=black, fill=white] (16,18) rectangle (32,17); \node (li) at (24,17.5) {\scriptsize header checksum}; - \filldraw[thick,draw=black, fill=white] (0,17) rectangle (32,16); \node (mode) at (16,16.5) {\scriptsize source IP address}; - \filldraw[thick,draw=black, fill=white] (0,16) rectangle (32,15); \node (mode) at (16,15.5) {\scriptsize destination IP address}; - \draw[thick,draw=black, fill=white] (0,15) rectangle (32,14); -% \draw[thick,draw=black, fill=white] (0,15) rectangle (31.5,14); -% \draw[fill=white, draw=white] (31.4,15) rectangle (31.6,16); -% \draw[thick] (31.5,14.97) decorate [decoration=saw] { -- (31.5,14.02)}; - \node (mode) at (16,14.5) {\scriptsize IP options (variable length)}; - - \filldraw[thick,draw=black, fill=white] (0,12) rectangle (32,14); \node (mode) at (16,13) {\scriptsize payload}; +\scalebox{0.5}{ +\begin{tikzpicture}[ +every node/.style={font=\bfseries}, +basebox/.style={anchor=north west, minimum height=2em, draw, rectangle}, +bitbox/.style={basebox, minimum width=2em}, +bytebox/.style={basebox, minimum width=16em}, +wordbox/.style={basebox, minimum width=32em}, +qwordbox/.style={basebox, minimum width=64em}, +] + +\path +(-9em, 2em) node[basebox, minimum width=5em] {Offsets} +(-9em, 0em) node[basebox, minimum width=5em] {Octet} +(-4em, 2em) node[basebox, minimum width=4em] {Octet} +(-4em, 0em) node[basebox, minimum width=4em] {Bit} +; + +\foreach \x in {0,...,3} + \node[bytebox] at (\x * 16em, 2em) {\scriptsize \x}; +\foreach \x in {0,...,31} + \node[bitbox] at (\x * 2em, 0em) {\scriptsize \x}; + +\foreach \x in {0,32,...,160} + \node[basebox, minimum width=4em] at (-4em, \x * -1/16*1em - 2em) {\scriptsize \x}; + +\foreach \x in {0,4,...,20} + \node[basebox, minimum width=5em] at (-9em, \x * -0.5em - 2em) {\scriptsize \x}; + +\path +(0em, -1 * 2em) node[basebox, minimum width=8em] {Version} +(8em, -1 * 2em) node[basebox, minimum width=8em] {IHL} +(16em, -1 * 2em) node[basebox, minimum width=16em] {TOS} +(32em, -1 * 2em) node[wordbox] {Packet length} + +(0em, -2 * 2em) node[wordbox] {Identification} +(32em, -2 * 2em) node[bitbox] {X} +(34em, -2 * 2em) node[bitbox] {D} +(36em, -2 * 2em) node[bitbox] {M} +(38em, -2 * 2em) node[basebox, minimum width=26em] {Fragement offset} + +(0em, -3 * 2em) node[bytebox] {TTL} +(16em, -3 * 2em) node[bytebox] {Protocol} +(32em, -3 * 2em) node[wordbox] {Header checksum} + +(0em, -4 * 2em) node[qwordbox] {Source ip address} +(0em, -5 * 2em) node[qwordbox] {Destination ip address} +(0em, -6 * 2em) node[qwordbox] {Options (variable length)} + +%(0em, -7 * 2em) node[qwordbox, minimum height=4 em] {Payload} +; \end{tikzpicture} +} \end{center} \end{frame} -\begin{frame}{Details: UDP} -\protect\hypertarget{details-udp}{} +\begin{frame}{Details: UDP Header} +\protect\hypertarget{details-udp-header}{} \begin{center} \scalebox{0.5}{ - \begin{tikzpicture}[ -every node/.style={font=\bfseries} +every node/.style={font=\bfseries}, +basebox/.style={anchor=west, minimum height=2em, draw, rectangle}, +bitbox/.style={basebox, minimum width=2em}, +bytebox/.style={basebox, minimum width=16em}, +wordbox/.style={basebox, minimum width=32em}, +qwordbox/.style={basebox, minimum width=64em}, ] -\path -(-6.5em, 2em) node[draw, rectangle, minimum width=5em, minimum height=2em] {Offsets} -(-6.5em, 0em) node[draw, rectangle, minimum width=5em, minimum height=2em] {Octet} -(-2em, 2em) node[draw, rectangle, minimum width=4em, minimum height=2em] {Octet} -(-2em, 0em) node[draw, rectangle, minimum width=4em, minimum height=2em] {Bit} - -(16em, -2em) node[draw, rectangle, minimum width=32em, minimum height=2em] {source port} -(48em, -2em) node[draw, rectangle, minimum width=32em, minimum height=2em] {destination port} -(16em, -4em) node[draw, rectangle, minimum width=32em, minimum height=2em] {length} -(48em, -4em) node[draw, rectangle, minimum width=32em, minimum height=2em] {checksum} +\path +(-9em, 2em) node[basebox, minimum width=5em] {Offsets} +(-9em, 0em) node[basebox, minimum width=5em] {Octet} +(-4em, 2em) node[basebox, minimum width=4em] {Octet} +(-4em, 0em) node[basebox, minimum width=4em] {Bit} ; \foreach \x in {0,...,3} - \node[draw, rectangle, minimum width=16em, minimum height=2em] at (\x * 16em + 8em, 2em) {\scriptsize \x}; + \node[bytebox] at (\x * 16em, 2em) {\scriptsize \x}; \foreach \x in {0,...,31} - \node[draw, rectangle, minimum width=2em, minimum height=2em] at (\x * 2em + 1em, 0em) {\scriptsize \x}; + \node[bitbox] at (\x * 2em, 0em) {\scriptsize \x}; -\node[draw, rectangle, minimum width=4em, minimum height=2em] at (-2em, -2em) {\scriptsize 0}; -\node[draw, rectangle, minimum width=4em, minimum height=2em] at (-2em, -4em) {\scriptsize 32}; +\node[basebox, minimum width=4em] at (-4em, -2em) {\scriptsize 0}; +\node[basebox, minimum width=4em] at (-4em, -4em) {\scriptsize 32}; -\node[draw, rectangle, minimum width=5em, minimum height=2em] at (-6.5em, -2em) {\scriptsize 0}; -\node[draw, rectangle, minimum width=5em, minimum height=2em] at (-6.5em, -4em) {\scriptsize 4}; +\node[basebox, minimum width=5em] at (-9em, -2em) {\scriptsize 0}; +\node[basebox, minimum width=5em] at (-9em, -4em) {\scriptsize 4}; -\end{tikzpicture} +\path +( 0 * 2em, -1 * 2em) node[wordbox] {source port} +(16 * 2em, -1 * 2em) node[wordbox] {destination port} +( 0 * 2em, -2 * 2em) node[wordbox] {length} +(16 * 2em, -2 * 2em) node[wordbox] {checksum} +; +\end{tikzpicture} } \end{center} diff --git a/slides/what-is-iot-text.pdf b/slides/what-is-iot-text.pdf index 7b5a4cb..68d20f7 100644 Binary files a/slides/what-is-iot-text.pdf and b/slides/what-is-iot-text.pdf differ diff --git a/slides/what-is-iot.md b/slides/what-is-iot.md index b0f3762..01e6477 100644 --- a/slides/what-is-iot.md +++ b/slides/what-is-iot.md @@ -397,19 +397,19 @@ Note that the "total length" field is 16 bits, 2 bytes, it's maximum value is 64 ::: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -## Details: IP +## Details: IP Header !ifndef(QUICK)( \begin{center} -!include(images/ip-packet.pgf) +!include(images/ip-header.pgf) \end{center} ) -## Details: UDP +## Details: UDP Header !ifndef(QUICK)( \begin{center} -!include(images/udp-packet.pgf) +!include(images/udp-header.pgf) \end{center} ) -- cgit v1.2.3