serval-dna/doc/Mesh-Datagram-Protocol.md
Andrew Bettison 24f3d50fd4 Add text of CC BY 4.0 license
Add LICENSE-DOCUMENTATION.md (commons deed) and CC-BY-4.0.md (legal
text)

All docs link to local commons deed instead of CC BY 4.0 web page
2014-05-21 17:37:23 +09:30

2.8 KiB

Mesh Datagram Protocol (MDP)

Serval Project, May 2014

The Mesh Datagram Protocol is a network protocol developed for the Serval mesh network, with characteristics that make it particularly suitable for use in Ad Hoc wireless networks, which can suffer high levels of packet loss due to weak signal, interference and congestion.

MDP carries datagram packets sent from an originating node to a single destination node or broadcast to all nodes, guaranteeing only that packet contents will be verbatim if delivered. MDP is similar to UDP in terms of the service it provides to applications, but it uses per-hop retransmission and adaptive link-state routing to boost packet delivery rates, which largely immunises it from the cumulative packet loss effect typical of multi-hop wireless networks. This means that its end-to-end, multi-hop packet delivery rate remains usefully high despite adverse network conditions.

Overlay Mesh

MDP packets are transmitted over a network link using the Overlay Mesh packet format, which aggregates packets into overlay frames which are designed to minimise packet size. Each overlay frame uses back references to avoid repeating SID addresses unnecessarily within the frame, and SID abbreviation to significantly shorten SID addresses that have been used in prior frames.

MDP Interface

The Serval DNA daemon provides an interface that allows client applications to send and receive individual MDP packets on the Serval mesh network without having to construct and disassemble Overlay Mesh frames on their own.

MDP API

The MDP API is a C language API that an application can use to send and receive MDP packets over the Serval mesh network using the interface provided by the Serval DNA daemon.


Copyright 2014 Serval Project Inc.
CC-BY-4.0 Available under the Creative Commons Attribution 4.0 International licence.