throbber
Case 4:22-cv-01490-JST Document 39-1 Filed 05/12/22 Page 1 of 71
`
`
`
`
`
`
`
`
`
`Exhibit A
`
`

`

`Case 4:22-cv-01490-JST Document 39-1 Filed 05/12/22 Page 2 of 71
`TTTTAA
`
`US008495167B2
`
`
`
`
`
`
`
`
`
`
`
`US 8,495,167 B2
`(10) Patent No.:
`a2) United States Patent
`
`
`
`
`
`
`
`Valjakka
`Jul. 23, 2013
`(45) Date of Patent:
`
`
`
`
`(54) DATA COMMUNICATIONS NETWORKS,
`
`
`
`
`
`
`
`
`SYSTEMS, METHODS AND APPARATUS
`
`(76)
`
`
`
`
`
`
`
`Inventor: Lauri Valjakka, Espoo (FI)
`
`
`
`
`
`*)
`
`Notice:
`
`
`
`
`
`
`
`
`
`1)
`y
`Subject to any disclaimer, the term of this
`
`
`
`
`patent is extended or adjusted under 35
`
`
`
`
`U.S.C. 154(b) by 252 days.
`
`
`
`
`(21) Appl. No.: 10/208,685
`
`
`
`Filed:
`
`
`
`
`
`
`
`Jul. 30, 2002
`
`
`Prior Publication Data
`
`
`
`US 2003/0093491 Al
`May15, 2003
`
`
`
`
`Foreign Application Priority Data
`
`
`
`
`
`
`
`
`
`
`(22)
`
`(65)
`
`(30)
`
`
`
`(51)
`
`
`
`
`
`(EP) ceesessssssssseseessesssssssseessen 01660145
`
`
`
`
`
`(2006.01)
`
`
`
`
`Aug. 2, 2001
`
`
`Int. Cl.
`
`GO6F 15/167
`
`
`
`(52) U.S. CL.
`
`
`
`
`
`
`USPC woe 709/214; 709/212; 709/213; 709/216
`
`
`
`
`(58) Field of Classification Search
`
`
`
`
`
`
`USPC vce 709/216, 218, 213, 214, 215, 217,
`709/224
`
`
`
`
`
`
`
`
`See application file for complete search history.
`
`
`
`(56)
`
`
`References Cited
`
`
`
`
`
`U.S. PATENT DOCUMENTS
`
`
`
`
`
`
`
`5/1999 Joensuuetal.
`5,905,952 A
`
`
`
`
`
`3/2000 Brunsonetal. .......... 379/100.11
`6,038,296 A *
`
`
`
`
`
`6,157,965 A * 12/2000 Mohammedet al.
`........... 710/8
`
`
`
`
`
`
`6,226,673 B1*
`5/2001 Yoshimoto...........
`.. 709/223
`
`
`
`
`
`
`
`6,249,810 BI1*
`6/2001 Kiraly oe 709/217
`
`
`
`
`
`
`
`6,587,756 B2*
`7/2003 Moriguchi etal... 70/1
`
`
`
`
`
`
`
`6,873,627 B1*
`3/2005 Miller etal.
`.....
`.. 370/466
`
`
`
`
`
`
`6,879,982 B2*
`4/2005 Shirasaka occ V1
`
`
`
`
`
`
`6,912,514 B2*
`6/2005 Matsushimaet al.
`wee 705/52
`
`
`
`
`
`
`
`6,950,431 B1*
`9/2005 Nozaki etal. 0.00.00. 370/390
`
`
`
`
`6,970,939 B2* 11/2005 Sim vesesccccessseeessseeee 709/236
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ws 709/227
`
`
`7,139,827 B1* 11/2006 Iwayamaetal.
`
`
`
`
`
`
`
`
`.. 709/235
`7,222,186 B2*
`5/2007 Kobayashi.........
`. 713/168
`
`
`
`
`
`
`
`7,228,416 B2*
`6/2007 Nishizawaetal.
`
`
`
`
`
`
`bees 455/7
`
`7,373,103 B2*
`5/2008 Sato et al. wu...
`2001/0011301 Al*
`8/2001 Satoetal. ow...
`... 709/219
`
`
`
`
`
`
`
`
`2002/0010785 Al*
`1/2002 Katsukawaet al.
`........... 709/229
`
`
`
`
`
`
`
`
`(Continued)
`FOREIGN PATENT DOCUMENTS
`
`
`0709994
`5/1996
`
`
`
`8/1996
`0726663
`
`
`
`
`(Continued)
`OTHER PUBLICATIONS
`
`
`
`
`
`
`EP
`EP
`
`
`
`
`
`
`
`
`
`
`“System and Method for communication” by Kiraly et al. Interna-
`tional Publication # WO 00/65776.*
`
`
`
`
`
`
`
`
`
`
`
`(Continued)
`
`
`
`
`Primary Examiner — Dhairya A Patel
`
`
`
`
`
`
`
`(74) Attorney, Agent, or Firm — Seppo Laine Oy; Joshua P.
`Wert
`
`
`ABSTRACT
`(57)
`
`
`
`
`
`
`A data communications network comprises a plurality of
`
`
`
`
`
`
`
`terminals and a main server adapted to manage selective
`
`
`
`
`
`
`
`
`
`retrieval of data from a first server by at least one target
`
`
`
`
`
`
`
`terminal. Someorall of the terminals are adapted to act as
`
`
`
`
`
`
`
`
`
`
`relay servers for serving data retrieved from the first server to
`
`
`
`
`
`
`
`
`
`at least one target terminal. The network includes a network
`information database and the mainserverselects at least one
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`target terminalto act as arelay server for serving data to other
`
`
`
`
`
`
`
`target terminals on the basis of terminal performance infor-
`mation storedin the network information database. Terminals
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`acting as relay servers also select further downstream target
`
`
`
`
`
`
`
`
`terminals to act as further relay servers on the basis of the
`
`
`
`
`
`
`
`
`relative performancesofthe further target terminals. The load
`
`
`
`
`
`
`
`on the main serveris thus distributed amongall of the relay
`
`
`
`
`
`servers, providing improved network performance.
`
`
`
`
`21 Claims, 4 Drawing Sheets
`
`
`Main server
`Data storage|
`
`
`
`
`
`
`
`we] fFMedia
`
`
`storage
`
`2017
`
`aeeed
` Tracking
`
`
`database
`
`
`
`1a
`12
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Ch
`
` |\ | terminalis
`
`
`
`
`
`
`
`Target terminals / .
`
`
`
`
`
`Relaying
`
`
`
`
`
`
`
`
`L.
`
`uy
`
`
`
`

`

