The task was to create a
protocol which was to be as easy, as small and as fast as possible. It seemed sensible to split the development in several phases and implement complex functions using an iterative process:
Version one In the first phase, the routing algorithm was implemented and tested for its practicality and suitability for the task at hand. For the sending and receiving of originator-messages (information about existence), the
UDP port 1966 was chosen.
Version two The version one algorithm made a significant assumption: As soon as a node receives existence data from another node, it assumes it can also send data back. In radio networks however, it may very well be that only one-way communication is possible, i.e., asymmetric links. A mechanism was incorporated into the protocol to allow for this and to solve the arising problems. The mechanism enables the node to determine whether a neighboring node provides bidirectional communication. Only bidirectional nodes are being considered part of the network, and one-way nodes are no longer fully included.
Version three The greatest innovation in this version is B.A.T.M.A.N.'s support of multiple
network devices. A computer or router running B.A.T.M.A.N. can be deployed in a central location, such as a tall building, and have several wired or wireless network interfaces attached to it. When so deployed, B.A.T.M.A.N. can relay network data in more than one direction without any retransmission delay. Certain unusual phenomena and special circumstances could appear during the determination of the best route through the network. These have been tackled and counteracted to prevent circular routing (which can prevent data reaching its destination). A node can inform the network that it provides access to the Internet. Other nodes use this information to evaluate whether there is a connection to the Internet close to them and how much
bandwidth is available. They can either use a specific gateway or allow B.A.T.M.A.N. to determine which gateway to use, based on criteria such as connection speed. Announcing devices not running B.A.T.M.A.N. themselves was also included in this version. Usually, this method is used to connect home networks to mesh-networks. An antenna installation on the roof will connect to the wireless network through B.A.T.M.A.N. and the rest of the building will simply be announced, thus also be reachable. This version of B.A.T.M.A.N. has been shown to exhibit high levels of stability but slightly slow convergence times in real-world conditions; this is confirmed by theoretical analysis.
BMX6 BatMan-eXperimental (BMX) aims to approximate the real exponent by also sending OGMs (originator messages) multiple times in independent broadcast data grams. It originated as an independent branch of BATMAN developed by Axel Neumann. An extended version that incorporates
securely-entrusted multi-topology routing (SEMTOR) is called BMX7.
IV Version four implements an algorithm to better detect quality of transmissions in abnormal link situations. Originator messages are updated to incorporate this data, enabling other nodes to better sense quality of asymmetric connections. This new metric is called "Transmit Quality (TQ)".
V Two main changes were introduced with the fifth version: "separating neighbor discovery from mesh routing" and a change to a throughput-based metric. A new neighbor discovery protocol, the Echo Location Protocol (ELP), was introduced. Separating neighbor discovery from mesh routing allows for different intervals to be used. Metrics flooded into the mesh should not be updated that often, but local connectivity changes can be adopted faster. B.A.T.M.A.N. IV used packet loss as the mesh-wide metric. With B.A.T.M.A.N. V, the metric changed to a throughput-based one. This improves the overall performance of the mesh when there are very performant links with low packet loss. In this case, the high-performance links are preferred over the slow but reliable links. == Public persona ==