System and method for providing faster and more efficient data transmission
FIELD: physics, computer engineering.
SUBSTANCE: invention relates to Internet communication. The system employs network elements, which include an acceleration server, clients, agents and peers, where communication requests generated by applications are intercepted by a client in the same computer. The IP address of the server is transmitted to the acceleration server, which provides a list of agents for use for said IP address. One or more agents respond with a list of peers who previously possessed some or all of the content, which is a response to said request. The client then downloads data from said peers in parallel and in parts.
EFFECT: reducing network overload for content owners and Internet service providers.
16 cl, 15 dwg
CROSS-REFERENCE TO RELATED APPLICATIONS
The present application claims the priority of co-pending provisional patent application U.S., entitled "faster AND MORE EFFICIENT DATA SYSTEM" having serial number 61/249,624, filed October 8, 2009, which is incorporated into this description by reference in full.
The technical field TO WHICH the INVENTION RELATES
The present invention relates to Internet communications, and more particularly to high speed data transmission and efficient use of bandwidth on the Internet.
The LEVEL of TECHNOLOGY
There are some trends in the use of the network and the Internet, which significantly increase the bandwidth used on the Internet. One such trend is that more and more video viewing on demand on the Internet. This includes looking at both short and long videos. In addition, the Internet can be viewed regular shows and feature films. Another trend is that the increase in Internet traffic is due to the fact that the web sites (for example, shopping portals, news portals and social networks) are global, this means that websites serve people in many RA�personal locations on the planet, and thus the data is moving through long stretches of the Internet, increase congestion
The increased consumption of bandwidth has created some significant problems, some of which are listed below.
The problem for users- the current bandwidth of the Internet is insufficient, and thus the actual speed experienced by users, is low;
The problem for content owners- a considerable amount of data viewable by the user, requires large sums of money on the costs of hosting and bandwidth; and
The problem for Internet service providers(ISP)- the growth of Internet traffic ISP requires increasing infrastructure costs (communication lines, routers, etc.) due to the significant financial costs.
The need for a new method of data transfer, which is quick for consumers, cheap for the content distributor and would not require infrastructure investments to ISP, has become a major issue that is still unresolved.
There were many attempts to make the Internet faster for the consumer and cheaper for broadcasters. Each such attempt is not missing some aspect to become widespread practical solution, or partial solution�education, though it covers only a subset of the main problems associated with the increase in Internet traffic. Most of the earlier solutions require integrated solutions for billions of dollars of investment. Most of these attempts have the disadvantage that a significant portion of online content is dynamically generated for each user session and referred to the user (this trend has been called "Web 2.0"). This can be illustrated, for example, on the website Amazon and the web-Salesforce website, where the majority of species pages on these web sites is adapted to the observer and thus is excellent for any two observers. This dynamic information makes it impossible for most solutions proposed to date, maintaining content and providing it for others looking for similar content.
One solution that is used is called "proxy". Fig.1 shows a schematic diagram providing an example of using the proxy server in the network (2). A proxy or proxy server 4, 6, 8 represents a device that is placed between one or more clients, as shown in Fig.1 as the client device 10, 12, 14, 16, 18, 20, which request data via the Internet 22, and a web server or web servers 30, 32, 34, with which they supras�the data. The proxy server 4, 6, 8 requests data from the web servers 30, 32, 34 on its behalf and caches the responses from the web servers 30, 32, 34 to provide to other client devices that perform such requests. If the proxy server 4, 6, 8 is geographically close enough to the client devices 10, 12, 14, 16, 18, 20 and if the storage and bandwidth of the proxy server 4, 6, 8 are sufficiently large, then the proxy server 4, 6, 8 will increase the speed of queries to the client devices 10, 12, 14, 16, 18, 20, it operates in.
However, it should be noted that in order to provide a complete solution for Internet surfing, proxy servers shown in Fig.1 would need to be deployed at each point of the globe where it is consumed online, and warehouse proxy servers in each location should have a size comparable with all the information that is stored anywhere on the Internet. The above would lead to huge expenses which are not practical. In addition, these decisions are based proxy servers well enough to cope with dynamic data, which are predominant in the Internet at present.
There are commercial companies such as Akamai, which had launched such proxies locally around the world and serving a selected small group of sites in the inter�ete. If all sites in the network were to be implemented with the help of this solution, the investment would be in the range of billions of dollars. In addition, this type of solution does not handle dynamic content.
To create large-scale distribution systems with minimum hardware characteristic of the proxy solution, proposed solutions, "peer-to-peer file sharing", for example BitTorrent. Fig.2 is a block diagram that provides an example of peer-to-peer network 50 transferring files. In the network 50 files stored on computers of consumers, which in this description referred to as client devices 60. Each user can provide data to other consumers via the Internet 62, thereby relieving the load of service with content distributors and keeping them associated costs, and providing the consumer with multiple points of which can be downloaded data, which in this description referred to as peer-to-peer participants 70, 72, 74, 76, 78, thus increasing the download speed. However, each such peer-to-peer solution must have some kind of index by which it is possible to find the required data. In a typical peer-to-peer system to share files, since the index is on the server 80 or distributed m�waiting for some email servers, the number of files available in the system is not very large (otherwise, the server costs would be very high or the search time would be very large).
Peer-to-peer solution file sharing was acceptable in the system of file sharing, since there is no such a large number of media files that are of interest to the masses (perhaps in the order of magnitude of millions of movies and songs that are of interest). Storage and maintenance of the index millions of records is economically and technically practical. However, if this system should be used for servicing hundreds of billions of files that are available on the Internet at the present time, the costs of storing and maintaining such an index again would be calculated in billions of dollars. In addition, these types of peer-to-peer file sharing is not able to deal with dynamic data in HTTP.
In conclusion, there is no system that makes possible the rapid transfer of most data on the Internet, which does not require huge costs and/or which provides a very partial solution to the problem of overload of Internet traffic. Thus, not previously satisfied a need exists in the industry to address the aforementioned fault�and inconsistencies in the requirements.
Summary of the INVENTION
The present system and method provides a faster and more efficient data transfer within a communication network. Briefly described at the architectural level one variant of implementation of the system among others can be implemented as follows. Network provide for faster data transmission, and the network contains at least one client communication device to request data from the data server; at least one agent communication device which is assigned to the data server for receiving the data request from the client communication device, wherein the agent keeps track of which client devices have received responses to data requests from the assigned data server; at least one peer-to-peer communication device to store the pieces of data taken in response to the data request by at least one client communication device, the data can be transmitted, at least one client communication device upon request by the client communication device; and at least one server acceleration for a decision as to which agent communication device must be assigned to a data server, and provide this information at least one client device connected.
The present system and method also provides us�master communication network, wherein the communication device comprises the memory and the processor configured by the memory to perform steps, which create a data query to retrieve data from the server data; assign the data server, called the assigned data server; accepting a request for data from individual devices in the network and keep track of which client device connected to the network received responses to the data requests from the assigned data server; and store portions of the data, taken in response to the generated request data, the data can be transmitted to the communication device upon request by the communication device.
Other systems, methods, features and advantages of the present invention will be understood by a person skilled in the art after studying the following drawings and detailed description. It is implied that all such additional systems, methods, features and advantages included within this description, are within the scope of the present invention and be protected by the appended claims of the invention.
BRIEF description of the DRAWINGS
Many aspects of the invention can be better interpreted with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis is placed on illustrating the principles of the present invention. Furthermore, the same numerical designations in the drawings indicate�s matching parts in various views.
Fig.1 is a schematic diagram providing a prior art example of using proxy on the network.
Fig.2 is a schematic diagram providing prior art on the example of peer-to-peer network file transfer.
Fig.3 is a schematic diagram providing an example of a communication network in accordance with the present invention.
Fig.4 is a schematic diagram further showing a communication device of the communication network of Fig.3.
Fig.5 is a schematic diagram further illustrating the memory of Fig.4.
Fig.6 is a schematic diagram further illustrating the elements of the application of the acceleration Fig.5, and the communication channels of the application of acceleration.
Fig.7 - a schematic diagram further showing the two main databases used in network communication.
Fig.8 is a block diagram of the sequence of operations illustrating the operation of the module initializer system of acceleration.
Fig.9 is a block diagram of the sequence of operations, further illustrating the relationship between the different elements of the communication network.
Fig.10 is a block diagram of the sequence of operations, continuing a block diagram of the sequence of operations of Fig.9 and focused on the agent response to a HTTP request.
Fig.11 is a block diagram of the sequence of operations, continuing a block diagram of the sequence of operations of Fig.10, to�which shows the action taken upon receipt from the agent of the peer list of participants or listing one peer of the participant.
Fig.12 is a block diagram of the sequence of operations illustrating the steps taken by the agent, client or peer-to-peer participant to determine whether reliable still some HTTP request.
Fig.13 is a block diagram of the sequence of operations that specifies the schema of the server operations of acceleration.
Fig.14 is a block diagram of the sequence of operations, further illustrating the acceleration of TCP/IP in accordance with an alternative embodiment of the invention.
Fig.15 is a block diagram of the sequence of operations, further illustrating the acceleration of TCP/IP in accordance with an alternative embodiment of the invention, detailing the connection between the client and server TCP/IP commands read and write) after the phase of the connection was successfully completed.
The present system and method provides a faster and more efficient data transfer within a communication network. An example of such a network 100 connection provided by the schematic diagram of Fig.3. The network 100 of Fig.3 includes multiple communication devices. Because of the functionality provided by the hardware that is stored in each communication device, which may be the same in each communication device,each communication device can serve as a client, peer-to-peer participant or agent depending on the requirements of the network 100, as described in detail below. It should be noted that detailed description of the communication device is provided in the description of Fig.4.
Returning to Fig.3, an exemplary embodiment of the network 100 shows, as one of the communication devices functions as the client 102. The client 102 is arranged to communicate with one or more peer-to-peer participants 112, 114, 116 and one or more agents 122. For illustrative purposes, the network contains three peer-to-peer participant, and one agent, although it is noted that the client can communicate with any number of agents and peer-to-peer participants.
The network 100 also includes a web server 152. The web server 152 is the server from which the client 102 requests information and may be, for example, a typical HTTP server from among those that are used to deliver content to any of the many servers on the Internet. It should be noted that the server 152 is not limited to the HTTP server. In fact, if you use a great communication Protocol in the communication network, the server may be a server that is capable of processing a great Protocol. In addition, it should be noted that while the present description refers to the use of HTTP, the present invent�s may refer to any other communication Protocol, and HTTP is not intended to limit the present invention.
The network 100 connection further comprises a server 162 acceleration, having device 164 storage server acceleration. As described in more detail herein, the device 164 storage acceleration server contains a database server acceleration. Database acceleration server stores the addresses of Internet Protocol (IP) communication devices in the network 100 to communicate with software acceleration stored in them. In particular, the database server acceleration it contains stored a list of communication devices with software acceleration, stored in them, are currently online (connected to the network) in the network 100 connection. For each such agent, the acceleration server assigns the IP address list.
In the network 100 connection according to Fig.3 the application to the client 102 requests information from a web server 152, which is why the software in the communication device, assigns it a communication device as a client. In addition, because the agent 122 receives the request from the client 102 as soon as the communication device to the web server 152, the functionality of the agent 122 provided by the software agent 122 assigns the communication device working as an agent. It should be noted that, in accordance with an alternative embodiment of the invention the agent is not required to be)�istom communication which is the closest to the web server. Instead, another device can be selected to be an agent.
Because peer-to-peer participants 112, 114, 116 contain at least part of the information requested by the client 102 to the web server 152, a peer-to-peer functionality of the participants 112, 114, 116, provide peer-to-peer software participants 112, 114, 116, assigns these communication devices work as peer participants. It should be noted that the process of assigning customers, agents and peer-to-peer participants described in detail in this document. It should also be noted that the number of clients, agents, peer-to-peer participants, the acceleration servers, web servers and other network components 100 connection may differ from the amounts shown in Fig.3. In fact, the number of clients, agents, peer-to-peer participants, the acceleration servers, web servers and other network components 100 links is not intended to limit the given description.
Before describing the functionality performed by the network 100 connection, the following further describes the device 200 communication in accordance with a first example embodiment of the invention. Fig.4 shows a schematic diagram further illustrating the device 200 communication network 100 connection which contains common to�mponent computer. As mentioned above, the device 200 connection of Fig.4 can serve as a client, agent or peer-to-peer participant.
In General, from the point of view of the hardware architecture shown in Fig.4, the device 200 connection includes a processor 202, memory 210, at least one device storage 208 and one or more devices 240 input and/or output (I/O)(or peripherals) that are connected with the possibility of communication via local interface 250. The local interface 250, for example, but not limited to, can be one or several buses or other wired or wireless connections, which are known in the prior art. The local interface 250 may have additional elements, which for purposes of simplicity omitted: for example, controllers, buffers (caches), drivers, repeaters, and receivers, to enable communications. Additionally, the local interface 250 may include address, control and/or data connections to enable appropriate communications among the above-mentioned components.
The processor 202 is a hardware for executing software, particularly that stored in memory 210. The processor 52 can be any custom made or commercially available processor, a Central� processing unit (CPU), auxiliary processor among several processors associated with the device 200 communication, microprocessor-based semiconductors (in the form of a chip or set of schemas), a macro processor, or other conventional device for executing instructions of the software.
The memory 210, which is further illustrated and described by means of the description to Fig.5, may include any one or combination of volatile memory elements (e.g., memory, random access (RAM, such as DRAM, SRAM, SDRAM, etc.)) and nonvolatile memory (e.g., ROM, hard disk drive, tape drive, CDROM, etc.). Moreover, the memory (210) may include electronic, magnetic, optical and/or other types of storage environments. It should be noted that the memory 210 can have a distributed architecture, where various components are situated remotely from one another, but they can be accessed by the processor 202.
Software 212, the memory 210 may include one or more separate programs, each of which contains an ordered listing of executable instructions for implementing logical functions of the communication device 200 as described below. In the example of Fig.4 software 212 in the memory 210, at least, contains app� 220 acceleration and Internet browser 214. In addition, memory 210 may include an operating system (OS) 230. The operating system 230 is essentially controls the execution of computer programs and provides scheduling services, management data input / output, administration of files and data administration memory, communication control and related services. It should be noted that in addition to the application 220 speed up, Internet browser 214 and the operating system 230, the memory 210 may contain other application software.
Although the present description refers to a request from the client, created from Internet browsers, the present invention is not limited to queries that are generated from Internet browsers. Instead, the query can be created from an email program or any other program that will be used to query data that is stored on the web server or another server that holds the data requested by the client device.
The functionality of the communication device 200 may be provided by a source program, executable program (object code), script, or other objects containing a set of instructions that must be executed. If there is a source program, then the program must be converted using the compiler, assembler, interpreter Il� similar, that may or may not be included in the memory 210 so that it can operate correctly in the context of the operating system 230. In addition, the functionality of the communication device 200 can be written as (a) object-oriented programming language, which has classes of data and methods, or (b) a procedural programming language, which has a program, subroutines and/or functions.
The device 240 I / o may include input devices, for example but not limited to, a keyboard, mouse, scanner, microphone, etc. moreover, the device 240 I / o may also include output devices, for example but not limited to, a printer, display device, etc. Finally, the device 240 I / o may further include devices that communicate through the bushings and through the findings, for example, but not limited to, a modulator/demodulator (modem; for accessing another device, system, or network), a radio frequency (RF) or other transceiver, a telephone interface, a bridge, a router, etc.
When the device 200 communication in action, the processor 202 is configured to run software 212 stored in the memory 210, to transfer data to and from the memory 210 and for the overall management of the operations of the communication device 200 in accordance with the USA�AI software 212. Software 212 and/With 230 in whole or in part (usually the second) are read by processor 202, perhaps buffered within the processor 202, and then executed.
If the functionality of the communication device 200 is implemented in software, as shown in Fig.4, it should be noted that this functionality may be stored on a computer readable medium for use by or in any context associated with the computer system or method. Within this document, the machine-readable medium is an electronic, magnetic, optical, or other physical device or means that can contain or store a computer program for use by or in the context associated with the computer system or method. The functionality of the communication device 200 may be embodied on any computer readable medium for use by or in the context of a device, tool or system execution of instructions: for example, based on a computer system containing a processor system, or other system that can fetch the instructions from the device, instrument or system executing instructions and execute them. Within this document, a "computer readable media" can be any means that can store, �to eradiate, to propagate or transport the program for use by or in the context of a device, tool or system.
Machine-readable media, for example, may not be limited to, an electronic, magnetic, optical, electromagnetic, infrared or semiconductor device, instrument or system, or a propagation medium. More specific examples (a non-exhaustive list) of the computer readable medium would include: an electrical connection (electronic) having one or more wires, a portable computer diskette (magnetic), a memory with random access (RAM) (electronic), permanent memory (electronic), an erasable programmable permanent memory (EPROM, EEPROM, or flash memory) (electronic), an optical fiber (optical) and portable permanent memory on the CD-ROM (CD-ROM) (optical). It should be noted that the machine-readable medium may even be paper or another suitable medium on which is printed the program, as the program can be captured electronically: for example, by optical scanning of the paper or other media with the subsequent compilation, interpretation or other processing as appropriate if necessary, and stored in �Amati computer.
In alternative implementation, in which the functionality of the communication device 200 is implemented in hardware, the functionality may be implemented using any one or combination of the following technologies, each of which is well known in the prior art: a discrete logic circuit (circuits) having logic gates for implementing logic functions upon data signals; specialized integrated chip (ASIC) having combinational logic gates; programmable gate array (matrix) (PGA) or a field programmable gate array (FPGA), etc.
At least one device 208 of the storage device 200, can be one of many categories of storage devices. As described in more detail herein, the device storage 208 may include a base 280 configuration data 282 and the base data cache. Alternatively, the base 280 of the configuration data and the base 282 of the data cache can be located on different storage devices that communicate with the device 200 connection. The following description assumes that the base 280 of the configuration data and the base 282 of the data cache are located on the same storage device, but it should be noted that the present invention is not limited to use at�th configuration.
Database 280 stores configuration data the configuration data that are common to all network elements 100 Telecom and are used to provide synchronization information and install various application modules 220 of the acceleration stored in the memory 210, as described in more detail in this document. Base 282 data cache stores responses to the HTTP requests that the device 200 communication sent either for their own consumption or for other network elements 100 connected. As detailed in this document, the responses to the HTTP requests are stored in the database 282 cache data for subsequent use by the device 200 connection or other communication devices in the network 100 connection who need to extract this information and who will use this device as either peer-to-peer party or agent.
In addition to the above, as disclosed in detail herein, the base 282 of the cache data is stored in it a list of URL pointers, which is aware of the communication device of which were requests). For each URL the base 282 of the cache data is stored in the actual URL, HTTP headers returned by the web server for that URL, that, when was the last time the contents of the URL it was downloaded directly from the web server, then, when the contents of the pointer URL changed on the web server last time as well as a list of blocks that contain the contents of that URL, and the data blocks themselves. The blocks in the present description are defined as the portions of data of a certain uniform size, which together form the full contents of the URL. It should be noted that, although the present description provides for the blocks which portions of data of a certain uniform size, in accordance with an alternative embodiment of the invention the blocks opposite can be of varying size.
Fig.5 is a schematic diagram further illustrating the memory 210 of Fig.4. As shown in Fig.5, the memory 210 may be divided into two basic levels, namely: level 260 operating system and application 270 level. Level 260 operating system includes an operating system 230, the operating system 230 further comprises at least one driver device 262 and at least one stack 264 connection. Drivers 262 devices are software modules that are responsible for basic operational commands for the various hardware devices of communication device 200, such as processor 202, the devices 208 and storage devices 240 I / o. In addition, stacks 264 ties provide applications of the communication device 200 a communication tool � network 100 through the implementation of various standard communication protocols.
The application layer 270 includes any application that is running on the device 200 connection. As a result the application layer 270 includes an Internet browser 214, which is used to view the information located on remote web servers, the application 220 acceleration, which is described in more detail below, and any other application 216 that is stored on the device 200 connection.
As explained in more detail below, the application 220 acceleration intercepts the requests made by the applications of the communication device (client) that uses the Internet, in order to modify the requests and route through the communication network. To intercept such requests can be used in different ways. One such method is to create a staging driver 272, which is also located in the memory 210, which attaches itself to all applications of communication, intercepts outgoing requests applications connection of communication device 200, such as an Internet browser 214, and routes the requests to the application 220 acceleration. After the application 220 acceleration modifies the requests, route requests to other system elements via the network 100 connection and receives responses from other system elements of the network 100 connection, the application 220 returns the acceleration responses of the intermediate PD�veeru 272, which provides responses back to the requesting application context.
Fig.6 is a schematic diagram further illustrating the elements of the application 220 acceleration, and communication routes application 220 acceleration. The application 220 acceleration contains a module initializer 222 acceleration system, which is called when the application starts 220 acceleration. The module initializer 222 acceleration system is able to initialize all the elements of communication device 200. The application 220 acceleration also contains three separate modules, which are executed in parallel, namely: the client module 224, a peer-to-peer module 226 and the agent module 228, each of which comes into effect in accordance with a specific role, which involves the device 200 connected to the network 100 communications in a given time. The role of each module is described further in this document.
The client module 224 provides the functionality required when the device 200 connection requests information from the web server 152, for example, but without limitation, the web pages, data, video or audio. The client module 224 prompts the device 200 communication with a client module 224, to intercept a query and skip mentioned, the request for information on other elements of network 100, e.g., people �Ellery, agents or peer-to-peer participants. This process is described in further detail herein.
Peer-to-peer module 226 provides the functionality required by the device 200 connection when you reply to other clients in the network 100 communications and ensuring other customers the information that they request that the device 200 connection with peer-to-peer module 226, already uploaded in some time. This process is described in more detail in this document.
The agent module 228 provides the functionality required when other devices of communication network 100 for communication, act as clients requesting the communication device 200, which has in itself this agent module 228, as agent, get the list of participants in peer-to-peer network 100 a link that contains the requested information. This process is described in more detail in this document.
The application 220 acceleration and interacts with the base 280 of the configuration data and database 282 data cache unit 208 for storage. As mentioned earlier, the database 280 stores configuration data the configuration data that can be shared by all communication devices of the network 100 for communication, and is used to provide synchronization information and install different modules 222, 224, 226, 228 application 220 of the acceleration stored in the memory 210.
Base 282 cache data x�anıt responses to information requests for example, the HTTP requests sent by the device 200 or for their own consumption or for other network elements 100 connected. Responses to HTTP requests stored in the database 282 cache data for subsequent use by the device 200 connection or other communication devices in the network 100 of contact to which you want to retrieve such information and who will use this device 200 communication as a peer participant or agent. This process is described in detail in this document.
The information stored in the database 282 cache data, may include any information associated with the request sent by the client. For example, such information may include metadata and actually requested data. For example, for an HTTP request, the video, the metadata may include the version of the web server responding to the request from the client, and data will be the very requested video. In the situation when the database cache is no more space for storage, the software of the associated communication device may prompt the communication device to erase previously stored data to clear space for saving new data in the database cache. For example, previous data may include data that, most likely, will not be used again. Such data may be old d�record or data known that they are no longer reliable. The communication device can select the erasing, at least, relevant data, in accordance with any of several methods known in the art.
Fig.7 is a graph further showing the two main databases used in the network 100 and the base 164 server data acceleration and base 282 of the data cache. As mentioned previously, the base 164 data acceleration server stores the IP addresses of the communication devices within the network 100 links that are stored in them software acceleration. In particular, the base 164 server data acceleration contains a list of communication devices with software acceleration, stored in them, are currently online in the network 100 connection. The acceleration server assigns IP addresses to each communication device functioning as the agent. Each communication device will be the agent for any of the web servers, the IP addresses which are in the range, which "owns" this device connection. For example, when the first communication device goes online, namely the first communication device, which is described in this document, which has in itself the application 220 of the acceleration, the acceleration server assigns all the IP addresses in the world this communication device and the communication device will be is�Sya agent for any web server. When the second communication device goes online, it will share the list of IP addresses with the first communication device so that each of these communication devices will be responsible for various servers of the world wide web (WWW).
Base 282 of the data communication device 200 is stored in a list of pointers URL286, which is aware of the device 200 connection. The device 200 connection becomes aware of the URL each time the device 200 accepts the connection request for information located at a specific URL. As shown in Fig.7, for each pointer URL288 in the list of URL pointers 286, the base 282 of the cache data store: the pointer 290 URL; HTTP-headers 292 returned by the web server 152 for the URL; then, when the contents of the URL it was downloaded directly from the web server 152 294 last time; then, when the contents of the pointer 296 URL on the web server 152 was changed last time 296; and the list of blocks 298, which contain the contents of that URL, and the contents of the block. As previously indicated, the blocks in the present description are defined as the portions of data of a certain uniform size, which together form the entire contents of the URL, namely all of the content, the location of which is described in the mentioned URL. As a non-limiting example can be used�to identify the block size, for example, 16 KB so that any HTTP response will be divided into blocks of 16 KB. In accordance with an alternative embodiment of the invention, if the last block of the response is not large enough to fill the specified block size, which in this example is 16 KB, the remaining portion of the block will be left blank.
For each such base unit 300 282 cache data includes a checksum of the block 302, the data block 304 and the peer list of the 306 participants who most likely have the data for this block. As described in detail herein, the data block can be used by other clients in the network 100 connection when other devices of communication network 100 connection serve as peer participants for customers, which can be downloaded data block.
For each block, compute the checksum and store it along with the block. The checksum can be calculated many different ways, known to those skilled in the art. The purpose of possessing mentioned checksum is to allow to uniquely identify the data, the checksum is the "key" to the data, where the data represent a block. For example, the client may wish to load the contents of the URL, resulting in the agent, �which serves the request sends the checksum blocks to the client, along with peer-to-peer participants that store these blocks. It should be noted that for each individual block may be a great peer-to-peer participant. The client then connects to each such participant and peer-to-peer provides a checksum for the block to be transferred peer-to-peer participant back to the client. Peer-to-peer participant seeks checksum (key) in its database cache and delivers a back block (data) that corresponds to this hash (the key). As shown in Fig.7, for each peer-to-peer participant 308 in the peer list of participants 306, the base 282 of the cache data includes an IP address 310 peer-to-peer party as well as the status 312 connection peer-to-peer participant, which indicates whether the peer-to-peer participant 308 online or not.
In accordance with one variant of the invention, the base 282 of the data cache can be indexed by URL and by using the checksum. The possession of a database cache, indexed, therefore, is preferred for the following reason. When an agent uses a database cache, the agent accepts the request from the client to the URL that the client is looking for. In this case, the agent to the database cache was indexed by �pointer URL, to assist in searching for a list of relevant peer-to-peer participants who have blocks this URL. When members use peer-to-peer database cache, peer-to-peer participants receive a request from a client for a specific checksum, and peer-to-peer participants need to ensure that the database was indexed by checksum, so that they can quickly find the correct block. Of course, instead, the database cache can be indexed in any other way that is understandable to the ordinary person skilled in the technical field.
Having described the components of the network 100 connection, then further describe how these components interact and operate individually. Fig.8 is a block diagram 300 of a sequence of operations illustrating the operation of the module initializer 222 system acceleration (hereinafter for brevity referred to as the initializer 222). It should be noted that any process descriptions or blocks in flowcharts of the sequence of operations should be understood as representing modules, segments, portions of code, or steps that include one or more instructions for implementing specific logical functions in the process, and the scope of the present invention included an alternative implementation in which functions may be executed in �Radke, than shown or described, including, in essence, simultaneously or in reverse order, depending on the functionality that is clear to experts, is quite familiar with the scope of this invention.
The initializer 222 represents the first element of the communication device 200 to operate at the start of communication device 200 (block 302). With the launch of the initializer 222, it first contacts the server 162 acceleration for registration in the server 162 acceleration. This is accomplished by providing server 162 acceleration hostname and IP address (es) control the medium access (MAC) interfaces on the device 200 to communicate with the initializer 222.
In accordance with an alternative embodiment of the invention, as indicated by block 304, the initializer 222 checks the server 162 acceleration if a later version of the software application acceleration. This can be accomplished by any of numerous known methods, for example, but not limited to, by providing the version number of the software application acceleration server 162 acceleration. The message taken back from the server 162 acceleration indicates whether there is a newer version of the software application acceleration. If a newer version is about�software application acceleration exists, the initializer 222 downloads the latest version of the software application acceleration server 162 acceleration or from another location and installs the latest version of the device 200 connection. In addition to the above initializer 222 may also schedule additional version checks at specified intervals thereafter. For example, the initializer 222 can check for system updates every two days.
As shown by block 306, the initializer 222 then forwards outgoing network traffic from the communication device 200, going through the application 162 acceleration. As mentioned earlier, one way to redirect traffic from a network is to insert intermediate driver 212, which intercepts and redirects traffic. It should be noted that there are many other ways to implement this redirection, which are well known to specialists in this field.
As shown by block 308, the initializer 222 then starts the client module 224 of the communication device 200 and configures the client module 224 of the communication device 200 to intercept all outgoing network transmission device 200 communication and to route outgoing network transmission to the client module 224 from the intermediate driver 272 or implement another way of routing. You�aneesa so, to the client module 224 was able to receive all network traffic coming from network applications to modify network traffic if necessary and re-route traffic. Specialists in this field it is known that for re-implementation of routing traffic traffic need to modify, for example, to change the destination address of the query.
As shown by block 310, the initializer 222 then runs the agent module 228 and peer-to-peer module 226 for execution on the device 200 connection. The agent module 228 and peer-to-peer module 226 listening device 200 communication on pre-defined ports so that incoming network traffic on these ports routed to the agent module 228 and peer-to-peer module 226. As described in more detail below, described above allows the device 200 connection to function as an agent and as a peer participant for other communication devices in the network 100 communications as needed.
Fig.9 is a flowchart (350), further illustrating the relationship between the various elements of the network 100 communications in accordance with the present system and method for providing faster and more efficient data transfer.
As shown by block 352, the application running on the client 200 initiates a request for �ears in the network. The request may be, for example, as follows: "GET http://www.aol.com/index.html HTTP/1.1". The request may come from the Internet browser 214, located on the client 200, the web browser 214 loads the page from the Internet or from the application that wishes to download information from the Internet, receive or send an e-mail message, or any other network connection request.
Using the intermediate driver 272 or other such mechanism that can be implemented, which performs re-routing the transmission to the client module 224 of the client 200, the resource request is intercepted by the client module 224, which runs on the client 200 (block 354). Then, the client module 224 searches for the IP address of the server 152, which is the purpose of the resource request (e.g., IP address, web server hosting www.aol.com in the above example), and sends this IP address to the server 162 acceleration (block 356) to obtain a list of communication devices that the client 200 can be used as agents (hereinafter referred to as agents). It should be noted that the process of performing IP lookup server, known to specialists in this field, so it is not described further in this document.
In response to receiving the IP address of the server server 152 162 accelerate preparing a list of agents that may be suitable for IPL treatment�Ki request from this IP address (block 358). The size of the list can vary depending on implementation. For illustrative purposes, below is provided an example where a list of five agents prepared by the server 162 acceleration. This list of agents is created by the server 162 accelerate through the search communication devices in the network 100 links that are currently online and whose IP addresses are numerically close to the IP of the web server 152 purposes. Below is a more detailed description of the above process.
As shown by block 360, the client module 224 then sends the original request (e.g. "GET http://www.aol.com/index.html HTTP/1.1") all agents from the list received from the server 162 accelerate to figure out which of the agents on the list best suited to be an agent who will facilitate this request.
It should be noted that, in accordance with an alternative embodiment of the invention, the device 200 may be connected to the device that actually requests the data. In this alternative embodiment of the connecting device will be modular device connected to the requesting device, where the requesting device, such as a personal digital assistant (PDA) or other device that will request the data, and a communication device connected to them either through physical soy�of inane, or wireless or any other compound that will take the data request and to function as described herein. In addition, as mentioned earlier, it should be noted that the HTTP request can be replaced with any request for resources on the Internet.
Fig.10 is a block diagram of the sequence of operations, continuing a block diagram 380 of the sequence of operations of Fig.9 and focused on the agent's response to the request. As indicated by block 382, after receiving the request from the client 200 each agent that received the request from the client meets the client 200, however, have information on the request that can help the client to download the requested information with peer-to-peer network members. In particular, each agent is responsible, whether there had been an earlier request for this resource that was executed. In this case, the agent can then provide the client with a list of peer-to-peer participants and checksum blocks that has every one of them.
As shown by block 384, the client then decides which of the agents in the list to use as their agent for this particular information request. To determine which agent from the list to use as your agent for specific information request, the client may consider several factors, for example, given with�orost response of each agent and the does the requested information to the agent or not. There are several ways of implementing this agent of choice, one practical way is to start the timer, a small window of time, e.g. 5 MS, after receiving a first response from the agents, and after that small window to choose from the list of agents that responded, an agent who has information about the request, or if none of the agents did not answer, select the first agent from the list received from the server 162 of acceleration.
As shown by block 386, after choosing the agent, the client shall inform the selected agent that he was going to use it for this request, and notifies other agents that they will not be used for this request. The client then sends the selected agent a request for the first five data blocks of the original information request (block 388). By specifying the selected agent requested blocks in their order in the full response that the client receives from the agent a list of peer-to-peer participants and the checksum of the required blocks. For example, for the first five blocks, the client will request the selected agent blocks from the first to the fifth, and the fourth installment of five blocks, the client will prompt the agent blocks the sixteenth to the twentieth. As previously indicated, in some point of time may be requested �additional or fewer blocks.
As shown by block 390, after receiving the request from the client to the selected agent determines whether it has information about the requested blocks of data by the search query in its database cache and determining whether the selected agent stored therein information about a peer of the participants of the communication network that have stored the requested data of the request, or does himself selected the agent requested query data stored in its memory. In addition to determining whether the selected agent record for this request in its database, the selected agent may also determine whether the information is still accurate. In particular, the selected agent determines, remains whether the data stored in the memory of the selected agent or peer-to-peer memory of participants, reflect the information that would be passed from the server for this request. Additional description of the process used by the selected agent to determine whether the information continues to be reliable, is provided later in this document.
As shown by block 392, if the information (the requested data of the request) exists and is still valid, the agent prepares a response to the client, which includes for each of the blocks: (i) a checksum of the block; (ii) a list of peer-to-peer participants, which, according to BA�e selected data agent, contain these blocks; and (iii) if they represent the first five blocks of information, the selected agent also provides specific Protocol headers that are received from the server with the original client request is made directly to the server.
As shown by block 394, the peer list of participants for each block are sorted by geographic proximity to the requesting client. In accordance with this example, only the five closest peer participants remain in the list for each block, and the rest of the peer participants excluded from this list. As shown by block 396, prepared a response, namely a list of the closest peer participants, send back to the client. It should be noted that if this was the last set of blocks that must be provided for this request, it would be preferable to have information about it for the client.
If selected, the agent discovers that he has no information about this request, or if the selected agent discovers that the information he possesses is no longer valid, the selected agent is required to download the information directly from the server, to be able to provide a response to the requesting client. As shown by block 400, the selected agent then sends a request to continuously�directly to the server. Then the selected agent stores information that it received from the server (and the headers of the request and the response), in its database for that particular response to the client, as well as for future use by other clients that can request the data (block 402). Then the selected agent prepares a response (list) for the client, wherein the response includes the Protocol header (if it is the first five blocks) and checksum five blocks, and provides itself as the only peer-to-peer participant for these blocks (block 404). This list is then sent back to the client (block 406).
Fig.11 is a block diagram 420 of a sequence of operations, continuing a block diagram of the sequence of operations of Fig.10, which illustrates the actions taken after receiving the peer list of participants or listing one peer party from the agent. As shown by block 422, the client receives a response from the agent (which includes a list of blocks and their corresponding data, including peer-to-peer participants, and the other above-mentioned information), and for each of the five blocks, the client sends a request to each of the peer participants listed on the unit to load the unit. The query block that the client sends to each peer participants, representative�possessing a checksum of the data the client aims to take, which is the key (identifier) block.
Then, as shown by block 424, peer-to-peer participants respond, do they still block data. For example, some peer-to-peer participants may not be online at the moment, some may be online, but may have excluded relevant information, and some may still have relevant information, namely the block. As shown by block 426, the client then chooses the fastest peer-to-peer participant, who meets with a positive response on the requested information, the client reports this peer-to-peer participant that it has been selected to provide the block to the client, and notify other peer participants that they are not selected.
As shown by block 428, the selected peer-to-peer participant sends the block to the client. It should be noted that, if there is no response peer-to-peer participants at the request of the client, the client is returned to the agent with notice that all peer participants were negative, and the agent either provides a list of five other agents, if they exist, or the agent continues to download information directly from the web server, as in the case where there is no peer-to-peer participants, as described above.
The client then stores the blocks in its cache for future use block 430), when the client may need to secure the blocks to the requesting communication device while acting as a peer participant for another client who is looking for the same information. As shown by block 432, if some of the blocks were not loaded with any of the peer-to-peer participants, the client re-requests the blocks of an agent in the next cycle of requests, marking those blocks as blocks that have not been downloaded from peer-to-peer participants in the client list. In this situation, the agent will download the data directly from the server and provide them back to the client.
The client then performs a confirmation to the agent of the units was adopted properly (block 434). The agent then searches for these blocks in the database agent and adds the client to the peer list of participants for these blocks, in particular for the reason that this client currently stores these blocks and can provide these units to other customers who look to him as to a peer participant (block 436).
As shown by block 438, the client then transmits the data to the web browser or other client application that complied with the original request, so they were used there, as originally planned. The client then checks whether all blocks have been taken for this request (block 440) through p�of overki flag an installed agent. In particular, when the agent provides a list of the last 5 blocks, the agent includes this information as part of its response to the client, herein referred to as a flag. This information is the one that allows the client to know that all information has been adopted for a specific resource request.
If the latest received blocks were not the last for this request, the processing flow of the client continues, returning to the functionality of block 384 of Fig.10, but send selected to agent a request for the next five data blocks of the original information request. Alternatively, if all the blocks for this request were accepted, the request is considered completed and the flow starts again at block 352 of Fig.9.
Fig.12 is a block diagram 500 of the sequence of operations illustrating the steps taken by the agent, client or peer-to-peer participant to determine whether reliable still some HTTP request. In particular, provide below example of how an agent, client or peer-to-peer party can determine still whether specific data that is stored in the agent memory, peer-to-peer participant or client, to reflect the information that is currently on the web server. As shown by block 502, HTTP requests�with searching in the database's cache agent, client or peer-to-peer participant, which verifies the validity of the HTTP request. For example, the HTTP Protocol as defined by RFC 2616, describes specific ways that web servers can define in the HTTP headers that indicate the reliability of some data, for example, but without limitation, through the use of HTTP header information, such as "max age" ("the maximum period"), to specify the time duration during which the data can be cached before becoming unreliable, "no cache" ("do not cache") to indicate that the data can never be cached and using other information.
As shown by block 504, these standard methods to check the authenticity tested on the information of the HTTP request. As shown by block 506, to perform determining correct or not requested information that is stored. If the requested information is true, return a response of "VALID" ("RELIABLE")(block 508). Alternatively, if the information requested is not valid, the corresponding web server sends a conditional HTTP request to determine whether the data stored for this request is still valid (block 510). If the data intact for this request is still valid, return the answer "VALID" (Blo� 508). Alternatively, if the data intact for this request are not valid, return a response of "INVALID" ("FALSE") (block 514). It should be noted that the above description relating to Fig.12 is an explanation of how to check, is it still reliable HTTP information. There are similar ways of determining the validity of any other Protocol that can be used and which will be understood and appreciated by specialists in this field.
Fig.13 is a block diagram 550 of the sequence of operations showing the operation of the server speed, the main duty of which in the present system and method is providing customers with information about what agents serve any requests, and maintaining timely software updates network elements. As shown by block 552, the server sends the acceleration signals "keep alive" ("keep-alive") network elements and keeps an eye on its database for the network elements online. As shown by block 554, the acceleration server continues to wait for a client request and continues to determine whether he adopted.
After receiving the request, the server acceleration tests the type of the received request (block 556). If the client sent the request for registration of a client in the network, an event that happens� every time when the client starts to run on your host machine, then add this client to the list of agents that are saved on the server acceleration, sorted by IP address of the client (block 558).
If the request is aimed at finding an agent for use with a particular request, the server acceleration creates a new agent list is empty (block 560). The server then acceleration is looking for in an agent database the following 5 active agents, an IP address, which is closest to the IP address of the server that is identified in the request (block 562). In this context 22.214.171.124 closer to 126.96.36.199 than 188.8.131.52. The server then accelerating agent sends this list to the client (block 564).
However, if the query is designed to test the latest version of the software acceleration, the acceleration server sends this network element (client, peer-to-peer participant or agent) number of the last existing version of the software acceleration and the URL from where it can be downloaded the new version, for the case in which the element should be updated to the new version (block 566).
Although the above example focuses on the HTTP requests data, as mentioned earlier, other protocols are equally able to be handled by the present system and method. For example, in some embodiments about�of westline describes how acceleration can speed up any communication Protocol at any level of the OSI model (SMTP, DNS, UDP, ETHERNET, etc.). The following alternative version of the embodiment shown, as a way to accelerate can accelerate TCP/IP. Specialists in this field it is known that TCP/IP is a relatively low-level Protocol as opposed to HTTP, which is a higher-level Protocol. In order to illustrate the connection by TCP/IP reference may be made to Fig.3, where the web server is a TCP/IP server.
In TCP/IP there are three command links that are of particular interest, namely the connection, reading and writing. The compound is a command issued by the application in the communication device that initiates communication to instruct the stack TCP/IP connection with the remote communication device.
The communication connection includes IP address of the communication device and the port number to which to connect. The application uses the write command to instruct the stack TCP/IP sending the message (i.e., data) to the communication device with which it is connected. In addition, the application uses the read command to query the software TCP/IP stack of a message that was sent from the remote communication device with which it is connected. A session usually consists of a compound, followed by reading and writing on both sides.
Fig.14 is a block diagram 600 of a sequence of operations, additional�individual illustrating the acceleration of TCP/IP in accordance with this alternative embodiment of the invention. As shown by blocks 601 and 602, when the application of the communication device executes the query stack connection on the connection to the server TCP/IP, such transfer is intercepted by the application of acceleration.
To find an agent, after receiving this message, the connection from the application to the communication device, which includes the IP address of the TCP/IP server and port that you want to connect to, the application of acceleration in the client makes a request to the server acceleration to determine who is the agent for communication with the TCP/IP server. This step is performed similar to that described in the main embodiment of the invention with the use of HTTP (block 604). As shown by block 606, the server then provides the client with a list of agents, such as primary agent and the other four.
To establish the connection, as shown by block 608, the client provides a TCP/IP connection with the primary agent or one of the other agents if the primary agent is unavailable, to create a connection with an agent. The client then sends to the agent the IP address of the server TCP/IP and connection port, which was provided by the application of the communication device (block 610). As shown by block 612, the agent in turn provides a TCP/IP connection with the server TCP/IP (through) port (port), which he accepted from the client to create a connection to the agent.
Fig.15 is a flowchart 800 last�dovalidate operations further illustrating the acceleration of TCP/IP in accordance with this alternative embodiment of the invention, detailing the connection between the client and server TCP/IP commands read and write) after the phase of the connection was successfully completed.
As shown by block 802, if the network application in the client needs to send a message to the server TCP/IP, network application in the client writes a message to the TCP/IP stack in the operating system of the client. This command RECORDS taken by the application acceleration client and processed as described below. If the TCP/IP server to send the message to the client, the TCP/IP server writes a message to the TCP/IP stack of the operating system TCP/IP connection with the agent, since this agent is a location in which the server accepted the original connection. This command RECORDS taken by the application of accelerating agent and processed as described below.
When the application acceleration client receives a message from a network client application, which must be sent to the agent, or when the application of the accelerating agent receives a message from server connection TCP/IP, which must be sent to the client, the application acceleration goes to send a message to a communication device on the other side. For example, if the client has intercepted a message from PR�provisions, communication, the client sends a message to the agent, and if he is the agent who intercepted the message from the server connection, TCP/IP, such as TCP/IP server that is sending the message is intended for communication with the client, the agent sends a message to the client as follows.
As shown by block 804, the application acceleration breaks the contents of the message into blocks and calculates the appropriate checksum as described for the primary embodiment of the invention herein. Then, the application acceleration searches for each checksum in the database cache (block 806). As shown by block 808, the application acceleration checks whether the checksum in the database cache. If there is, then, as shown by block 810, the application acceleration is preparing a list of peer-to-peer participants that have already adopted the block checksum in the past (if any), and adds the communication device of the other party in a list of communication devices that received the block (adds it to the list of participants for peer-to-peer checksum in its database) to provide it to other communication devices that will request this information. As shown by block 812, the peer list of participants is sent to the receiving communication device which, as shown� block 814, extracts blocks from peer participants in the accepted list, the methodology used in the basic version of the implementation.
If the checksum does not exist in the database cache, the sending communication device, as shown by block 820, the application acceleration adds a checksum and the block in the cache database, sends the block to the communication device on the other side and adds another communication device in the peer list of participants for this checksum in its database.
As shown by block 816, then perform the determination on whether all the blocks are taken. If not taken all blocks, the process continues again with block 806.
After receiving all the data, as indicated by block 818, the application of the acceleration passes the data to the requester. In particular, the client application acceleration transmits full data to the communications application and the agent application acceleration transmits full data to the requesting server TCP/IP.
It should be emphasized that the above-described embodiments of the present invention are merely possible examples of implementations, set forth only for a clear understanding of the principles of the invention. Many changes and modifications can be made relative to the above-described embodiments, substantially no deviation from the essence and when�standards of the invention. All such modifications and changes are included in this document within the scope of this disclosure and present invention and protected by the following claims.
1. Network for faster and more efficient transmission of data that contains
the client communication device from a plurality of client communication devices to create a new data query to retrieve data from a data server;
many agent communication devices, each of which can be assigned to the data server for receiving request data from the client device communication, each agent keeps track of which of said plurality of client devices connected to the network received responses to data requests or part thereof from the said data server;
at least one peer-to-peer communication device to the client device context that stores at least a portion of the data adopted in response to the previous request for the data to others of said plurality of client communication devices, wherein the previous data request concerned the same data are requested at the time mentioned the query data, and wherein data may be transferred from peer-to-peer communication device referred at least one client communication device upon request of the client mustache�a master of communication; and
at least one server acceleration for a decision about what the agent communication device must be assigned to the data server, and ensure that information referred to at least one client device connected.
2. The network according to claim 1, in which each client communication device, a peer device communication and agent communication device contain the client module, the peer-to-peer module and the agent module, thereby allowing the client communication device, a peer device communication and agent communication device to serve as any of client devices, peer-to-peer device communication and agent communication device.
3. The network according to claim 1, in which the acceleration server assigns an address list of Internet Protocol each agent's communication device.
4. The network according to claim 1, in which the acceleration server keeps a list of the online communication devices, including client device communication agent communication unit and a peer communication device.
5. The network according to claim 1, in which each client device communication agent the communication unit and a peer communication device to maintain a list of data requests and responses with the data, which respectively are aware of the communication device, the agent communication unit and a peer communication device, and that�that in which the communication device is stored associated data.
6. The network according to claim 1, in which the data request from the client device communication is an HTTP request, and the server is a web server, each client communication device comprises a storage device that stores a list of uniform resource locators (URL), which is aware of the client communication device, each agent's communication device comprises a storage unit that stores the list of URLS which Agency is aware of the communication device, wherein each peer-to-peer communication device comprises a storage unit that stores the list of URLS which aware peer-to-peer communication device, and wherein in the storage device that stores URLS, with each URL, the storage device also stores zero or more of the group consisting of HTTP headers that the server returns the data for this URL, the list of blocks that contain the contents of the URL, wherein the blocks represent portions of the data, which all together form the contents of a URL and a content block.
7. The network according to claim 1, in which each client communication device includes a storage device, wherein the storage device stores at least one from the group consisting of a list of blocks that contain content associated with the request d�nnyh, the blocks represent portions of the data, which all together form the content associated with the data request, and the contents of the block, wherein the blocks are the same size.
8. The network according to claim 6, in which the storage device that stores URLS, with each URL, the storage device also stores a list of blocks that contain the contents of the URL, wherein the blocks represent portions of the data, which all together form the contents of the URL, and for each block the data block checksum block and a list of peer-to-peer participants who most likely have the data for this block.
9. The network according to claim 1, in which the network contains numerous peer to peer communications devices, wherein said at least one agent communication device additionally keeps track of which peer-to-peer communications devices store at least a portion of the requested data.
10. The network according to claim 1, in which the agent monitors peer-to-peer participants and the pieces of data stored in peer-to-peer participants, and wherein, if said at least one agent knows a particular peer-to-peer participant, which is part of the data needed to execute stored therein mentioned new data request, the agent provides mentioned the particular peer group member as peer-to-peer acustically use for these pieces of data necessary for the implementation of a new data query.
11. Method for use in a system for sending messages between the requesting client communication device having a client cache storage, and the data server through the agent device communication with the agent cache storage, and using the acceleration server, which maintains a list of client communication devices in the system, the method contains the stages at which
the requesting client communication device sends the server ID of the data to the server acceleration;
server acceleration associating one or more client devices communicate with the server data and provides a list of one or more client communication devices requesting client communication device;
the requesting client communication device selects one of secured client communication devices that should be used as an agent communication device for communication with the data server and sends the agent communication device, a message intended for the server data;
the agent communication device determines whether the previously one or more client communication devices reply to a received message from the data server; and
if there are one or more client communication devices that have previously received a response to a received communications�communication with data server carry out the stages at which
the agent communication device sends to the requesting client communication device a list of one or more client communication devices that have previously received response, wherein one or more client communication devices that have previously received a response, called peer-to-peer communication devices;
the requesting client communication device retrieves the requested response in one or more parts of one or more peer communication devices in the list;
the requesting client communication device stores the request and response into the client cache storage; and
the agent communication device stores the identity of the requesting client communication device together with the request and response in the agent cache storage.
12. A method according to claim 11, in which, after receiving the communication directed to the data server from the requesting client device communication agent the communication device checks whether the agent cache storage the response received the identical message sent by the client communication device to the data server in the past, and if the agent communication device is not aware of any client communication devices that have accepted the answer to this last message, perform the following steps, which
the agent communication device poisons the message Suprasil�existing client device connection to the data server;
the data server sends a response message back to the agent communication device;
the agent communication device stores the message to the requesting client communication device and the response message data server in the agent cache storage;
the agent communication device sends the server response data back to the requesting client communication device; and
the requesting client communication device stores the request and response into the client cache storage.
13. A method according to claim 11, wherein the list of one or more peer communication devices includes only peer-to-peer communications devices which are most favorable to the requesting client communication device from the point of view of speed of reception of the information from the peer communication devices.
14. A method according to claim 13, in which client devices that are defined in the agent communication device as the most favorable, are client-side communication devices that are the closest to the requesting client communication device.
15. A method according to claim 11, in which the queries are selected from the group consisting of HTTP, UDP, DNS, TCP, FTP, POP3, SMTP, and SQL.
16. Method for use in a system for sending messages between the requesting client communication device having a client cache storage, and the data server through the agent device�tvo communications,
having the agent cache storage, and using the acceleration server, which maintains a list of client communication devices in the system, the method contains the stages at which
the requesting client communication device sends the server ID of the data to the server acceleration;
server acceleration associating one or more client devices communicate with the server data and provides a list of one or more client communication devices requesting client communication device;
the requesting client communication device selects one of secured client communication devices that should be used as an agent communication device for communication with the data server and sends the agent communication device, a message intended for the server data;
the agent communication device determines whether the previously one or more client communication devices reply to a received message from the data server;
in this case, Agency a communication device shares the response that it receives from the data server to one or more smaller data blocks and stores the blocks in the agent cache storage in which the data is stored as a list of blocks from which they are composed, and for each block stored a checksum of this block together with the block, as well as a list of network elements, a focus�'s known, they took this piece of data in the past; and
if there are one or more client communication devices that have previously adopted the reply to the received message from the data server, execute the stages at which
the agent communication device sends to the requesting client communication device a list of checksums of the blocks that contain the server response data for each of the control amounts of the agent's communication device sends the identifiers of the client communication devices that have adopted such a checksum from the agent communication device in the past, in these client devices that have enacted such checksums from Agency communications devices in the past, called peer-to-peer participants;
the requesting client communication device retrieves the answer, or part of it, requesting blocks in the list from one or more peer-to-peer participants in the list, adopted from the agent communication device;
the requesting client communication device stores the request and response into the client cache storage; and
the agent communication device stores the identity of the requesting client communication device with blocks that have adopted the requesting client communication device.
FIELD: radio engineering, communication.
SUBSTANCE: invention relates to handover between technologies for multi-mode mobile devices and is designed for handover of a multi-mode mobile device from a first network technology to a second network technology. The method includes initiating by the multi-mode mobile device a first packet session in a first wireless network in an area of multi-technology wireless coverage and detecting by a multi-mode mobile device a second wireless network supporting a different access network technology than the first wireless network; determining a quality of service requirement for services supported by the session, and completing initial network entry and session establishment procedures by the multi-mode mobile device for a second session in the second wireless network when the first session includes at least one of a QoS sensitive service and real time service by the first wireless network and mobile device, and not completing initial network entry and session establishment procedures by the multi-mode mobile device when no QoS sensitive service and real time services are supported by the mobile device and first wireless network.
EFFECT: high throughput.
8 cl, 4 dwg
FIELD: measurement equipment.
SUBSTANCE: invention relates to drilling equipment, namely, to devices of sensor switching, which measure drilling parameters directly in process of drilling within a telemetering system. The device comprises a body and contact elements, is located inside a drilling pipe and made in the form of a jet element, including a supply balloon with compressed gas, a jet unit of command signal generation, jet triggers with a count input, jet units of inverters, jet logical elements "AND" and "OR" and a jet unit of output signal generation, besides, the output of the jet unit of command signal generation is connected with the input of jet triggers, outputs of which are connected with inputs of the jet unit of inverters, and outputs of inverters are connected with inputs of jet logical elements "AND" connected to outlets of bottomhole sensors, outputs of elements "AND" are connected with inputs of the logical element "OR", the output of which is connected to the input of the jet unit of output signal generation.
EFFECT: increased reliability of bottomhole sensor switching within a telemetering system.
FIELD: physics, computer engineering.
SUBSTANCE: invention relates to data transmission systems. A transmission system (1) transmits and receives basic data needed to reproduce an image or audio and extended data used to improve image and audio quality through a communication network (2) between transmission terminals (10). The transmission system (1) includes: a basic data relay system (40) which includes: a plurality of basic data relay modules (430) for relaying basic data transmitted from a source transmission terminal from among transmission terminals (10) to a target transmission terminal from among transmission terminals (10); and a selection module which selects one basic data relay module (430) from among basic data relay modules (430) for each communication between transmission terminals (10); and an extended data relay system which includes: an extended data relay module (36) for relaying extended data transmitted from a source transmission terminal to a target transmission terminal.
EFFECT: reduced load on a specific relay server when transmitting images and audio.
10 cl, 29 dwg
FIELD: physics, computer engineering.
SUBSTANCE: invention relates to multiservice communication networks. The method includes setting a table of priorities, wherein each user terminal is assigned a priority at its static IP address; determining the priority of a new connection from the table of priorities in accordance with the IP address of the sender terminal; reading values of the required resource for the new connection from the header of its IP address; calculating free access network resources; determining if there are existing open connections with a lower priority than the new connection; comparing their overall resource with the required resource for the new connection; if insufficient, the connection is denied service; if sufficient, the relative resource consumption of said connections is calculated; ordering the selected open connections; selecting from the ordered open connections one or more connections, starting with the connection with the maximum value, after which said connections are terminated, and the freed resource is provided to the new connection.
EFFECT: high efficiency of using communication resources in multiservice networks.
1 cl, 3 dwg
FIELD: physics, computer engineering.
SUBSTANCE: group of inventions relates to means of controlling data streams in secure distributed information systems. The method includes specifying a table of reference routing files of a distributed information system in test operating mode thereof, consisting of reference routing files for all authorised users when said users access information resources and services of certain network nodes of the distributed information system. After permission to transmit a data stream in a switching unit at a certain network node, routing files are generated thereon when the i-th user accesses information resources and services of the j-th network node of the distributed information system; the obtained routing files are transmitted to an access control centre. The obtained routing files are compared with reference values; the j-th network node of the distributed information system is remembered when accessed by the i-th user if the routing files do not match. The switching table is then corrected and, using the new network interaction parameters, said data stream is blocked, and transmission continues in case of a match.
EFFECT: improved security of distributed information systems.
2 cl, 4 dwg
FIELD: information technologies.
SUBSTANCE: reception of a coded voice signal transmitted by user equipment. A coded voice signal comprises the first subflow, the second subflow and the third subflow, and to the first subflow a segment of cyclic redundant code (CRC) control is connected. Processing by decoding of the first subflow, the second subflow and the third subflow by application of the decoding logic. The decoding logic based on the auxiliary solution according to CRC is adapted to perform processing by decoding of the first subflow. Transmission of decoding results of the first subflow, the second subflow and the third subflow into a controller of base stations. The result of decoding of the first subflow includes a decoded bit stream and CRC result.
EFFECT: increased quality of a voice signal.
20 cl, 20 dwg
FIELD: physics, communication.
SUBSTANCE: invention relates to wireless networks of cellular structure with processing of messages of route request in on-demand routing protocols. The technical result is achieved by the fact that location of the actual route is detected between a source unit and a destination unit on the basis of the first intermediate unit responding to the message of route request by means of the route response message, having the actual route to the unit of destination, besides, the intermediate unit responds to the message of route request on the basis of flag condition in the message route request, and the first intermediate unit resets the specified flag; a connection is established between the source unit and the destination unit using the actual route; location of a more optimal route is detected between the source unit and the destination unit, when the destination unit selects a more optimal route on the basis of summary through metrics of routing; and a connection is established between the source unit and the destination unit using the more optimal route.
EFFECT: technical result is detection of a route with an optimal metric without delay in route detection in wireless cellular/randomly organising networks.
2 cl, 6 dwg
FIELD: radio engineering, communication.
SUBSTANCE: method for automatic configuration of OpenFlow switches and OpenFlow routers comprises modifying network traffic tables of OpenFlow equipment. A network packet is forwarded to the controller of a software-configurable network with an included module for determining the write priority in the network traffic table, wherein the set of quality parameters of the network traffic is determined using parameters which correspond to a class of traffic with which said packet is associated, and the priority of the packet specified by the first three bits of the ToS byte; if the ToS byte is not specified in the network packet, the entry corresponding to the network packet in the network traffic table is assigned the lowest priority; if the ToS byte is specified in the network packet, the packet is associated with one of three traffic classes, and the packet is then assigned a write priority in the network traffic table, calculation of which is carried out based on a weight coefficient and an OpenFlow statistics parameter corresponding to a selected traffic class, and also based on the packet priority specified by the first three bits of the ToS byte; the controller of the software-configurable network, in accordance with the OpenFlow protocol, then generates an instruction to add a new entry into the network traffic table of the OpenFlow switch or OpenFlow router.
EFFECT: faster operation of OpenFlow switches and OpenFlow routers when processing network packets.
FIELD: physics, computer engineering.
SUBSTANCE: invention relates to computer engineering and specifically to methods for smooth playback of media on a client. Disclosed is a computer-readable method for smooth playback of media on a client. The method includes a step of sending from the client a request for a chunk of media to a server over a network, wherein the chunk comprises a uniform portion of the media available from the server for multiple clients, and the request comprises a standard hypertext transfer protocol (HTTP) request, which does not include byte ranges, such that the corresponding response can be cached by a common Internet caching server which does not cache the byte range. Further, the method comprises receiving at the client the requested chunk and parsing the chunk into a metadata portion and a media data portion.
EFFECT: providing uninterrupted media streaming by a client computer device owing to time synchronisation between the client and server.
20 cl, 4 dwg
FIELD: radio engineering, communication.
SUBSTANCE: method of forming a data transmission channel includes searching for all active receiving-transmitting devices of the transmitting side, for each receiving-transmitting device, specifying a set of individual settings needed for optimum operation, including network connection parameters and allowable communication quality parameters, and creating a terminal device in which are recorded said individual settings and the assigned IP address of the corresponding receiving-transmitting device; the terminal devices are connected to each other by a terminal device switch; a data stream intended for transmission is converted through a converter to an internal format and divided into packets which are stored in an input buffer; data from the input buffer are allocated in a certain manner to the active receiving-transmitting devices of the transmitting side and sent to the receiving side, wherein the terminal device switch is used to reallocate data packets intended for transmission based on change in communication quality parameters of each communication channel.
EFFECT: efficient use of bandwidth of each channel when transmitting data through dynamic allocation of network level data between all transmitting channels according to current characteristics thereof.
12 cl, 8 dwg
FIELD: computer science, in particular, engineering of device for input-output of information in electronic computing machine, transferred along communication channels for transferring information; in particular, device is meant for acting as an intellectual multi-port telecommunication port of personal computer, used in mode of central transport station in data transfer networks for specialized use.
SUBSTANCE: multiplexer has system block, wherein four-channeled telegraph one-polar and two-polar modules are positioned, as well as four-channeled standard-joint C2 module, bi-impulse one-channeled and two-channeled modules, one-channeled telephone module, m modules of four-channeled asynchronous adapter, group control electronic board, and also block for adjustment and control, and combination board.
EFFECT: expanded functional capabilities, possible increase of number and types of connected input-output channels, possible synchronization with several types of specialized equipment.
4 cl, 4 dwg, 1 tbl
FIELD: network control; data acquisition on network topology.
SUBSTANCE: message requesting data acquisition on network topology that incorporates field limiting number of operations for message transfer from local station to adjacent ones is sent and following steps are repeated: request message receiving station returns response message and network topology data acquisition device finds out if number of message transfer operations has reached certain threshold value and terminates process if it is so, otherwise it sends request message to all adjacent stations.
EFFECT: facilitated procedure, reduced number of control errors.
7 cl, 2 dwg
FIELD: technology for serial addressing of following devices in networks with bus topology with one leading device of network and several following devices, possible use primarily for querying devices, used for automation of technological processes.
SUBSTANCE: method for serial addressing by leading device of following devices in networks with bus topology with one network leading device and several following devices includes receipt by following devices of flush impulse, of information about address from leading device, comparison of received information about address by each following device with its own address and switching of one following device to data transfer mode if information received about address matches its own address. As information about address, received by following device, number of addressing impulses is used, and during transfer of one following device to data exchange mode other following devices are maintained in active mode.
EFFECT: decreased addressing time during serial querying of all following devices in the network.
FIELD: technology for determining solutions concerning possibility of connection between network elements using functions of network control system.
SUBSTANCE: in accordance to method, each network element contains input ports and output ports, while each provides a set of connection points. Connection possibility tables contains data about possible internal connections between connection points of any input port and any output port of any network elements, controlled by network control system. Method allows each time during selection of certain network element for use in a route with its input port and its output port to receive solution at network control device level concerning connection capabilities for certain network element.
EFFECT: increased searching efficiency at level of network control system.
2 cl, 5 dwg
FIELD: engineering of technical means for complex protection of information during its storage and transfer.
SUBSTANCE: method for complex information protection is realized in following order: prior to transfer into communication channel or prior to recording into memory, state of used communication channel or information storage environment is analyzed, from M possible codes parameters of optimal (n,k) code for current status of channel or information storage end are determined, information subject to protection is split on q-nary symbols l bits long (q=2l) for each q-nary system gamma combinations l bits long are formed independently from information source, for each set of k informational q-nary symbols (n-k) excessive q-nary symbols are formed in accordance to rules of source binary (n,k) code, each q-nary symbol is subjected to encrypting stochastic transformation with participation of gamma, after receipt from communication channel or after reading from memory for each q-nary symbol combination of gamma with length l is generated, synchronously with transferring side, reverse stochastic decrypting transformation is performed for each q-nary symbol with participation of gamma, by means of checking expressions of source binary code localized are correctly read from memory or received q-nary symbols, untrustworthily localized symbols are deleted, integrity of message is restored by correcting non-localized and erased q-nary symbols of each block, expressing their values through values of trustworthily localized or already corrected q-nary symbols, if trustworthy restoration of integrity of code block is impossible it is deleted, number of deleted blocks is counted, optimality is determined within observation interval of used code with correction of errors for current state of channel, if code optimum criterion exceeds given minimal and maximal limits, code is replaced with optimal code synchronously at transferring and receiving parts of channel in accordance to maximum transfer speed criterion.
EFFECT: efficiency of each protection type and increased quality of maintenance of guaranteed characteristics of informational system.
FIELD: transmitting messages with broadcast servicing parameters in wireless communication system supporting broadcast service.
SUBSTANCE: one of methods involves identification of service option number corresponding to set of broadcast transmission parameters. As an alternative, message identifies bit block corresponding to broadcast transmission parameters. Message can be transferred over service information transmission channel. Message for system supporting broadcast service identifies protocol stack for processing broadcast service and also identifies protocol stack for processing broadcast content.
EFFECT: enhanced efficiency and precision of data transfer and specific service rendering.
12 cl, 24 dwg
FIELD: data transmission in computer networks.
SUBSTANCE: in accordance to the invention, expandable, usable with various client-server informational systems, system of dynamically created program objects is used, wherein program objects are divided onto a fixed number of categories, which are matched with predetermined program interfaces, where creation of request to server and processing of response from server represent predetermined chains of program object method calls.
EFFECT: reduced load on communication line in client-server system.
2 cl, 6 dwg
FIELD: communications engineering, in particular, systems for controlling information exchange process in communication networks of industrial enterprises, in-plant networks and field communication units.
SUBSTANCE: system for controlling passage of documental information contains station for managing system for controlling information passage with operative-dispatching equipment, data transmission lines and phone communication connecting lines, station for controlling passage of documental information based on duty workplace for controlling passage of documental information and workplaces of two dispatchers, where each one of aforementioned workplaces is equipped with personal computer, containing system block, monitor, standard keyboard, "mouse" type graphical manipulator, printer and interface expander, block of adapters, block for connecting and distributing communication lines, client and connecting lines of service communications, service communications equipment, consisting of line commutation block and three control panels, one for each of aforementioned workplaces for controlling passage of documental information and of first and second dispatchers, n client stations for transferring documental information, each one of which contains group equipment block, four telegrapher panels and four end talking panels, data transmission lines and client phone communication lines, connected in a certain way.
EFFECT: increased trustworthiness of control over passage of documental information and increased quality of services, provided to consumers of aforementioned information.
2 cl, 2 dwg
FIELD: multi-layered content delivery.
SUBSTANCE: in accordance to the invention the network contains a content release layer, content delivery layer with at least one level of delivery sub-layer and a layer of boundary servicing, where the service release layer contains at least one node of Internet service provider (ICP), and is connected to first level delivery sub-layer in the content delivery layer, each delivery sub-layer contains at least one delivery unit, and the delivery sub-layer of the lowest level is connected to boundary service layer, the boundary service layer contains at least one boundary service area, and content, which is subject to release in a content release layer, is distributed through delivery node of first level delivery sub-layer, which is connected to content release layer, and further downwards level after level until the boundary service layer is reached.
EFFECT: distributed provision of services, optimized dispatching mode and local balancing of servicing load.
2 cl, 6 dwg
FIELD: mobile communications.
SUBSTANCE: each time when it is necessary to output information on available mobile telecommunication networks, it is required to determine if output of information on available mobile telecommunication networks is allowed on the basis of the number of information transmissions performed within certain period of time. If the transmission is allowed, information on available mobile telecommunication networks is transmitted and number of performed transmissions is registered; otherwise information transmission is stopped. When value of the period for decision making is changed, the record of transmission number is updated. If after stop of information transmission a request is received for information output, this request is left without answer or the information is transmitted after delay.
EFFECT: protection of Wireless Local Area Network (WLAN) against frequent interaction operations of network selection.
19 cl, 8 dwg