Wave Net
A network stack/protocol for ~ real-time communication across multiple networks, created by WaveRF, Corp.
This documentation is currently a work-in-progress and is under active development. Please check back often for updates.
Introduction
Current existing network stacks and protocols are designed for specific networks and use-cases. For example, on the Application Layer, HTTP is great for the internet, but not for direct peer-to-peer decentralized communication or across lower bandwidth networks like LoRa. On the Network Layer, IP routing works great for the defined structure of the internet, established by authoritative bodies, but not for ad-hoc networks.
We believe that the future of communication will be a combination of multiple networks, from decentralized networks (like IPFS, I2P, and other DHTs), to Overlay Networks (like Tor or XMPP), to direct peer-to-peer networks (like Meshtastic or Open Garden). With all of these networks competing, especially across multiple mediums, network partitions or islands (isolated connected graphs in graph theory) are a near certainty to occur. Ideally, we would like to have a network stack that can bridge these islands and allow for seamless communication across all networks, including centralized networks like the internet through cellular or satellite for global coverage and high availability/reliability.
This is what Wave Net aims to solve, as a network stack that can bridge these islands and allow for seamless communication across all networks and mediums, regardless of whether they are decentralized, centralized, peer-to-peer, or mesh.
Documentation Overview
To best organize the documentation of Wave Net, we have broken it down into sections that roughly follow the OSI reference model or TCP/IP layer model. This is not a strict adherence to either model, but rather a way to organize the documentation in a way that makes sense when referencing conventional network stacks and protocols. We are, however, referencing the OSI model than the TCP/IP model, as the OSI model is more abstract and can be applied to a wider range of networks and mediums. Below is a diagram of the OSI vs TCP/IP model for reference:
Compared to these models, our model will:
- Split the functionality of the OSI model's Session Layer / Layer 5 into the Presentation Layer / Layer 6 and the Transport Layer / Layer 4, as we want message segmentation to be handled as part of the packetization process and the ACKs and retransmissions to be handled at the Transport Layer / Layer 4.
- Split the Data Link Layer into two sub-layers (as per IEEE 802): the Logical Link Control (LLC) Layer and the Medium Access Control (MAC) Layer, as we want the Forward Error Correction (FEC) and Automatic Repeat Requests (ARQs) to be done in a separate abstraction layer from the Carrier Sense Multiple Access (CSMA).
- Move most of the lower layers of MAC to the Physical Layer / Layer 1, as we want the lowest layer to be the only layer that interacts/depends on the medium type directly (apart from dynamic routing, bit rates, etc.).
So, compared to the OSI and TCP/IP models, our model will look like this:
Our documentation, therefore, will be broken down by layer, with each layer having its own documentation.