throbber
SYSTEM PROVIDING FASTER AND MORE EFFICIENT DATA
`
`COMMUNICATION
`
`CROSS-REFERENCE TO RELATED APPLICATIONS
`
`The present application is a continuation application of U.S. non-provisional patent
`
`application no. 14/025,109, filed Sep. 12, 2013, which is a divisional application of U.S.
`
`non-provisional patent application entitled "SYSTEM AND METHOD FOR PROVIDING
`
`FASTER AND MORE EFFICIENT DATA COMMUNICATION" having Ser. No.
`
`12/836,059, filed Jul. 14, 2010 and issued as U.S. Patent No. 8,560,604 on Oct. 15, 2013,
`
`and claims priority to U.S. provisional patent application entitled "SYSTEM AND
`
`METHOD FOR REDUCING INTERNET CONGESTION," having Ser. No. 61/249,624,
`
`filed Oct. 8, 2009, which are hereby incorporated herein by reference in their entirety.
`
`FIELD OF THE INVENTION
`
`The present invention is related to Internet communication, and moreparticularly,
`
`to improving data communication speed and bandwidth efficiency on the Internet.
`
`BACKGROUNDOF THE INVENTION
`
`There are several
`
`trends in network and Internet usage, which tremendously
`
`increase the bandwidth that is being used on the Internet. One such trend is that more and
`
`more video is being viewed on demandonthe Internet. Such viewing includes the viewing
`
`of both large and short video clips. In addition, regular shows and full-featured films may
`
`be viewed on the Internet. Another trend that is increasing the traffic on the Internet is that
`
`Web sites (such as shopping portals, news portals, and social networks) are becoming
`
`global, meaning that the Web sites are serving people in many diverse places on the globe,
`
`and thus the data is traversing over longer stretches of the Internet,
`
`increasing the
`
`congestion.
`
`

`

`Attorney Docket No. 19459-6105P
`
`The increase in bandwidth consumption has created several major problems, a few of
`
`which are described below:
`
`The problem for users — the current Internet bandwidth is not sufficient, and thus the effective
`
`‘speed’ experienced byusers is slow;
`
`The problem for content owners — the tremendous amountof data being viewed byusersis
`
`costing large amounts of money in hosting and bandwidth costs; and
`
`The problem for Internet Service Providers (LSPs) — the growth in Internettraffic is requiring the
`
`ISPs to increase the infrastructure costs (Communication lines, routers, etc.) at tremendous
`
`financial expense.
`
`The need for a new method ofdata transfer that is fast for the consumer, cheap for the
`
`content distributor and does not require infrastructure investment for ISPs, has become a major
`
`issuc whichis yet unsolved.
`
`There have been many attempts at making the Internet faster for the consumer and
`
`cheaper for the broadcaster. Each such attemptis lacking in some aspect to become a
`
`widespread, practical solution, or is a partial solution in that it solves only a subset of the major
`
`problemsassociated with the increase in Internettraffic. Most of the previous solutions require
`
`billions of dollars in capital investment for a comprehensive solution. Many of these attempts are
`
`lacking in that much of the content on the Internct has become dynamically created per the user
`
`and the session of the user (this is what used to be called the ““Web2.0” trend). This may be seen
`
`on the Amazon Website and the Salesforce Web site, for example, where most of the page views
`
`on these Websites is tailored to the viewer, and is thus different for any two viewers. This
`
`dynamic information makesit impossible for most of the solutions offered to date to store the
`
`content and provide it to others seeking similar content.
`
`

