| | 1 | \begin{figure} [h!] |
| | 2 | \centering |
| | 3 | \includegraphics[width=0.95\columnwidth]{figs/hydro-example.pdf} |
| | 4 | \caption{An example of Hydro point-to-point routing. To send the |
| | 5 | first packet (red dotted line) from node 1 to node 6, it is routed |
| | 6 | along the default path to the closest controller (node 1). The |
| | 7 | controller source routes the packet to destination. Nodes 2 and 3 |
| | 8 | add routing table entries based on the source route. Subsequent |
| | 9 | packets (blue dashed line) take a direct path.} |
| | 10 | \label{fig:hydro-example} |
| | 11 | \end{figure} |
| | 12 | |
| 4 | | Before diving into the details, we begin by providing an overview of |
| 5 | | {\lowthane}'s basic operation and design philosophy. |
| 6 | | {\lowthane} develops organically from prior work, and extends it to |
| 7 | | provide robust point-to-point routing. At its core is a reliable channel from |
| 8 | | the low-power, deeply embedded nodes to higher function {\controller}s situated |
| 9 | | through the network. For this purpose, {\lowthane} draws on many ideas from |
| 10 | | existing collection protocols, such as data-driven link estimation, density |
| 11 | | sensitive (trickelized) neighbor discovery messages, and careful ranking of |
| 12 | | multiple potential next hops. As has been amply demonstrated, these |
| 13 | | techniques enable simple yet robust multipoint-to-point routing. {\lowthane} |
| 14 | | uses this functionality to route packets from within the network to the egress |
| 15 | | points at the edge. |
| | 16 | Before diving into the details, we begin with the {\lowthane}'s basic |
| | 17 | operation and design philosophy for point-to-point routing built atop |
| | 18 | collection routing. |
| | 19 | %{\lowthane} develops organically from prior work, and extends it to provide robust point-to-point routing. |
| | 20 | At its core is a reliable channel from the low-power nodes to higher |
| | 21 | function {\controller}s situated through the network. For this |
| | 22 | purpose, {\lowthane} draws on many ideas from existing collection |
| | 23 | protocols, such as data-driven link estimation~\cite{ctp}, density |
| | 24 | sensitive (trickelized) neighbor discovery messages~\cite{trickle}, |
| | 25 | and careful ranking of multiple potential next hops~\cite{4bitle}. |
| | 26 | These techniques enable simple yet robust multipoint-to-point routing. |
| | 27 | {\lowthane} uses this functionality to route packets from within the |
| | 28 | network to the egress points at the edge. |
| 17 | | {\lowthane} |
| 18 | | transmits a portion of the topology discovered by the collection protocol |
| 19 | | down the tree to the |
| 20 | | higher-function {\controller}s. A major advantage of using this topology is |
| 21 | | that collection traffic, which is often present as a background workload in |
| 22 | | this class of network, is used to maintain the freshness of link estimates. |
| 23 | | Furthermore, {\lowthane} is careful not to introduce an excess amount of |
| 24 | | control traffic into the system by attempting to piggyback this topology information |
| 25 | | on data packets wherever possible. |
| | 30 | {\lowthane} transmits a portion of the topology discovered by the |
| | 31 | collection protocol to higher-function {\controller}s. An significant |
| | 32 | advantage of using this topology is that collection traffic, which is |
| | 33 | often present as a background workload in this class of network, is |
| | 34 | used to maintain fresh link estimates. Furthermore, {\lowthane} |
| | 35 | avoids introducing excess control traffic by attempting to piggyback |
| | 36 | this topology information on data packets whenever possible. |
| 27 | | The {\controller}s build up a global based on topology reports. They use this |
| 28 | | database for two main purposes. First, communication from a {\controller} or |
| 29 | | external networks is source-routed into the network, based on routes computed |
| 30 | | from the database. Secondly, the {\controller} uses the database to compute |
| 31 | | and install paths between nodes in the network. By adding installed routes in |
| 32 | | the network, {\lowthane} is able to reduce stretch for point-to-point routes |
| 33 | | and well as mitigate contention around the controller, which is otherwise a |
| 34 | | bottleneck for the performance of ``triangle'' routing, where all |
| 35 | | point-to-point traffic is routed through an {\controller}. |
| | 38 | The {\controller}s build up a global view of the network based on |
| | 39 | topology reports and use this database for two main purposes. First, |
| | 40 | communication from a {\controller} or external networks is |
| | 41 | source-routed into the network, based on routes computed from the |
| | 42 | database. Second, the {\controller} uses the database to compute and |
| | 43 | install paths between nodes in the network. By adding installed |
| | 44 | routes in the network, {\lowthane} is able to reduce stretch for |
| | 45 | point-to-point routes and mitigate contention around the controller, |
| | 46 | which is otherwise a bottleneck for ``triangle'' routing, where all |
| | 47 | point-to-point paths traverse the {\controller}. |