System and method for high-performance delivery of Internet messages by selecting first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination
AssigneeNetli, Inc.
InventorsAdam J. Grove, Michael Kharitonov, Alexei Tumarkin
The invention uses a distributed network of specialized nodes of different types dispersed around the Internet. In operation, web client's requests are directed to a node of a first type chosen to be close to the client, and the client communicates with this node using a standard protocol such as HTTP. This first node receives the request, and locates a node of a second type, chosen to be an optimal initial relay on a path to the web server. The first node may communicates the request to the second node using a different, specialized, protocol that has been designed for improved performance and specifically to reduce traffic volume and to reduce latency. The second node receives communication from the first node using this specialized protocol, and relays it to an optimally chosen third node using the same, or possibly different internode communication protocol. This process may repeat over additional internode hops until finally, the last node receives the request from the previous network node, converts it back to a standard protocol such as HTTP, and forwards the request to the server. Responses from server to client can take the same or similar reverse route, and can also be carried over specialized protocols between the network nodes. In addition, these nodes can employ other techniques such as web caches that avoid or improve some communication steps.
Drawings
Claims24
A method for communicating an Internet message between a source and a destination over the Internet, comprising:
selecting a node of a first type, by determining a measure of communications performance for a sub-link between the source and a candidate node of a first type, to optimize the measure of communications performance for the sub-link between the source and the candidate node of a first type;
selecting a node of a second type, by determining a measure of communications performance for a sub-link between the destination and a candidate node of a second type, to optimize the measure of communications performance for the sub-link between the destination and the candidate node of a second type;
communicating an Internet message from the source to the selected node of a first type using a first communication protocol;
communicating the Internet message from the selected node of a first type to the selected node of a second type using a second communication protocol and via at least one node of a third type, wherein the second communication protocol is designed to be of higher performance than a prevailing standard communication protocol used by the source;
and
communicating the Internet message from the selected node of a second type to the destination using a third communication protocol.
3 more elements
A method for communicating an Internet message between a source and a destination over the Internet, comprising:
selecting a node of a first type, by determining a measure of communications performance for a sub-link between the source and a candidate node of a first type, to optimize the measure of communications performance for the sub-link between the source and the candidate node of a first type;
communicating an Internet message from the source to the selected node of a first type using a first communication protocol;
communicating the Internet message from the selected node of a first type to a node of a second type using a second communication protocol and via at least one node of a third type, wherein the second communication protocol is designed to be of higher performance than a prevailing standard communication protocol used by the source;
and
communicating the Internet message from the node of a second type to the destination using a third communication protocol.
2 more elements
A system for communicating an Internet message from a source to a destination over the Internet, comprising:
a plurality of nodes including one or more nodes of a first type, one or more nodes of a second type and one or more nodes of a third type;
a first selector to select a node of a first type from the one or more nodes of a first type and communicate the selection to the source, wherein the first selector selects the node of a first type to increase the performance of communicating the Internet message between the source and the destination;
and
a second selector to selects a node of a second type from the one or more nodes of a second type and communicate the selection to a selected node of a first type, wherein the second selector selects the node of a first type to increase the performance of communicating the Internet message between the source and the destination;
wherein each node of a first type comprises:
a receiver to receive the Internet message from the source using a first communication protocol;
a transmitter to communicate the Internet message to a selected node of a second type using a second communication protocol and via at least one node of a third type, wherein the second communication protocol is designed to be of higher performance than a prevailing standard communication protocol used by the source;
each node of a second type comprises:
a receiver to receive the Internet message from a selected node of a first type using the second communication protocol and via at least one node of a third type;
and
a transmitter to communicate the Internet message to the destination using a third communication protocol;
and
each node of a third type comprises:
a receiver to receive the Internet message from a node using the second communication protocol;
and
a transmitter to communicate the Internet message to another node using the second communication protocol.
13 more elements
A system for communicating an Internet message from a source to a destination over the Internet, comprising:
a plurality of nodes including one or more nodes of a first type, one or more nodes of a second type and one or more nodes of a third type;
and
a selector to select a node of a first type from the one or more nodes of a first type and communicate the selection to the source, wherein the selector selects the node of a first type to increase the performance of communicating the Internet message between the source and the destination;
wherein each node of a first type comprises:
a receiver to receive the Internet message from the source using a first communication protocol;
a transmitter to communicate the Internet message to a node of a second type using a second communication protocol and via at least one node of a third type, wherein the second communication protocol is designed to be of higher performance than a prevailing standard communication protocol used by the source;
and
each node of a second type comprises:
a receiver to receive the Internet message from a selected node of a first type using the second communication protocol and via at least one node of a third type;
and
a transmitter to communicate the Internet message to the destination using a third communication protocol;
and
each node of a third type comprises:
a receiver to receive the Internet message from a node using the second communication protocol;
and
a transmitter to communicate the Internet message to another node using the second communication protocol.
13 more elements
A system for communicating an Internet message from a source to a destination over the Internet, comprising:
a plurality of nodes including one or more nodes of a first type, one or more nodes of a second type, and one or more nodes of a third type;
and
a selector to select a node of a first type from the one or more nodes of a first type and communicate the selection to the source, and to select a node of a second type from the one or more nodes of a second type and provide the selection to a selected node of a first type;
wherein each node of a first type comprises:
a receiver to receive the Internet message from the source using a first communication protocol;
and
a transmitter to communicate the Internet message to a selected node of a second type using a second communication protocol and via at least one node of a third type, wherein the second communication protocol is designed to be of higher performance than a prevailing standard communication protocol used by the source;
and
each node of a second type comprises:
a receiver to receive the Internet message from a selected node of a first type using the second communication protocol and via at least one node of a third type;
and
a transmitter to communicate the Internet message to the destination using a third communication protocol;
and
each node of a third type comprises:
a receiver to receive the Internet message from a node using the second communication protocol;
and
a transmitter to communicate the Internet message to another node using the second communication protocol.
14 more elements
A system for communicating an Internet message from a source to a destination over the Internet, comprising:
a plurality of nodes including one or more nodes of a first type, one or more nodes of a second type and one or more nodes of a third type;
and
a selector to select a node of a second type from the one or more nodes of a second type and provide the selection to a node of a first type;
wherein each node of a first type comprises:
an interceptor to intercept the Internet message from the source using a first communication protocol;
a transmitter to communicate the Internet message to a selected node of a second type using a second communication protocol and via at least one node of the third type, wherein the second communication protocol is designed to be of higher performance than a prevailing standard protocol used by the source;
each node of a second type comprises:
a receiver to receive the Internet message from a selected node of a first type using the second communication protocol and via at least one node of a third type;
and
a transmitter to communicate the Internet message to the destination using a third communication protocol;
and
each node of a third type comprises:
a receiver to receive the Internet message from a node using the second communication protocol;
and
a transmitter to communicate the Internet message to another node using the second communication protocols
wherein the selector selects a node of a second type to maximize the performance gain of using the second communication protocol.
13 more elements
A system for communicating an Internet message from a source to a destination over the Internet, comprising:
a plurality of nodes including one or more nodes of a first type, one or more nodes of a second type and one or more nodes of a third type;
and
a first selector to select a node of a first type from the one or more nodes of a first type and communicate the selection to a redirector;
a second selector to select a node of a second type from the one or more nodes of a second type and provide the selection to a selected node of a first type;
the redirector to redirect the Internet message from the source to a selected node of a first type;
wherein each node of a first type comprises:
a receiver to receive the Internet message from the redirector using a first communication protocol;
a transmitter to communicate the Internet message to a selected node of a second type using a second communication protocol and via at least one node of a third type, wherein the second communication protocol is designed to be of higher performance than a prevailing standard communication protocol used by the source;
each node of a second type comprises:
a receiver to receive the Internet message from a selected node of a first type using the second communication protocol and via at least one node of a third type;
a transmitter to communicate the Internet message to the destination using a third communication protocol;
and
each node of a third type comprises:
a receiver to receive the Internet message from a node using the second communication protocol;
and
a transmitter to communicate the Internet message to another node using the second communication protocol;
wherein the first selector selects a node of a first type and the second selector selects a node of a second type to maximize the performance gain of using the second communication protocol.
14 more elements
A system for communicating an Internet message from a source to a destination over the Internet, comprising:
a plurality of nodes including one or more nodes of a first type, one or more nodes of a second type, and one or more nodes of a third type;
and
a selector to select a node of a first type from the one or more nodes of a first type and communicate the selection to a redirector;
the redirector to redirect the Internet message from the source to a selected node of a first type;
wherein each node of a first type comprises:
a receiver to receive the Internet message from the redirector using a first communication protocol;
a transmitter to communicate the Internet message to a node of a second type using a second communication protocol and via at least one node of the third type, wherein the second communication protocol is designed to be of higher performance than a prevailing standard communication protocol used by the source;
and
each node of a second type comprises:
a receiver to receive the Internet message from a selected node of a first type using the second communication protocol and via at least one node of a third type;
and
a transmitter to communicate the Internet message to the destination using a third communication protocol;
and
each node of a third type comprises:
a receiver to receive the Internet message from a node using the second communication protocol;
and
a transmitter to communicate the Internet message to another node using the second communication protocol;
wherein the selector selects a node of a first type to maximize the performance gain of using the second communication protocol.
15 more elements
A method for communicating an Internet message between a source and a destination, comprising:
selecting a node of a first type from one or more nodes of a first type to increase the performance of communicating the Internet message between the source and the destination, wherein the selected node of a first type is close to the source;
selecting a node of a second type from one or more nodes of a second type to increase the performance of communicating the Internet message between the source and the destination, wherein the selected node of a second type is close to the destination;
selecting a node of a third type from one or more nodes of a third type to increase the performance of communicating the Internet message between the source and the destination;
communicating an Internet message from the source to the selected node of a first type using a first communication protocol;
communicating the Internet message from the selected node of a first type to the selected node of a third type using a second communication protocol, the second communication protocol being a high performance protocol;
communicating the Internet message from a node of a third type to the selected node of a second type using the second communication protocol;
and
communicating the Internet message from the selected node of a second type to the destination using a third communication protocol.
5 more elements
A system for communicating Internet messages between a source and a destination, comprising:
a plurality of nodes of a first type;
a plurality of nodes of a second type;
a plurality of nodes of a third type;
and
a selector to select a node of a first type;
wherein each of the plurality of nodes of a first type comprises:
a cache for storing content;
a receiver to receive an Internet message from the source using a first communication protocol;
and
a transmitter to send an Internet message to a node of a second type or a node of a third type using a second communication protocol, the second communication protocol being a high performance communication protocol;
wherein each of the plurality of nodes of a third type comprises:
a receiver to receive an Internet message from a node of a first type or a node of a third type using the second communication protocol;
and
a transmitter to send an Internet message to a node of a third type or a node of a second type using the second communication protocol;
wherein each of the plurality of nodes of a second type comprises:
a receiver to receive an Internet message from a node of a first type or a node of a third type using the second communication protocol;
and
a transmitter to send an Internet message to the destination using a third communication protocol;
wherein the selector selects a node of a first type to maximize the performance gain of using the second communication protocol.
10/241,795Filed 10 Sep 2002 · continuation in part
Priority
24 Mar 2000
Granted
28 Mar 2006
Term ended
12 May 2020Estimated · howhide20 years from earliest known nonprovisional domestic filing plus recorded patent term adjustment, including 49 days of adjustment. Maintenance-fee lapses, terminal disclaimers and statutory extensions have not been checked. The continuity chain may be incomplete; this is not an enforceability determination.
Server selection for load balancing: based on network conditions
Life of this patent
Term ended 12 May 2020 (estimated)
Priority24 Mar 2000
Filed10 Sep 2002
Granted28 Mar 2006
Term ended12 May 2020
Priority24 Mar 2000
Granted28 Mar 2006
Term ended12 May 2020
Priority claimedParent application 09/534,321
Application filedUS 10/241,795
Assigned to Netli, Inc.assignment of assignor's interest
GrantedUS 7,020,719 B1
Term endedEstimated, includes 49 days of adjustment
Description12,229 words
Summary3,672 words
#The invention relates to communication between web clients, such as browsers, and web servers, where the communication is carried at least in part over the Internet or any other network layer in which bandwidth usage and communication latency are of concern.
#Today, improving the performance of Internet communication is of major technological and commercial concern. Investment in improving the Internet network infrastructure is estimated to become a $1.3 trillion dollar industry by 2003 (Source: Nortel Industries press release Jan. 31, 2000). It has been estimated that many web users will not tolerate a delay in downloading a web page of more than about 8 seconds, and that the current value of e-commerce sales at risk because of slow download speeds is $4.35 billion per year. (Source: Zona Research report “The need for speed”, abstract available http://www.zonaresearch.com/info/press/99-jun30.htm). In this climate there is pressing demand for ways to improve web performance, and no simple or obvious techniques are overlooked.
#The invention presented here is a technique that offers significant Internet performance gains, can be deployed at relatively modest cost in less than a year, and needs neither major infrastructure changes nor changes to end-user software.
Detailed description8,557 words
#As shown in the drawing, the invention comprises a distributed collection 100 of specialized computers or network nodes, of three types hereafter called C-nodes 110, I-nodes 120 and S-nodes 130 (although it is possible that the functionality of any two or even all three node types may be present in a single physical device). As discussed below, certain embodiments of the invention include other components in addition to C-nodes, I-nodes and S-nodes such as clients 140 and servers 150. These nodes may also be embodied as computer software executing on a general-purpose computer that also serves other purposes, or may be embodied as a tightly-coupled cluster of computers. C-nodes are distributed throughout the network with the intent that most Internet users will be close, in network terms, to at least one C-node. In particular, C-nodes may be placed on Internet Service Providers' (ISP) premises, on large corporate networks, on Internet backbone networks, and elsewhere. Correct operation of the invention does not depend on how well the C-nodes are located, although the benefits that are delivered by the invention may depend on this.
#I-nodes are distributed within the interior of the network with the intent of establishing different controlled paths between C-nodes and S-nodes. These paths, determined by the choice of different I-nodes, can be constantly monitored using specialized software running on I-nodes. In particular, I-nodes may be placed to isolate slower links, or links that are more prone to packet loss. Correct operation of the invention does not depend on particular locations of the I-node, although the extent of the benefits that are delivered by the invention may vary depending on the locations chosen. In a preferred embodiment, the invention includes or uses means such that certain web traffic, including requests for web content, is communicated to a C-node instead of being communicated directly to the server that would ordinarily deliver such content. These means should have the property that the chosen C-node for any request be close to the originator of the request (hereafter, the “client”). The notion of closeness used can include any combination of such metrics as bandwidth capacity, bandwidth cost, latency, security, administrative boundaries, administrative convenience, current congestion on various network paths, and geographic proximity, although other factors may also be taken into account. However correct operation of the invention does not depend on which notion of closeness is used, or how close the chosen C-node actually is.
#Regardless of which means are chosen, we call the component of the system that arranges for traffic to be sent to a close C-node, or automatically pass through such a C-node, the redirection system. In the following, we list six means, numbered R1 through R6, that can be used within the redirection component of our invention. However, this list is not complete and the invention contemplates other means that can be used instead. Finally, as anyone skilled in the art will appreciate, many combinations or variants of methods in the following list can serve as redirection means.