Internet DRAFT - draft-jin-homenet-dncp-experience
draft-jin-homenet-dncp-experience
Home Networking K. Jin
Internet-Draft Ecole Polytechnique / Cisco
Intended status: Informational Systems
Expires: January 7, 2016 P. Pfister
Cisco Systems
J. Yi
LIX, Ecole Polytechnique
July 6, 2015
Experience and Evaluation of the Distributed Node Consensus Protocol
draft-jin-homenet-dncp-experience-00
Abstract
The Distributed Node Consensus Protocol (DNCP) is a generic state
synchronization protocol that offers data synchronization and dynamic
network topology discovery within a network. This document reports
experience with the DNCP, which includes its implementation status
and performance evaluation in a simulated environment.
Status of this Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 7, 2016.
Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
Jin, et al. Expires January 7, 2016 [Page 1]
Internet-Draft DNCP Experience July 2015
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Implementation Status . . . . . . . . . . . . . . . . . . . . 3
2.1. hnetd Implementation (libdncp) . . . . . . . . . . . . . . 3
2.2. libdncp2 Implementation . . . . . . . . . . . . . . . . . 4
2.3. shncpd Implementation . . . . . . . . . . . . . . . . . . 4
3. Experimental Setup . . . . . . . . . . . . . . . . . . . . . . 5
3.1. Simulation Environment . . . . . . . . . . . . . . . . . . 5
3.2. Performance Metrics . . . . . . . . . . . . . . . . . . . 7
3.3. Chosen Toplogies . . . . . . . . . . . . . . . . . . . . . 7
3.3.1. Single Link Topology . . . . . . . . . . . . . . . . . 7
3.3.2. String Topology . . . . . . . . . . . . . . . . . . . 8
3.3.3. Full Mesh Topology . . . . . . . . . . . . . . . . . . 8
3.3.4. Tree Topology . . . . . . . . . . . . . . . . . . . . 9
3.3.5. Double Tree Topology . . . . . . . . . . . . . . . . . 9
4. DNCP Performance Evaluation . . . . . . . . . . . . . . . . . 9
4.1. Results for the Single Link Topology . . . . . . . . . . . 10
4.2. Results for the String Topology . . . . . . . . . . . . . 11
4.3. Results for the full mesh topology . . . . . . . . . . . . 12
4.4. Results for the tree topology . . . . . . . . . . . . . . 13
4.5. Results for the double-tree topology . . . . . . . . . . . 13
5. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . 14
6. Security Considerations . . . . . . . . . . . . . . . . . . . 15
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15
8. Informative References . . . . . . . . . . . . . . . . . . . . 15
Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . . 16
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 16
Jin, et al. Expires January 7, 2016 [Page 2]
Internet-Draft DNCP Experience July 2015
1. Introduction
The Distributed Node Consensus Protocol (DNCP)
[I-D.ietf-homenet-dncp] is a protocol providing node data
synchronization and dynamic network topology discovery within a
network. At the time of writing this document, DNCP is in
standardization process by the IETF Homenet working group.
In DNCP, the information of a node and its view of the network is
encoded in a set of TLV (Type-Length-Value) tuples. By publishing
and exchanging the TLVs with its neighbors, each node in the network
eventually receives the set of TLV published by every other node
within the network (in which case, the network is converged). The
Trickle algorithm [RFC6206] is used, instead of periodic signaling,
to reduce the overhead of synchronization. DNCP also provides an
option of "keep alive" message to detect when a neighbor is not
reachable anymore.
As a generic protocol, DNCP can not only be applied in home networks,
but also in other networks that require node data synchronization
(such as configuration profiles, network topology, services, etc.).
Therefore, DNCP leaves some parameters to be specified by DNCP
profiles, which are actual implementable instances of DNCP. Nodes
implementing the same DNCP profile, and operating within the same
DNCP network, are able share TLV tuples, discover the network
topology, and auto-detect arrival and departure of other nodes.
This document presents experience and performances evaluation using
the reference DNCP implementation in a simulated environment using
the Network Simulator 3 (NS3), a discrete event simulator widely used
in network research and recognized by the scientific community.
Note that for the purpose of this first study, DNCP was evaluated in
various, quite unrealistic and probably extreme, network topologies,
with the intent of finding the limits of the protocol.
2. Implementation Status
Until July 2015, there are 2 publicly known implementations of DNCP,
one of which was recently modified.
2.1. hnetd Implementation (libdncp)
'hnetd' is an open source implementation of the Homenet network
stack. As an implementation of the Home Network Control Protocol -
HNCP [I-D.ietf-homenet-hncp], it includes the DNCP, the prefix
assignment algorithm [I-D.ietf-homenet-prefix-assignment], as well as
Jin, et al. Expires January 7, 2016 [Page 3]
Internet-Draft DNCP Experience July 2015
other elements specific to Homenet. hnetd is available as a package
to be installed on OpenWrt, which is the platform it is most suited
for (hnetd also runs in a lesser extend on standard Linux). The code
is available on github [1] and is published under the GPLv2 license
(libdncp is available in the 'libdncp' git branch).
hnetd is based on a lightweight toolkit library containing useful
structures (e.g., lists, trees), functions (e.g., md5), as well as a
small event loop, that is widely used in OpenWrt. Thanks to the
quality of the code, libdncp, as separatly buildable library
implementing DNCP functions, was easily extracted from hnetd for the
purpose of this work.
hnetd, DNCP included, consists of 15651 lines of code (18220 when
including test files). The binary weights 576KB when compiled for
debian X86_64 with no optimization and 727KB when compiled for
OpenWrt MIPS. libdncp2 roughly consists of 2300 lines of code (2590
when including security option). It weights 193KB when compiled with
no optimization for debian x86_64 and 192KB when compiled for OpenWrt
MIPS.
2.2. libdncp2 Implementation
As a result of different interests expressed about using DNCP outside
of Homenet (including this study), DNCP code within hnetd was partly
rewritten and reorganized in a more independent implementation of
DNCP, with less coupling with HNCP [I-D.ietf-homenet-hncp]. libdncp2
moves the DNCP profiles specificities from compilation-time to run-
time. It is published under the same license as hnetd and is now
part of the mainstream branch [1].
libdncp2 provides some improvements with respect to its predecessor
libdncp. For the purpose of this document, libdncp was used, but we
plan to use libdncp2 instead in the next iterations of this document.
2.3. shncpd Implementation
shncpd is an open source implementation of DNCP developed by Juliusz
Chroboczek. It uses HNCP [I-D.ietf-homenet-hncp] profile. The
source code is available on github [2]. At the time of publishing
this document, shncpd implements:
o The HNCP profile of DNCP.
o Parsing of a significant subset of HNCP.
o Address allocation (not prefix allocation).
Jin, et al. Expires January 7, 2016 [Page 4]
Internet-Draft DNCP Experience July 2015
3. Experimental Setup
This section describes the environment, the parameters and topologies
which were used for measuring DNCP performances.
3.1. Simulation Environment
For the purpose of this work, the DNCP part (libdncp) of'hnetd'
introduced in Section 2.1 was modified in order to provide a
statically linkable library containing DNCP implementation. To
evaluate the performance of DNCP in large and complex networks, NS3
is employed as the simulation platform.
As shown in Figure 1, all the application-level actions (processing
packets, publishing TLVs...) are performed inside the libdncp
implementation. The packets are sent to or received from the lower
layers in ns3 through the redefined socket API. UDP is used for
layer 4 and IPv6 for layer 3. NS3 implements different types of
links as layer 1 and layer 2. For these measures, the so called
'CSMA' link type is used. The NS3 CSMA link is designed in the
spirit of Ethernet but implements fail-proof carrier sense used for
collision avoidance. For this first study, where measuring DNCP link
usage was desired, link of virtually infinite throughput are used.
+--------------------------------------+
| dncp implementation (Libdncp) |
+--------------------------------------+
+--------------socket API--------------+
| +---------------------+ |
| | L4 (UDP) | |
| +---------------------+ |
| |
| +---------------------+ |
| | L3 (Ipv6) | NS3 |
| +---------------------+ |
| |
| +---------------------+ |
| |L1 and L2 (CsmaModel)| |
| +---------------------+ |
+--------------------------------------+
Figure 1: libdncp over NS3 network layering model
Listed below are several attributes of the CSMA model:
Jin, et al. Expires January 7, 2016 [Page 5]
Internet-Draft DNCP Experience July 2015
MTU: The link layer maximum transmission unit, set to 1500.
Encapsulation Mode: Type of link layer encapsulation. "Dix" mode
was used, which models an Ethernet II layer.
TxQueue: Type of the transmit queue used by the device. NS3
provides "Codel queue", "Drop tail" and "RED" (random early
detection) queues. "Drop tail" queue was used with a size of 100
packets.
Inter-frame Gap: The pause between two frames, set to 0.
Listed below are several attributes of the CSMA channel:
Data Rate: Physical layer bit rate, enforcing the time it takes for
a frame to be transmitted. It is set to 1Gbps, which is
significantly greater than what DNCP is expected to use.
Delay: Signal propagation time within the medium. It was set to 1
micro second.
Assuming a constant frame size, the theoretical throughput of the
medium is given by the formula FrameSize/(FrameSize/DataRate +
Delay). For a frame size of 1500 bytes, the throughput is 923Mbps.
For a FrameSize of 100 bytes, the link throughput is 444Mbps.
Running DNCP in NS3 requires libdncp to be integrated and built with
NS3. DNCP runs on an event loop managed by libubox, which therefore
specifies how to set timers and listen to file descriptors.
Integration was quite straitforward. Event-loop and system calls
were identified and replaced with their NS3 equivalents. Besides, an
application in ns3 called "DncpApplication" is created, this
application can be installed on the node and can be started and
stopped at given time. Once the application is launched, dncp begins
to run on that node by calling functions in the libdncp static
library from inside the ns3 application. It is expected that
integration with libdncp2 will be even simpler, as this new library
put the DNCP profile definition at runtime instead of compilation
time.
Running experiments in simulated environments offers multiple
advantages such as the ability to run long-lived scenarios in short
period of time, simulate networks of hundread of nodes without
requiring lots of resources, or isolate tested components from
external interferences. On the other hand, NS3 executes program
steps virtually instantaneously, it is therefore hard to take into
account hardware speed when measuring time-related performances
metrics. For these first experiments, virtually perfect links with
Jin, et al. Expires January 7, 2016 [Page 6]
Internet-Draft DNCP Experience July 2015
no delay were used, and a processing delay of 0.5ms for each received
packet was introduced in order to simulate the packet processing
time.
3.2. Performance Metrics
The goal of this study is to measure the performances of DNCP in some
extreme scenarios, see whether, and how it converges. Therefore, the
following three performance metrics were observed:
Convergence time: The time it took for the network to converge.
Overall traffic sent: The amount of data that was sent on link
before convergence.
Average traffic sent per node: The overall traffic sent divided by
the number of nodes.
3.3. Chosen Toplogies
This section describes different topologies used in this study. The
main criteria for selecting a topology was that it should be:
o Easily described and generated as a function of the number of
nodes (called N).
o Deterministic.
o Representing different situations testing different scalability
properties.
The rest of this section describes the five different topologies:
o Single link
o String
o Full mesh
o Tree topology
o Double tree topology
3.3.1. Single Link Topology
The single link topology puts all the nodes on the same link. Each
node has a single DNCP End-Point with N-1 neighbors. Such topology
is well suited for evaluating DNCP scalability capabilities in terms
Jin, et al. Expires January 7, 2016 [Page 7]
Internet-Draft DNCP Experience July 2015
of the number of neighbors on a given link.
n1 n2 n3 n4
| | | |
+--------+--------+--------+
Figure 2: The single link topology for N = 4
3.3.2. String Topology
The string topology chains all nodes one after the other. Each node
has two DNCP End-Points with one neighbor on each (except for the two
extremities). Such topology is well suited for evaluating the
convergence time depending on the diameter of the network as well as
the scalability of DNCP in terms of the overall number of nodes.
+-------+ +-------+
| | | | |
n1 n2 n3 n4 n5 n6
| | | | | |
+-------+ +-------+ +-------+
Figure 3: The string topology for N = 6
3.3.3. Full Mesh Topology
The mesh topology connects all nodes with distinct links. Each node
has N-1 DNCP End-Points with one neighbor on each. Such topology is
well suited for evaluating DNCP scalability capabilities in terms of
the amount of nodes and end-points.
n1----n2--+
| \ | |
| \ | |
| \ | |
| \| |
n3----n4 |
| |
+---------+
Figure 4: The full mesh topology for N = 4
Jin, et al. Expires January 7, 2016 [Page 8]
Internet-Draft DNCP Experience July 2015
3.3.4. Tree Topology
The tree topology forms a typical binary tree. Node 'i' is connected
with nodes '2*i' and '2*i + 1', unless those numbers are greater than
N. In such topology, all nodes except the root one have three DNCP
End-Points with one neighbor on each. This topology offers a more
realistic equilibrium between the diameter and the amount of nodes.
n1
/ \
n2 n3
/ | |
/ | |
n4 n5 n6
Figure 5: The tree topology for N = 6
3.3.5. Double Tree Topology
The double tree topology is identical to the binary tree, but each
node is paired with a redundancy node. In such topology, all nodes
except the two root node have 6 DNCP End-Point with one neighbor on
each. This topology also offers a more realistic trade-off between
the network diameter and the number of nodes, but also adds
redundancy and loops.
For example, for N = 9:
o n1 has point-to-point links with n3, n4, n5 and n6.
o n2 has point-to-point links with n3, n4, n5 and n6.
o n3 has additional point-to-point links with n7, n8 and n9.
o n4 has additional point-to-point links with n7, n8 and n9.
4. DNCP Performance Evaluation
This section provides different performance metrics for different
network topologies of different sizes. Each value is the average
over 10 simulations. Unless stated otherwise, the 10 measures always
were pretty close (Small standard deviation).
Each simulation reflects the same scenario. All DNCP instances are
simultaneously initialized. The simulation is then run until the
network converges, and performance metrics introduced in Section 3.2
Jin, et al. Expires January 7, 2016 [Page 9]
Internet-Draft DNCP Experience July 2015
are computed.
Important: Note that, as DNCP uses Trickle, it is expected to be very
verbose in case of dramatic changes, but as a trade-off should
provide good convergence times and low verbosity in the absence of
changes. An instantaneous and complete bootstrap of the network,
which is the present scenario, is a particularly extreme state
change. This scenario was selected as a worst case to see whether
DNCP converges well, or at-all. On that side, DNCP behaved well, but
as expected, the overall amount of generated traffic sometimes
appeared to be significant.
4.1. Results for the Single Link Topology
+-----------------------+----------+----------+----------+----------+
| Number of nodes | 10 nodes | 20 nodes | 30 nodes | 40 nodes |
+-----------------------+----------+----------+----------+----------+
| Convergence time | 1.84s | 3.09s | *4.43s | 5.14s |
| ---- | ---- | ---- | ---- | ---- |
| Traffic sent | 85.3KB | 604.7KB | 2.3MB | 5.4MB |
| ---- | ---- | ---- | ---- | ---- |
| Traffic sent per node | 8.5KB | 30.2KB | 79.6KB | 140.7KB |
+-----------------------+----------+----------+----------+----------+
Table 1: Single Link Topology (1)
+-----------------------+----------+----------+----------+----------+
| Number of nodes | 50 nodes | 60 nodes | 70 nodes | 80 nodes |
+-----------------------+----------+----------+----------+----------+
| Convergence time | 6.53s | *8.61s | 11.57s | 14.05s |
| ---- | ---- | ---- | ---- | ---- |
| Traffic sent | 11.9MB | 23.7MB | 51.7MB | 88.1MB |
| ---- | ---- | ---- | ---- | ---- |
| Traffic sent per node | 245.KB | 404.8KB | 757.2KB | 1.1MB |
+-----------------------+----------+----------+----------+----------+
*: the average value was calculated over the results of 9 experiments
because one of the value was significantly greater.
Table 2: Single Link Topology (2)
Note that two accidents were observed during the simulations. One
happened in one experiment among the 10 that we ran for the 30-nodes
network. The network first converged at 4.016s, which is very close
to the average convergence time, but at 25.949s this converging state
was broken and the network finally reconverged at 26.12s. Similarly,
for the 60-node network, it first converged at 7.081s then got
disturbed at 25.822s and converged again at 26.303.
Jin, et al. Expires January 7, 2016 [Page 10]
Internet-Draft DNCP Experience July 2015
Although the convergence time seems to grow linearly with the number
of nodes, the overall traffic sent before convergence increases
dramatically. This is caused by the fact that not-only each node
will synchronize with any other node on the link, but the data will
grow as nodes discover their neighbors. The problem is explained in
[I-D.ietf-homenet-dncp] Section 6.2 (Support For Dense Broadcast
Links) where an optional solution is also proposed, but that option
*was not* implemented in libdncp, which explains the bad
performances.
4.2. Results for the String Topology
+-----------------------+----------+----------+----------+----------+
| Number of nodes | 10 nodes | 20 nodes | 30 nodes | 40 nodes |
+-----------------------+----------+----------+----------+----------+
| Convergence time | 1.84s | 3.65s | 5.24s | 7.09s |
| ---- | ---- | ---- | ---- | ---- |
| Traffic sent | 51.5KB | 243.4KB | 605KB | 1.2MB |
| ---- | ---- | ---- | ---- | ---- |
| Traffic sent per node | 5.1KB | 12.2KB | 20.1KB | 30.9KB |
+-----------------------+----------+----------+----------+----------+
Table 3: String topology (1)
+-----------------------+----------+----------+----------+----------+
| Number of nodes | 50 nodes | 60 nodes | 70 nodes | 80 nodes |
+-----------------------+----------+----------+----------+----------+
| Convergence time | 8.79s | 11.11s | 12.87s | 15.03s |
| ---- | ---- | ---- | ---- | ---- |
| Traffic sent | 2MB | 3MB | 4.1MB | 5.6MB |
| ---- | ---- | ---- | ---- | ---- |
| Traffic sent per node | 40.5KB | 50.4KB | 59.2KB | 70.1KB |
+-----------------------+----------+----------+----------+----------+
Table 4: String topology (2)
These results show that in a linear network, convergence time is
linear in the number of chained nodes, but the overall transmitted
traffic is not. This can be easily explained as the convergence time
reflects the time for both extremities to discover each other
(updates have to traverse the whole string), but in the meantime,
other updates are sent. The slope of the convergence time line is
0.18 second per node, which is pretty quick, but also comes at the
cost of transmitting multiple updates before all nodes are
discovered.
Jin, et al. Expires January 7, 2016 [Page 11]
Internet-Draft DNCP Experience July 2015
4.3. Results for the full mesh topology
+-----------------------+----------+----------+----------+----------+
| Number of nodes | 10 nodes | 20 nodes | 30 nodes | 40 nodes |
+-----------------------+----------+----------+----------+----------+
| Convergence time | 1.71s | 3.2s | 4.83s | *6.19s |
| ---- | ---- | ---- | ---- | ---- |
| Traffic sent | 202.7KB | 1.6MB | 6.6MB | 18.1MB |
| ---- | ---- | ---- | ---- | ---- |
| Traffic sent per node | 20.3KB | 83.5KB | 222.1KB | 453.8KB |
+-----------------------+----------+----------+----------+----------+
*: the average value was calculated over the results of 9 experiments
because one of the value was significantly greater.
Table 5: Full mesh topology (1)
+-----------------------+----------+----------+----------+----------+
| Number of nodes | 50 nodes | 60 nodes | 70 nodes | 80 nodes |
+-----------------------+----------+----------+----------+----------+
| Convergence time | 10.64s | 13.02s | 15.33s | 17.93s |
| ---- | ---- | ---- | ---- | ---- |
| Traffic sent | 49.1MB | 95.8MB | 167.4MB | 271.9MB |
| ---- | ---- | ---- | ---- | ---- |
| Traffic sent per node | 983.1KB | 1.6MB | 2.4MB | 3.4MB |
+-----------------------+----------+----------+----------+----------+
Table 6: Full mesh topology (2)
An incident similar to the one that occurred with a single link
topology was observed. Although the convergence time is low, the
amount of transmitted traffic is very high compared to other
topologies. It can be explained by the high number of distinct links
(equal to N(N-1)/2): Trickle has to converge on each individual link.
Unlike the single link topology, this situation is harder to detect
and resolve.
Jin, et al. Expires January 7, 2016 [Page 12]
Internet-Draft DNCP Experience July 2015
4.4. Results for the tree topology
+-----------------------+----------+----------+----------+----------+
| Number of nodes | 10 nodes | 20 nodes | 30 nodes | 40 nodes |
+-----------------------+----------+----------+----------+----------+
| Convergence time | 1.16s | 1.57s | 1.86s | 2s |
| ---- | ---- | ---- | ---- | ---- |
| Traffic sent | 40.7KB | 166.7KB | 374KB | 644.5KB |
| ---- | ---- | ---- | ---- | ---- |
| Traffic sent per node | 4.1KB | 8.3KB | 12.4KB | 16.1KB |
+-----------------------+----------+----------+----------+----------+
Table 7: Tree topology (1)
+-----------------------+----------+----------+----------+----------+
| Number of nodes | 50 nodes | 60 nodes | 70 nodes | 80 nodes |
+-----------------------+----------+----------+----------+----------+
| Convergence time | 2.33s | 2.42s | 2.56s | 2.6s |
| ---- | ---- | ---- | ---- | ---- |
| Traffic sent | 1MB | 1.3MB | 1.9MB | 2.4MB |
| ---- | ---- | ---- | ---- | ---- |
| Traffic sent per node | 20.2KB | 22.8KB | 26.7KB | 29.9KB |
+-----------------------+----------+----------+----------+----------+
Table 8: Tree topology (2)
As expected in a tree topology, the convergence time is sub-linear.
We also oberve that the overall amount of traffic (and per node) is
relatively low compared to other topologies. This is quite
satisfying as the tree and double-tree topoligies are the more
realistic ones.
4.5. Results for the double-tree topology
Jin, et al. Expires January 7, 2016 [Page 13]
Internet-Draft DNCP Experience July 2015
+-----------------------+----------+----------+----------+----------+
| Number of nodes | 10 nodes | 20 nodes | 30 nodes | 40 nodes |
+-----------------------+----------+----------+----------+----------+
| Convergence time | 1.04s | 1.44s | 1.5s | 1.7s |
| ---- | ---- | ---- | ---- | ---- |
| Traffic sent | 66.9KB | 265KB | 605.1KB | 1MB |
| ---- | ---- | ---- | ---- | ---- |
| Traffic sent per node | 6.7KB | 13.2KB | 20.2KB | 25.3KB |
+-----------------------+----------+----------+----------+----------+
Table 9: Double-tree topology (1)
+-----------------------+----------+----------+----------+----------+
| Number of nodes | 50 nodes | 60 nodes | 70 nodes | 80 nodes |
+-----------------------+----------+----------+----------+----------+
| Convergence time | 1.96s | 1.98s | 2.06s | 2.09s |
| ---- | ---- | ---- | ---- | ---- |
| Traffic sent | 1.5MB | 2MB | 2.8MB | 3.5MB |
| ---- | ---- | ---- | ---- | ---- |
| Traffic sent per node | 30.8KB | 33.2KB | 39.7KB | 44.7KB |
+-----------------------+----------+----------+----------+----------+
Table 10: Double-tree topology (2)
Results are quite similar to the simple tree topology. The
convergence delay is very satisfying while the overall amount of
traffic is pretty low compared to other topologies.
5. Conclusion
DNCP does converge in small networks as well as larger ones. It
converges fast at the cost of a quite high overall transmitted amount
of data. It behaves particularly well in tree topologies as well as
double tree topologies, which are the most realistic tested
topologies.
The first observed concern appears in the single link topology, where
the amount of traffic grows dramatically with the number of nodes.
The problem is known and DNCP actually proposes a solution to that
problem. But this solution is optional and was not part of the
tested implementation. Further attention may be necessary on these
particular mechanisms in order to make sure that DNCP behaves well in
such situations (if such topology is in scope of DNCP at all).
The overall amount of traffic was also significant in full mesh
topologies as well as string topologies. A possible approach to
improve these results might be to rate-limit the amount of updates
Jin, et al. Expires January 7, 2016 [Page 14]
Internet-Draft DNCP Experience July 2015
that may be made in short periods of time. Such approach would
provide fast convergence after small changes and would reduce the
overall amount of traffic in reaction to dramatic changes.
Once again, it is important to note that DNCP is expected to be
verbose in case of regular or dramatic changes. DNCP users should
make sure that the network eventually stabilizes, such that DNCP can
take full advantage of the Trickle algorithm.
Next iterations of this document might include further results such
as:
o Measures with libdncp2 instead of libdncp(v1).
o Measures with different profiles (rather than the HNCP profile
alone).
o Other metrics (e.g., convergence ratio).
o Other scenarios (e.g., no updates at all, sporadic updates).
6. Security Considerations
This document does not specify a protocol or a procedure. DNCP's
security architecture is described in Section 8 of
[I-D.ietf-homenet-dncp].
7. IANA Considerations
This document contains no action for IANA.
8. Informative References
[I-D.ietf-homenet-dncp]
Stenberg, M. and S. Barth, "Distributed Node Consensus
Protocol", draft-ietf-homenet-dncp-07 (work in progress),
July 2015.
[I-D.ietf-homenet-hncp]
Stenberg, M., Barth, S., and P. Pfister, "Home Networking
Control Protocol", draft-ietf-homenet-hncp-07 (work in
progress), July 2015.
[I-D.ietf-homenet-prefix-assignment]
Pfister, P., Paterson, B., and J. Arkko, "Distributed
Jin, et al. Expires January 7, 2016 [Page 15]
Internet-Draft DNCP Experience July 2015
Prefix Assignment Algorithm",
draft-ietf-homenet-prefix-assignment-07 (work in
progress), June 2015.
[RFC6206] Levis, P., Clausen, T., Hui, J., Gnawali, O., and J. Ko,
"The Trickle Algorithm", RFC 6206, March 2011.
[1] <https://github.com/sbyx/hnetd/>
[2] <https://github.com/jech/shncpd>
Appendix A. Acknowledgments
The authors would like to thank Markus Stenberg for his help with
hnetd and the remarkable quality of his code, as well as Juliusz
Chroboczek for the new (yet untested) DNCP implementation.
Authors' Addresses
Kaiwen Jin
Ecole Polytechnique / Cisco Systems
Palaiseau,
France
Email: kaiwen.jin@master.polytechnique.org
Pierre Pfister
Cisco Systems
Paris,
France
Email: pierre.pfister@darou.fr
Jiazi Yi
LIX, Ecole Polytechnique
Route de Saclay
Palaiseau 91128,
France
Phone: +33 1 77 57 80 85
Email: jiazi@jiaziyi.com
URI: http://www.jiaziyi.com/
Jin, et al. Expires January 7, 2016 [Page 16]