`

`Attorney Docket No. 19459-6105P
`
`One solution that has been in use 1s called a “proxy”. FIG. 1 is a schematic diagram
`
`providing an example of use of a proxy within a network 2. A proxy, or proxy server4, 6, 8 is a
`
`device that is placed between one or moreclients, illustrated in FIG. 1 as client devices 10, 12,
`
`14, 16, 18, 20, that request data, via the Internet 22, and a Web server or Web servers 30, 32, 34
`
`from which they are requesting the data. ‘The proxy server 4, 6, 8 requests the data from the Web
`
`servers 30, 32, 34 on their behalf, and caches the responses from the Web servers 30, 32, 34, to
`
`provide to other client devices that make similar 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 large enough, the proxy server 4, 6, 8 will speed up the
`
`requests for the client devices 10, 12, 14, 16, 18, 20 that it is serving.
`
`It should be noted, however, that to provide a comprchensive solution for Internct
`
`surfing, the proxy servers of FIG. 1 would need to be deployed at every point around the world
`
`wherethe Internet is being consumed, and the storage size of the proxy servers at each location
`
`would need to be near the size of all the data stored anywhere on the Internet. The
`
`abovementioned would lead to massive costs that are impractical. In addition, these proxy
`
`solutions cannot deal well with dynamic data that is prevalent now on the Web.
`
`There have been commercial companies, such as Akamai, that have deployed such
`
`proxies locally around the world, and that are serving a select small group of sites on the
`
`Internet. If all sites on the Web were to be solved with sucha solution, the capital investment
`
`would be in the range ofbillions of dollars. In addition, this type of solution does not handle
`
`dynamic content.
`
`To create large distribution systems without the large hardware costs involved with a
`
`proxy solution, “peer-to-peer file sharing” solutions have been introduced, such as, for example,
`
`BitTorrent. FIG. 2 is a schematic diagram providing an example of a peer-to-peerfile transfer
`
`network 50. In the network 50, files are stored on computers of consumers, referred to herein as
`
`

`

`Attorney Docket No. 19459-6105P
`
`client devices 60. Each consumercan serve up data to other consumers, via the Internet 62, thus
`
`taking the load of serving off of the distributors and saving them the associated costs, and
`
`providing the consumer multiple points from which to downloadthe data, referred to herein as
`
`peers 70, 72, 74, 76, 78, thus increasing the speed of the download. However, each such peer-to-
`
`peer solution must have somesort of index by which to find the required data. In typical pccr-to-
`
`peerfile sharing systems, because the index is on a server 80, or distributed among several
`
`servers, the numberoffiles available in the system is not very large (otherwise, the server costs
`
`would be very large, or the lookup time would be very long).
`
`The peer-to-peer file sharing solution is acceptable in file sharing systems, because there
`
`are not that many mediafiles that are of interest to the mass (probably in the order of magnitude
`
`of millions of movics and songs that are of interest). Storing and maintaining an index of
`
`millions of entries is practical technically and economically. However,if this system were to be
`
`used to serve the hundreds ofbillions offiles that are available on the Internet of today, the cost
`
`of storing and maintaining such an index would be againin the billions of dollars. In addition,
`
`these types of peer-to-peerfile sharing systems are not able to deal with dynamic HTTPdata.
`
`In conclusion, a system does not exist that enables fast transmission of most of the data
`
`on the Internet, that does not incur tremendouscosts, and/or that provides only a very partial
`
`solution to the problem of Internet traffic congestion. Thus, a heretofore unaddressed need exists
`
`in the industry to address the aforementioned deficiencies and inadequacies.
`
`SUMMARYOF THE INVENTION
`
`The present system and method providesfor faster and moreefficient data
`
`communication within a communication network. Briefly described, in architecture, one
`
`embodiment of the system, among others, can be implemented as follows. A network is provided
`
`