`Case 4:22-cv-01490-JST Document 39-1 Filed 05/12/22 Page 3 of 71
`Case 4:22-cv-01490-JST Document 39-1 Filed 05/12/22 Page 3 of 71
`
`
`
`US 8,495,167 B2
`
`Page 2
`
`
`U.S. PATENT DOCUMENTS
`
`
`
`
`
`eee ee neta en ene eee een eee 709/231
`2002/0143977 Al* 10/2002 Togashi
`
`2003/0009539 Al*
`1/2003 Hattori oc 709/219
`
`
`
`
`
`
`2004/0192275 AL*
`9/2004 Kim wee 455/418
`
`
`
`
`
`
`
`
`2006/0114350 Al*
`6/2006 Shimadaetal. ........... 348/423.1
`
`
`
`
`
`
`
`
`
`WO
`WO
`Wo
`
`
`
`
`
`* 11/2000
`WO 00/65776
`
`
`
`
`11/2000
`WO 0065776
`
`
`3/2001
`WO 01/22688 Al
`
`
`OTHER PUBLICATIONS
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`“System and Method for communication” by Kiraly et al. Internal
`
`
`
`Publication # WO 00/65776.*
`
`
`
`
`
`* cited by examiner
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`EP
`
`
`HU
`
`
`
`FOREIGN PATENT DOCUMENTS
`0863646
`9/1998
`
`
`
`
`
`
`
`222337 Bl
`—-.2/2000
`
`
`
`
`
`

`

`Case 4:22-cv-01490-JST Document 39-1 Filed 05/12/22 Page 4 of 71
`Case 4:22-cv-01490-JST Document 39-1 Filed 05/12/22 Page 4 of 71
`
`
`U.S. Patent
`
`
`
`
`
`Jul. 23, 2013
`
`
`
`
`Sheet 1 of 4
`
`
`
`US 8,495,167 B2
`
`
`
`Target terminals
`
`
`
`Main serv
`
`
`
`
`
`Relaying
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Data storage|
`er
`terminals
`
`
`
`
`
`
`Media
`
`storage
`
`
`
`
`
`Tracking
`
`
`
`
`
`
`
`
`database
`
`
`

`

