This invention generally relates to communications. More particularly, this invention relates to internet communications.
The internet is in widespread use for a variety of communication purposes. As such uses increase in variety and complexity, there is an increased need for improved communication abilities.
For example, overlay networks have been used to add functionality to the internet infrastructure. Overlay networks are useful, for example, for quality of service based routing and multicast routing. Overlay networks have also been used to build distributed applications such as distributed conferencing systems.
Even though many solutions have been built on overlay networks, little improvements have been made on the underlying principles of overlay routing. Most overlay networks employ routing schemes that mimic the routing algorithms of the underlying IP network. For example, resilient overlay networks (RON) use a link state protocol that is applied to a full mesh of overlay nodes. Typically, each node in an overlay network collects data about the paths to other overlay nodes and computes a routing table based on this information. Most overlay networks need to rely on such measurements between overlay nodes on a periodic basis. Monitoring such paths and maintaining routing tables is typically required to establish an overlay network. They do provide advantages in that they enable functionality that is not possible in straightforward IP network use. For example, with an overlay network it is possible to execute application code on an overlay node and to make routing decisions that are different from IP routing. At the same time, however, there are drawbacks.
Overlay networks introduce additional management overhead as they sit on top of the IP network and, therefore, are less efficient than straightforward IP use. There are significant costs associated with the measurements required for monitoring paths in an overlay network. That process consumes resources in the overlay nodes and creates a significant amount of traffic in the network. Additionally, full mesh overlay schemes are complex, which prevents them from being scaled onto large networks with many overlay nodes. A more efficient and scalable solution is needed.
Another known technique in internet communications is a network coordinate system that maps an internet topology to a synthetic coordinate system that is based on round trip times in the internet. The distance between the coordinates of two hosts is a prediction of the actual round trip time between those hosts in the internet. Such network coordinate systems have not been used for routing purposes.
There is a need for improved communications on the internet. This invention addresses that need while avoiding the drawbacks associated with prior attempts.
An exemplary method of communicating on the internet includes routing at least one communication from an origination to a destination through at least one intermediary node using synthetic coordinates of at least one of the origination or the destination and the at least one intermediary node, respectively.
Routing internet communications based on coordinates provides an enhanced ability to efficiently direct communications. This invention takes advantage of the prediction capability of coordinate systems for routing. Some example implementations of this invention are particularly useful in overlay networks to render them more scalable for larger implementations and to alleviate the cost associated with the measurements and maintenance issues of previously known overlay networks.
In one example, selecting the intermediary node is based upon whether the coordinates of that node satisfy a selected criteria. The selected criteria in one example comprises a distance in terms of the coordinates that minimizes a total distance from the origination to the at least one intermediary node and then from the at least one intermediary node to the destination.
One example includes selecting at least one intermediary node from a plurality of candidate nodes that have a preselected relationship with at least one of the origination or the destination. The preselected relationship in some examples comprises a selected geometric pattern in terms of the coordinate system that establishes a desired relationship between the candidate nodes and at least one of the origination or the destination.
One example internet communication system comprises a plurality of overlay network nodes. A routing table based on coordinates of the nodes establishes routing used for communications between two of the nodes through at least one other, intermediary one of the overlay network nodes.
The various features and advantages of this invention will become apparent to those skilled in the art from the following detailed description. The drawings that accompany the detailed description can be briefly described as follows.
The example of
An example implementation of this invention includes using coordinate system coordinates, which can be established in a known manner, for routing communications on the internet topology. One example includes a multi-dimensional Euclidean coordinate space. The coordinate system in one example is based on round trip times between nodes in the internet. The distance between the coordinates of two hosts is a prediction of the actual round trip time between them in the internet. It is important to note that the coordinate system used in this example is a synthetic coordinate system, which is different from a geographical coordinate system. The latter is based on physical locations of a host. Prior to this invention, no one has used synthetic coordinate systems for routing communications on the internet. Using one of the example techniques of this description in an overlay network avoids the costly measurements associated with maintaining overlay networks.
One example includes using at least one intermediary node or host between the origination 22 and the destination 24. This example includes at least one intermediary node or host. Some examples include a plurality of intermediary hosts or nodes between an origination and destination of a communication. For example, routing a communication over an expansive overlay network according to an embodiment of this invention may include routing through a plurality of nodes on the overlay network. The coordinate system based routing provides an efficient use of such internet resources.
Identifying candidate intermediary nodes may be accomplished in one of several ways. One example embodiment includes selecting criteria for identifying the candidate intermediary nodes. This is shown at 46 in
One example includes identifying intermediary nodes that are close in terms of the coordinates to at least one of the origination 22 or the destination 24. One technique for accomplishing this includes using a search pattern in terms of the coordinate system with the origination 22 or the destination 24 as the center of the search pattern.
One example includes selecting at least one of the candidate intermediary nodes to be used as the intermediary node for the communication between the origination 22 and the destination 24. One example includes determining the distance from the origination 22 to each candidate intermediary node and then from the candidate intermediary nodes to the destination 24 in terms of the coordinate system. The minimum distance of the determined total distances identifies which of the candidate intermediary nodes to use for routing that particular communication. This occurs at 80 in
In some examples, there will be more than intermediary node between the origination and the destination for routing a particular communication. The same process for identifying the first intermediary node may be used for identifying a second (or more in some examples) intermediary node. One example includes using one of the previously described techniques for identifying a second intermediary node considering the first identified intermediary node as the “origination” and the destination as the destination. One example includes identifying multiple intermediary nodes recursively in this manner.
In some examples, different processes or different selection criteria are used for identifying different ones of the intermediary nodes to be used for routing a particular communication. For example, one of the intermediary nodes may be selected based upon having a short distance in coordinate terms from the origination 22 or the destination 24. Such nodes have a short distance to their co-located node. Another example approach includes identifying nodes that are close to the source and the destination. Another approach includes identifying nodes that are in the middle between the origination 22 and the destination 24.
Another example implementation of this invention includes forming application level multicast trees based upon the use of coordinates for routing. One example includes using a known clustering algorithm (e.g., k-means or hierarchical) that classifies nodes into different groups with the property that nodes that belong to the same group are close to each other in respect to the coordinate space. Each group includes a centroid. The node that is closest to the position of the centroid is located and considered the cluster-head of the group. Consequently, all nodes in a group are connected to the cluster-head of the group.
One example includes using the clustering algorithm again with the cluster-heads, only, to arrange them into groups. A new cluster-head of each of the new groups can then be determined as above. This process repeats until all of the participating nodes are connected.
One example includes modifying the algorithm for constructing multi-layer multicast trees by creating a full connected mesh within each cluster and allowing only cluster-heads to forward traffic to other cluster-heads.
As can be seen from this description, network coordinate systems provide an efficient and scaleable way to route IP traffic. The example embodiment takes advantage of the prediction of distances between two hosts or nodes provided by a coordinate system for routing communications. The example techniques can be useful to determine the distance between a potentially large number of hosts where measuring the round trip times between all hosts would involve prohibitively high cost. In the disclosed examples, each overlay network node and each host is assigned to a certain coordinate in a space, for example, such that the coordinates map the network distance between any two of the nodes or hosts. In other words, the network coordinate system provides a multi-dimensional map of the internet topology that embeds (as accurately as possible) distances between the hosts. The coordinate-based routing of example implementations of this invention does not depend on the type of coordinate system.
Executing routing decisions within a coordinate system is a fundamentally different approach compared to existing applications of coordinate systems where implementation of a routing algorithm is orthogonal to the existence of network coordinates. Given this description, those skilled in the art will be able to making routing decisions within a coordinate based routing scheme designed according to an embodiment of this invention to meet the needs of their particular situation. For example, a multicast overlay routing scheme will route traffic along a different path than a routing scheme that minimizes unicast end-to-end delay. Coordinate based overlay routing designed according to this invention provides flexibility for implementing different routing schemes for different applications utilizing the same system of network coordinates. Some examples are particularly useful for routing in overlay networks.
It is recognized that there are prediction errors inherent to coordinate systems. The identified intermediary node determined based on the network coordinates as described above may not always necessarily be the best node in the real internet topology. For some situations, an example implementation of this invention includes performing parallel measurements to the plurality of identified nodes (or at least a select first K of such nodes) to identify the one that provides the shortest path in coordinate terms. Situations where such parallel measurements may be useful include applications with relatively long lasting flows such as voice over internet protocol calls or file transfers, for example.
One example includes selecting at least four nodes to significantly increase the chances that the shortest path will be identified. It has been shown in an example simulation that when at least four nodes are selected, the changes of identifying the shortest path in coordinate terms are such that the shortest path will be identified in more than 60% of such cases. By contrast, a random selection of an intermediate node cannot identify a closest node in even 5% of such cases.
As can be appreciated from the preceding description, utilizing coordinate based routing provides more efficient overlay routing on the internet. Additionally, overlay networks can be implemented on a much broader scale because the coordinate based routing technique reduces the cost associated with the types of measurements otherwise required for maintaining overlay networks.
The preceding description is exemplary rather than limiting in nature. Variations and modifications to the disclosed examples may become apparent to those skilled in the art that do not necessarily depart from the essence of this invention. The scope of legal protection given to this invention can only be determined by studying the following claims.