sync: address allocation
authorRoland Hieber <rohieb@rohieb.name>
Sun, 8 Dec 2013 01:01:46 +0000 (02:01 +0100)
committerRoland Hieber <rohieb@rohieb.name>
Sun, 8 Dec 2013 01:01:53 +0000 (02:01 +0100)
address-allocation.tex [new file with mode: 0644]
main.tex [new file with mode: 0644]

diff --git a/address-allocation.tex b/address-allocation.tex
new file mode 100644 (file)
index 0000000..8970d2d
--- /dev/null
@@ -0,0 +1,81 @@
+\subsection{Address allocation}
+Considering the TCP/IP protocol suite, in order to be able to communicate on the
+IP layer, a device needs to configure one of its network interfaces with
+an IP address that can be reached from the network that the device wants to connect
+to. There are several ways of achieving this:
+
+\begin{itemize}
+  \item The IP address is pre-selected by a human and stored in the device
+    configuration. This process is cumbersome when more than one device needs to
+    be configured, and humans have to remember which addresses are configured on
+    which device, and which addresses are still free to use on additional
+    devices.
+
+  \item Deploying a central server that assigns network addresses
+    to the devices in the network, which in order query the server (for example
+    via broadcast or on a lower layer) for a unique address before they use the
+    IP layer for the first time. This technique supersedes the dependency of
+    human memory for mapping IP addresses to devices, and can easily be combined
+    with additional central configuration management, like the automatic
+    assignment of a static gateway, or a DNS resolver.\\
+    The DHCP protocol is one example of central IP address management.
+
+  \item A third alternative is the use of a distributed protocol which enables
+    the devices on the network to choose addresses in accordance with other
+    devices on the same network, so no IP address is used more than once. In
+    respect to the Internet of Things, this approach has the advantage that
+    those devices can easily be used in different scenarios without needing
+    central deployment at all, and also allowing them to change their addresses
+    dynamically, therefore easily reacting to changes in the network. \\
+    There are two major protocols which are used for dynamic configuration of IP
+    addresses. In the IPv4 world, Link-Local Addressing~\cite{rfc3927} is often
+    used, and in IPv6 networks, Stateless Address
+    Autoconfiguration~\cite{rfc4862} is a fundamental feature built into every
+    device.
+
+\end{itemize}
+
+\todo
+
+\paragraph{IPv4 Link-Local Addressing}
+
+Link-Local Addressing uses the IPv4 subnet 169.254.0.0/16 for addressing. Every
+device first chooses a random address from that address space. Then it checks if
+the chosen address is used by any other device on the network by probing the
+chosen address, which is usually done using the ARP protocol. If the probing
+process results that the address is not used on the network (e.~g. no device
+returned an ARP response during a random time interval), the device claims its
+chosen address and uses it for communication on the IPv4 layer. If the chosen
+address is already used, the device continues the process, subsequently choosing
+a new random address and trying to claim it, until a free address has been
+found.
+
+\paragraph{IPv6 Stateless Address Autoconfiguration}
+
+Similar to IPv4 Link-Local Addressing, devices configured with IPv6 Stateless
+Addressing Autoconfiguration use an IPv6 address from the subnet fe80::/64.
+Then, an \emph{interface identifier} is generated using the interface's MAC
+address. Since MAC addresses must be unique in the network, a unique IPv6
+address is obtained by combining the subnet prefix and the interface identifier.
+To ensure that no other device exists with this generated IPv6 address, the
+device performs \emph{Duplicate Address Detection} on the network through
+\emph{Neighbor Advertisement} messages and listening for \emph{Neighbor
+Solicitation} messages. If such messages are received from other hosts, the
+configured address cannot be used by the device and must be discarded.
+Therefore, in order to use IPv6 effectively, it must be guarranteed that MAC
+addresses are unique on the network.
+
+In contrast to IPv4 Link-Local Addressing, IPv6 Stateless Address
+Autoconfiguration can also be used with a central server. In this case, a
+central server broadcasts \emph{Router Advertisement} messages on the network which
+contain a global network prefix. The hosts on the network can then use that
+prefix instead to configure a global IPv6 address.
+
+addressing
+
+automatic address configuration via Zeroconf/APIPA (IPv4, \cite{rfc3927}) or
+IPv6 stateless auto-configuration \cite{rfc4862}
+
+\pages{1}
+
+% vim: set ft=tex et ts=2 sw=2 :
diff --git a/main.tex b/main.tex
new file mode 100644 (file)
index 0000000..3d26e5e
--- /dev/null
+++ b/main.tex
@@ -0,0 +1,94 @@
+\documentclass[a4paper,11pt]{article}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{ae}
+\usepackage{color}
+
+\newcommand{\pages}[1]{\marginpar{#1 pages}}
+\newcommand{\todo}{\textcolor{red}{TODO} \\}
+
+\title{Chatty Things -- Making the Internet of Things Readily Usable for the
+Masses with XMPP}
+\author{Roland Hieber}
+\date{Seminar Communications and Multimedia, TU~Braunschweig \\ \today}
+
+\begin{document}
+\maketitle
+
+%% Introduction
+\section{Introduction}
+\todo
+\pages{0-1}
+short overview, not too long: what do we want, what are we
+going to do
+
+
+%% Prerequisites
+\section{Prerequisites}
+\todo
+overview to the techniques used in the paper by Klauk and Kirsche
+\cite{klauck-kirsche-chattythings}
+
+\input{address-allocation.tex}
+
+\subsection{DNS-Based Service Discovery}
+\todo
+\cite{rfc6763}
+\begin{itemize}
+       \item allows flexible mapping of available services to ports
+       \item utilization of SRV \cite{rfc2782}, TXT and PTR records 
+       \item case study for IoT in \cite{Klauck:2012:BCC:2352852.2352881}
+\end{itemize}
+
+\pages{1}
+
+\subsection{XMPP}
+\todo
+\cite{rfc6120}
+\begin{itemize}
+       \item architecture: client-server, use of DNS-SD
+       \item addressing: JIDs, resources
+       \item XML-based communication primitives, stanzas and streams
+       \item presence
+       \item publish/subscribe \cite{xep-0060}, roster
+       \item multi-user chats \cite{xep-0045}
+\end{itemize}
+
+\pages{3-4}
+
+\subsection{Multicast DNS}
+\todo
+\cite{rfc6762} \pages{1}
+
+\subsection{XMPP Serverless Messaging}
+\todo
+\cite{xep-0174} \pages{1}
+
+\section{System Architecture of Chatty Things}
+\todo
+\pages{3}
+\subsection{Service Provisioning Sublayer}
+\subsection{Bootstrapping}
+\subsection{Presence Subscription}
+
+\section{Related Approaches}
+\todo
+\pages{3}
+Middleware, Application protocol gateways:
+\begin{itemize}
+       \item Constrained Application Protocol \cite{draft-ietf-core-coap-18}
+       \item MQ Telemetry Transport \cite{mqtt}
+       \item Devices Profile for Web Services \cite{zeeb-moritz-ws4d}
+\end{itemize}
+
+\section{Discussion}
+\todo
+comparison of mentioned approaches
+
+\pages{1-2}
+
+\bibliographystyle{plain}
+\bibliography{biblio}
+
+\end{document}
+% vim: set ft=tex et ts=2 sw=2 :
This page took 0.034458 seconds and 4 git commands to generate.