`

`Attorney Docket No. 19459-6105P
`
`for accelerating data communication, wherein the network contains: at least one client
`
`communication device for originating a data request for obtaining the data from a 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
`
`communication devices have reccived responses to data requests from the assigned data server;
`
`at least one peer communication device for storing portions of data received in response to the
`
`data request by the at least one client communication device, wherein the portions of data may
`
`be transmitted to the at least one client communication device upon request by the client
`
`communication device; and at least one acceleration server for deciding which agent
`
`communication device is to be assigned to which data server and providing this information to
`
`the at least one client communication device.
`
`The present system and method also provides a communication device within a network,
`
`wherein the communication device contains: a memory; and a processor configured by the
`
`memory to perform the steps of: originating a data request for obtaining data from a data server;
`
`being assigned to a data server, referred to as an assigned data server; receiving a data request
`
`from a separate device within the network, and keeping track of which client communication
`
`devices within the network have received responses to data requests from the assigned data
`
`server; and storing portions of data received in responseto the originated data request, wherein
`
`the portions of data may be transmitted to communication device upon request by the
`
`communication device.
`
`Othcr systems, mcthods, features, and advantages of the present invention will be or
`
`become apparent to one with skill in the art upon examination of the following drawings and
`
`detailed description. It is intended that all such additional systems, methods, features, and
`
`advantages be included within this description, be within the scope of the present invention, and
`
`be protected by the accompanyingclaims.
`
`

`

`Attorney Docket No. 19459-6105P
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`Manyaspects of the invention can be better understood with reference to the following
`
`drawings. The componentsin the drawingsarc not necessarily to scalc, cmphasis instcad being
`
`placed uponclearly illustrating the principles of the present invention. Moreover,in the
`
`drawings, like reference numerals designate corresponding parts throughout the several views.
`
`FIG. 1 is a schematic diagram providing a prior art example of use of a proxy within a
`
`network.
`
`FIG. 2 is a schematic diagram providing a prior art example of a peer-to-peerfile transfer
`
`network.
`
`FIG. 3 is a schematic diagram providing an cxample of a communication nctwork in
`
`accordance with the present invention.
`
`FIG. 4 is a schematic diagram further illustrating 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 furtherillustrating elements of the acceleration application
`
`of FIG. 5, as well as communication paths of the acceleration application.
`
`FIG. 7 is a chart further illustrating two of the main databasesutilized within the
`
`communication network.
`
`FIG. 8 is a flowchart illustrating operation of the acceleration system initializer module.
`
`FIG. 9 is a flowchart further illustrating communication between different elements of the
`
`communication network.
`
`

`

`Attorney Docket No. 19459-6105P
`
`FIG. 10 is a flowchart continuing the flowchart of FIG. 9 and focused on agent response
`
`to the HTTP request.
`
`FIG. 11 is a flowchart continuing the flowchart of FIG. 10, which illustrates actions taken
`
`upon receipt of the list of peers, or single peerlisting, from the agent.
`
`FIG. 12 is a flowchart illustrating steps taken by an agent, client, or peer to determine
`
`whether a certain HTTP requestis still valid.
`
`FIG. 13 is a flowchart outlining operation of the acceleration server.
`
`FIG. 14 is a flowchart further illustrating TCPIP acceleration in accordance with an
`
`alternative embodimentof the invention.
`
`FIG. 15 is a flowchart further illustrating TCPIP acceleration in accordance with an
`
`alternative embodimentof the invention, detailing the communication between the client and the
`
`TCPIP server (read and write commands) after the connect phase has completed successfully.
`
`DETAILED DESCRIPTION
`
`The present system and method providesfor faster and moreefficient data
`
`communication within a communication network. An example of such a communication network
`
`100 is provided by the schematic diagram of FIG. 3. The network 100 of FIG. 3 contains
`
`multiple communication devices. Due to functionality provided by software stored within each
`
`communication device, which may be the same in cach communication device, cach
`
`communication device may serve as a client, peer, or agent, depending upon requirements of the
`
`network 100, as is described in detail herein. It should be noted that a detailed description of a
`
`communication device is provided with regard to the description of FIG. 4.
`
`

`

