Method and system for accelerating receipt of data in a client to client network
Abstract
A method and system for accelerating receipt of data in a client to client network. The method includes the steps of intercepting queries and responses, storing the intercepted queries and responses in an acceleration server and transmitting the intercepted responses to clients submitting intercepted queries. The system includes at least one acceleration server designed and configured to perform the steps included in the method.

Term
Term ended
Expired 12 October 2021, 5 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
38 claims: 11 independent, 27 dependent
- 1A method of accelerating receipt of data in a peer-to-peer network wherein each peer (57a to 57n) in the peer-to-peer network is arranged to operate a software program for implementing queries and providing responses, the method comprising the steps of:a) providing a first peer (57a to 57n) and a communication channel for transmitting communications to and from the first peer (57a to 57n), the first peer (57a to 57n) being arranged to operate the software program for implementing a query that is relayed to at least two other peers (57a to 57n);b) providing the at least two other peers (57a to 57n) for receiving the query, each of the at least two other peers (57a to 57n) being arranged to operate the software program to provide a portion of a response to the query, whereby the response to the query includes at least two response portions to the first peer (57a to 57n) from the respective at least two other peers (57a to 57n);c) intercepting in an acceleration server (52), the query from the first peer (57a to 57n) ;d) determining whether the portions of the response to the query expected to be received by the first peer (57a to 57n) are stored at the acceleration server (52);e) when the portions of the response to the query expected to be received by the first peer (57a to 57n) are determined to be stored at the acceleration server (52), transmitting the portions of the response stored at the acceleration server (52) from the acceleration server (52) to the first peer (57a to 57n);and f) when the portions of the response to the query expected to be received by the first peer (57a to 57n) are not stored at the acceleration server (52), intercepting said portions of the response and storing said portions at the acceleration server (52) such that a subsequent request intercepted at the acceleration server (52) for said portions from a peer (57a to 57n) can be sent from the acceleration server (52) to the peer (57a to 57n).
- 3A method according to any one of the preceding claims, wherein the step c) of intercepting the query is performed by a redirecting device in the acceleration server (52).
- 5A method according to any one of the preceding claims, wherein the acceleration server (52) is located within a local area network (54a, 54b), on a server belonging to an Internet service provider, at a cable television provider junction (62), at a satellite relay link (64) or within an ADSL junction.
- 6A method according to any one of the preceding claims, wherein the query is a request for data and the response is data.
- 8A method according to any one of the preceding claims, wherein the step of storing is accomplished by use of an algorithm.
- 15A method according to any one of the preceding claims wherein the acceleration server (52) is part of a network and the step of transmitting the portions of the response from the acceleration server (52) to the first peer (57a to 57n) comprises transmitting the portions of the response to the first peer (57a to 57n) within the network.
- 17A method according to any one of the preceding claims, wherein the step of transmitting the portions of the response to the first peer (57a to 57n) only occurs if the at least two other peers (57a to 57n) which served as a source of the at least two response portions are available on the peer-to-peer network and only if the at least two other peers (57a to 57n) contain data identical to the respective intercepted response portions.
- 18A method according to any one of the preceding claims, wherein the acceleration server (52) further functions as a peer in the peer-to-peer network.
- 19A method according to any one of the preceding claims, wherein the step of transmitting the portions of the response from the acceleration server (52) to the first peer (57a to 5n) includes simultaneous transmission of portions of a single data set from at least two acceleration servers (52).
- 20A method according to any one of the preceding claims, wherein step e) of transmitting the portions of the response to the first peer (57a to 57n) begins while step c) of intercepting is still in progress.
- 21An acceleration server (52), connected to a peer-to-peer network in which each peer (57a to 57n) in the peer-to-peer network is arranged to operate a software program for implementing queries and providing responses, the network comprising a first peer (57a to 57n) and a communication channel for transmitting communications to and from the first peer (57a to 57n), the first peer (57a to 57n) being arranged to operate the software program for implementing a query that is relayed to at least two other peers (57a to 57n), and the at least two other peers (57a to 57n) for receiving the query, each of the at least two other peers (57a to 57n) being arranged to operate the software program to provide a portion of a response to the query, whereby the response to the query includes at least two response portions to the first peer (57a to 57n) from the respective at least two other peers (57a to 57n), the acceleration server comprising:a) means for intercepting the query from the first peer (57a to 57n);b) means for determining whether the portions of the response to the query expected to be received by the first peer (57a to 57n) are stored at the acceleration server (52);c) means for transmitting the portions of the response stored at the acceleration server (52) from the acceleration server (52) to the first peer (57a to 57n) when the portions of the response are determined to be stored at the acceleration server (52);and d) means for intercepting the portions of the response to the query received from the first peer (57a to 57n) that are not stored at the acceleration server (52), and storing said portions at the acceleration server (52) such that a subsequent request intercepted at the acceleration server (52) for said portions from a peer (57a to 57n) can be sent from the acceleration server (52) to the peer (57a to 57n).
Independent claims11
64 paragraphs in 4 sections, as filed
FIELD AND BACKGROUND OF THE INVENTION
The present invention relates to a method and system for accelerating receipt of data in a peer-to-peer network and, more particularly, to use of an acceleration server in proximity to user clients within the network to store previously received data.
Since the advent of computers, the ability of these machines to communicate with one another has increased greatly. It is now common for large numbers of computers to be organized into networks. Typically local area networks (LANs) are further organized into wide area networks (WANs), the most striking example of which is the Internet.
The availability of Internet connectivity to a huge number of computers has created an unforeseen demand for data transfer among computer users. Often, the available bandwidth along a portion of a data path is great, but the speed of data transfer is reduced by narrow bandwidth along a different portion of the path. Typically, bandwidth is less restricted as the data path becomes shorter.
Client to client networks (also referred to as peer to peer networks) have become popular in recent years (see for example <u style="single">www.napster.com</u>). These networks provide members with software that allows them to transfer and receive data directly from other members across the Internet. Typically, the transferred data is organized in large files which require significant amounts of time for transfer. The volume of transferred data in client to client networks is such that it can, in some cases, reduce available bandwidth within a network. This can cause undesirable slowdowns for other users.
<patcit id="pcit0001" dnum="EP1011244A2"><text>EP 1 011 244 A2</text></patcit> (D1) describes a traditional client/server network in which requests from a client directed to an origin server are transparently redirected to a proxy cache. If the proxy cache has stored the requested object, it sends the object to the client, but it appears as if the object has come from the origin server. If the proxy cache does not have stored the requested object, it sets up a connection to the origin server, obtains the object, then forwards it to the client, and again it appears as if the object has come from the origin server.
There is thus a widely recognized need for, and it would be highly advantageous to have, a method and system for accelerating receipt of data in a client to client network devoid of the above limitation.
SUMMARY OF THE INVENTION
According to a first aspect of the invention, there is provided a method of accelerating receipt of data in a peer-to-peer network wherein each peer in the peer-to-peer network is arranged to operate a software program for implementing queries and providing responses, the method comprising the steps of: a) providing a first peer and a communication channel for transmitting communications to and from the first peer, the first peer being arranged to operate the software program for implementing a query that is relayed to at least two other peers; b) providing the at least two other peers for receiving the query, each of the at least two other peers being arranged to operate the software program to provide a portion of a response to the query, whereby the response to the query includes at least two response portions to the first peer from the respective at least two other peers; c) intercepting in an acceleration server, the query from the first peer; d) determining whether the portions of the response to the query expected to be received by the first peer are stored at the acceleration server; e) when the portions of the response to the query expected to be received by the first peer are determined to be stored at the acceleration server, transmitting the portions of the response stored at the acceleration server from the acceleration server to the first peer; and f) when the portions of the response to the query expected to be received by the first peer are not stored at the acceleration server, intercepting said portions of the response and storing said portions at the acceleration server such that a subsequent request intercepted at the acceleration server for said portions from a peer can be sent from the acceleration server to the peer.
According to a second aspect of the invention, there is provided an acceleration server, connected to a peer-to-peer network in which each peer in the peer-to-peer network is arranged to operate a software program for implementing queries and providing responses, the network comprising a first peer and a communication channel for transmitting communications to and from the first peer, the first peer being arranged to operate the software program for implementing a query that is relayed to at least two other peers, and the at least two other peers for receiving the query, each of the at least two other peers being arranged to operate the software program to provide a portion of a response to the query, whereby the response to the query includes at least two response portions to the first peer from the respective at least two other peers, the acceleration server comprising: a) a means for intercepting the query from the first peer; b) means for determining whether the portions of the response to the query expected to be received by the first peer are stored at the acceleration server; c) means for transmitting the portions of the response stored at the acceleration server from the acceleration server to the first peer when the portions of the response are determined to be stored at the acceleration server; and d) means for intercepting the portions of the response to the query received from the first peer that are not stored at the acceleration server, and storing said portions at the acceleration server such that a subsequent request intercepted at the acceleration server for said portions from a peer can be sent from the acceleration server to the peer.
According to a third aspect of the invention, there is provided a system for accelerating receipt of data in a peer-to-peer network in which each peer in the peer-to-peer network is arranged to operate a software program for implementing queries and providing responses, the system comprising at least two acceleration servers, each acceleration server according to the second aspect of the invention, the relative configuration of the acceleration servers being series, parallel, or a combination thereof.
According to still further features in the described preferred embodiments the redirecting device is a layer 4 switch.
According to still further features in the described preferred embodiments the acceleration server is located in a location selected from the group consisting of within a local area network and in a server belonging to an Internet Service Provider.
According to still further features in the described preferred embodiments the queries are requests for data and the responses are data.
According to still further features in the described preferred embodiments the data is in a format selected from the group of file types consisting of MP3, MPEG-2, MPEG-1, M-JPEG, MPEG-4, ActiveMovie/Video for Windows (.avi), QuickTime (.mov), RealVideo (.rm and .ram), H263.1, HTML, Flash, Gif, Tif, mpeguide and exe.
According to still further features in the described preferred embodiments the step of storing is accomplished by use of an algorithm.
According to still further features in the described preferred embodiments the algorithm includes analysis of at least one variable selected from the group consisting of: (i) temporal information; (ii) ordinal information; (iii) frequency information (iv) peer information; and (v) identification information.
According to still further features in the described preferred embodiments the temporal information includes at least one datum selected from the group consisting of time of initial storage, total residence time in storage, elapsed time since last retrieval from storage, average time between retrievals from storage and time of creation of an original file.
According to still further features in the described preferred embodiments the ordinal information includes at least one datum selected from the group consisting of order of receipt and order of retrieval.
According to still further features in the described preferred embodiments the frequency information includes at least one datum selected from the group consisting of frequency of retrieval and frequency of appearance in peers of the peer-to-peer network.
According to still further features in the described preferred embodiments the peer information includes at least one datum selected from the group consisting of peer connection status, peer identification, and presence of a specific data on a specific peer.
According to still further features in the described preferred embodiments the identification information includes at least one datum selected from the group consisting of file identification, peer identification, and identification of content within a file.
According to still further features in the described preferred embodiments a single query and a single response are each individually intercepted by at least two acceleration servers.
According to still further features in the described preferred embodiments the acceleration server is located in a location selected from the group consisting of within a local area network, on a server belonging to an Internet service provider, at a cable television provider junction, at a satellite relay link, and within an ADSL junction. According to still further features in the described preferred embodiments the step of transmitting a specific intercepted response to a peer submitting a specific intercepted query occurs only if a specific peer which served as a source of the specific intercepted response is available on the peer-to-peer network and only if the specific peer contains data identical to the specific intercepted response in a directory of the specific peer.
According to still further features in the described preferred embodiments the sub-step of transmitting a specific packet of the at least two packets to a peer submitting a specific intercepted query occurs only if a specific peer which served as a source of the specific intercepted response is available on the peer-to-peer network and only if the specific peer contains data identical to the specific intercepted response in a directory of the specific peer.
According to still further features in the described preferred embodiments the step of transmitting an intercepted response to a peer submitting a specific intercepted query occurs only if a specific peer which contains data equivalent to the specific intercepted response in a directory of the specific peer is available on the peer-to-peer network. According to still further features in the described preferred embodiments the sub-step of transmitting a specific packet of the at least two packets to a peer submitting a specific intercepted query occurs only if a specific peer which contains data equivalent to the specific intercepted response in a directory of the specific peer is available on the peer-to-peer network.
According to still further features in the described preferred embodiments wherein the acceleration server further functions as a peer in the peer-to-peer network.
According to still further features in the described preferred embodiments the step of transmitting the intercepted responses to peers submitting intercepted queries includes simultaneous transmission of portions of a single data set from at least two of the acceleration servers.
According to still further features in the described preferred embodiments the step of transmitting a specific response of the intercepted responses begins while the step of intercepting is still in progress for the specific response.
According to still further features in the described preferred embodiments the specific peer which contains data equivalent to the specific intercepted response in a directory thereof includes at least two separate and distinct peers.
According to still further features in the described preferred embodiments the step of storing the intercepted responses in an acceleration server includes storing a single intercepted response which originates in at least two separate and distinct clients.
According to still further features in the described preferred embodiments the at least one acceleration server is further designed and configured for: (d) dividing a specific intercepted response of the intercepted responses into at least two packets and (e) transmitting the at least two packets to the peers submitting intercepted queries.
The present invention successfully addresses the shortcomings of the presently known configurations by providing a method and system for accelerating receipt of data in a peer-to-peer network which can be easily implemented using commercially available hardware.
BRIEF DESCRIPTION OF THE DRAWINGS
The invention is herein described, by way of example only, with reference to the accompanying drawings. With specific reference now to the drawings in detail, it is stressed that the particulars shown are by way of example and for purposes of illustrative discussion of the preferred embodiments of the present invention only, and are presented in the cause of providing what is believed to be the most useful and readily understood description of the principles and conceptual aspects of the invention. In this regard, no attempt is made to show structural details of the invention in more detail than is necessary for a fundamental understanding of the invention, the description taken with the drawings making apparent to those skilled in the art how the several forms of the invention may be embodied in practice.
In the drawings: <ul id="ul0001" list-style="none" compact="compact"><li><figref idref="f0001">FIG. 1</figref> is a diagrammatic representation of components in a system according to the present invention; and</li><li><figref idref="f0002">FIG. 2</figref> is a flow diagram of steps in a method according to the present invention.</li></ul>
DESCRIPTION OF THE PREFERRED EMBODIMENTS
The present invention is of a method and system for accelerating receipt of data in a client to client network which can be advantageously employed to reduce traffic within a wide area network and increase bandwidth availability. Specifically, the present invention can be used to store frequently requested data on servers along a data path, thereby shortening the path for a subsequent retrieval of the same data.
The principles and operation of a method and system for accelerating receipt of data in a client to client network according to the present invention may be better understood with reference to the drawings and accompanying descriptions.
Before explaining at least.one embodiment of the invention in detail, it is to be understood that the invention is not limited in its application to the details of construction and the arrangement of the components set forth in the following description or illustrated in the drawings. The invention is capable of other embodiments or of being practised or carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein is for the purpose of description and should not be regarded as limiting.
For purposes of this specification and the accompanying claims, the phrase "user client" generally refers to a computer and includes, but is not limited to, personal computers (PC) having an operating system such as DOS, Windows<sup>™</sup>, OS/2<sup>™</sup> or Linux; Macintosh<sup>™</sup>, Palm OS <sup>™</sup>, EPOC<sup>™</sup> computers; computers having JAVA<sup>™</sup> -OS as the operating system; and graphical workstations such as the computers of Sun Microsystems<sup>™</sup> and Silicon Graphics<sup>™</sup>, and other computers having some version of the UNIX operating system such as AIX<sup>™</sup> or SOLARIS<sup>™</sup> of Sun Microsystems<sup>™</sup>; or any other known and available operating system; personal digital assistants (PDA), cellular telephones having computer capabilities, a telephone having computer capabilities and Web TVs, each of which is known to include an inherent or connectable display device. A user client is characterized as having at least one input device and at least one output device.
For purposes of this specification and the accompanying claims, the term "server" refers to any computing machine capable of exchanging data with at least one other computing machine. A single server may comprise an individual computing machine or a plurality of such machines acting in concert to perform a function requested by at lest one other computing machine.
For the purposes of this specification and the accompanying claims, the term "Windows <sup>™</sup>" includes but is not limited to Windows 95 <sup>™</sup>, Windows 2000<sup>™</sup> Windows 3.x <sup>™</sup> in which "x" is an integer such as "1", Windows NT <sup>™</sup>, Windows 98 <sup>™</sup>, Windows CE <sup>™</sup> Windows Millennium <sup>™</sup> and any upgraded versions of these operating systems by Microsoft Corp (USA) and /or window managers for the graphical X Windows system for UNIX based operating systems and / or its variants such as Linux.
For purposes of this specification and the accompanying claims, the phrase "computing platform" refers to any particular operating system and/or hardware device, as previously described, according to which the format for data communication and/or presentation (display) thereof is determined.
For purposes of this specification and the accompanying claims, the term "data" refers to digital data including, but not limited to a software program, a text file, a sound file, a file containing at least one video image, and an animation sequence as well as to any combinations thereof.
For purposes of this specification and the accompanying claims, the phrase "channel of communication" includes, but is not limited to a telephone connection, a cellular telephone connection, an Internet connection, an infrared frequency transmission connection, a local area network connection, a radio frequency connection, a fiber-optic connection or a connection by a wire. Inherent in the idea of a communication channel is an open status during which data transmission may occur. In some cases, communication channels may also have a closed status during which no data transmission may occur. The phrase is to be construed in its broadest possible sense so that it encompasses any mode of data transfer.
For purposes of this specification and the accompanying claims the phrase "software program" refers to any algorithm for performing at least one function on a computing device. The term specifically includes, but is not limited to web browsers, music players, animation players, video players, games, compression algorithms, search programs, client to client interfaces and viewers.
For purposes of this specification and the accompanying claims the phrase "display device" refers to any device for presentation of data to a user. The definition includes, but is not limited to speakers, earphones, LCD screens, LED displays, CRT displays and active matrix displays.
For purposes of this specification and the accompanying claims the phrase "input device" refers to any device for entry of data to a computing device. The definition includes, but is not limited to a keyboard, a computer mouse, a trackpad, a track ball, a stylus, a touchscreen, a camera and a microphone.
Referring now to the drawings, <figref idref="f0002">Figure 2</figref> illustrates a method <b>20</b> of accelerating receipt of data in a client to client network. According to the present invention, data is typically received in response to a query. Each client <b>57</b> (<figref idref="f0001">Figure 1</figref>) in the client to client network operates a software program for implementing queries and providing responses. The software program may include, in some cases, at least two algorithms. Typically the queries are requests for data and the responses are data. The data may be, for example, organized in a file type such as MP3, DViD, MPEG-2, MPEG-1, M-JPEG, MPEG-4, ActiveMovie/Video for Windows (.avi), QuickTime(.mov), RealVideo(.rm and .ram), H263.1, HTML, Flash, Gif, Tif, mpeguide, exe or any other file type.
Method 20 includes the step of intercepting <b>22</b> queries and responses in the client to client network. According to some embodiments of the invention, the step of intercepting is accomplished by a redirecting device which may include, for example, a layer 4 switch.
Method <b>20</b> further includes the step of storing <b>24</b> the intercepted queries and responses in an acceleration server <b>52.</b> Acceleration server <b>52</b> may be located, for example, within a local area network <b>54</b> (e.g. <b>57</b> g and <b>57</b> k) or in a server <b>60</b> belonging to an Internet Service Provider. In some cases, step of storing <b>24</b> is accomplished by use of an algorithm which may include analysis of, for example, temporal information, ordinal information, frequency information, client information, identification information or combinations thereof. "Temporal information" as used herein may include, but is not limited to, data such as time of initial storage, total residence time in storage, elapsed time since last retrieval from storage, average time between retrievals from storage and time of creation of an original file. "Time" as used herein may include any reference to an absolute or relative measure of time including, but not limited to an absolute or elapsed time (e.g. 16:43:21 or 3hrs 21 minutes and 04 seconds since receipt) or an absolute or relative date (e.g. Feb. 22, 2001 or yesterday). "Ordinal information" as used herein refers to, for example, data such as order of receipt and order of retrieval. "Frequency information" as used herein refers to, for example, data such as frequency of retrieval and frequency of appearance in clients of the client to client network. "Client information" as used herein refers to, for example, data such as client connection status, client identification, and presence of specific data (i.e. a file or portion thereof) on a specific client. "Identification information" as used herein refers to, for example, data such as file identification, client identification, and identification of content within a file.
Method <b>20</b> further includes the step of transmitting <b>26</b> the intercepted responses to clients <b>57</b> submitting intercepted queries.
In some cases a single query or a single response may be intercepted by at least two acceleration servers. For example, a query for a video game called "piggy picnic" originates at client <b>57h</b> in LAN <b>54a</b>. The query is first intercepted by acceleration server <b>52</b> of client <b>57 g.</b> Because networks may reside one within another, although <b>57g</b> is a client with respect to the client to client network, it <b>(57g)</b> includes server function within LAN <b>54a.</b> In this case acceleration server <b>52</b> of client <b>57 g</b> is not storing a copy of "piggy picnic" from a previous response, so the query is then relayed via ISP server <b>60</b> where the query is screened against stored responses in acceleration server <b>52</b> of server <b>60.</b> Again, no match is found. The query is next relayed to user clients <b>57 a, b, and c</b> and to Internet <b>56.</b> From Internet <b>56,</b> the query is relayed to LAN <b>54b</b> where it encounters acceleration server <b>52</b> of client <b>57k,</b> and to Cable TV junction <b>62</b>/Satellite relay <b>64</b> which contain an additional acceleration server <b>52.</b> By these means, the query eventually reaches all of clients <b>57.</b> At this point the query has been intercepted, and according to some embodiments stored, in a total of four acceleration servers <b>52</b>. The result of the query is that copies of piggy picnic are present on clients <b>57a</b> and <b>57 m.</b> This information is relayed to requesting client <b>57h</b> via the same channels of communication described hereinabove. At this point client <b>57h</b> requests to receive a copy of piggy picnic from client <b>57a.</b> As this request is fulfilled, copies of piggy picnic may be stored on acceleration servers <b>52</b> of servers <b>60</b> and <b>57g.</b> As a result, a subsequent request from client <b>57c</b> for piggy picnic may be answered by transmitting the game directly from acceleration server <b>52</b> of server <b>60.</b> Alternately or additionally a subsequent request from client <b>57f</b> for piggy picnic may be answered by transmitting the game from acceleration server <b>52</b> of server <b>60</b> via Internet <b>56</b> and acceleration server <b>52</b> of satellite relay <b>64</b> to requesting client 57f. In this case, an additional copy of the game is generated at acceleration server <b>52</b> of satellite relay <b>64.</b> In general, practice of method <b>20</b> causes copies of frequently requested data to accumulate in areas where the requests originate.
According to additional embodiments of the invention, the step of transmitting <b>26</b> a specific intercepted response to a client submitting a specific intercepted query occurs only if a specific client which served as a source of the specific intercepted response is available on the client to client network and only if the specific client contains data identical to the specific intercepted response in a directory of the specific client. According to these embodiments, acceleration server <b>52</b> checks <b>36</b> if a specific intercepted response is available. If it is available, transmission occurs <b>26.</b> If it is not available, no transmission occurs <b>40.</b>
In some cases, requested data may be divided <b>28</b> into at least two packets before transmission. According to additional embodiments of the invention, the sub-step of transmitting a specific packet of the at least two packets to a client submitting a specific intercepted query occurs only if a specific client which served as a source of the specific intercepted response is available on the client to client network and only if the specific client contains data identical to the specific intercepted response in a directory of the specific client. That is, prior to transmitting a packet the network is checked <b>38</b> for the presence of that packet. If the packet is available, transmission occurs <b>26.</b> If it is not available, no transmission occurs <b>40.</b>
Alternately or additionally, the step of transmitting <b>26</b> an intercepted response to a client submitting a specific intercepted query occurs only if a specific client which contains data equivalent to the specific intercepted response in a directory of the specific client is available on the client to client network. If the equivalent data is available, transmission occurs <b>26.</b> If it is not available, no transmission occurs <b>40.</b> The same principle may be applied to packets. If an equivalent packet is available, transmission occurs <b>26.</b> If it is not available, no transmission occurs <b>40.</b>
In some cases, the step of storing <b>24</b> the intercepted responses in an acceleration server may include storing <b>24</b> a single intercepted response which originates in at least two separate and distinct clients. For example, client <b>57a</b> requests an accapella rendition of "Hatikva" by the Ramallah boys' choir as an MP3 file. The requested file is found on both clients <b>57b</b> and <b>57c</b>. The file is divided into ten packets, with packets 1,3,5,7 and <b>9</b> being sent to acceleration server <b>52</b> of server <b>60</b> by client <b>57b,</b> and packets 2,4,6,8 and 10 being sent to acceleration server <b>52</b> of server <b>60</b> by client <b>57c.</b>
Alternately or additionally, the step of transmitting <b>26</b> the intercepted responses to clients <b>57</b> submitting intercepted queries may include simultaneous transmission of portions of a single data set from at least two of the acceleration servers. For example, if client <b>57n</b> requests an MP3 file of Suzy Cream Cheese, and the file is found on acceleration servers <b>52</b> of servers <b>60</b> and Satellite relay <b>64,</b> packets having their origins in each of the two copies may be concurrently transmitted to client <b>57n</b> in order to provide a single copy of this much loved ditty.
In some cases, the step of transmitting a specific response of the intercepted responses may begin while the step of intercepting is still in progress for the specific response.
According to another aspect of the present invention there is provided a system <b>50</b> for accelerating receipt of data in a client to client network wherein each client in the client to client network operates a software program for implementing queries and providing responses. The system includes at least one acceleration server <b>52</b> designed and configured to intercept queries and responses in the client to client network wherein each of the queries and each of the responses contains unique identification information therein, the unique identification information facilitating interception thereof. Acceleration server <b>52</b> is further designed and configured to store the responses. Acceleration server <b>52</b> is further designed and configured to transmit the responses to clients submitting intercepted queries. Limits may be placed on this transmission a described hereinabove and hereinbelow.
System <b>50</b> may contain multiple acceleration servers 52 which may have a relative configuration which is either in series or in parallel or a combination thereof. For example, in fulfilling a request originating at client <b>57m,</b> acceleration server <b>52</b> of server <b>57k</b> and acceleration server <b>52</b> of satellite relay <b>64</b> are in series with respect to one another. Similarly, acceleration server <b>52</b> of satellite relay <b>64</b> and acceleration server <b>52</b> of ISP server <b>60</b> are in parallel with one another with respect to the same request.
Within system <b>50,</b> acceleration server <b>52</b> may be located in a variety of locations including, but not limited to, within local area network <b>(54a</b> and <b>54b),</b> on a server <b>60</b> belonging to an Internet service provider, at a cable television provider junction <b>62,</b> at a satellite relay link <b>64,</b> and within an ADSL junction.
Similarly, acceleration server <b>52</b> may be configured to be either unidirectional or bi-directional. This means that, for example, acceleration server <b>52</b> of server <b>57k</b> may be configured to transmit stored responses only to members of LAN <b>54b,</b> in which case it is said to be a unidirectional acceleration server <b>52.</b> Alternately acceleration server <b>52</b> of server <b>57k</b> may be configured to transmit stored responses in response to queries from inside LAN <b>54b</b> and from clients <b>57</b> outside LAN <b>54b</b> in which case it is said to be a bi-directional acceleration server <b>52.</b>
In some cases acceleration server <b>52</b> may further function as a client <b>57</b> in the client to client network. Alternately or additionally, acceleration server <b>52</b> may act as a transparent proxy server.
In some cases the specific client <b>57</b> which contains data equivalent to the specific intercepted response in a directory thereof includes at least two separate and distinct clients. This may be the case when, for example, a file is divided into packets as described hereinabove.
According to some embodiments of system <b>50,</b> acceleration server <b>52</b> is further designed and configured for dividing a specific intercepted response of the intercepted responses into at least two packets and transmitting the at least two packets to the clients submitting intercepted queries.
Although the invention has been described in conjunction with specific embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. All publications, patents and patent applications mentioned in this specification are herein incorporated in their entirety by reference into the specification, to the same extent as if each individual publication, patent or patent application was specifically and individually indicated to be incorporated herein by reference. In addition, citation or identification of any reference in this application shall not be construed as an admission that such reference is available as prior art to the present invention.
Contents4
2 sheets
Sheet 1 Sheet 2
Every citation, both waysCites: the store holds 3 of 4
| Document | Relation | Office |
|---|---|---|
| EP1011244A | Cites | European Patent Office (EPO) |
| US6263371B1 | Cites | United States of America |
| US6339785B1 | Cites | United States of America |
| "17. Transparent Caching/Proxying" SQUID FREQUENTLY ASKED QUETIONS, [Online] 19 June 2000 (2000-06-19), XP002352177 www.squid-cache.org Retrieved from the Internet: URL:http://web.archive.org/web/20000619163 655/http://www.squid-cache.org/Doc/FAQ/FAQ -17.html> [retrieved on 2005-11-02] | Non-patent | – |
| BARISH G ET AL: "WORLD WIDE WEB CACHING: TRENDS AND TECHNIQUES" IEEE COMMUNICATIONS MAGAZINE, IEEE SERVICE CENTER. PISCATAWAY, N.J, US, vol. 38, no. 5, May 2000 (2000-05), pages 178-185, XP000949799 ISSN: 0163-6804 | Non-patent | – |
| STEVENS W R ED - STEVENS ET AL: "TCP/IP ILLUSTRATED, PASSAGE" TCP/IP ILLUSTRATED. VOL. 1 : THE PROTOCOLS, PROFESSIONAL COMPUTING SERIES, READING, MA : ADDISON WESLEY, US, vol. VOL. 1, 1994, pages 1-20, XP002285274 ISBN: 0-201-63346-9 | Non-patent | – |
18 members in 7 offices
Priority claims11
| Document | Office | Kind | Date |
|---|---|---|---|
| 239273P | United States of America | – | |
| 23927300 | United States of America | P | |
| 810410 | United States of America | – | |
| 81041001 | United States of America | A | |
| 0100947 | Israel | W | |
| 239273P | – | – | – |
| 810410 | – | – | – |
| IL2001000947 | – | – | – |
| US20000239273P | – | – | – |
| US20010810410 | – | – | – |
| WO2001IL00947 | – | – | – |
Members18
| Document | Office | Kind | |
|---|---|---|---|
| WO0231615A2 | World Intellectual Property Organization (WIPO) | A2 | |
| AU1088502A | Australia | A | |
| WO0231615A3 | World Intellectual Property Organization (WIPO) | A3 | |
| US2002133621A1 | United States of America | A1 | |
| EP1410136A2 | European Patent Office (EPO) | A2 | |
| EP1410136A4 | European Patent Office (EPO) | A4 | |
| US7203741B2 | United States of America | B2 | |
| US2007198726A1 | United States of America | A1 | |
| EP1410136B1This record | European Patent Office (EPO) | B1 | |
| AT415657T | Austria | T | |
| ATE415657T1 | Austria | T1 | |
| DE60136749D1 | Germany | D1 | |
| ES2316483T3 | Spain | T3 | |
| US8037162B2 | United States of America | B2 | |
| US2012030290A1 | United States of America | A1 | |
| US8250149B2 | United States of America | B2 | |
| US2013191512A1 | United States of America | A1 | |
| US8930500B2 | United States of America | B2 |
54 legal events, as 7 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Announcement of lapse in spainLapsedFD2A | FD2A | ES | |
| Patent expired after termination of 20 yearsExpiredPE20 | PE20 | GB | |
| Expiry of rightR071 | R071 | DE | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Fee paymentPLFP | PLFP | FR | |
| Fee paymentPLFP | PLFP | FR | |
| Fee paymentPLFP | PLFP | FR | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Patent ceasedCeasedPL | PL | CH | |
| Change of addressCA | CA | FR | |
| No opposition filedOpposition26N | 26N | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Nl: lapsed or annulled due to failure to fulfill the requirements of art. 29p and 29m of the patents actLapsedNLV1 | NLV1 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Definitive protectionFG2A | FG2A | ES | |
| Party data changed (patent owner data changed or rights of a patent transferred)RAP2 | RAP2 | EP | |
| Corresponds to:REF | REF | EP | |
| European patents granted designating irelandGrantedFG4D | FG4D | IE | |
| European patent takes effect as a national patent in ch/liEP | EP | CH | |
| Designated contracting statesAK | AK | EP | |
| European patent grantedGrantedFG4D | FG4D | GB | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Grant fee paidORIGINAL CODE: EPIDOSNIGR3GRAS | GRAS | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOSNIGR1GRAP | GRAP | EP | |
| First examination report despatched17Q | 17Q | EP | |
| Party data changed (applicant data changed or rights of an application transferred)RAP1 | RAP1 | EP | |
| Supplementary search report drawn up and despatchedA4 | A4 | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Party data changed (applicant data changed or rights of an application transferred)RAP1 | RAP1 | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 1410136
- Publication, DOCDB
- 1410136
- Publication, EPODOC
- EP1410136
- Application
- 1978794
- Application, DOCDB
- 01978794
- Application, EPODOC
- EP20010978794
Titles3
- German
- VERFAHREN UND SYSTEM ZUM BESCHLEUNIGEN DES EMPFANGS VON DATEN IN EINEM CLIENT-TO-CLIENT-NETZWERK
- English
- METHOD AND SYSTEM FOR ACCELERATING RECEIPT OF DATA IN A CLIENT TO CLIENT NETWORK
- French
- PROCEDE ET SYSTEME PERMETTANT D'ACCELERER LA RECEPTION DES DONNEES DANS UN RESEAU CLIENT A CLIENT
Classification
- CPC, 6
- G06F9/465
- H04L67/1097
- H04L67/104
- H04L67/1063
- H04L69/329
- H04L67/568
- IPC, 3
- G06F9 46
- H04L29 08
- H04L29 06
Designated states1
- Contracting states, 1
- Türkiye