UnetStack Handbook

Second edition – v7.0.1

Author

Mandar Chitre

Published

July 9, 2026

Preface

What is this book about?

About 71% of Earth’s surface is covered with water, and about 97% of the water is in our oceans. Although the ocean plays a critical role in everything from the air we breathe to daily weather and climate patterns, we know very little about it. To really understand our oceans, we need a way to sense and observe the numerous complex processes that drive the ocean environment, and to report the data collected back to our data centers. While cabled ocean observatories have been established in a few locations, they are too expensive to set up and maintain for large-scale data collection across the vast oceans.

Over the past few decades, wireless communication technology has percolated into every aspect of our lives, and we have come to take it for granted. This technology forms the bedrock of wireless sensor networks, allowing us to gather data with ease. Most of the wireless communication technology we use relies on electromagnetic waves (e.g. radio waves, visible light) that get rapidly absorbed by water. Hence, the technology is ineffective for underwater communication, except at very short distances or extremely low data rates. Most underwater communication systems today use acoustic waves, which can travel long distances in the right conditions. At short distances in clear waters, optical communication systems are sometimes used for high-speed communications. Although these communication technologies can be leveraged to establish point-to-point communication links, these links do not integrate well with networking technology available today.

The Unet project strives to develop technologies that allow us to build communication networks that extend underwater, be it via acoustic, optical, or even wired links. Some nodes in such networks may be above water, while others are underwater. In this handbook, we explore how to build such networks using UnetStack, an agent-based network technology that was developed in the Unet project.

Who should read this book?

This book is intended for readers interested in deploying networks that extend underwater, or developing technology or protocols for use in underwater networks. Part I of the book provides introduces foundational concepts, and is recommended for all readers. Part II is aimed at readers who wish to deploy and maintain networks that extend underwater. Parts III and IV are aimed at application developers and software engineers who wish to integrate with UnetStack-based networks. They are also relevant to researchers and engineers who wish to develop, simulate and test novel underwater networking protocols or communication techniques.

The book assumes that readers have a basic understanding of traditional networking technology. While expert software development skills are not required to benefit from this book, familiarity with scripting or programming is essential. Readers with knowledge of Java, Groovy, Python and/or Julia will find it easy to follow the examples in the text, but even readers without prior knowledge of these languages should be able to pick up necessary skills along the way.

Second edition

The first edition of the UnetStack handbook (latest v3.3.0) was written for UnetStack v3. Since then, a lot has changed in UnetStack – while the basic philosophy of the stack has not changed, a lot of small (but some breaking) changes went in to make UnetStack much more performant, easier to use and more robust to develop against. UnetStack v4 introduced support for Julia containers and agents for computationally heavy tasks. UnetStack v5 expanded the framework application programming interface (API) to formalize device information and direction of arrival services, and to make some breaking improvements to the API. It also updated the default stack to be more performant (in terms of robustness and efficiency of underwater communication) and have support for new quality of service (QoS) features. UnetStack v6 introduced a common topic for datagram delivery, making it easier to manage datagrams from numerous agents. UnetStack v7 improved and stabilized the API. There was no community release from UnetStack v4 to v6, although many commercial and research devices used these versions. We now have a community release for UnetStack v7. This second edition of the UnetStack handbook targets UnetStack v7 and above.