`Attorney Docket No. 19459-6105P
`
`Returning to FIG. 3, the exemplary embodimentof the network 100 illustrates that one of
`
`the communication devices is functioning as a client 102. The client 102 is capable of
`
`communication with one or more peers 112, 114, 116 and one or more agents 122. For
`
`exemplary purposes, the network contains three peers and one agent, although it is noted that a
`
`clicnt can communicate with any number of agents and pecrs.
`
`The communication network 100 also contains a Web server 152. The Webserver 152 is
`
`the server from which the client 102 is requesting information and may be, for example, a typical
`
`HTTPserver, such as those being used to deliver content on any of the many suchservers on the
`
`Internet. It should be noted that the server 152 is not limited to being an HTTPserver. In fact, if
`
`a different communication protocol is used within the communication network, the server may
`
`be a server capable of handling a different protocol. It should also be noted that while the present
`
`description refers to the use of HTTP, the present invention may relate to any other
`
`communication protocol and HTTPis not intendedto be a limitation to the present invention.
`
`The communication network 100 further contains an acceleration server 162 having an
`
`acceleration Server storage device 164. As is described in more detail herein, the acceleration
`
`server storage device 164 has contained therein an acceleration server database. The acceleration
`
`server database stores Internet protocol (IP) addresses of communication devices within the
`
`communication network 100 having acceleration software stored therein. Specifically, the
`
`acceleration server database contains stored therein a list of communication devices having
`
`acceleration software stored therein that are currently online within the communication network
`
`100. For cach such agent, the acceleration server assigns a list of IP addresscs.
`
`In the communication network 100 of FIG. 3, the application in the client 102 is
`
`requesting information from the Web server 152, which is why the software within the
`
`communication device designated this communication device to work as a client. In addition,
`
`since the agent 122 receives the request from the client 102 as the communication device closest
`
`

`

`Attorney Docket No. 19459-6105P
`
`to the Web server 152, functionality of the agent 122, as provided by the software of the agent
`
`122, designates this communication device to work as an agent. It should be noted,that in
`
`accordance with an alternative embodimentof the invention, the agent need not be the
`
`communication device that is closest to the Web server. Instead, a different communication
`
`device may be selected to be the agent.
`
`Since the peers 112, 114, 116 contain at least portions of the information sought by the
`
`client 102 from the Web server 152, functionality of the peers 112, 114, 116, as provided by the
`
`software of the peers 112, 114, 116, designates these communication devices to work as peers. It
`
`should be noted that the process of designating clients, agents, and peers is described in detail
`
`herein. It should also be noted that the numberofclients, agents, peers, acceleration servers,
`
`Webservers, and other components of the communication nctwork 100 may differ from the
`
`numberillustrated by FIG. 3. In fact, the numberof clients, agents, peers, acceleration servers,
`
`Webservers, and other components of the communication network 100 are not intended to be
`
`limited by the current description.
`
`Prior to describing functionality performed within a communication network 100, the
`
`following further describes a communication device 200, in accordance with a first exemplary
`
`embodimentof the invention. FIG. 4 is a schematic diagram further illustrating a communication
`
`device 200 of the communication network 100, which contains general components of a
`
`computer. As previously mentioned, it should be noted that the communication device 200 of
`
`FIG. 4 may serve as a client, agent, or peer.
`
`Generally, in terms of hardware architecture, as shown in FIG. 4, the communication
`
`device 200 includes a processor 202, memory 210, at least one storage device 208, and one or
`
`more input and/or output (I/O) devices 240 (or peripherals) that are communicatively coupled
`
`via a local interface 250. The local interface 250 can be, for example but not limited to, one or
`
`more buses or other wired or wireless connections, as is knownin the art. The local interface 250
`
`

`

