aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2018-04-27 02:17:52 +0200
committerTrygve Laugstøl <trygvis@inamo.no>2018-04-27 02:17:52 +0200
commit198bd175e3dea90041b1e183d5b337dc26d0e848 (patch)
tree7765bebadb331bf7d239ed66abef02885454b01f
parent7fe4e05705b4df82e8d710e432cb8f5fb79222bf (diff)
downloadiot-workshop-ndc-2018-198bd175e3dea90041b1e183d5b337dc26d0e848.tar.gz
iot-workshop-ndc-2018-198bd175e3dea90041b1e183d5b337dc26d0e848.tar.bz2
iot-workshop-ndc-2018-198bd175e3dea90041b1e183d5b337dc26d0e848.tar.xz
iot-workshop-ndc-2018-198bd175e3dea90041b1e183d5b337dc26d0e848.zip
wip
-rw-r--r--slides/Makefile5
-rw-r--r--slides/images/IP-Header_eng.pdfbin11359 -> 0 bytes
-rw-r--r--slides/images/IP-Header_eng.tex47
-rw-r--r--slides/images/ip-header.pdfbin17867 -> 0 bytes
-rw-r--r--slides/images/ip-header.pgf53
-rw-r--r--slides/images/ip-header.svg2
-rw-r--r--slides/images/ip-header.xml1
-rw-r--r--slides/images/ip-packet.pgf47
-rw-r--r--slides/images/udp-header.pgf37
-rw-r--r--slides/images/udp-packet.pgf32
-rw-r--r--slides/toc.md16
-rw-r--r--slides/what-is-iot-reveal.html78
-rw-r--r--slides/what-is-iot-slides.pdfbin311586 -> 313148 bytes
-rw-r--r--slides/what-is-iot-slides.tex147
-rw-r--r--slides/what-is-iot-text.pdfbin321798 -> 314159 bytes
-rw-r--r--slides/what-is-iot.md8
16 files changed, 205 insertions, 268 deletions
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
--- a/slides/images/IP-Header_eng.pdf
+++ /dev/null
Binary files 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
--- a/slides/images/ip-header.pdf
+++ /dev/null
Binary files 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 @@
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="684px" height="281px" version="1.1" content="&lt;mxfile userAgent=&quot;Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36&quot; version=&quot;8.5.10&quot; editor=&quot;www.draw.io&quot;&gt;&lt;diagram&gt;7VvbbuIwEP2aPFbKHXgsULaV9lKJavfZTUyw6sSsY0rZr187ccjFoaUScUJFpbbJ+H7meDweO4Yzi9++UbBZ/yAhxIZthm+GMzdse2x5/K8Q7HOBa41zQURRmIusUrBE/6AUmlK6RSFMaxkZIZihTV0YkCSBAavJAKVkV8+2Irje6gZEUBEsA4BV6R8UsrUclj0q5fcQReuiZcuf5CnPIHiJKNkmsj3DdlbZT54cg6IuOdB0DUKyq4icO8OZUUJY/hS/zSAW0Baw5eUWR1IP/aYwYacUsPMCrwBv5dAf7r/LrrF9AUc2ICiKmIYz3a0Rg8sNCETqjuufy9YsxvzN4o8rkrAFiBEWuv8NaQgSwMWyIUgZfDvaWesAAWcWJDFkdM+zyAK2KVHbN953FR1J0bqiHlfKgGRFdKi5RIY/SHDagXIUoPjQUkSSoYJl2f2B5Spg3c1+DhUo9wRWuR0B5SlAzZezx6EideDLO0gdaHduqHwFKsP2MW9gGqLXGlz+360wn1M+UHYDMIoSw7nlOTBcsTKVP0Xyf1ZLugFJIRPLVy7lvaomVMRZq4W0oS/Rcl0pKaPkBc4IJpRLEpJAoSmEcUMkuzsPuEogl0+FwhBfmG5lQozCUDTTyoI6TzqcMg3bYo1VIrTxwD4DD0YaeeD2TQOaYzdMFkxGdWvg6SPBWCMJxn2TYNi2oLko6LQFE400GF1p8C4N/P5oUOwaKzx4IgzgTL9JxJsfqEPluh87VE5XDpVlaZw9Yv90nT7HmeD1aEUtNQjQoWvtX4nwGZOglQhqkKM7IjjWlQjvEWHUJxHUAE6HS0Pvu6xhE8E3eySCGqB6CHm/0YrDxC4p+unq9KzUWNUCgygdKliKG9oClt8VVmo8Z0FBFIuu2yZZrVLIhoqb14wct+DWHXBqDOQegpDbMdsM1jB4SbfxUIFTCNdi0rqbnWrU4AnF0BBHjGLhQq9wqLgpVq0FN6srwhVtV3B7pISRgOCh4qUcWGjFS91fL8mWBoJpIAwpTAe7IDR5dpiL1QWhqzMxW92OzmHKUCIdjosDz9cJns4tnHl13D9DBJ2Oe8sR/BfmwUUdk1kaWaBu377wOdlFsWCikQVar07YVxqcTgPH0UgDnTcn+g/zD5oGowYNRqddOTsLDdS4wa+N8KwvxqF2W05Ju3Oodd4xEAM1b/iv07sVHbZr3Zg/botP1dX8KSx2hRBTpIYoVQ3wPSv6B56zDAKdDUEJyzriTQ1vLrDfMpLmd+GtEywZI5ucPwFKoifxMr9xu129Ghualp2t0xXsajRlumdqpO6MuGfzdgiwN9jeto/sjO1qMEaBHCbhrfjmojQipy4LMFQ+w/gQk8qgvZZBFzIKMWAilFutvg0J2cKjYEUJefM6ht/AMs0iebJQCadSz9Fb+EVFDNAIMqWiTC+HUbepir+Wn4nk2ctPcZy7/w==&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g transform="translate(0.5,0.5)"><rect x="123" y="40" width="80" height="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(152.5,53.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="21" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 22px; white-space: nowrap; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IHL</div></div></foreignObject><text x="11" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">IHL</text></switch></g><rect x="43" y="40" width="80" height="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(60.5,53.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="44" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 45px; white-space: nowrap; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Version</div></div></foreignObject><text x="22" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">Version</text></switch></g><rect x="323" y="40" width="40" height="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(330.5,53.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="25" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 26px; white-space: nowrap; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">ECN</div></div></foreignObject><text x="13" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">ECN</text></switch></g><rect x="203" y="40" width="120" height="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(246.5,53.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="33" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 34px; white-space: nowrap; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">DSCP</div></div></foreignObject><text x="17" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">DSCP</text></switch></g><g transform="translate(345.5,23.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="15" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 16px; white-space: nowrap; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div style="text-align: left"><span>15</span></div></div></div></foreignObject><text x="8" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">[Not supported by viewer]</text></switch></g><g transform="translate(29.5,93.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="8" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 9px; white-space: nowrap; word-wrap: normal; text-align: right;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div style="text-align: left"><span>4</span></div></div></div></foreignObject><text x="4" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">[Not supported by viewer]</text></switch></g><g transform="translate(208.5,23.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="8" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 9px; white-space: nowrap; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div style="text-align: left"><span>8</span></div></div></div></foreignObject><text x="4" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">[Not supported by viewer]</text></switch></g><g transform="translate(188.5,23.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="8" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 9px; white-space: nowrap; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div style="text-align: left"><span>7</span></div></div></div></foreignObject><text x="4" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">[Not supported by viewer]</text></switch></g><rect x="363" y="40" width="320" height="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(487.5,53.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="71" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 72px; white-space: nowrap; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Total length</div></div></foreignObject><text x="36" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">Total length</text></switch></g><g transform="translate(505.5,23.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="15" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 16px; white-space: nowrap; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div style="text-align: left"><span>23</span></div></div></div></foreignObject><text x="8" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">[Not supported by viewer]</text></switch></g><g transform="translate(365.5,23.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="15" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 16px; white-space: nowrap; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div style="text-align: left"><span>16</span></div></div></div></foreignObject><text x="8" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">[Not supported by viewer]</text></switch></g><g transform="translate(665.5,23.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="15" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 16px; white-space: nowrap; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div style="text-align: left"><span>31</span></div></div></div></foreignObject><text x="8" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">[Not supported by viewer]</text></switch></g><g transform="translate(525.5,23.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="15" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 16px; white-space: nowrap; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div style="text-align: left"><span>24</span></div></div></div></foreignObject><text x="8" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">[Not supported by viewer]</text></switch></g><rect x="43" y="80" width="320" height="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(163.5,93.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="79" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 80px; white-space: nowrap; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Identification</div></div></foreignObject><text x="40" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">Identification</text></switch></g><rect x="363" y="80" width="60" height="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(377.5,93.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="31" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 32px; white-space: nowrap; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Flags</div></div></foreignObject><text x="16" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">Flags</text></switch></g><rect x="423" y="80" width="260" height="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(504.5,93.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="96" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 97px; white-space: nowrap; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Fragment offset</div></div></foreignObject><text x="48" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">Fragment offset</text></switch></g><rect x="363" y="120" width="320" height="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(469.5,133.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="107" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 108px; white-space: nowrap; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Header checksum</div></div></foreignObject><text x="54" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">Header checksum</text></switch></g><rect x="43" y="120" width="160" height="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(87.5,133.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="71" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 72px; white-space: nowrap; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Time to live</div></div></foreignObject><text x="36" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">Time to live</text></switch></g><rect x="203" y="120" width="160" height="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(258.5,133.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Protocol</div></div></foreignObject><text x="24" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">Protocol</text></switch></g><rect x="43" y="160" width="640" height="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(316.5,173.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="93" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 94px; white-space: nowrap; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Source address</div></div></foreignObject><text x="47" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">Source address</text></switch></g><rect x="43" y="200" width="640" height="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(302.5,213.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="120" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 121px; white-space: nowrap; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Destination address</div></div></foreignObject><text x="60" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">Destination address</text></switch></g><g transform="translate(48.5,23.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="8" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 9px; white-space: nowrap; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div style="text-align: left"><span>0</span></div></div></div></foreignObject><text x="4" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">[Not supported by viewer]</text></switch></g><g transform="translate(29.5,53.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="8" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 9px; white-space: nowrap; word-wrap: normal; text-align: right;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div style="text-align: left"><span>0</span></div></div></div></foreignObject><text x="4" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">[Not supported by viewer]</text></switch></g><g transform="translate(29.5,133.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="8" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 9px; white-space: nowrap; word-wrap: normal; text-align: right;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div style="text-align: left"><span>8</span></div></div></div></foreignObject><text x="4" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">[Not supported by viewer]</text></switch></g><g transform="translate(21.5,173.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="16" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 17px; white-space: nowrap; word-wrap: normal; text-align: right;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div style="text-align: left"><span>12</span></div></div></div></foreignObject><text x="8" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">[Not supported by viewer]</text></switch></g><g transform="translate(21.5,213.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="16" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 17px; white-space: nowrap; word-wrap: normal; text-align: right;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div style="text-align: left"><span>16</span></div></div></div></foreignObject><text x="8" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">[Not supported by viewer]</text></switch></g><rect x="43" y="240" width="640" height="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(339.5,253.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="46" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 47px; white-space: nowrap; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Options</div></div></foreignObject><text x="23" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">Options</text></switch></g><g transform="translate(0.5,246.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="38" height="26" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 38px; white-space: normal; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div style="text-align: left"><span>20 - 32</span></div></div></div></foreignObject><text x="19" y="19" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">[Not supported by viewer]</text></switch></g><g transform="translate(23.5,2.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="17" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: right;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Bit</div></div></foreignObject><text x="9" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">Bit</text></switch></g><g transform="translate(1.5,22.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="27" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Byte</div></div></foreignObject><text x="14" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Verdana">Byte</text></switch></g><path d="M 3 0 L 43 40" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/></g></svg> \ 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 @@
-<mxfile userAgent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" version="8.5.10" editor="www.draw.io" type="device"><diagram id="a3f57cc8-2321-3e81-8ff5-796f424172f4" name="Page-1">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=</diagram></mxfile> \ 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
</section></section>
<section><section id="going-back-to-basics" class="title-slide slide level1"><h1>Going back to basics</h1></section><section id="what-is-the-internet-again" class="slide level2">
<h2>What is the internet again?</h2>
-</section><section id="osi-model" class="slide level2">
-<h2>OSI model</h2>
-<ol type="1">
-<li>Physical Layer</li>
-<li>Data Link Layer</li>
-<li>Network Layer</li>
-<li>Transport Layer</li>
-<li>Session Layer</li>
-<li>Presentation Layer</li>
-<li>Application Layer</li>
-</ol>
+</section><section id="tcpip-layers" class="slide level2">
+<h2>TCP/IP Layers</h2>
+
+</section><section id="packet-encapsulation" class="slide level2">
+<h2>Packet encapsulation</h2>
+
+</section><section id="network-interface" class="slide level2">
+<h2>Network interface</h2>
<ul>
-<li><a href="https://en.wikipedia.org/wiki/OSI_model">Wikipedia: OSI model</a></li>
-<li><a href="https://en.wikipedia.org/wiki/OSI_model#Examples">Wikipedia: OSI model#Examples</a></li>
-</ul>
-<aside class="notes">
-<p>Does not match the TCP/IP stack very closely.</p>
-</aside>
-</section><section id="layer-1-physical-layer" class="slide level2">
-<h2>Layer 1: Physical Layer</h2>
+<li>Ethernet
<ul>
-<li>10BASE5, 10BASE2</li>
-<li>10BASE-T / 100BASE-TX / 1000BASE-TX</li>
-<li>802.11a/b/g/n PHY</li>
+<li>10BASE5, 10BASE2, 10BASE-T / 100BASE-TX / 1000BASE-TX</li>
+</ul></li>
+<li>Wi-Fi
+<ul>
+<li>802.11a/b/g/n</li>
+</ul></li>
<li>RS-232</li>
</ul>
<aside class="notes">
@@ -506,41 +499,20 @@ code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warni
<p>RS-232 signaling is used in <em>all</em> 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.</p>
<p>Note that this only applies to its logical signals, not voltage levels. The signaling does not specify any max data rate, very high rates (&gt;= 1Mbps) is often supported.</p>
</aside>
-</section><section id="layer-2-data-link-layer" class="slide level2">
-<h2>Layer 2: Data Link Layer</h2>
-<ul>
-<li>Ethernet</li>
-<li>WiFi</li>
-<li>Bluetooth</li>
-<li>Token Ring</li>
-</ul>
-</section><section id="layer-3-network-layer" class="slide level2">
-<h2>Layer 3: Network Layer</h2>
+</section><section id="internet" class="slide level2">
+<h2>Internet</h2>
<ul>
<li>IP</li>
<li>ICMP</li>
-<li>IPX</li>
</ul>
-</section><section id="layer-4-transport-layer" class="slide level2">
-<h2>Layer 4: Transport Layer</h2>
+</section><section id="transport" class="slide level2">
+<h2>Transport</h2>
<ul>
<li>TCP</li>
<li>UDP</li>
+<li>SCTP</li>
+<li>QUIC</li>
</ul>
-</section><section id="layer-5-session-layer" class="slide level2">
-<h2>Layer 5: Session Layer</h2>
-<ul>
-<li>“sockets”</li>
-<li>NetBIOS</li>
-</ul>
-</section><section id="layer-6-presentation-layer" class="slide level2">
-<h2>Layer 6: Presentation Layer</h2>
-<ul>
-<li>SSL</li>
-</ul>
-<aside class="notes">
-<p>This layer is not really much used in the IP stack</p>
-</aside>
</section><section id="layer-7-application-layer" class="slide level2">
<h2>Layer 7: Application Layer</h2>
<ul>
@@ -550,11 +522,11 @@ code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warni
<li>CoAP</li>
<li>(everything else..)</li>
</ul>
-</section><section id="details-ip" class="slide level2">
-<h2>Details: IP</h2>
+</section><section id="details-ip-header" class="slide level2">
+<h2>Details: IP Header</h2>
-</section><section id="details-udp" class="slide level2">
-<h2>Details: UDP</h2>
+</section><section id="details-udp-header" class="slide level2">
+<h2>Details: UDP Header</h2>
</section></section>
<section><section id="lecture-mqtt" class="title-slide slide level1"><h1>Lecture: MQTT</h1></section><section id="mqtt" class="slide level2">
diff --git a/slides/what-is-iot-slides.pdf b/slides/what-is-iot-slides.pdf
index 18256ff..a62a47c 100644
--- a/slides/what-is-iot-slides.pdf
+++ b/slides/what-is-iot-slides.pdf
Binary files 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
--- a/slides/what-is-iot-text.pdf
+++ b/slides/what-is-iot-text.pdf
Binary files 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}
)