`Case 4:22-cv-01490-JST Document 39-1 Filed 05/12/22 Page 5 of 71
`Case 4:22-cv-01490-JST Document 39-1 Filed 05/12/22 Page 5 of 71
`
`
`U.S. Patent
`
`
`
`
`
`Jul. 23, 2013
`
`
`
`
`Sheet 2 of 4
`
`
`
`US 8,495,167 B2
`
`
`Fig.2A
`
`
`
`
`
`. NL
`
`
`
`
`
`
`
`
`
`
`TCP/IP or
`
`
`
`
`other routed
`
`
`network
`
`
`protocol
`
`
`
`
`
`sOODDODDEEDODADAEDOnADDSARESALEBOAOOsOELEDeeeesseeeesE
`
`Main server
`
`
`_ aise
`
`includes
`the
`
`terminal
`parts.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Ea
`
`
`[30]
`
`
`Ea
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Main
`
`
`
`
`
`
` application
`
`eveeraseusnusaedpadantandetaensosentre
`Ayraremnnane
`
`scence
`
`opBC /
`
`
`
`
`
`
`
`Native DB
`DB
`:
`
`
`
`
`
`
`interface
`interface
`
`i ‘
`:
`i ‘
`i ‘ 4
`‘ : ‘
`1
`Native DB interface.
`
`DB interface structure
`
`
`I/O control
`
`
`
`
`
`
`Offers the required server
`level functionality to the
`
`
`
`
`main application core for
`
`
`
`
`data transfer control and log
`
`
`
`
`data aggregation
`
`
`Database interface
`
`
`offers access to the database
`either via ODBC interface or
`
`
`
`
`to the main application
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`*
`
`
`Fi om 2B
`
`
`Fig.2c€
`
`s
`cere
`
`*Interpyets received packets
`
`
`
`
`*Stores, @ata that belongs to it
`
`
`
`
`
`
`*Pransfers packets to be relayed
`
`
`
`
`
`
`to prepafation
`*Handles resending
`
`
`
`Data reception
`
`
`“Receives individual packets
`
`
`
`
`
`
`Data preparation
`*Prepares data to be relayed
`
`
`
`
`Data transmission
`
`
`*Sends the prepared data
`
`
`
`
`| *Sends acknowledgements to
`
`
`the client
`
`
`.Routing control
`
`
`
`‘Maintains optimal data transfer
`
`
`
`
`
`rate
`
`Socket control
`
`
`*Administers socket objects
`
`
`
`Server Socket|Client Socket
`
`
`
`
`
`"Monitor
`*Transmitter
`
`
`
`Main application
`
`
`“Structure
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`42
`
`
`
`
`
`
` 52
`
`
`TCP/IP or
`
`
`other routed
`
`network
`
`
`
`protocol
`
`
`
`
`
`
`
`
`
`
`
`
`
`

`

`Case 4:22-cv-01490-JST Document 39-1 Filed 05/12/22 Page 6 of 71
`Case 4:22-cv-01490-JST Document 39-1 Filed 05/12/22 Page 6 of 71
`
`
`U.S. Patent
`
`
`
`
`
`Jul. 23, 2013
`
`
`
`
`Sheet 3 of 4
`
`
`
`US 8,495,167 B2
`
`Routing
`
`
`
`Main server
`
`
`
`
`Select 2 or 3
`
`
`terminals with
`
`
`
`lowest delay
`
`
`
`
`Routing requests
`
`
`
`Terminals
`
`
`
`Terminals
`
`
`
`Acknowledgements
`
`
`
`
`Update terminal
`data
`
`
`
`
`
`
`
`
`
`
`
`
`
`Fig.3A
`
`Data for all terminals
`last packet has arrived
`
`
`
`
`Data aggregate transfer process
`
`
`
`Main server 12
`
`
`
`
`
`Terminals 14
`
`
`
`
`Terminals 16
`
`
`
`
`
`Chop aggregate
`
`
`
`
`Transmit packets
`
`
`
`
`
`
`Acknowledgement when the
`
`
`
`
`
`
`
`
`
`
`
`
`Fig.3B
`
`

`

`Case 4:22-cv-01490-JST Document 39-1 Filed 05/12/22 Page 7 of 71
`Case 4:22-cv-01490-JST Document 39-1 Filed 05/12/22 Page 7 of 71
`
`
`U.S. Patent
`
`
`
`
`
`Jul. 23, 2013
`
`
`
`
`Sheet 4 of 4
`
`
`
`US 8,495,167 B2
`
`M.S
`
`
`
`TiJIN
`
`
`
`
`
`T2
`
`T3JINAN
`
`
`TBT4
`
`
`T22— 731
`
`T16ps734
`
`T19028737
`
`5
`
`
`
`
`T14
`
`723
`
`732
`
`
`T17p26T35
`
`Piep28738
`T6 ——133
`
`
`
`
`T15
`
`T20
`
`T18
`
`
`
`T36
`
`
`
`
`e530T39
`
`T21
`
`
`Fig.4
`
`