`Attorney Docket No. 19459-6105P
`
`may have additional elements, which are omitted for simplicity, such as controllers, buffers
`
`(caches), drivers, repeaters, and receivers, to enable communications. Further, the local interface
`
`250 may include address, control, and/or data connections to enable appropriate communications
`
`among the aforementioned components.
`
`‘The processor 202 is a hardware device for cxccuting software, particularly that stored in
`
`the memory 210. The processor 52 can be any custom made or commercially available
`
`processor, a central processing unit (CPU), an auxiliary processor among several processors
`
`associated with the communication device 200, a semiconductor based microprocessor(in the
`
`form of a microchip or chip set), a macroprocessor, or generally any device for executing
`
`software instructions.
`
`The memory 210, whichis furtherillustrated and described by the description of FIG. 5,
`
`can include any one or combination of volatile memory elements (e.g., random access memory
`
`(RAM, such as DRAM, SRAM, SDRAM,efc.)) and nonvolatile memory elements (e.g., ROM,
`
`hard drive, tape, CDROM, etc.). Moreover, the memory 210 may incorporate electronic,
`
`magnetic, optical, and/or other types of storage media. Note that the memory 210 can have a
`
`distributed architecture, where various componentsare situated remote from one another, but can
`
`be accessed by the processor 202.
`
`The software 212 located within 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, the software 212 in the memory 210 at Icast contains an accclcration application 220 and an
`
`Internet browser 214. In addition, the memory 210 may contain an operating system (O/S) 230.
`
`The operating system 230 essentially controls the execution of computer programs and provides
`
`scheduling, input-output control, file and data management, memory management, and
`
`communication control and related services. It should be noted that, in addition to the
`
`10
`
`

`

`Attorney Docket No. 19459-6105P
`
`acceleration application 220, Internet browser 214, and operating system 230, the memory 210
`
`may contain other software applications.
`
`While the present description refers to a request from the client originating from an
`
`Internet browser, the present invention is not limited to requests originating from Internet
`
`browsers. Instead, a request may originate from an email program or any other program that
`
`would be used to request data that is stored on a Webserver, or other server holding data that is
`
`requested by the client device.
`
`Functionality of the communication device 200 may be provided by a source program,
`
`executable program (object code), script, or any other entity containing a set of instructions to be
`
`performed. When a source program, then the program needsto be translated via a compiler,
`
`assembler, interpreter, or the like, which may or may not be included within the memory 210, so
`
`as to operate properly in connection with the operating system 230. Furthermore, functionality of
`
`the communication device 200 can be written as (a) an object oriented programming language,
`
`whichhas classes of data and methods, or (b) a procedure programming language, which has
`
`routines, subroutines, and/or functions.
`
`The I/O devices 240 may include input devices, for example but not limited to, a
`
`keyboard, mouse, scanner, microphone, efc. Furthermore, the I/O devices 240 mayalso include
`
`output devices, for example but not limited to, a printer, display, efc. Finally, the I/O devices 240
`
`may further include devices that communicate via both inputs and outputs, for instance but not
`
`limited to, a modulator/demodulator (modem;for accessing another device, system, or network),
`
`a radio frequency (RF) or other transceiver, a telephonic interface, a bridge, a router, etc.
`
`Whenthe communication device 200 is in operation, the processor 202 is configured to
`
`execute the software 212 stored within the memory 210, to communicate data to and from the
`
`memory 210, and to generally control operations of the communication device 200 pursuant to
`
`11
`
`

`

