Group-Centric Networking Source Code
The Group-Centric Networking (GCN) software is an instantiation of a group-centric network that enables scalable, efficient, and resilient group communications and was designed to enable a group of devices or users to communicate in a local region. The details of the protocol are described in [1] and have been previously approved for public release by DARPA.
The primary design goals of GCN are to be able to (1) efficiently and dynamically discover nodes that have interest in the data (i.e., group nodes) and (2) disseminate information between group nodes in a resilient (against packet errors, interference, and mobility) and bandwidth efficient manner.
GCN achieves this through three major high level mechanisms:
- Group discovery – Efficient discovery of the local region where group members reside via a group-discovery algorithm that is able to connect group members without the use of global control information.
- Tunable resiliency – Relay nodes are activated such that the local region is sufficiently “covered” in data by having a tunable number of redundant data relays. This allows for resiliency toward both packet loss and mobility without the need for the constant exchange of control information. The number of activated relay nodes self-adjusts in response to real-time channel conditions.
- Targeted flooding – Data can be efficiently and resiliently sent between sets of group members.
The GCN software package includes the following:
- The main GCN code in the /gcn/src folder
- GCN release notes and sample GCN scenarios with NS3 wifi and LL simple wireless tests in the ns3/ folder
[1] G. Kuperman, J. Sun, B.-N. Cheng, P. Deutsch, and A. Narula-Tam, “Group Centric Networking: A New Approach for Wireless Multi-Hop Networking to Enable the Internet of Things,” in arXiv, 2015.