Software-defined networking takes a big leap forward in underwater communications
Commonly cited challenges in underwater networks include low bandwidth, long propagation delay, half-duplex nature of the links, high packet loss, and time-variability. To deploy successful networks in the face of such challenges, cross-layer information sharing, low-bandwidth design and accurate transmission/reception timing can be critical. Traditional layered network stacks provide good separation of concern, but result in sub-optimal protocols for underwater networks.
UnetStack, a Java/Groovy-based software-defined underwater network stack, takes a different approach. It consists of a collection of software agents that provide well-defined services to allow good separation of concern while allowing information to be shared, services to be provided, and behaviors to be negotiated between different agents. The resulting solution is flexible and allows software-defined underwater networks to be rapidly designed, simulated, tested and deployed.
UnetStack has been developed over several years, and tested through numerous underwater network experiments at sea. A community version of UnetStack has recently been made freely available for academic and research use. This version allows rapid development and simulation of underwater networking protocols. Once protocols are developed and testing using this framework, they can be deployed without the need for porting in any UnetStack-compliant underwater modem for field use.