`Attorney Docket No. 19459-6105P
`
`the software 212. The software 212 and the O/S 230, in whole orin part, but typically the latter,
`
`are read by the processor 202, perhaps buffered within the processor 202, and then executed.
`
`Whenfunctionality of the communication device 200 is implemented in software, as is
`
`shown in FIG. 4, it should be noted that the functionality can be stored on any computer readable
`
`medium for use by or in connection with any computer related system or method. In the context
`
`of this document, a computer readable medium is an electronic, magnetic, optical, or other
`
`physical device or meansthat can contain or store a computer program for use by or in
`
`connection with a computer related system or method. The functionality of the communication
`
`device 200 can be embodied in any computer-readable medium for use by or in connection with
`
`an instruction execution system, apparatus, or device, such as a computer-based system,
`
`proccssor-containing system, or othcr system that can fetch the instructions from the instruction
`
`execution system, apparatus, or device and execute the instructions. In the context of this
`
`document, a "computer-readable medium" can be any meansthat can store, communicate,
`
`propagate, or transport the program for use by or in connection with the instruction execution
`
`system, apparatus, or device.
`
`The computer readable medium can be, for example but not limited to, an electronic,
`
`magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or
`
`propagation medium. More specific examples (a non-exhaustivelist) of the computer-readable
`
`medium would include the following: an electrical connection (electronic) having one or more
`
`wires, a portable computer diskette (magnetic), a random access memory (RAM)(electronic), a
`
`read-only memory (ROM)(clectronic), an crasable programmable read-only memory (EPROM,
`
`EEPROM, or Flash memory) (electronic), an optical fiber (optical), and a portable compact disc
`
`read-only memory (CDROM)(optical). Note that the computer-readable medium could even be
`
`paperor another suitable medium upon which the program is printed, as the program can be
`
`electronically captured, via for instance optical scanning of the paper or other medium, then
`
`12
`
`

`

`Attorney Docket No. 19459-6105P
`
`compiled, interpreted or otherwise processed in a suitable mannerif necessary, and then stored in
`
`a computer memory.
`
`In an alternative embodiment, where the functionality of the communication device 200
`
`is implemented in hardware, the functionality can be implemented with any or a combination of
`
`the following technologies, which are each well known in the art: a discrete logic circuit(s)
`
`having logic gates for implementing logic functions upon data signals, an application specific
`
`imtegrated circuit (ASIC) having appropriate combinational logic gates, a programmable gate
`
`array(s) (PGA), a field programmable gate array (FPGA), etc.
`
`The at least one storage device 208 of the communication device 200 may be one of
`
`many different categories of storage device. As is described in more detail herein, the storage
`
`device 208 may include a configuration database 280 and a cache database 282. Alternatively,
`
`the configuration database 280 and cache database 282 may be located on different storage
`
`devices that are in communication with the communication device 200. The description that
`
`follows assumesthat the configuration database 280 and cache database 282 are located on the
`
`samestorage device, however, it should be noted that the present invention is not intended to be
`
`limited to this configuration.
`
`The configuration database 280 stores configuration data that is commonto all elements
`
`of the communication network 100 and is used to provide set up and synchronization
`
`information to different modules of the acceleration application 220 stored within the memory
`
`210, as is described in further detail herein. The cache database 282 stores responses to HTTP
`
`requests that the communication device 200 has dispatched, either for its own consumption or on
`
`behalf of other elements of the communication network 100. As is explained in additional detail
`
`herein, the responses to HTTP requests are stored within the cache database 282 for future use
`
`by this communication device 200, or for other communication devices within the
`
`13
`
`

`

`Attorney Docket No. 19459-6105P
`
`communication network 100 that need to retrieve this information and will use this
`
`communication device as either a peer or an agent.
`
`In addition to the abovementioned, as is explained in further detail herein, the cache
`
`database 282 has stored therein a list of URLs that the communication device is aware of(i.e.,
`
`has seen requests for). For each URL, the cache database 282 has stored therein the URL itself,
`
`HTTPheadersreturned by the Web Serverfor this URL, whenthe last time was that the contents
`
`of this URL was loaded directly from the Web Server, when the contents of the URL had last
`
`changed on the Web Server, as well as a list of chunks that contain the contents of this URL, and
`
`the chunks of data themselves. Chunks in the present description are defined as equally sized
`
`pieces of data that together form the whole content of the URL. It should be noted that while the
`
`present description provides for chunks being cqually sized picces of data, in accordance with an
`
`alternative embodimentof the invention, the chunks mayinstead be ofdifferent size.
`
`FIG. 5 is a schematic diagram furtherillustrating the memory 210 of FIG. 4. As shown
`
`by FIG. 5, the memory 210 may be separated into two basic levels, namely, an operating system
`
`level 260 and an application level 270. The operating system level 260 contains the operating
`
`system 230, wherein the operating system 230 further contains at least one device driver 262 and
`
`at least one communication stack 264. The device drivers 262 are software modules that are
`
`responsible for the basic operating commandsfor various hardware devices of the
`
`communication device 200, such as the processor 202, the storage device 208 and the I/O
`
`devices 240. In addition, the communication stacks 264 provide applications of the
`
`communication device 200 with a mcans of communicating within the nctwork 100 by
`
`implementing various standard communication protocols.
`
`The application level 270 includes any application that is running on the communication
`
`device 200. As a result, the application level 270 includes the Internet browser 214, whichis
`
`used to view information that is located on remote Webservers, the acceleration application 220,
`
`14
`
`

`

