INCREASED DATA TRANSFER RATE METHOD AND SYSTEM FOR REGULAR INTERNET USER
Method for increasing data transfer rates for regular net-work users, including the procedures of generating a WAN optimization network (WANON), in a network, defining a client, for requesting data, and an origin, from which data is requested, the WANON determining a best requesting node for the client based on a data request, configuring the client to forward the data request to the WANON, the client requesting data by forwarding the data request to the requesting node, the WANON determining a best origin node for retrieving the requested data from the origin according to a network identifier resolution of the origin, the requesting node forwarding the data request to the origin node using WAN optimization, the origin node retrieving the requested data from the origin and transferring the retrieved data to the requesting node using WAN optimization, the requesting node transferring the retrieved data to the client, and updating the WANON.
Latest TERIDION TECHNOLOGIES LTD. Patents:
The disclosed technique relates to WAN optimization, in general, and to methods and systems for providing significantly increased data transfer rates for regular Internet users without specialized WAN optimization hardware, in particular.
BACKGROUND OF THE DISCLOSED TECHNIQUEWide area networks (WANs) connect computers together which are spread out over large distances. This may include computers located in different countries and/or continents. In general, WANs such as the Internet are spread out over continents, with computers, servers and nodes in the WAN being interconnected via a gigantic network of cables. Except for Antarctica, in which computers situated on that continent connect to the Internet via a satellite connection, all other computers connected to the Internet around the world are connected via cables. These cables may be telephone lines, power lines, a dedicated fiber optic network, underground sea cables and the like. For example, for communication between continents separated by oceans, such as from Asia to North America, data is transferred via underground sea cables connecting the two continents. Within a given landmass, such as continents like Europe and Australia, data may be transferred between computers via existing networks of cables, such as power lines or telephone lines, or via newer cables setup specifically for high data transfer rates, such as fiber optics lines like the National Broadband Network being deployed in Australia. In general, transferring data via cables is preferred to transferring data via satellite connection as transfer rates are significantly higher using cables, cables are less prone to interference and are not affected by the weather. Reference is now made to
The fastest way to transfer data between two computers or two nodes in a network are for the computers or nodes to be connected directly. However, unless the computers are physically located in the same building, the computers will most probably connect via a plurality of nodes physically located between the computers. In WANs such as the Internet, the flow of data from one computer to another is dictated by the physical layout of cabling connecting the computers as well as the selected nodes via which different Internet Service Providers (herein abbreviated ISPs) transfer data nationally and internationally. For example, Israel does not have a direct underground sea cable connection with the United States, although it does have a direct underground sea cable connection to Europe via the MedNautilus and JONAH underground sea cable networks. Therefore, computers in Israel which access websites located on servers in the United States connect to those servers in the United States via nodes located in Europe.
Reference is now made to
Node 22 may represent a router belonging to an Israeli ISP whereas node 24 may represent a server belonging to an American ISP. An Internet user in Israel (not shown) may be browsing the Internet via node 22 and may select to view a website or download data, such as a movie, located in the United States via node 24. When the Internet user in Israel makes a request for the data to be transferred to her computer, node 22 must connect with node 24. As shown in
As shown and described in
In general, WANs are characterized by significantly smaller bandwidth and lower data transfer efficiencies as compared to local area networks (herein abbreviated LANs). As the world has grown more interconnected, via the Internet and other national and international WANs, and as companies have started to have offices in multiple countries, there has been a development of systems and methods for increasing the data transfer rates between nodes in such expansive WANs. For example, an airline company, which may have over a hundred branch offices around the world and thus thousands of nodes in its network, may have a WAN, such as an intranet, connecting all the nodes in all its branch offices to a central server for airline bookings. Whereas within a landmass (such as Europe) or a country (such as the United States) the airline company may deploy a private dedicated WAN with its own proprietary cables to increase the data transfers rates between nodes in that landmass or country and a server located in that landmass or country, nodes outside the landmass or country must still use existing networks of cables to access servers or communicate with nodes in the landmass or country, thus probably suffering from slow data transfer rates. To overcome such slow data transfer rates in WANs and intranets, especially in large companies, techniques, collectively known as WAN optimization techniques, have been developed. WAN optimization techniques substantially relate to systems and methods for increasing the rate of data transfers within a WAN and include techniques such as deduplication, traffic shaping, compression, protocol spoofing, latency optimization, caching and the like, all of which are known in the art. Deduplication involves eliminating the transmission of redundant data between nodes by sending references to previously handled data instead of the actual data itself. Caching involves temporarily storing repeatedly accessed web documents in a cache for rapid access. Compression involves representing data patterns more efficiently. Examples of various WAN optimization systems and techniques are shown below in
Reference is now made to
WAN optimization hardware 34A, 34B and 34C may each be a physical device attached to the main server in each of branch offices 32A, 32B and 32C. Therefore any data to be transferred between one branch office and another is sent and received via the WAN optimization hardware. It is noted that WAN optimization hardware 34A, 34B and 34C is usually proprietary and since no international protocols exist for performing WAN optimization, WAN optimization hardware 34A, 34B and 34C must be from the same company. Known companies which manufacture WAN optimization hardware include Bluecoat, Riverbed, Cisco and Radware. Therefore, the airline company shown in
Reference is now made to
As users 66, 68, 70, 72 and 74 are not located in the US, one method of accessing server 62 would be for each user to make requests of server 62 directly via a plurality of nodes connecting the computers (not shown) of each of users 66, 68, 70, 72 and 74 to server 62. As mentioned above, many factors can influence the data transfer rates between two nodes in a WAN. As users 66, 68, 70, 72 and 74 may need to access multiple nodes to send a request for data to server 62 and as server 62 may have a lot of Internet traffic and may also have to transfer large amounts of data to any one of users 66, 68, 70, 72 and 74 depending on the type of data requested, users 66, 68, 70, 72 and 74 may experience relatively slow data transfers rates between their respective computers and server 62.
Another method for accessing server 62 is shown in
When a user requests data from server 62, the request for data may travel via one of proxies 64A-64H en route to server 62. If the requested data is stored in one of proxies 64A-64H, then the user retrieves the data from the respective one of proxies 64A-64H and not from server 62. As noted above, in such a scenario, the data will appear to the user to have been retrieved from server 62. In general, proxies 64A-64H are situated in specific geographic locations around the world where the news company may have determined that a significant number of users attempt to regularly access server 62. By having users retrieve data from one of proxies 64A-64H instead of from server 62 directly, Internet traffic is diverted away from server 62, thus increasing the ability of server 62 to deal with multiple data requests. In addition, users can retrieve data from a physical location which is closer to where they are situated, as proxies 64A-64H are physically located in different geographic locations, thus increasing the data transfer rate to users by reducing the number of nodes required to connect the user to server 62.
For example, user 72 in Germany may make a request for data from server 62. A local server (not shown) in Germany receiving the request from user 72, may determine that server 62 has a proxy server in Poland, proxy 64B. The local server will then send the data request of user 72 to proxy 64B. If proxy 64B has the requested data, then proxy 64B will transfer the data to user 72 via the local server. In this case, user 72 will receive the requested data at a higher data transfer rate than from server 62 directly since the request is being answered by a server, proxy 64B, which is physically much closer to where user 72 is located as compared to the distance between user 72 and server 62. If proxy 64B does not have the requested data, proxy 64B may request the data from server 62 on behalf of user 72 or proxy 64B may sent a message to the local server that it should request the requested data from server 62 directly. Similar scenarios may happen for users 66, 68 and 70 making requests from server 62. In the case of user 74 in Canada, a request for data from server 62 may be sent directly to server 62 as each one of proxies 64A-64H are not geographically located closer to user 74 than server 62.
In general, systems using a CDN substantially break up the transfer of data between two nodes in a WAN into two separate communication channels. As shown in
Other known systems and methods of WAN optimization are known in the art. For example, US Patent Application Number 2010/0146074 A1, issued to Srinivasan and entitled “Network optimization using distributed virtual resources” is directed to a distributed system for WAN optimization. Srinivasan's system comprises a virtual appliance that includes a plurality of local computing devices (herein referred to as local devices). Each of the local devices includes a number of resources such as a processor, a memory or cache and a disk. Each of the local devices is also provided with a virtualization software which includes a virtualization software switch. Additionally, the system of Srinivasan includes a distributed WAN optimization application which is comprised of local WAN optimization applications running on one or more of the local devices. The local devices communicate with each other via a LAN, a WAN, a node-to-node or a device-to-device connection. The virtual appliance is coupled via a WAN to a remote device.
A virtualization software on a local device allocates at least a portion of the resources of the local device to the virtual appliance. The local WAN optimization applications run on the local devices via the virtual machines. The virtualization software switch forwards or redirects traffic to and from the local device to the distributed WAN optimization application. Data handled by the virtualization software switch may be stored in a distributed database that includes resources of one or more local devices. The WAN optimization applications use the data stored in the distributed database to perform various tasks such as Internet caching and data segment caching, in which data segments and a data signature for each data segment are stored in the distributed database.
In an aspect of Srinivasan's system, a local device may request data from a remote device. The virtualization software switch forwards or redirects the requested data to the distributed WAN optimization application which stores the data in the distributed database. The distributed WAN optimization application may receive a request from a second local device to receive data from a remote device wherein the requested data is stored in the distributed database. The request is then fulfilled based on the data stored in the distributed database. In another aspect of Srinivasan's system, the distributed WAN optimization application stores a segment signature for each data segment transmitted to a remote device in the distributed database. A local device may receive a request to transmit data segments to a remote device. The virtualization software switch at the local device forwards the request to the distributed WAN optimization application which determines, by looking-up in the distributed database, whether at least one of the requested data segments was previously transmitted to the remote device. If one or more of the requested data segments were already transmitted, the distributed WAN optimization application transmits the stored signatures of those data segments to the remote device instead of the actual data segments.
US Patent Application Number 2011/0179341 A1, issued to Falls et al. and entitled “Method and apparatus for compression and network transport of data in support of continuous availability of applications” is directed to a system and method for compressing data transmitted between nodes in a network facilitating continuous availability of applications supported by the network. The system of Falls is comprised of a computer system having a source node and a target node and may include additional nodes as well. Each node is a physical or virtual computer system. Each node includes multiple applications, a data protection block, a network communication block and a disk. Additionally, the source node includes a compression block and the target node includes a decompression block.
The two nodes are connected to each other via at least one network and may also be providing services to client computers via a network. Applications executed by the source node are configured by the network communication block to be visible to client computers via the network. The data used by applications that is designated as “protected applications” is replicated to the disk of the target computer. The data protection block on the source node intercepts some of the write operations to the disk on the source node by the applications. The data protection block also defines which data used by the applications is to be protected (i.e. replicated on the disk of the target node). The network communication block on the source node sends these write operations to the network communication block on the target node. The data protection block on the target node executes the write operations to the disk on the target node. Before the data is sent from the source node it is compressed by the compression block on the source node and after it is received at the target node it is decompressed by the decompression block on the target node.
The system employs three different modes of compression, repeat pattern replacement (herein abbreviated RPR), deduplication and deflate. In the RPR mode, the source data is searched for consecutive occurrences of similar patterns of symbols of relatively short length (e.g., 3 symbols). These consecutive occurrences of patterns of symbols are then replaced with an RPR item which identifies the pattern of symbols and the number of occurrences. The deduplication mode of compression employs a hashed signature comparison to identify a recurrence of a pattern in the source data, where a signature is a fixed length range within the source data. For the comparison, the deduplication mode utilizes a dictionary of prior hash signatures where each entry is associated with a chunk of data whose length is equal to or greater than the signature length. The dictionary entry contains an offset to its associated chunk of data in a “reference log” which is a partial history of the source data after RPR processing. A portion of the reference log is re-created in the target node. Once a recurrence of a pattern is found and validated, the recurrent pattern is replaced with a deduplication item which includes the starting point within the reference log from which a string will be copied and the number of symbols to be copied. The deflate mode of compression is carried out in two blocks. The first performs a sliding window compression where recurrent patterns occurring within the deflate view range are found. These patterns can be consecutive or non-consecutive with a length that is shorter than the signature length of the deduplication mode of compression. A recurrent pattern is replaced with a pointer to the original occurrence of the pattern and its length within the deflate view window. The second block within the deflate mode of compression performs entropy coding which compresses data by using fewer bits to encode more frequent characters.
US Patent Application Number 2008/0281908 A1, issued to McCanne et al. and entitled “Hybrid segment-oriented file server and WAN accelerator” is directed to a system for performing file data manipulations over a constrained bandwidth and high latency network. The system of McCanne includes a plurality of client-side WAN accelerators (herein referred to as client-side accelerators), a plurality of server-side WAN accelerators (herein referred to as server-side accelerators), a plurality of segment-oriented file server protocol (herein abbreviated SFS) gateways and a plurality of file servers. Additionally the system of McCanne includes SFS servers and disk arrays. The WAN accelerators, both the client-side accelerators and the server-side accelerators, are connected to each other via a WAN. Each of the client-side accelerators is connected to one or more client computers. Each of the server-side accelerators is connected to an SFS gateway. One or more file servers are connected to each server-side accelerator as well as to its SFS gateway. Additionally, each server-side accelerator may be connected to one or more SFS file servers. Each SFS file server is connected to a disk array.
Client computers access files stored on the file servers by using the WAN accelerators and the SFS gateways. An SFS gateway exports one or more file shares that are stored on the file servers connected to it. A client computer mounts one of the export file shares via a transport connection which is optimized by WAN accelerators. Accessing and manipulating files is carried out via the SFS gateways rather than over the WAN accelerated file connection directly to the file server. Since the WAN accelerators are SFS-aware, they intercommunicate with the SFS gateway using SFS and not a legacy file protocol (e.g., CIFS or NFS). In the system of McCanne, the SFS file server may manage its own file system on a raw volume directly. The file system may be located on the disk array and accessed over a storage-area network.
The SFS gateway and SFS servers represent files not as data blocks but with a “data map” which defines a file in terms of the same “language” used by the WAN accelerators to communicate data to one another. The SFS data map provides a description of the data that underlies a file. A data map is associated with each file on the file server and induces a separation between the structure of the file including its metadata and the actual data it contains. Using the system, a file can be transported across the network by sending the file's data map instead of its entire contents.
U.S. Pat. No. 7,865,585 B2, issued to Samuels et al. and entitled “Systems and methods for providing dynamic ad hoc proxy-cache hierarchies” is directed to a system for storing previously transmitted data and using it to reduce bandwidth usage and accelerate future communications. The system of Samuels includes three or more WAN optimization appliances (herein referred to as appliances), one server side appliance and two or more client side appliances. The server side appliance is connected to a server via a LAN. The client side appliances are connected to each other via a second LAN. The second LAN also connects each of the client side appliances to one or more clients. The server side appliance and the server may be located in a central office while the clients and the client side appliances may be located in one or more branch offices. The server side appliance and the client side appliances are connected via a WAN.
In response to a request from a client for data from the server, the server side appliance transmits the data to a first one of the client side appliances. As the data is being transmitted the two appliances store copies of the data. The stored copies of the data in each of the appliances are referred to as compression histories. The server side appliance may then receive a request from a second client side appliance, originating from another client, for data from the server. The server side appliance passes the request to the server. Upon receiving the data from the server, the server side appliance may detect one or more matches between the received data and data stored in the compression history. These matches indicate that the requested data had been previously transmitted to the first client side appliance. The server side appliance then transmits the requested data to the second client side appliance compressed according to the compression history shared with the first client side appliance. The second client side appliance then requests the data from the first client side appliance which transmits the requested data portions to the second client side appliance. The data transmitted from the first client side appliance may also be stored in the compression history of the second client side appliance. The data is then sent to the client which requested it.
SUMMARY OF THE DISCLOSED TECHNIQUEThe disclosed technique overcomes the disadvantages of the prior art by providing novel methods and a novel system for increasing the data transfer rates of regular Internet users without those users requiring specialized WAN optimization hardware, software or both.
According to one aspect of the disclosed technique, there is thus provided a method for increasing a data transfer rate for a regular network user. The method includes the procedures of generating a WAN optimization network of at least two server nodes and in a network, defining at least two nodes, at least one of the nodes being a client, for requesting data, and at least another one of the nodes being an origin, from which the data is requested from. The method also includes the procedures of the generated WAN optimization network determining a best requesting node for the client based on a data request, the best requesting node being selected from the server nodes, configuring the client to forward the data request to the generated WAN optimization network and the client requesting data from the origin by forwarding the data request to the determined best requesting node. The method further includes the procedures of the generated WAN optimization network determining a best origin node, from the server nodes, for retrieving the requested data from the origin according to at least one network identifier resolution of the origin, the best requesting node forwarding the data request to the best origin node using a first at least one WAN optimization technique, the best origin node retrieving the requested data from the origin and transferring the retrieved data to the best requesting node using a second at least one WAN optimization technique, the best requesting node transferring the retrieved data to the client, and updating the WAN optimization network.
According to another aspect of the disclosed technique, there is thus provided another method for increasing a data transfer rate for a regular network user, including the procedures of generating a WAN optimization network of at least two server nodes and in a network, defining at least two nodes, at least one of the nodes being a client, for requesting data, and at least another one of the nodes being an origin, from which the data is requested from. The method also includes the procedures of the generated WAN optimization network determining a best requesting node for the client based on a data request, the best requesting node being selected from the server nodes, configuring the client to forward the data request to the generated WAN optimization network and the client requesting data from the origin by forwarding the data request to the determined best requesting node. The method further includes the procedures of the generated WAN optimization network determining a best origin node, from the server nodes, for retrieving the requested data from the origin according to at least one network identifier resolution of the origin, the best requesting node forwarding the data request to the best origin node using at least one WAN optimization technique and the best origin node retrieving the requested data from the origin. The method also includes the procedures of if the retrieved data is cache enabled and has not yet expired, then the best origin node determines if the retrieved data can be reconstructed from the generated WAN optimization network, the best origin node then forwarding a message to the generated WAN optimization network to reconstruct the retrieved data from at least one distributed data structure (DDS), the best request node reconstructing the retrieved data from its own DDS and transferring the retrieved data to the client, and updating the WAN optimization network.
According to a further aspect of the disclosed technique, there is thus provided a WAN optimization system for use with a network, the network including at least two nodes, at least one of the nodes being a client, for requesting data, and at least another one of the nodes being an origin, from which the data is requested from. The WAN optimization system includes at least two server nodes, coupled together so as to transfer data therebetween using at least one WAN optimization technique. The WAN optimization system determines a best requesting node and a best origin node, from the server nodes, for the client based on a data request and on at least one network identifier resolution of the origin. The client forwards the data request to the determined best requesting node which forwards the data request to the best origin node using the WAN optimization technique. The best origin node retrieves the requested data from the origin and transfers it back to the best requesting node, using the WAN optimization technique, and the best requesting node transfers the retrieved data to the client.
The disclosed technique will be understood and appreciated more fully from the following detailed description taken in conjunction with the drawings in which:
The disclosed technique overcomes the disadvantages of the prior art by providing a novel system and method for increased data transfer rates (also referred to herein as simply data rates) for a regular Internet user. In the description of the disclosed technique, the following terminology will be used to distinguish the various procedures and systems of the disclosed technique. As mentioned above, a WAN, such as the Internet, is comprised of a plurality of nodes and their interconnectivity. In general, nodes may either be requesting data or may be the location in which requested data is stored. Any regular Internet user, or node, accessing the Internet with a data request will be referred to as a client. Clients can also be referred to as user nodes in a network. Clients represent regular Internet users around the world accessing the Internet from various physical locations and making requests for data. Clients may be personal computers, workstations, smartphones or other devices capable of accessing the Internet and performing data requests. Clients may also be various types of servers which merely pass on a data request which originated from a user node. Any node storing data from which a client may request that data will be referred to as an origin. Origins represent nodes in the Internet from which a user may request data. Typically, origins represent websites, servers, mail servers, proxy servers, cloud servers, cloud routers and the like from which a user may request a data transfer from. Thus, clients request data from origins and data transfers occur between origins and clients. In the disclosed technique, as described below, a group of nodes is defined which forms a WAN optimization system for increasing the transfer rates of data between an origin and a client. These nodes will be referred to as server nodes. According to the disclosed technique, two types of server nodes are defined in the WAN optimization system. A request node represents a server node which is best for a client and an origin node represents a server node which is best for an origin. The term ‘best’ in this context is defined below. A server node can act as both a request node and an origin node.
The system of the disclosed technique includes a worldwide network of server nodes which are coupled together via either WAN optimization hardware, WAN optimization software or both. Clients access the network of server nodes for data transfer requests instead of directly making requests from origins. In particular, a client sends a data request to a request node. The request node forwards the data request to an origin node. The origin node retrieves the requested data from the origin and transfers it back to the request node which forwards the retrieved data back to the client. Each server node (i.e., request nodes and origin nodes) may maintain a single distributed data structure (herein abbreviated DDS). The DDS may store information relating to data transferred through it to clients who have requested data from it either directly (request node) or indirectly (origin node), as explained below. The DDS of each server node is regularly updated. The DDS may also include a table of values from which the requested data may be reconstructed and is updated each time a server node (either a request node or an origin node) handles a data request. It is also noted that the requested data may be located in more than one location in the Internet. The DDS may further store information regarding the topology of the server nodes in the WAN optimization system of the disclosed technique.
For each data transfer request, a request node forwards the data transfer request to an origin node, which then retrieves the requested data from an origin. The retrieved data may be compressed and optimized by the origin node before being transferred to the request node which then decompresses the retrieved data and forwards it to the client which initially requested the data. According to one embodiment of the disclosed technique, a request node may check to see if it has previously handled the data request and if the data of the request was cached. If so, then the request node can reconstruct the requested data from its DDS and transfer it to the client. If not, then the request node determines an origin node for retrieving the requested data from an origin. According to another embodiment of the disclosed technique, the origin node may retrieve all the requested data from the origin and may transfer it to the request node which transfers the retrieved data to the client. According to a further embodiment of the disclosed technique, the origin node may determine that parts of the requested data can be reconstructed from the DDS of the request node. In such a scenario, the origin node may only retrieve the requested data from the origin which the request node cannot reconstruct from its DDS and transfer it to the request node. The request node then reconstructs the requested data from its DDS and the data received from the origin node and then transfers it to the client. According to another embodiment of the disclosed technique, if the data requested by a first request node has been requested by a different client via a second request node from the same origin node, then the origin node may instruct the first request node to retrieve the requested data from the second request node if the data was cached. The first request node and the second request node may form a cluster. According to a further embodiment of the disclosed technique, if the requested data is physically located in various parts of the world (for example, if the origin has proxy servers throughout the Internet, also known as CDN nodes), then the origin node may instruct the request node to retrieve the requested data via another origin node which is best for retrieving the requested data. The requested data may be retrieved by the other origin node from a proxy server. The other origin node may be physically closer to the request node than the distance between the request node and the origin node. In addition, the other origin node may be able to retrieve the requested data from the proxy server quicker than the origin node can retrieved the requested data from the origin. In general, according to the disclosed technique, all data requests from a client are forwarded to an origin, unlike in a CDN. Once the requested data is retrieved from an origin by an origin node, the retrieved data is transferred back to the client via a request node. According to some embodiments of the disclosed technique, if previously requested data can be cached locally on a request node and the data has not yet expired, then similar to a CDN, once an origin node has retrieved the requested data, the requested data or portions of it may be forwarded by a request node directly to a client without the origin node having to forward the retrieved data to the request node. The request node may be able to forward the requested data, or portions of it, from its cache to the client. However, even in this embodiment, the initial data request of the client is always forwarded all the way to the origin, even if the requested data may be already cached on the request node when the initial data request is made.
According to the disclosed technique, a regular Internet user benefits from the advantages of WAN optimization hardware and software without having to purchase proprietary hardware or software, since data transfers between server nodes in the worldwide network of the disclosed technique, i.e. data transfers between request nodes and origin nodes, are executed using WAN optimization hardware and software. Prior art WAN optimization techniques are generally only practically useable in intranets, such as those set up for large companies or governmental organizations, since any two nodes in such a network must use the same hardware or software for implementing the WAN optimization techniques. According to the disclosed technique, a user benefits from the advantages of a WAN optimized network since the disclosed technique provides a system and method to send data transfer requests to the server nodes of the worldwide network. Also, the server nodes of the disclosed technique are not limited to specific companies therefore any data request by a user can be transferred such that at least a significant part of the path between the location of the data and the node which requested it is traversed using WAN optimization hardware and software. In addition a regular Internet user experiences significantly increased data transfer rates according to the disclosed technique as requested data is downloaded and transferred from a determined closest location of the requested data, i.e. an origin node. It is known that the quality of service (herein abbreviated QoS) of routers can result in a sizeable loss of data. This sizeable loss may be as much as 30% depending on the brand of router used. In prior art systems, multiple routers may be involved in transferring data from a server to a user, thus resulting in significant data loss and a significantly lower data transfer rate. According to the disclosed technique, the number of routers accessed between an origin and a client is minimized, thus resulting in less data loss and a significantly higher data transfer rate. It is also noted that the disclosed technique may be implemented entirely using only software. In such an embodiment, only WAN optimization software is used.
Reference is now made to
According to the prior art, a client, such as client 10611, making a data request from an origin, such as origin 1048, would send a request directly to origin 1048 via whatever data path (not shown) is available to client 10611. For example, if origin 1048 is a news server and happens to have a proxy server (not shown) closer to client 10611, then the data request from client 10611 may be redirected to the proxy server. As explained below in
Reference is now made to
In
The disclosed technique may also be embodied without software having to be installed on the client. In this embodiment, a non-device configuration is used to forward data request to WAN optimization system 140, which then determines which server node should serve as the request node for a particular client. Examples of this embodiment are given as follows. In one example, a client may access a SOCKS file proxy (not shown) which forms a part of WAN optimization system 140. The SOCKS file proxy determines which server node is best for the client as a request node in the WAN optimization system of the disclosed technique. Subsequent data requests from the client will then be forwarded via the SOCKS file proxy to the determined best request node. In a further example, a user may change the DNS server in their web browser or in an application in the client device capable of accessing the Internet, a WAN, a LAN or an intranet, to a DNS server provided by WAN optimization system 140. The DNS server of the WAN optimization system will then determine which server node is the best request node for the client, using known heuristics, as described above. In this manner, all data requests from the client are forwarded to the determined best request node. The DNS server of the WAN optimization system may periodically use known heuristics to verify if the current best request node for a given client is indeed the best request node for the client; and if not, the DNS server may change the assigned best request node for a given client to another request node. An additional example includes using the border gateway protocol (herein abbreviated BGP) to forward requests of a client to WAN optimization system 140 which then determines an appropriate request node for a given client.
As shown in
Origin node 102B receives the data request and retrieves the requested data from origin 1044. Since origin node 102B is physically significantly closer to origin 1044 (both are located in the US), the data rate at which it can retrieve the requested data is significantly faster than the data rate at which request node 102E or client 10613 could retrieve the data, both of which are physically located in Israel. This is shown in
After request node 102E transfers the requested data to client 10613, request node 102E updates its DDS. The entry in its DDS may list the IP address of client 10613 which made the data request as well as which origin node handled the request (in this example, origin node 102B) and where the origin is located. Depending on the data requested, the DDS may also include an entry having values that represent the data transferred. As explained below (and also in
Another example of an increased data transfer rate according to the disclosed technique is shown in
A further example of an increased data transfer rate according to the disclosed technique is shown in
According to this embodiment of the disclosed technique, using its DDS, request node 102E can reconstruct the data which it previously retrieved from origin node 102B and transfer it to client 10612, thereby obviating the need to even transfer the data request to origin node 102B. In this embodiment, the entry in the DDS of request node 102E corresponding to the requested data by client 10612 is sufficient to reproduce the requested data. Request node 102E can thereby provide client 10612 with the requested data at a significantly increased data transfer rate, since no data needs to be retrieved from origin node 102B or origin 1044. However, it should be noted that in this example it is assumed that the requested data requested by clients 10613 and 10612 are exactly the same and that nothing has changed in the requested data between the time when client 10613 requests the data and the time when client 10612 requests the data. As mentioned above, it is also assumed that the requested data was cached enabled and has not yet expired.
Studies have shown that any two websites accessible on the Internet, even in two completely different languages with very different content, such as a news website in Chinese and a cooking website in French, share a significant amount of similarities in their HTML coding. Websites, in their HTML coding, are comprised of tags, metadata, field codes and content. A significant portion of any website is comprised of the tags, metadata and field codes which are used in the HTML coding of the website; the actual unique content on a website may account for a significantly small portion of the data contained within the HTML coding of the website. Thus the Chinese news website and the French cooking website may only differ in their content while sharing substantially similar tags, metadata and field codes. The similarities in HTML coding between any two websites may be as high as 95%. The differences in HTML coding of two websites can be referred to as the delta between the websites. The delta can also be defined in terms of a single website with dynamic content that is constantly changing. Dynamic content may be as simple as the time or date listed on a website or may be changing images or videos, such as on a news website.
With reference back to the previous example, both of clients 10613 and 10612 may request data from origin 1044, however the data requested may be different. For example, if origin 1044 is a news website, clients 10613 and 10612 may have requested to view the images and text associate with two different news stories displayed on the news website. As another example, clients 10613 and 10612 may have requested to view the same news stories except at different times during the day, when dynamic content other than the news story may have changed, such as the time and date displayed on the news website, i.e., any cached data on request node 102E may have expired. According to the disclosed technique, assuming client 10613 already requested data from origin 1044, and received it, as described above, client 10612 may then also request data from origin 1044. Recall that request node 102E and origin node 102B have both updated their DDSs and may include entries and values which relate to the data request transferred to client 10613 if the data transferred was cached enabled. Client 10612 forwards its data request to request node 102E, which forwards the data request to origin node 102B. Origin node 102B then retrieves the requested data from origin 1044. As origin node 102B begins to compress and encode the retrieved data to forward it to request node 102E, it may determine that a significant portion of the requested data already exists in its DDS. Origin node 102B may examine the retrieved data and may determine the delta between the data requested by client 10613 and client 10612. The delta can be determined based on the entries in the DDS of origin node 102B. Origin node 102B forwards the delta in the retrieved data to request node 102E along with a message stating that the rest of the data request can be reconstructed from the DDS of request node 102E. Based on the entries in the DDS of request node 102E from when client 10613 requested data from origin 1044 and on the data retrieved by origin node 102B, request node 102E reconstructs the data requested by client 10612 and forwards it to client 10612. In this respect, the data transfer rate for client 10612 is significantly increased as a majority of the data requested was forwarded to client 10612 directly from request node 102E, which is physically close to client 10612, without having to retrieve it from origin 1044 or from origin node 102B. In addition, the data transferred from origin node 102B (i.e. the delta in the data request) to request node 102E amounted to a minority of the data requested by client 10612, which was nonetheless transferred to request node 102E using known WAN optimization techniques.
As mentioned above, data can be transferred between server nodes of WAN optimization system 140 using any known WAN optimization technique. One such technique is known as pre-fetching and can be implemented in a request node or an origin node according to the disclosed technique. According to the prior art, when a client requests data from an origin, since web browsers are designed using interpreted computer programming languages, multiple data requests are actually sent to the origin by the client to fully retrieve the requested data. For example, to see the website of a news station, such as the homepage of CNN.com, a client may have to make 50-100 data requests until the entire homepage of CNN.com is loaded. This limitation in terms of having to make multiple data requests just to retrieve the data of a single website may also be built-in as part of the limitations of a web browser. According to one embodiment of the disclosed technique, as mentioned above, each data request from a client is forwarded to a best request node, which forwards it to a best origin node which retrieves the data from the origin. The retrieved data is transferred back to the origin node which transfers it to the request node and eventually back to the client. Therefore, in this embodiment, a request node may need to forward 50-100 data requests on behalf of the client to the origin node.
According to another embodiment of the disclosed technique, the request node or the origin node may use a technique of pre-fetching to increase the data transfer rate for the data request of the client. In this embodiment, when the request node initially receives a first data request from a client and performs network identifier resolving, it can determine all the data requests that the client will have to perform to receive the data it requested. For example, the request node may be able to determine all the data requests necessary in order to display all the information on the homepage of CNN.com. In this embodiment, instead of the request node waiting for the client to forward it the next data request in order to fully retrieve the data requested, the request node pre-fetches the data to be requested by the client by forwarding all the data requests the client will make for the requested data to the origin node. For example, the request node may forward all 50-100 data requests at once to the origin node, which will retrieve all the requested data from the origin, transfer it back to the origin node which will transfer the requested data back to the request node. It is noted that web browsers on clients are limited in terms of how many simultaneous data requests they can make when loading a webpage to prevent the client from crashing or from running out of RAM. In the disclosed technique, since a server node (either a request node or an origin node), which is not a web browser, performs the pre-fetching, it is not limited to what a web browser on a client is capable of and can thus forward all the data requests necessary for loading a webpage at once. When the client sends an additional request for data for a given data request, the data will already be at the request node which can simply transfer the requested data to the client. By having the request node pre-fetch the data the client will be requesting from the origin, the data transfer rate for a regular Internet user can be significantly increased. It is noted that the above description related to the request node performing the technique of pre-fetching. It is noted that according to the disclosed technique, pre-fetching can also be performed by the origin node instead of the request node. In this embodiment, the origin node may pre-fetch requested data from the origin by sending the origin requests for all the data which will fulfill the data request of the client. When each data request from the request node is received by the origin node, the origin node can immediately forward the retrieved data to the request node without having to first retrieve it from the origin. It is noted that pre-fetching is only possible if the data requested from the origin is cache enabled and has not yet expired when the client requests data that was already pre-fetched. It is also noted that according to the disclosed technique, pre-fetching can be performed by the request node or the origin node. Heuristics can be used to determine if pre-fetching by the request node or the origin node is faster in terms of transferring the data to the client. Whichever server node is faster will be the one used to pre-fetch the requested data.
Reference is now made to
In the embodiment as shown in
It is important to note that unlike the prior art, the disclosed technique, such as WAN optimization system 140, does not require more than one DDS per server node. As its name suggests, the distributed aspect of the DDS of a server node enables each server node to store information about data requests that it handles and about the topology of the WAN optimization system. The DDS of each server node does not store a local copy of data requested by a particular client. The information stored in the DDS can be used by the server node to reconstruct a future data request for the same, or similar data if the data handled can be cached and has not yet expired. In addition, the information stored may be used by the DDS of another server node to reconstruct other data requests. By distributing the information stored about data requests, each server node only needs to keep track of its own DDS, however via clustering, a server node can access the DDS of another server node in its cluster to reconstruct a data request it never previously handled.
It is noted that server nodes 102E and 102C may be part of the same cluster since they are physically closer to one another in comparison to other server nodes in WAN optimization system 140. According to the disclosed technique, clusters may be formed at various levels of resolution. For example, clusters may be formed of server nodes located in the same country, server nodes located in the same continent or server nodes located in the same landmass (as shown in
It is noted that according to the disclosed technique, the determination of a request node and an origin node can be executed recursively. As mentioned above, a data request is forwarded from a client to a request node, which then forwards the data request to an origin node which finally requests the data from an origin. Both the request node and the origin node may in turn search out other request nodes and origin nodes which may be better for handling the data request of the client. Using the example mentioned above regarding a LAN, a client in a LAN which is designated as a server node may forward a received data request to an origin node (from its perspective). The origin node receiving the data request may then be designated a request node and will then determine what is the best origin node (from its perspective). This process can go on recursively between various request node-origin node pairs in the WAN optimization system of the disclosed technique until the data request is forwarded to the origin.
In general, clustering reduces the number of requests placed on an origin. As mentioned above, according to the disclosed technique, the number of routers via which data is transferred from a server node, whether a request node or an origin node, to a client is decreased. This is achieved by using clustering, thus increasing the data transfer rates between nodes by reducing the number of nodes needed to transfer data from a server node to a client. According to the disclosed technique, instead of clients constantly requesting data directly from an origin, such as origin 1044, the data requests can be sent to other locations in WAN optimization system 140 which receive fewer requests for data. The data rate at which an origin can retrieve and transfer data is proportional to the number of data requests the origin receives. Thus, server nodes which have in their DDSs entries from which requested data can be reconstructed can transfer the data quicker as opposed to an origin having the original copy of the requested data. The server nodes may also be located physically closer to the client which requested the data than the origin which has the original copy of the requested data. This reduces the data path length of the source location of the data, the origin, to the destination location which requested the data, the client, further increasing the data transfer rate. However, if a particular server node receives too many requests for a given piece of data, then the data transfer rate from that server node may be comparable to the data rate of retrieving the requested data from the origin having the original copy of the requested data. According to the disclosed technique, such a server node may be removed from the cluster it is currently a part of as it is receiving too much Internet traffic and is slowing down the overall data transfer rate in the WAN optimization system of the disclosed technique. In addition, a server node receiving very little Internet traffic may be made part of a cluster in order to take advantage of the data transfer rate at which it can retrieve and send data. In this respect, according to the disclosed technique, network analytics are used to monitor the flow of data through server nodes in the WAN optimization system of the disclosed technique. Depending on the determined flow of data through a server node, according to the disclosed technique, a server node may be added or removed from a cluster in order to increase the overall data transfer rate of the WAN optimization system of the disclosed technique. Decentralized management techniques may be used to add or remove server nodes from clusters. For example, server nodes may periodically perform self-assessment tests to determine how loaded they are with Internet traffic and thus determine if they should remove themselves from a cluster or join a cluster.
According to the disclosed technique, clients which can forward data requests to request nodes in the WAN optimization system can themselves form part of the WAN optimization system of the disclosed technique. In this respect, any client can be a request node or an origin node for another client. In general, such a scenario will apply when a plurality of clients form a cluster together. A data request from a client in the cluster may be forwarded to another client in the cluster acting as a request node. This client would then forward the data request to an origin node, which may in turn designate itself a request node and then forward the data request to another origin node. As mentioned above, this recursion may be used a plurality of times among server nodes in the WAN optimization system of the disclosed technique until the data request from the client reaches the origin, with data requests between the client and the origin being forwarded between request node and origin node pairs.
Reference is now made to
In a procedure 202, at least two nodes in a network, such as the Internet, are defined. At least one of the nodes is designated as a client and at least one of the nodes is designated as an origin. The client may be a user node requesting data or services from a website, a reverse proxy or a server node. The client may also be a server node requesting information from another server node. The origin may be the source of where the requested data is located, such as a website or reverse proxy. The origin may also be a server node which can reconstruct the requested data and transfer it to the client if the requested data can enabled to be cached on the server node. With reference to
In a procedure 204, the client is configured to forward its data requests to the generated WAN optimization network of procedure 200. The client may be configured via device configuration or via non-device configuration. In device configuration, an application running on the client capable of accessing the Internet, a WAN, a LAN or an intranet, is specifically configured to forward data requests of the client to the generated WAN optimization network. The application may be a web browser running on the client, for example. The application may be configured by a piece of software installed on the client to forward data requests to the generated WAN optimization network. In non-device configuration, various protocols may be used by the client to forward data requests to the generated WAN optimization network, such as DNS and BGP. An example of such a configuration is by changing the DNS settings of an application on the client to forward data requests to a DNS server which forms part of the WAN optimization network. The DNS server then forwards data requests of the client to the best request node for the client in the WAN optimization network. BGP can also be used with the disclosed technique for forwarding the data request of the client to the WAN optimization network which then decides on the best request node for the client. With reference to
In a procedure 206, a best request node for the client in the generated WAN optimization network is determined based on a data request. The best request node for the client can be determined according to various known heuristics. For example, the best request node may be the server node in the WAN optimization network which is physically closest to the client or the server node having the quickest response time in communicating with the client. The determined best request node for a client may change with time and is based on a current data request. It is noted that the best request node is a server node within the WAN optimization network generated in procedure 200. As mentioned above in
In a procedure 208, a data request is sent from the client to the origin by forwarding the data request to the determined best request node in the WAN optimization network of procedure 204. Due to procedure 204, data requests from the client are forwarded to the generated WAN optimization network of procedure 200. The data request may be for a service from the origin or for data, such as a news story, a blog post or a video from the origin node. With reference to
In a procedure 210, a best origin node for retrieving the requested data from the origin is determined by the generated WAN optimization network according to the network identifier resolution of the origin. The best origin node represents the server node which can most efficiently retrieve the requested data from the origin and transfer it back in the direction of the best request node. For example, the best origin node may be a server node which is physically closest to the origin node. The best origin node may also be the same as the best request node. It is noted that the best origin node is a server node within the WAN optimization network generated in procedure 200. As mentioned above, a client in a cluster may form a part of the WAN optimization network and as such may be determined as a best origin node. With reference to
The network identifier resolution of the origin is used to determine the best origin node by determining where the client is located in the network, where the origin is located in the network and whether any server nodes in between the client and the origin have already retrieved the requested data. For example, as mentioned above, each server node in the generated WAN optimization network of procedure 200 may maintain an updated DDS of data requests it has served and handled. The DDS may store the data previously requested. As mentioned above, if a best request node or a neighboring request node has already retrieved the requested data by the client, it may be possible, via the DDSs of those nodes, if the data was cached enabled, to reconstruct the retrieved data for the client. In these scenarios, the best origin node may not be physically near the origin at all!
It is noted that procedures 208 and 210 may be executed in a recursive manner by which a best request node for a client may determine a best request node for itself, which in turn may determine a best request node for itself and so on. Likewise, a best origin node as determined by a best request node may determine a best origin node for itself, which in turn may determine a best origin node for itself and so on. In this manner, a data request can be forwarded between request node-origin node pairs, with a client forwarding the original data request to a first request node and the last origin node forwarding the data request to the origin.
In a procedure 212, the request for data from the best request node is forwarded to the best origin node using WAN optimization techniques. As mentioned above, all the server nodes in the WAN optimization network of the disclosed technique can use WAN optimization techniques for transferring data between themselves. According to the disclosed technique, the request for data is forwarded using at least one WAN optimization technique. In addition, as mentioned above, the best origin node may be the best request node, for example in the case where the best request node already retrieved the data requested and was able to cache it. Using its DDS, the best request node may be able to reconstruct the data requested by the client and thus is simultaneously the best request node and the best origin node. With reference to
In a procedure 214, the best origin node receives the request for data from the best request node and retrieves the requested data from the origin. The best origin node then transfers the retrieved data back to the best request node using WAN optimization techniques. According to the disclosed technique, at least one WAN optimization technique is used to transfer the retrieved data back to the best request node. As mentioned above, the best origin node always retrieves the requested data from the origin. Depending on the DDS of the best origin node and the DDS of any server nodes in its cluster, the best origin node may indicate to the best request node that is can reconstruct the requested data from its DDS without having to retrieve anything from the origin node. Furthermore, as mentioned above, depending on the DDS of the best request node and the DDS of any server nodes in its cluster, the best request node may be able to reconstruct the requested data from its DDS without having to receive any data from the best origin node. With reference to
In a procedure 216, the best request node transfers the retrieved data to the client. As noted above, the best request node may be the origin node which reconstructed the requested data according to its DDS. With reference to
Reference is now made to
In a procedure 268, the best origin node forwards a message to the WAN optimization network of procedure 250 to reconstruct the retrieved data from at least one DDS. For example, the best request node may be able to reconstruct the retrieved data of the best origin node from its own DDS. The best request node may be able to reconstruct a portion of the retrieved data from its DDS while also accessing the DDS of another server node in the WAN optimization network, for example, the DDS of a server node in the same cluster. The best request node may further be able to reconstruct a portion of the retrieved data from its DDS while also receiving a portion of the retrieved data from the best origin node which it is not able to reconstruct from its DDS or the DDS of another server node. With reference to
In a procedure 270, the best request node reconstructs the retrieved data from its own DDS and forwards the reconstructed data to the client. With reference to
It will be appreciated by persons skilled in the art that the disclosed technique is not limited to what has been particularly shown and described hereinabove. Rather the scope of the disclosed technique is defined only by the claims, which follow.
Claims
1. Method for increasing a data transfer rate for a regular network user, comprising the procedures of:
- generating a WAN optimization network of at least two server nodes;
- in a network, defining at least two nodes, at least one of said nodes being a client, for requesting data, and at least another one of said nodes being an origin, from which said data is requested from;
- said generated WAN optimization network determining a best requesting node for said client based on a data request, said best requesting node being selected from said at least two server nodes which can communicate most efficiently with said client;
- establishing a configuration to forward said data request of said client to said generated WAN optimization network;
- said client requesting data from said origin by forwarding said data request to said determined best requesting node;
- said generated WAN optimization network determining a best origin node, from said at least two server nodes, for retrieving said requested data from said origin according to at least one network identifier resolution of said origin, wherein said best origin node is one of said at least two server nodes which can most efficiently retrieve said requested data from said origin;
- said best requesting node forwarding said data request to said best origin node using a first at least one WAN optimization technique;
- said best origin node retrieving said requested data from said origin and transferring said retrieved data to said best requesting node using a second at least one WAN optimization technique;
- said best requesting node transferring said retrieved data to said client; and
- updating said WAN optimization network.
2. The method according to claim 1, wherein said network is selected from the list consisting of:
- the Internet;
- a WAN;
- an intranet; and
- a LAN.
3. The method according to claim 1, wherein said client is selected from the list consisting of:
- a personal computer;
- a workstation;
- a smartphone; and
- a device capable of accessing the Internet and performing data requests.
4. The method according to claim 1, wherein said origin is selected from the list consisting of:
- a website;
- a server;
- a mail server;
- a proxy server;
- a cloud server; and
- a cloud router.
5. The method according to claim 1, wherein said procedure of determining a best requesting node for said client is executed using at least one heuristic.
6. The method according to claim 5, wherein said at least one heuristic is executed by external software installed on said client.
7. The method according to claim 5, wherein said WAN optimization network further comprises a SOCKS file proxy and wherein said at least one heuristic is executed by said SOCKS file proxy.
8. The method according to claim 5, wherein said WAN optimization network further comprises a DNS server and wherein said at least one heuristic is executed by said DNS server.
9. The method according to claim 5, wherein said at least one heuristic is selected from the list consisting of:
- a shortest path of one of said at least two server nodes to said client; and
- one of said at least two server nodes having a quickest response time with said client.
10. The method according to claim 1, wherein said procedure of determining a best requesting node for said client is executed based on a performance of said at least two server nodes.
11. The method according to claim 1, wherein said procedure of determining a best requesting node for said client is executed based on a latency of said at least two server nodes.
12. The method according to claim 1, further comprising the procedure of periodically updating said determined best requesting node.
13. The method according to claim 12, wherein said procedure of periodically updating comprises a sub-procedure of determining if a shortest path server node in said WAN optimization network to said client is also a quickest server node in said WAN optimization network to respond to said client.
14. The method of according to claim 1, wherein said procedure of determining a best origin node for retrieving said requested data is executed using at least one heuristic.
15. The method according to claim 14, wherein said at least one heuristic is selected from the list consisting of:
- a shortest path of one of said at least two server nodes to said origin; and
- a shortest path of one of said at least two server nodes to a proxy server coupled with said origin having a local copy of said requested data.
16. The method according to claim 1, wherein said at least one network identifier resolution is selected from the list consisting of:
- Internet protocol (IP) addressing;
- domain name system (DNS) addressing;
- media access control (MAC) addressing;
- NetBIOS over TCP/IP addressing; and
- entity identification (EID) addressing.
17. The method according to claim 1, wherein said first at least one WAN optimization technique and said second at least one WAN optimization technique are each selected from the list consisting of:
- deduplication;
- traffic shaping;
- compression;
- protocol spoofing;
- latency optimization; and
- caching.
18. The method according to claim 1, wherein said procedures of determining said best requesting node and said best origin node are executed recursively.
19. The method according to claim 1, wherein said procedures of forwarding said data request to said determined best requesting node and determining said best origin node are executed recursively.
20. The method according to claim 1, further comprising the procedure of said best requesting node pre-fetching said requested data from said origin.
21. The method according to claim 1, further comprising the procedure of said best origin node pre-fetching said requested data from said origin.
22. The method according to claim 1, further comprising the procedure of determining if pre-fetching said requested data by at least one of said best requesting node and said best origin node from said origin increases said data transfer rate.
23. The method according to claim 1, wherein each one of said at least two server nodes comprises a respective distributed data structure (DDS).
24. The method according to claim 23, wherein said respective DDS is selected from the list consisting of:
- a distributed hash table;
- a distributed graph;
- a distributed linked list; and
- a distributed array.
25. The method according to claim 23, wherein said respective DDS stores at least one item selected from the list consisting of:
- a table of values from which said requested data can be reconstructed;
- data necessary for executing at least one of said first at least one WAN optimization technique and said second at least one WAN optimization technique;
- configuration information related to said WAN optimization network;
- information relating to data handled by one of said at least two server nodes in said WAN optimization network; and
- information regarding a topology of said at least two server nodes in said WAN optimization network.
26. The method according to claim 23, wherein said procedure of updating said WAN optimization network comprises updating said respective DDS for each one of said at least two server nodes.
27. The method according to claim 26, wherein said procedure of updating said respective DDS comprises at least one sub-procedure selected from the list consisting of:
- storing information in said respective DDS related to data requests recently handled by each one of said at least two server nodes;
- updating a topology of said WAN optimization network stored in said respective DDS;
- caching data from said requested data in said respective DDS provided said requested data can be cached; and
- updating said best requesting node and said best origin node stored in said respective DDS.
28. The method according to claim 1, further comprising the procedure of forming at least one cluster of server nodes in said WAN optimization network, said at least one cluster of server nodes being selected from said at least two server nodes.
29. The method according to claim 28, further comprising the procedures of:
- using network analytics to monitor data flow through said WAN optimization network; and
- determining membership of each one of said at least two server nodes in said at least one cluster based on said monitored data flow.
30. The method according to claim 28, further comprising the procedure of determining membership of each one of said at least two server nodes in said at least one cluster using at least one decentralized management technique.
31. The method according to claim 28, wherein membership of a server node in said at least one cluster is stored in a distributed data structure (DDS) in said WAN optimization network.
32. The method according to claim 28, wherein said procedure of updating said WAN optimization network comprises updating which server nodes of said at least two server nodes are members of which said at least one cluster.
33. The method according to claim 1, further comprising the procedure of said best origin node retrieving said requested data from a proxy server coupled with said origin.
34. The method according to claim 1, further comprising the procedure of forming at least one cluster of said at least two nodes accessing said WAN optimization network.
35. The method according to claim 1, further comprising the procedure of said best requesting node retrieving said requested data from another one of said at least two server nodes in said WAN optimization network, if said requested data was cached on said another one of said at least two server nodes.
36. The method according to claim 1, further comprising the procedure of said WAN optimization network determining a difference between said data request from said origin by a first one of said at least two nodes and a previous data request from said origin by a second one of said at least two nodes.
37. The method according to claim 1, wherein said procedure of establishing a configuration comprises a device configuration.
38. The method according to claim 1, wherein said procedure of establishing a configuration comprises a non-device configuration.
39. The method according to claim 38, wherein said non-device configuration is selected from the list consisting of:
- accessing a SOCKS file proxy;
- using DNS; and
- using a border gateway protocol (BGP).
40. Method for increasing a data transfer rate for a regular network user, comprising the procedures of:
- generating a WAN optimization network of at least two server nodes;
- in a network, defining at least two nodes, at least one of said nodes being a client, for requesting data, and at least another one of said nodes being an origin, from which said data is requested from;
- said generated WAN optimization network determining a best requesting node for said client based on a data request, said best requesting node being selected from said at least two server nodes which can most efficiently communicate with said client;
- establishing a configuration to forward said data request of said client to said generated WAN optimization network;
- said client requesting data from said origin by forwarding said data request to said determined best requesting node;
- said generated WAN optimization network determining a best origin node, from said at least two server nodes, for retrieving said requested data from said origin according to at least one network identifier resolution of said origin, wherein said best origin node is one of said at least two server nodes which can most efficiently retrieve said requested data from said origin;
- said best requesting node forwarding said data request to said best origin node using at least one WAN optimization technique;
- said best origin node retrieving said requested data from said origin;
- if said retrieved data is cache enabled and has not yet expired, then said best origin node determining if said retrieved data can be reconstructed from said generated WAN optimization network;
- said best origin node forwarding a message to said generated WAN optimization network to reconstruct said retrieved data from at least one distributed data structure (DDS);
- said best request node reconstructing said retrieved data from its own DDS and transferring said retrieved data to said client; and
- updating said WAN optimization network.
41. The method according to claim 40, wherein said procedure of determining if said retrieved data can be reconstructed from said generated WAN optimization network comprises the sub-procedure of determining a difference between said data request of said client to said origin and a previous data request of another client to said origin.
42. The method according to claim 41, further comprising the procedure of said best requesting node reconstructing said retrieved data from its own DDS and from said determined difference.
43. WAN optimization system for use with a network, said network comprising at least two nodes, at least one of said nodes being a client, for requesting data, and at least another one of said nodes being an origin, from which said data is requested from, said WAN optimization system comprising:
- at least two server nodes, coupled together so as to transfer data there between using at least one WAN optimization technique;
- wherein said WAN optimization system determines a best requesting node and a best origin node, from said at least two server nodes, for said client based on a data request and on at least one network identifier resolution of said origin;
- wherein said best requesting node is one of said at least two server nodes which can most efficiently communicate with said client;
- wherein said best origin node is one of said at least two server nodes which can most efficiently retrieve said data request from said origin;
- wherein said client forwards said data request to said determined best requesting node which forwards said data request to said best origin node using said at least one WAN optimization technique;
- wherein said best origin node retrieves said requested data from said origin and transfers it back to said best requesting node, using said at least one WAN optimization technique; and
- wherein said best requesting node transfers said retrieved data to said client.
Type: Application
Filed: Feb 19, 2014
Publication Date: Jan 7, 2016
Applicant: TERIDION TECHNOLOGIES LTD. (Petach Tikva)
Inventor: Elad RAVE (Ramat Gan)
Application Number: 14/768,596