`

`Case 4:22-cv-01490-JST Document 39-1 Filed 05/12/22 Page 8 of 71
`Case 4:22-cv-01490-JST Document 39-1 Filed 05/12/22 Page 8 of 71
`
`
`
`US 8,495,167 B2
`
`
`1
`
`
`
`DATA COMMUNICATIONS NETWORKS,
`
`
`
`
`SYSTEMS, METHODS AND APPARATUS
`
`FIELD OF THE INVENTION
`
`
`
`
`
`
`
`
`
`
`
`Thepresent invention relates to improvements in data com-
`
`
`
`
`
`
`munications networks and to systems, methods and apparatus
`
`
`
`employed in such networks.
`
`
`
`
`BACKGROUNDTO THE INVENTION
`
`
`
`
`
`
`
`
`
`
`
`
`In conventional client/server data networks, such as TCP/
`
`
`
`
`
`
`
`
`IP or other routed networks, a mainserverservesall terminals
`
`
`
`
`
`
`
`
`
`via a single server socket. This results in extreme spikes in the
`
`
`
`
`
`
`
`network load, especially when data is required to be trans-
`
`
`
`
`
`
`ferred to a large numberofclients simultaneously, causing
`
`
`
`delays in data transmission.
`
`
`
`
`
`
`
`Thepresent invention seeks to provide improved network
`
`
`
`
`
`
`
`systems, methods and apparatus whereby network perfor-
`manceis enhanced.
`
`
`
`20
`
`
`
`
`
`SUMMARYOF THE INVENTION
`
`
`
`
`
`
`
`
`
`
`The invention provides improved data communications
`
`
`
`
`
`networks, methods of operating data communications net-
`
`
`
`
`
`
`
`works, network servers, network terminals and computerpro-
`
`
`
`
`
`
`gramsas defined in the claims appended hereto.
`
`
`
`
`
`25
`
`
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`
`
`
`
`
`
`
`
`
`
`Embodiments of the invention will now be described, by
`
`
`
`
`
`
`
`way of example only, with reference to the accompanying
`
`
`drawings, in which:
`
`
`
`
`
`
`FIG.1 is a diagram illustrating the operational model of a
`
`
`
`
`
`
`data communications network embodyingthe present inven-
`
`tion;
`
`
`
`
`
`
`
`FIGS. 2A, 2B and 2C are diagramsillustrating the opera-
`
`
`
`
`
`
`
`tional structure of a main server and terminals employed in
`
`
`
`the network of FIG. 1;
`
`
`
`
`
`
`FIGS. 3A and 3B are transaction diagrams illustrating
`
`
`
`
`
`
`
`
`routing and data transfer processes employed in the network
`
`
`
`of FIG. 1; and
`
`
`
`
`
`
`FIG.41s a diagram illustrating one example of a scheme for
`
`
`
`
`
`
`
`distributing data from a main server to a numberoftarget
`terminals in accordance with the invention.
`
`
`
`
`
`
`DETAILED DESCRIPTION OF THE PREFERRED
`
`
`
`EMBODIMENTS
`
`
`
`
`
`
`
`
`
`
`
`Referring now to the drawings, FIG.1 illustrates an opera-
`
`
`
`
`
`
`tional model of a simplified exemplary embodimentof a data
`communications network in accordance with the invention.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`The network includes a data storage system 10, which in this
`
`
`
`
`
`
`
`
`embodimentincludes media storage system 18 for data (i.e.
`
`
`
`
`
`
`“media”or “content’’) thatis to be selectively distributed over
`
`
`
`
`
`
`
`
`
`the network, and a tracking database 20 that is used for
`
`
`
`
`
`
`managing the operation of the networkas shall be described
`
`
`
`
`
`
`
`
`
`
`in more detail below. For convenience, data that is to be
`
`
`
`
`
`
`
`
`distributed from the media storage system 18 will be referred
`
`
`
`
`
`
`
`to herein as “content”, which will be understood to include
`
`
`
`
`
`
`
`
`
`any type of data of interest to end users, including but not
`
`
`
`
`
`
`
`
`limited to text, graphics, video, audio, executable codeetc.
`
`
`
`
`
`
`
`
`Content will generally comprise a data file of some type.
`
`
`
`
`
`
`
`For the purposesofthe present invention, “content” means
`
`
`
`
`
`
`
`
`files or parts offiles or equivalents thereof that are stored on
`
`
`
`
`
`
`
`
`a server, downloaded from the server by a client and stored by
`
`
`
`
`
`
`
`
`
`the client for subsequent use, as distinct from digital broad-
`
`30
`
`
`
`35
`
`
`
`40
`
`
`
`45
`
`
`
`50
`
`
`
`55
`
`
`
`60
`
`
`
`
`
`
`
`
`
`
`
`
`
`2
`
`
`
`
`
`
`cast media in which a data stream is transmitted by a broad-
`
`
`
`
`
`
`
`cast server and is temporarily buffered by clients and, in some
`
`
`
`
`cases, by intervening relay units.
`The network further includes a main server 12 that com-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`municates with the media storage system 18 and tracking
`
`
`
`
`
`
`
`
`
`database 20, and controls the distribution of content from the
`
`
`
`
`
`
`
`
`
`media storage system 18. The networkalso includesa plural-
`
`
`
`
`
`
`
`ity of terminals 14 and 16, to which content is to be distrib-
`
`
`
`
`
`
`
`
`uted. In accordance with the invention, when the same con-
`
`
`
`
`
`
`tent is to be distributed to a numberofterminals,at least some
`
`
`
`
`
`
`
`of the terminals 14also act as “relay servers” in distributing
`
`
`
`
`
`
`
`the content to the remaining terminals 16 (i.e. someorall of
`
`
`
`
`
`
`
`
`the terminals mayalso be capable of acting as relay servers).
`
`
`
`
`
`
`
`
`All transactions between the media storage system 18 and
`
`
`
`
`
`
`
`
`
`the terminals 14, 16 are controlled by the main server 12. In
`
`
`
`
`
`
`
`
`
`particular, all data downloadsto the terminals from the media
`
`
`
`
`
`
`
`
`
`storage system 18 are managed by the main server 12. Gen-
`
`
`
`
`
`
`
`
`erally, content is retrieved from the storage system by the
`
`
`
`
`
`
`
`main server and forwarded on to the terminals 14, 16 by the
`
`
`
`
`
`
`
`
`
`
`main server. In some cases, however, the main server does not
`
`
`
`
`
`
`
`
`
`itself retrieve and forward content, but managestheretrieval
`
`
`
`
`
`and forwarding of content by other servers.
`
`
`
`
`
`
`
`
`The term “target terminal” used here means a terminal
`
`
`
`
`
`
`
`
`
`whichis the intendedrecipientofcontent(a data file) from the
`
`
`
`
`
`
`
`
`
`media storage 18. Each terminal 14, 16 can bethe target for a
`
`
`
`
`
`
`
`
`datafile. In this embodiment, each ofthefirst set of terminals
`
`
`
`
`
`
`
`14 is also adapted to operate as a relay server by forwarding
`data to one or more of the second set of terminals 16 as
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`described further below. The terminals 16 may also act as
`
`
`
`
`
`
`
`
`relay servers for relaying data to additional terminals (not
`
`
`
`
`
`
`
`shown) downstream thereof. It will be understoodthatnotall
`
`
`
`
`
`
`
`
`ofthe terminals includedin the network need operate as relay
`
`
`
`
`
`
`
`
`
`servers and the network may includeterminal devicesthat are
`
`
`
`
`
`
`not suited for operation as relay servers.
`
`
`
`
`
`
`
`The tracking database 20 keeps records of transactions
`
`
`
`
`
`
`
`
`
`
`between the main server 12 and the various terminals 14, 16.
`
`
`
`
`
`
`
`
`In particular, the tracking database monitors the performance
`
`
`
`
`
`
`
`(communication speed and/or other parameters suchasreli-
`
`
`
`
`
`
`
`
`ability) of all terminals that also act as relay servers in the
`network. This information is available to the main server. In
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`particular, the tracking database 12 is able to provide the main
`
`
`
`
`
`
`
`
`server withlists of terminal addresses rankedbytheir relative
`
`performances.
`
`
`
`
`
`
`
`In operation ofthe network, when a contentdatafile is to be
`
`
`
`
`
`
`
`distributed to particular target terminals, the main server 12
`
`
`
`
`
`
`initiates a data transport operation by sending a transport
`
`
`
`
`
`
`
`
`
`request to thefirst set of terminals 14, which are selected as
`
`
`
`
`
`
`
`
`being the best terminals from thelist oftarget terminals on the
`
`
`
`
`
`
`
`basis of the current performance data. The transport request
`includes:
`
`
`
`
`
`
`Details of the file to be transported. These will generally
`
`
`
`
`
`
`
`
`
`include, for example,thefile type and size, time stamps
`
`
`
`
`
`
`for activation and deactivation ofthe content, encryption
`
`
`
`
`and compression details, etc.
`
`
`
`
`
`
`
`
`The addresses of relay servers and terminals that are to be
`involvedin the distributionofthefile.
`
`
`
`
`
`
`
`
`
`
`
`
`
`The transport request sent from the main server 12 to the
`first set ofterminals 14 instructs these terminalsto retrieve the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`data from the main server 12 (or from another server address
`
`
`
`
`
`
`
`included in the transport request). The list of the remaining
`
`
`
`
`
`
`
`
`target terminal addresses is divided betweenthe first termi-
`
`
`
`
`
`
`
`
`nals 14, so that each ofthe first terminals 14 acts as a relay
`
`
`
`
`
`
`
`server for distributing the data to a subset of the remaining
`
`
`target terminals.
`
`
`
`
`
`
`
`
`
`In response to the transport request from the main server
`
`
`
`
`
`
`
`
`12, each ofthe first terminals 14 begins to downloadthefile
`from the main server 12. When oneofthefirst terminals 14
`
`
`
`
`
`
`
`
`
`

`

`Case 4:22-cv-01490-JST Document 39-1 Filed 05/12/22 Page 9 of 71
`Case 4:22-cv-01490-JST Document 39-1 Filed 05/12/22 Page 9 of 71
`
`
`
`US 8,495,167 B2
`
`
`3
`
`
`
`
`
`
`
`has received a predetermined numberofbytesofthefile, that
`
`
`
`
`
`
`terminal 14 sends a modified version of the original transport
`
`
`
`
`
`
`
`
`request to its subset of the target terminals 16. The modified
`
`
`
`
`
`
`
`
`transport request identifies the relevantfirst terminal 14 as the
`
`
`
`
`
`
`
`server address from whichits subsetofthe target terminals 16
`
`
`
`
`
`
`
`
`should retrieve the data. Depending on the numberoftarget
`
`
`
`
`
`
`
`
`terminals, the list of target terminals may be sub-divided a
`
`
`
`
`
`
`
`numberoftimes. That is, each of the secondset of terminals
`
`
`
`
`
`
`
`
`
`16 mayreceive a list of further target terminals for whichit is
`
`
`
`
`
`
`
`
`
`to act as a relay server. At each stage, it is preferred that the
`
`
`
`
`
`
`
`
`
`“best” terminals from thelist ofremainingtargets are selected
`
`
`
`
`
`
`
`to act as relay servers for the remainder.
`Wheneach terminal 14 or 16 has downloaded the whole
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`file, it sends a notification message direct to the main server
`
`
`
`12, as indicated by 22 in FIG. 1.
`
`
`
`
`
`
`
`
`The main server 12 is adapted to serve data requests from
`the first set ofterminals 14. Ifthe terminal in the secondset of
`
`
`
`
`
`
`
`
`
`terminals 16 cannot reach the terminalin the first set of the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`terminals 14 it will send the data request to the main server 12.
`
`
`
`
`
`
`
`
`Generally, the main server and each downstream terminal
`
`
`
`
`
`
`
`
`
`acting as a relay server will only serve a small number(e.g. 2
`
`
`
`
`
`
`
`to 5) of downstream terminals. If the numberoftarget termi-
`
`
`
`
`
`
`
`
`
`nals is less than or equal to this number, the target terminals
`
`
`
`
`
`
`
`
`
`
`mayall retrieve the data direct from the main server, or the
`
`
`
`
`
`
`
`
`
`
`main server may requestthe best of the target terminals to act
`
`
`
`
`
`
`
`as the relay server for the other(s).
`
`
`
`
`
`
`
`
`
`Tt will be understood that the network may include many
`
`
`
`
`
`
`
`
`more terminals than are illustrated in FIG.1, arranged ina tree
`
`
`
`
`
`
`
`structure wherein each terminalis either a node (functioning
`
`
`
`
`
`
`
`
`
`as both a relay server and a target terminal) or a leaf (func-
`
`
`
`
`
`
`
`
`tioning only as a target terminal); i.e. there may be multiple
`
`
`
`
`
`
`
`node terminals in the downstream data transmission path
`
`
`
`
`
`
`
`
`
`between the main server and each target terminal. Preferably,
`
`
`
`
`
`
`
`there is also an upstream communication path 22 from each
`
`
`
`
`
`
`
`
`
`
`terminal 14, 16 direct to the main server 12. The upstream
`
`
`
`
`
`
`path 22 is used by target terminals to acknowledgereceipt of
`
`
`
`
`
`
`
`
`data. These acknowledgements are sent directly from the
`
`
`
`
`
`
`
`
`target terminals to the main server 12 as illustrated. The
`
`
`
`
`
`
`
`
`
`
`upstream path 22 between the terminals 14 and the main
`
`
`
`
`
`
`
`
`
`server 12 has been omitted from FIG.1 for clarity of illustra-
`tion.
`
`
`
`
`
`
`
`
`
`Tt should be understood that the operational model illus-
`
`
`
`
`
`
`
`trated in FIG. 1 may be implemented using an existing, con-
`
`
`
`
`
`
`
`
`ventional network infrastructure (such as the Internet or
`
`
`
`
`
`
`
`
`equivalent) and does not require a new physical network.
`
`
`
`
`
`
`
`
`Servers and terminals may be connectedto the network back-
`
`
`
`
`
`
`
`
`bone by synchronous fixed connections such as ISDN,
`
`
`
`
`
`
`
`
`HSDL, T1 or T3 and the network may include dial-up con-
`
`
`
`
`
`
`
`nections, wireless connections etc. That is, FIG. 1 illustrates
`
`
`
`
`
`
`
`
`logical connections between the server and terminals, rather
`
`
`
`
`
`
`
`than physical connections. Further, the logical connections
`
`
`
`
`
`
`
`
`between the main server and terminals vary dynamically in
`
`
`
`
`
`
`use of the network, as shall be described further below.
`
`
`
`
`
`
`
`
`The invention is particularly suited for use whereall ter-
`
`
`
`
`
`
`
`
`minals are capable also of acting as relay servers as described
`
`
`
`
`
`
`and can be assumed to be permanently on-line. However,it
`
`
`
`
`
`
`
`
`will be understood that the invention may be adapted to
`
`
`
`
`
`
`
`
`accommodate terminals that do notalso act as relay servers
`
`
`
`
`
`
`
`
`(such terminals would alwaysbe “leaves”, at the end oflists
`
`
`
`of target terminals).
`
`
`
`
`
`
`
`Thetarget terminal requests each packetto be transferred
`
`
`
`
`
`
`
`separately. The packetto betransferred includes the informa-
`
`
`
`
`
`
`
`
`tion about the type of the data to be transferred, size, com-
`
`
`
`
`
`
`
`
`pression, and the checksumsrequired for the validation of the
`65
`
`
`
`transferred data packet.
`
`
`
`
`
`
`FIG. 2A of the drawings illustrates the operational struc-
`
`
`
`
`
`
`
`ture of the main server 12, including a network database 23
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`
`4
`
`
`
`
`
`
`
`
`for storing network information including the addressesetc.
`
`
`
`
`
`
`
`
`ofnetwork terminals (this database may implementall or part
`
`
`
`
`
`
`of the functionality of the tracking database 20 of FIG. 1;
`
`
`
`
`
`
`
`these database functions can be performed by one or more
`
`
`
`
`
`
`database systems on one or more computers/servers), data-
`
`
`
`
`
`
`
`
`
`base interface modules 24, 26, and a terminal module 28. The
`terminal module 28 includedin the main server 12 is also used
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`in each of the network terminals/relay servers 14 and 16, and
`
`
`
`
`
`
`includes a routed network protocol module 30 (preferably a
`
`
`
`
`
`
`
`
`
`TCP/IP module, but other routed protocols may be used) and
`
`
`
`
`
`
`
`
`
`a main application module 32. As shown in FIG. 2B, the
`
`
`
`
`
`
`
`database interface modules 24, 26 provide I/O (input/output)
`
`
`
`
`
`
`
`
`
`control functions 34, providing the required serverlevel func-
`
`
`
`
`
`
`
`
`tionality to the core of the main application 32 for data trans-
`
`
`
`
`
`
`
`
`
`fer control and for logging data aggregation, and database
`
`
`
`
`
`
`
`interface functions providing access to the network database
`
`
`
`
`
`
`
`
`
`
`23. For example, this may be either via an ODBC (open
`
`
`
`
`
`
`database connectivity) interface or a database interface native
`
`
`
`
`
`
`to the network database system 23.
`
`
`
`
`
`
`As shown in FIG.2C,the main application 32, as employed
`in both the main server and those terminals that also act as
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`relay servers, comprises the following functional modules:
`
`
`
`
`
`
`A core module 38 interprets received packets and stores
`data.
`
`
`
`
`
`
`
`A data reception module 40 receives individual packets.
`
`
`
`
`
`
`A data preparation module 42 prepares data to be relayed.
`
`
`
`
`
`
`A data transmission module 44 sends data prepared by the
`
`
`
`
`
`preparation module 42 and sends acknowledgements to
`relevant clients.
`
`
`
`
`
`
`
`
`
`A routing control module 46 maintains optimaldata trans-
`fer rates.
`
`
`
`
`
`
`
`
`
`A socket control module 48 administers socket objects.
`A server socket 50 monitors data received via the TCP/IP
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`module (or other routed network protocol module) 30.
`Client sockets 52 transmit data via the module 30. The
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`numberofclient sockets varies dynamically depending
`
`
`
`
`
`
`
`on the number of server connections required at any
`
`
`particular time.
`
`
`
`
`
`
`In a conventional system, a server has a server-oriented
`
`
`
`
`
`
`
`connection for clients, comprising a server socket which is
`
`
`
`
`
`
`
`
`
`used to connect to the client’s server socket. In the present
`
`
`
`
`
`
`
`
`
`invention, the main application used in the main server 12 and
`
`
`
`
`
`
`
`
`
`in each terminalthat also operatesas a relay server contains a
`
`
`
`
`
`
`
`standard server socket 50 for receiving data from its clients. In
`
`
`
`
`
`
`
`
`
`addition to this, the main application also has client sockets
`52 for downstream communications to the downstream ter-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`minals. The actual data to be transmittedto the target termi-
`
`
`
`
`
`
`
`
`nals is sent via these client sockets and acknowledgements are
`received from terminals via the server socket. When the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`required data has been sent by the server, the client socket
`
`
`
`
`
`
`
`
`
`created for the purpose of sending the data can be destroyed,
`
`
`
`
`
`
`so as not to consume networkresources unnecessarily. By this
`
`
`
`
`
`
`
`
`method, received acknowledgements will not cause any inter-
`
`
`
`
`
`
`
`
`ruptions in the outgoing data flow. Each terminal/server has
`
`
`
`
`
`
`
`
`two “hard-coded” sockets, one client socket 52 for serving
`other terminals/servers and one server socket 50 for main-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`server connection use only. Additional sockets can be created
`
`
`
`
`
`
`
`
`and used dynamically as required. Each socket has an inde-
`
`
`
`
`
`
`
`pendentprocessorthread controlling it so that sockets can be
`
`
`
`
`
`
`
`managedand controlled without interrupts and delays.
`
`
`
`
`
`
`The opening and operation of sockets is handled dynami-
`
`
`
`
`
`
`cally using a C++ class-application which generates a new
`socket when it needs a new instance of this class. In this
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`mannersockets can be managed dynamically and their num-
`
`
`
`
`
`
`
`
`ber varied as necessary. Each thread owns and controls its
`
`
`
`
`
`
`
`own sockets. When a socket is no longer needed the control-
`
`
`
`
`
`
`
`
`
`ling thread destroys the socket and then destroysitself.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`

`

`Case 4:22-cv-01490-JST Document 39-1 Filed 05/12/22 Page 10 of 71
`Case 4:22-cv-01490-JST Document 39-1 Filed 05/12/22 Page 10 of 71
`
`
`
`US 8,495,167 B2
`
`
`
`
`5
`
`
`
`
`
`The operation of the network will now be described.
`
`
`
`
`
`FIG.3Aillustrates the routing process.
`
`
`
`
`
`
`
`
`
`The main server selects a first set of a few (two orthree)
`
`
`
`
`
`
`
`
`
`terminals, and sendsthe transport request (which includes the
`
`
`
`
`
`
`
`addresses of the relevant target terminals) to each of these.
`
`
`
`
`
`
`
`Eachofthis first set ofterminals acknowledges its connection
`
`
`
`
`
`
`
`
`
`in the dynamic route by sending a messagedirect to the main
`
`
`
`
`
`
`
`server. The speed of this acknowledgement can be used to
`
`
`
`
`
`
`
`
`
`update the terminal data used for monitoring terminal perfor-
`
`
`
`
`
`
`
`
`
`mance. This first set of terminals is selected as being the
`
`
`
`
`
`
`
`
`“best” (“fastest”) terminals for use in transferring data to the
`
`
`
`
`
`
`
`particular target terminal, based on performancedata previ-
`
`
`
`
`
`
`
`ously acquired in operation of the network and stored in the
`network database.
`
`
`
`
`
`
`
`
`Whenthe data transfer is underway, data is transferred to
`
`
`
`
`
`
`
`
`the known terminals already registered as part ofthe network.
`
`
`
`
`
`
`
`
`
`If a new terminalis registered to the main server during the
`transfer it will be includedin the next data transfer.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Aspreviously described, the main serverselects the termi-
`
`
`
`
`
`
`
`
`nals with the shortest response times. This information is
`
`
`
`
`
`
`
`obtained in the following manner: the primary recipient of
`
`
`
`
`
`
`routing acknowledgements from particular terminals is the
`
`
`
`
`
`
`
`
`“server role” application that sent the transport request to
`
`
`
`
`
`
`
`those terminals. Whenthe transfer chain is completed, infor-
`
`
`
`
`
`
`
`mation is naturally relayed automatically to the main server.
`
`
`
`
`
`
`The performance of different terminals (network addresses)
`
`
`
`
`
`
`
`
`is measured simply by measuring the response time between
`
`
`
`
`
`
`
`
`different terminals and by selecting the terminals with short-
`
`
`
`est response times.
`
`
`
`
`
`
`
`
`
`Tt is not necessary for the terminals to know the entire
`
`
`
`
`
`
`
`network address space of the network, since the target termi-
`
`
`
`
`
`
`
`nal addresses are includedin the transport requests.
`
`
`
`
`
`
`
`
`
`Aspart of the transport request, the main server sends the
`
`
`
`
`
`
`
`
`addresses of other target terminals to the first set of terminals/
`
`
`
`
`
`
`
`
`
`relay servers. Each terminal selects its own downstream ter-
`
`
`
`
`
`
`
`
`minals/relay servers and sendstherest of the target network
`
`
`
`
`
`
`
`addresses to these terminals/relay servers as part ofthe modi-
`
`
`
`
`
`
`
`
`fied transport request. That is, each one of the first set of
`
`
`
`
`
`
`
`terminals selects a further two or three “best” terminals/relay
`
`
`
`
`
`
`
`servers from the addresses forwardedto it by the main server
`
`
`
`
`
`
`
`
`and passes the modified transport request on to these termi-
`
`
`
`
`
`
`
`
`nals, including the details of the other remaining target ter-
`
`
`
`
`
`
`
`
`
`minals. Because ofthis dynamic routing, the main server need
`
`
`
`
`
`
`
`
`
`not know explicitly which terminals deliver data and which
`terminals receiveit. It is sufficient that it is ensured that each
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`terminal in the route is accessible. If the delivery fails for one
`
`
`
`
`
`
`
`
`
`terminal for some reason,this is registered in the database and
`
`
`
`
`
`
`
`
`failed deliveries are repeated during the next transfer.
`
`
`
`
`
`
`
`Oncethe route to a particular target has been established,
`
`
`
`
`
`
`
`
`
`
`the packets of the datafile are passed along the defined route
`
`
`
`
`
`
`
`
`via the selected relay servers on the basis ofthe target terminal
`
`
`
`
`
`address in the handle/header of each packet.
`
`
`
`
`
`
`
`
`Automatic routing evenly divides the load over a larger
`
`
`
`
`
`
`
`
`
`network region, reducing the time window required for any
`
`
`
`
`particular data transfer operation.
`
`
`
`
`
`
`
`The data transfer process is illustrated in FIG. 3B.
`
`
`
`
`
`
`
`
`As shownin FIG.3B, in responseto the transport request
`
`
`
`
`
`
`
`
`
`
`each target terminal requests the data from the main server or
`
`
`
`
`
`
`
`
`
`the upstream terminal acting as the server (as specified in the
`
`
`
`
`
`
`
`
`transport request) as packets, reassembles the file and, if
`
`
`
`
`
`
`
`necessary, relays the packets to downstream target terminals.
`
`
`
`
`
`
`
`
`Whenthe target terminal has received the last packet of the
`
`
`
`
`
`
`file, it sends an acknowledgementto the main server.
`
`
`
`
`
`
`
`
`It is preferred that all data is transferred in encrypted and
`
`
`
`
`
`
`
`
`compressed binary format. In this manner data security is
`
`
`
`
`
`
`
`
`improved as compared with transferring plain text and data
`
`
`
`
`
`
`
`
`
`transfer requires less time. Binary format data requires

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