`Attorney Docket No. 19459-6105P
`
`as described in more detail below, and any other applications 216 stored on the communication
`
`device 200.
`
`Asis explainedin additional detail below, the acceleration application 220 intercepts the
`
`requests being made by applications of the communication device (client) that use the Internet,
`
`in order to modify the requests and route the requests through the communication network. There
`
`are various methods that may be used to intercept such requests. One such method is to create an
`
`intermediate driver 272, which is also located within the memory 210, that attaches itself to all
`
`communication applications, intercepts outgoing requests of the communication applications of
`
`the communication device 200, such as the Internet browser 214, and routes the requests to the
`
`acceleration application 220. Oncethe acceleration application 220 modifies the requests, routes
`
`the requests to other system clements on the communication nctwork 100, and reccives replics
`
`from other system elements of the communication network 100, the acceleration application 220
`
`returns the replies to the intermediate driver 272, which provides the replies back to the
`
`requesting communication application.
`
`FIG. 6 is a schematic diagram furtherillustrating elements of the acceleration application
`
`220, as well as communication paths of the acceleration application 220. The acceleration
`
`application 220 contains an acceleration system initializer module 222, which is called when the
`
`acceleration application 220 is started. The acceleration system initializer module 222 is capable
`
`of initializing all elements of the communication device 200 The acceleration application 220
`
`also contains three separate modulesthat run in parallel, namely, a client module 224, a peer
`
`module 226, and an agent module 228, cach of which comes into play according to the specific
`
`role that the communication device 200 is partaking in the communication network 100 at a
`
`given time. The role of each module is further described herein.
`
`The client module 224 provides functionality required when the communication device
`
`200 is requesting information from the Web server 152, such as, for example, but not limited to,
`
`15
`
`

`

`Attorney Docket No. 19459-6105P
`
`Webpages, data, video, or audio. The client module 224 causes the communication device 200
`
`having the client module 224 therein to intercept the information request and pass the
`
`information request on to other elements of the communication network 100, such as, servers,
`
`agents or peers. This processis further described in detail herein.
`
`The peer module 226 provides functionality required by the communication device 200
`
`when answering other clients within the communication network 100 and providing the other
`
`clients with information that they request, which this communication device 200, having this
`
`peer module 226 therein, has already downloaded at a separate time. This process is further
`
`described in detail herein.
`
`The agent module 228 provides functionality required when other communication
`
`devices of the communication network 100 acting as clients query this communication device
`
`200, having this agent module 228 therein, as an agent, to obtain a list of peers within the
`
`communication network 100 that contain requested information. This process is further
`
`described in detail herein.
`
`The acceleration application 220 interacts with both the configuration database 280 and
`
`the cache database 282 of the storage device 208. As previously mentioned herein, the
`
`configuration database 280 stores configuration data that may be commonto all communication
`
`devices of the communication network 100 and is used to provide setup and synchronization
`
`information to different modules 222, 224, 226, 228 of the acceleration application 220 stored
`
`within the memory 210.
`
`The cache database 282 stores responses to information requests, such as, for example,
`
`HTTPrequests, that the communication device 200 has dispatched, either for its own
`
`consumption or on behalf of other elements of the communication network 100. Th

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket