An overlay network is a computer network which is built on the top of another network. Nodes in the overlay can be thought of as being connected by virtual or logical links, each of which corresponds to a path, perhaps through many physical links, in the underlying network. For example, distributed systems such as cloud computing, peer-to-peer networks, and client-server applications are overlay networks because their nodes run on top of the Internet. The Internet was originally built as an overlay upon the telephone network while today (through the advent of VoIP), the telephone network is increasingly turning into an overlay network built on top of the Internet.
Uses of overlay networks
Overlay networks are used in telecommunication because of the availability of digital circuit switching equipment and optical fiber. Telecommunication transport networks and IP networks (that combined make up the broader Internet) are all overlaid with at least an optical layer, a transport layer and an IP or circuit layers (in the case of the PSTN).
Enterprise private networks were first overlaid on telecommunication networks such as frame relay and Asynchronous Transfer Mode packet switching infrastructures but migration from these (now legacy) infrastructures to IP based MPLS networks and virtual private networks started (2001~2002).
From a physical standpoint overlay networks are quite complex (see Figure 1) as they combine various logical layers that are operated and built by various entities (businesses, universities, government etc.) but they allow separation of concerns that over time permitted the build up of a broad set of services that could not have been proposed by a single telecommunication operator (ranging from broadband Internet access, voice over IP or IPTV, competitive telecom operators etc.).
Over the Internet
Nowadays the Internet is the basis for more overlaid networks that can be constructed in order to permit routing of messages to destinations not specified by an IP address. For example, distributed hash tables can be used to route messages to a node having a specific logical address, whose IP address is not known in advance.
Overlay networks have also been proposed as a way to improve Internet routing, such as through quality of service guarantees to achieve higher-quality streaming media. Previous proposals such as IntServ, DiffServ, and IP multicast have not seen wide acceptance largely because they require modification of all routers in the network. On the other hand, an overlay network can be incrementally deployed on end-hosts running the overlay protocol software, without cooperation from ISPs. The overlay has no control over how packets are routed in the underlying network between two overlay nodes, but it can control, for example, the sequence of overlay nodes a message traverses before reaching its destination.
For example, Akamai Technologies manages an overlay network which provides reliable, efficient content delivery (a kind of multicast). Academic research includes End System Multicast and Overcast for multicast; RON (Resilient Overlay Network) for resilient routing; and OverQoS for quality of service guarantees, among others.
For example, Virtela Technology Services provides an overlay network in 90+ countries on top of 500+ different underlying telecom providers.
List of overlay network protocols
Overlay network protocols based on TCP/IP include:
- Distributed hash tables (DHTs), such as KAD and other protocols based on the Kademlia algorithm, for example.
- XMPP: the routing of messages based on an endpoint Jabber ID (Example: nodeId_or_userId@domainId\resourceId) instead of by an IP Address
- Many peer-to-peer protocols including Gnutella, Gnutella2, Freenet, I2P and Tor. (Examples: Limewire, Shareaza, μTorrent, Tribler, etc.)
- Solipsis: a France Télécom system for massively shared virtual world
- HyParView: a highly robust unstructured overlay for gossip broadcast
Overlay network protocols based on UDP/IP include:
- List of overlay network implementations, July 2003
- Resilient Overlay Networks
- Overcast: reliable multicasting with an overlay network
- OverQoS: An overlay based architecture for enhancing Internet QoS