An overlay network is a communication network constructed on top of an another communication network. The nodes of the overlay network are interconnected with logical connections, which form an overlay topology. Two overlay nodes may be connected with a logical connection despite being several hops apart in the underlying network. Overlay networks may define their own overlay address space which is used for efficient message routing in the overlay topology.
When a distributed application is deployed in a computer network, the individual nodes on which the application is running need to be able to discover and communicate with one another. A solution to this problem is the overlay network. The overlay network interconnects all the application nodes and provides the basic communication primitives such as flooding, random walks or point-to-point overlay message routing and multicast.
Overlay networks are typically deployed on top of the Internet and by far the most...