Spines
Overview
Spines is a generic messaging infrastructure that provides transparent unicast, multicast and anycast communication over dynamic, multi-hop networking environments without the need for expensive router programming environments or low level router coding. It provides automatic reconfiguration and network flexibility required for research and production deployments.
Some of the main usages of Spines are:
- Create generic network topologies with dynamic link characteristics (bandwidth, latency, loss rate, burstiness) on regular computer clusters.
- Deploy overlay networks in the Internet, to achieve additional services not available in the current networking infrastructure (e.g. overlay multicast), as well as improved performance for existing services.
- Create a logical LAN over unorganized, multi-hop hybrid and wireless networks. As an example, it provides the communication infrastructure between wireless access points in SMesh, a completely transparent wireless mesh network with instantaneous handoff.
- Deploy an intrusion-tolerant overlay network on existing Internet (IP) infrastructure to overcome attacks and compromises in both the underlying network and overlay itself. The intrusion-tolerant overlay provides performance guarantees (i.e., strict timeliness or strict reliability) even while under attack. See Intrusion Tolerant Documentation for more details.
Spines instantiates virtual router nodes on participating computers and creates virtual links between these nodes. Spines uses best-effort links, as well as reliable and soft real-time links between the nodes for store and forward capabilities. Packets are routed automatically through the network topology. The Spines topology can be dynamically adjusted, and nodes select their routing based on various metrics including hop distance, latency or packet loss.
In order to use Spines, applications use an API almost identical to the Unix Socket interface. Virtually any socket-based application can be easily adapted to work with Spines. The Spines API provides TCP and UDP-like functions for both reliable and best effort point to point communication, and also provides multicast functionality in a transparent way, very similar to IP Multicast.
Spines was created by Yair Amir, Claudiu Danilov, John Schultz, Daniel Obenshain, Thomas Tantillo, and Amy Babay. It is currently developed by the Distributed Systems and Networks Lab at Johns Hopkins University and at Spread Concepts, LLC.
Spines may be freely used and distributed under some conditions. Please review the license agreement for more details.
Releases
- Version 5.5 - Dec 23, 2020
- Version 5.4 - Nov 26, 2018
- Version 5.3 - Mar 9, 2018
- Version 5.2 - May 17, 2017
- Version 5.1 - May 17, 2016
- Version 5.0 - Jan 26, 2015
- Version 4.0 - Sep 4, 2013
- Version 3.2 - May 15, 2009
- Version 3.1 - Mar 21, 2008
- Version 3.0 - May 31, 2007
- Version 2.2 - Dec 20, 2005
- Version 2.1 - Jan 18, 2005
- Version 2.0 - Dec 14, 2003
- Version 1.0 - Jan 17, 2003
Complete Change Log.
Related publications
- Timely, Reliable, and Cost-Effective Internet Transport Service using Dissemination Graphs
In Proceedings of the IEEE 37th International Conference on Distributed Computing Systems (ICDCS), Atlanta GA, June 2017, pp. 1-12.
Amy Babay, Emily Wagner, Michael Dinitz, Yair Amir - Structured Overlay Networks for a New Generation of Internet Services
In Proceedings of the IEEE 37th International Conference on Distributed Computing Systems (ICDCS), Vision track, Atlanta GA, June 2017. Invited paper.
Amy Babay, Claudiu Danilov, John Lane, Michal Miskin-Amir, Daniel Obenshain, John Schultz, Jonathan Stanton, Thomas Tantillo, Yair Amir -
Practical Intrusion-Tolerant Networks
In Proceedings of the IEEE 36th International Conference on Distributed Computing Systems, Nara, Japan, June 2016, pp. 45-56.
Daniel Obenshain, Thomas Tantillo, Amy Babay, John Schultz, Andrew Newell, Md. Endadul Hoque, Yair Amir, Cristina Nita-Rotaru -
Intrusion-Tolerant Cloud Monitoring and Control
In Proceedings of the 2012 Workshop on Large-Scale Distributed Systems and Middleware (LADIS 2012), Madeira, Portugal, July 2012. Invited paper.
Daniel Obenshain, Thomas Tantillo, Andrew Newell, Cristina Nita-Rotaru, Yair Amir -
An Overlay Architecture for High Quality VoIP Streams
IEEE Transactions on Multimedia, vol. 8, no. 6, 2006, 1250-1262.
Yair Amir, Claudiu Danilov, Stuart Goose, David Hedqvist, Andreas Terzis -
Fast Handoff for Seamless Wireless Mesh Networks
In Proceedings of the 4th International Conference on Mobile Systems, Applications and Services (Uppsala, Sweden, June 19 - 22, 2006). MobiSys '06. ACM, New York, NY, 83-95.
Yair Amir, Claudiu Danilov, Michael Hilsdale, Raluca Musaloiu-Elefteri, Nilo Rivera -
1-800-OVERLAYS: Using Overlay Networks to Improve VoIP Quality
In the Proceedings of the 15th International Workshop on Network and Operating Systems Support for Digital Audio and Video (NOSSDAV), Skamania, Washington, June 13th-14th, 2005.
Yair Amir, Claudiu Danilov, Stuart Goose, David Hedqvist, Andreas Terzis -
Reliable Communication in Overlay Networks
In the Proceedings of the IEEE International Conference on Dependable Systems and Networks (DSN03), San Francisco, June 2003.
Yair Amir and Claudiu Danilov. -
High Performance, Robust, Secure and Transparent Overlay Network Service
In FuDiCo 2002: International Workshop on Future Directions in Distributed Computing , Bertinoro(Forli), Italy, June 3-7 2002.
Yair Amir, Claudiu Danilov, and Cristina Nita-Rotaru.