throbber
Case 6:20-cv-01071 Document 1-2 Filed 11/20/20 Page 1 of 16
`
`IN THE UNITED STATES DISTRICT COURT
`FOR THE WESTERN DISTRICT OF TEXAS
`WACO DIVISION
`
`PANTHER INNOVATIONS, LLC,
`
`Plaintiff,
`
`v.
`
`MICROSOFT CORPORATION,
`
`Defendant.
`
`CIVIL ACTION NO.
`
`JURY TRIAL DEMANDED
`
`PLAINTIFF’S COMPLAINT FOR PATENT INFRINGEMENT
`
`EXHIBIT B
`
`

`

`US00806923.1B2
`
`(12) United States Patent
`Schran et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 8,069,231 B2
`*Nov. 29, 2011
`
`(54) COMPUTER PROGRAM PRODUCT FOR
`DETERMINING A GROUP OF NETWORK
`CONFIGURATION SETTINGS THAT
`PROVIDE OPTIMIAL NETWORK
`PERFORMANCE
`(75) Inventors: Adam R. Schran, Philadelphia, PA
`(US); Robert E. Darlington,
`Philadelphia, PA (US)
`(73) Assignee: Ascentive LLC, Philadelphia, PA (US)
`(*) Notice:
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`This patent is Subject to a terminal dis-
`claimer.
`(21) Appl. No.: 12/951,685
`1-1.
`(22) Filed:
`(65)
`
`Nov. 22, 2010
`Prior Publication Data
`
`US 2011 FOO66708 A1
`Mar. 17, 2011
`O
`O
`Related U.S. Application Data
`(63) Continuation of application No. 10/078,815, filed on
`Feb. 19, 2002, now Pat. No. 7,840,652.
`filed
`isional annlicati
`f
`(60) Provisional application No. 60/277.463, filed on Mar.
`21, 2001.
`(51) Int. Cl.
`(2006.01)
`G06F 15/16
`(52) U.S. Cl. ........................................ 709/221; 709/224
`(58) Field of Classification Search .......... 709/200 203,
`709/217 227, 228
`See application file for complete search history.
`References Cited
`
`(56)
`
`U.S. PATENT DOCUMENTS
`6,189,008 B1
`2/2001 Easty et al.
`6,292.483 B1
`9, 2001 Kerstein
`6,493.751 B1
`12/2002 Tate et al.
`
`1/2003 Rehkopf
`6,505,249 B1
`3. R: 42. Maki al
`akSO
`7,222,255 B1
`5/2007 Claessenset al.
`7,840,652 B2 * 1 1/2010 Schran et al. ................. TO9.220
`OTHER PUBLICATIONS
`
`"Accessing the Internet from Home with Windows 3.1.” printout
`from web site address: http://serveruwindsor.ca. 1101/comm?win31.
`html, printout date: Mar. 9, 2001 (11 pages).
`Data Sheet, “Cisco Netsys Performance Service Manager.” printout
`from web site address: http://cisco.com/warp/public/cc/pd/nemnSW/
`nesvmn/prodlit?pfmgr ds.htm, printout date: Apr. 18, 2001 (9
`pages).
`
`(Continued)
`
`Primary Examiner — Moustafa M Meky
`(74) Attorney, Agent, or Firm — Panitch Schwarze Belisario
`& Nadel LLP
`
`ABSTRACT
`(57)
`-
`-
`-
`A computer program product is provided for optimizing net
`work configuration settings for a user's client machine. A
`plurality of groups of network configuration settings are held
`in storage to be used by the user's client machine. A network
`connection is established between the user's client machine
`and a remote server. One of the groups of network configu
`ration settings is selected to be used by the user's client
`machine from the provided groups of settings. One or more
`performance tests are conducted using the selected network
`configuration settings during the established network connec
`tion. The settings selection and the performance tests are
`repeated for one or more other groups of network configura
`tion settings during the established network connection. The
`network configuration settings of the user's client machine
`provided in the groups are automatically adjusted based on
`the results of the performance tests. The adjusted network
`configuration settings are settings that optimize the perfor
`mance of the user's client machine.
`
`28 Claims, 6 Drawing Sheets
`
`JSERSELECTS
`NEWORK
`CONFIGURATON
`PREFERENCES
`
`sos
`
`A 315
`
`-|310
`USER Ericts To
`USEEFAULT
`NETWORX
`CONFIGURATION
`PREFERENCES
`
`Case 6:20-cv-01071 Document 1-2 Filed 11/20/20 Page 2 of 16
`
`PERFORMTESTS
`TODETERMINE
`- OTIWAL
`NETWORK
`CoNFIGURATION
`SETTINGS
`
`-w
`
`320
`
`AUSTNEWORK
`CONFIGURATION
`SETTINGS
`
`WAT
`OEED)
`USER
`SELEC
`
`
`
`3.25
`
`YNAMIC
`MODE
`
`OBTAIN
`PERFORMANCE
`METRICS
`
`- 330
`
`33S
`
`ANAY2E
`RFORMANCE
`
`CIENT
`
`- | 345
`E. SEs
`NETWORK.
`contestATION
`REMOTF
`SETTINGS
`SERVER
`----------------
`
`/ 34C
`ADJUSTNETWORK
`CONFIGURATION
`SETTINGS
`
`

`

`US 8,069.231 B2
`Page 2
`
`OTHER PUBLICATIONS
`“Internet Connection Booster 2000 Version 3.5.0 (Final Release).”
`printout from web site address: http://toshi.50megs.com/icb2000?,
`printout date: Mar. 9, 2001 (5 pages).
`PCC Exclusives: 7th Annual Windows Superguide 98, “Speed
`Tricks: Faster to the Net,” printout from website address: http://www.
`Zdnet.com/pccompf features/excl1098. Superguide? tips-speed1.html,
`printout date: Mar. 20, 2001 (1 page).
`Tweak HomePC, "An Explanation of how a Internet Download
`Works,” printout from web site address: http://tweakhomepc.
`virtualave.net/modems/modemhow.html, printout date: Apr. 18,
`2001 (14 pages).
`What's?com, “time-to-live.” printout from web site address: http://
`whatis.techtarget.com/Whatls Definition Page/
`0.4152.214184,00.html, printout date: Mar. 9, 2001 (2 pages).
`
`What's?com, “latency.” printout from website address: http://whatis.
`techtarget.com/ Whatls Definition Page/0,4152.212456,00.html,
`printout date: Mar. 9, 2001 (1 page).
`What's?com, "maximum transmission unit.” printout from web site
`address:
`http:/whatis.techtarget.com/Whatls Definition Page/
`0.4152,213605,00.html, printout date: Mar. 9, 2001 (1 page).
`What's?com, “Ping times,” printout from web site address: http://
`www.progressivesystems.com/Ping%20time.htm, printout date:
`Mar. 9, 2001 (1 page).
`ZDNet, “iSpeed for Windows v2.8.0 beta 4—Increase your Internet
`Speed,” printout from web site address: http://www. Zdnet.com/
`downloads/stories/info/0,000ROB.html, printoutdate: Mar. 9, 2001
`(1 page).
`* cited by examiner
`
`Case 6:20-cv-01071 Document 1-2 Filed 11/20/20 Page 3 of 16
`
`

`

`U.S. Patent
`
`Nov. 29, 2011
`
`Sheet 1 of 6
`
`US 8,069,231 B2
`
`
`
`
`
`(w LWQ TWOOT)
`
`EN|9|NE
`
`EN|HOW W ?NE|TO
`
`Case 6:20-cv-01071 Document 1-2 Filed 11/20/20 Page 4 of 16
`
`

`

`U.S. Patent
`
`Nov. 29, 2011
`
`Sheet 2 of 6
`
`US 8,069,231 B2
`
`
`
`z '81-I
`
`
`
`
`(ºo?e “ISO ‘ L L 'uuepow) edKL uo?O?uuOO
`
`(p??eJeue6 Á??e??uenbes) O'I ?sel
`
`
`
`
`
`Case 6:20-cv-01071 Document 1-2 Filed 11/20/20 Page 5 of 16
`
`

`

`U.S. Patent
`
`Nov. 29, 2011
`
`Sheet 3 of 6
`
`US 8,069,231 B2
`
`-
`
`USER SELECTS
`NETWORK
`CONFIGURATION
`PREFERENCES
`
`- so
`
`USERELECTS TO
`USE DEFAULT
`NETWORK
`CONFIGURATION
`PREFERENCES
`
`320
`
`OBTAIN
`PERFORMANCE
`METRICS
`
`/
`
`PERFORM TESTS
`TO DETERMINE
`OPTIMAL
`NETWORK
`CONFIGURATION
`SETTINGS
`
`ADJUST NETWORK
`CONFIGURATION
`SETTINGS
`
`
`
`
`
`^
`
`
`
`
`
`WHAT
`MODE DO
`USER
`SELECT"?
`
`
`
`STATIC
`
`-- - - - - - - - -
`ANALYZE
`SE
`PERFORMANCE
`NEes
`METRICS TO
`WITH
`DETERMINE NEW
`NETWORK
`REMOTE
`CONFIGURATION
`SERVER
`SETTINGS
`X- - - - - - - - - - -------.
`
`DYNAMIC
`
`
`
`-340
`
`ADJUST NETWORK
`CONFIGURATION
`SETTINGS
`
`Case 6:20-cv-01071 Document 1-2 Filed 11/20/20 Page 6 of 16
`
`Fig. 3
`
`

`

`Case 6:20-cv-01071 Document 1-2 Filed 11/20/20 Page 7 of 16
`Case 6:20-cv-01071 Document 1-2 Filed 11/20/20 Page 7 of 16
`
`U.S. Patent
`
`Nov. 29, 2011
`
`Sheet 4 of 6
`
`US 8,069,231 B2
`
`owawaogom
`
`goacum
`
`=§o>O
`owflaounom
`
`«Meow
`
`329.53Eéwzafi
`
`“REFRESH
`255aim
`
`
`
`$3533—
`
`ohcom
`
`”in
`
`as;
`
`=c_§..=mm=o0
`
`mwiflom
`
`ma9::0
`
`fiscal
`
`;33%
`!lllgmag!
`
`VME
`
`gemE:g2
`
`ow
`
`cm
`
`maON
`
`m8om
`
`
`
`
`
`

`

`U.S. Patent
`
`Nov. 29, 2011
`
`Sheet 5 of 6
`
`US 8,069,231 B2
`
`
`
`
`
`
`
`Case 6:20-cv-01071 Document 1-2 Filed 11/20/20 Page 8 of 16
`
`

`

`Case 6:20-cv-01071 Document 1-2 Filed 11/20/20 Page 9 of 16
`Vmy026eSaC
`9e
`U
`1
`1
`6
`
`0.N
`
`12
`
`S
`
`US 8,069,231 B2
`
`U.S. Patent
`
`W.MNBN{Dow
`
`
`
`Eovcgmfive:
`
`
`
`meoc02Dmmam
`
`mm05co1o252Ho___Bc_
`.6“E:«0:3“moon26.2235%UoucoELotvnP33:92:...x2665302RE;830.;mmvooEzooowcoqmomL33....3030maTh“.3:3%28;
`
`
`
`
`
`
`wMmmczuomtoEmW{M252Egmam
`
`.50»35...:onvcommuxficobfiozoEoyaoumwamm>zu<mH.c._330.2.59.5.58.3g6225;;cocuELotomDmx530:.32.:£5E9.,3239.0
`
`
`
`
`
`
`
`,m23223:353232x858onx25
`
`
`
`
`m.393$5mctav6:0::05L630?30an>09.353:.2:..corooccooIm“9.23:.
`1I
`
`
`
`
`
`.50»«3030E3.3Emmy6.55m95..ummamo>zo<”owns;05:83232“:02:qu
`
`
`
`
`
`
`
`$330.22mamino3:328mcmmcwcozuEuEzaoucwmzfiysm.na0amw>$o<”3235:0;mom
`t.30098QO9.695:032:003558550#0535.50;Sean
`
`
`
`
`

`

`US 8,069,231 B2
`
`1.
`COMPUTER PROGRAMI PRODUCT FOR
`DETERMINING A GROUP OF NETWORK
`CONFIGURATION SETTINGS THAT
`PROVIDE OPTIMIAL NETWORK
`PERFORMANCE
`
`2
`the selected network configuration settings. The selected net
`work configuration settings of the client machine are auto
`matically adjusted based on the results of the performance
`tests. The adjusted network configuration settings are settings
`that optimize the performance of the client machine.
`The adjustments of the network configuration settings may
`be made through the use of an algorithm that performs statis
`tical analysis on past network configuration setting perfor
`mance test result data. Either regression or a polynomial
`curve fit may be used to perform the statistical analysis. The
`statistical analysis may be performed by either the client
`machine or the remote server.
`A different predefined group of network configuration set
`tings may be selected for each test performed. The user may
`specify, via the client machine, at least one network perfor
`mance preference. Performance metric scoring may be
`executed on each of the different predefined groups of net
`work configuration settings, based on a relative weight
`assigned to the network performance preference.
`Logic running on the remote server may statistically ana
`lyze the results of the performance tests and determine one or
`more sets of network configuration settings for use on the
`client machine. The logic may include an intelligent optimi
`Zation algorithm which uses historical performance data to
`statistically assess positive or negative scoring variations
`when a particular network configuration setting is adjusted.
`The adjustments of the network configuration settings may be
`made through the use of an algorithm that determines future
`groups of network configuration settings to test.
`The network configuration performance of the client
`machine may be continually monitored, after the network
`configuration settings of the client machine are automatically
`adjusted. The monitored network configuration settings of the
`client machine may be automatically adjusted to maintain
`optimal network performance of the client machine. The user
`may select a set of default network configuration settings.
`Network configuration settings and aggregate test results
`associated with other client machines that previously estab
`lished a network connection with the remote server, may be
`stored on the remote server. The user's client machine may
`receive network configuration setting recommendations from
`the remote server, based on the network configuration settings
`and the aggregate test results stored on the remote server.
`The network configuration settings may include latency,
`ping time, network connection stability, Maximum Transmis
`sion Unit (MTU), Maximum Segment Size (MSS). Receive
`Window (RWIN), Time To Live (TTL), Black Hole Detec
`tion, Auto Discovery of Path MTU, packet size, upload
`throughput speed and download throughput speed.
`A percentage score may be assigned to each applicable
`network configuration setting. The relative weight of each
`network configuration setting may be multiplied by the per
`centage score for the network configuration setting. The rela
`tive weight may be determined as a function of the user's
`network performance preferences. The resulting products of
`the relative weights and the percentage scores may then be
`added to determine a weighted overall percentage score.
`
`CROSS-REFERENCE TO RELATED
`APPLICATION
`
`This application is a continuation of U.S. application Ser.
`No. 10/078,815 filed Feb. 19, 2002, the entire disclosure of
`which is incorporated herein by reference.
`This application claims the benefit of U.S. Provisional
`Application No. 60/277.463, filed Mar. 21, 2001, entitled
`15
`SYSTEM AND METHOD FOR DETERMINING NET
`WORK CONFIGURATION SETTINGS THAT PROVIDE
`OPTIMAL NETWORK PERFORMANCE
`
`10
`
`BACKGROUND OF THE INVENTION
`
`Prior art software programs exist for adjusting and modi
`fying various network configuration settings of a user's com
`puter that are used by the Internet protocol (TCP/IP) running
`under Windows operating systems. Examples of Such pro
`grams include webRocketp, available from Ascentive LLC;
`25
`Internet Connection Booster 2000, available from BEVALLY
`Software, Inc., and iSpeed for Windows, available from High
`Mountain Software. These software programs allow a user to
`change various default settings, such as Maximum Transmis
`sion Unit (MTU), Maximum Segment Size (MSS), Receive
`Window (RWIN), Time to Live (TTL), MTU Auto Discover,
`and Black Hole detection. The user may change the settings
`manually, or the user may select a group of settings that are
`defined by the software program. The goal of changing the
`settings is to optimize the performance of the user's com
`35
`puter. Manually trying to identify optimal settings is a time
`consuming and difficult trial-and-error process. Once a par
`ticular group of settings is identified, the settings may not
`even be optimized for Subsequent Internet sessions. Changing
`the default settings to a predefined group of settings may
`40
`provide some improvement in performance, but does not
`provide the optimal settings for a particular user's computer
`during a particular Internet session.
`Furthermore, the user may have specific performance pref
`erences. For example, one user may prefer enhanced down
`45
`load speed, while another may prefer a system with mini
`mized latency. It may be difficult, if not impossible, for a user
`to manually determine the optimal performance settings for a
`particular preference, whereas the automatic settings on Such
`Software programs may not allow for user preferences to be
`considered. Such software programs also do not allow a user
`to access the experiences of other users to speed up and
`improve the optimization process.
`Accordingly, there is a need for a software tool to better
`assist users in determining the best network configuration
`settings to achieve optimal network performance based on
`specified user preferences. The present invention fulfills such
`a need.
`
`30
`
`50
`
`55
`
`Case 6:20-cv-01071 Document 1-2 Filed 11/20/20 Page 10 of 16
`
`BRIEF SUMMARY OF THE INVENTION
`
`60
`
`BRIEF DESCRIPTION OF THE SEVERAL
`VIEWS OF THE DRAWING
`
`The present invention is a method and system for optimiz
`ing network configuration settings for a user's client machine.
`A network connection between the client machine and a
`remote server is established. A plurality of network configu
`ration settings are then selected for the client machine. One or
`more performance tests are automatically conducted using
`
`65
`
`The following detailed description of preferred embodi
`ments of the invention, will be better understood when read in
`conjunction with the appended drawings. For the purpose of
`illustrating the invention, there are shown in the drawings
`embodiments which are presently preferred. It should be
`
`

`

`3
`understood, however, that the invention is not limited to the
`precise arrangements and instrumentalities shown. In the
`drawings:
`FIG. 1 shows a system block diagram configured in accor
`dance with the present invention;
`FIG. 2 shows a database table structure for storing network
`configuration settings and performance metric test results in
`accordance with the present invention;
`FIG.3 shows a high-level flow chart illustrating a process
`of executing network performance tests in accordance with
`the present invention;
`FIG. 4 shows an example of tests performed on a plurality
`of network configuration settings in accordance with the
`present invention;
`FIG. 5 shows an example of determining scoring results of
`a network configuration setting in accordance with the
`present invention; and
`FIG. 6 shows an example of a user interface used in accor
`dance with the present invention.
`
`10
`
`15
`
`DETAILED DESCRIPTION OF THE INVENTION
`
`To implement the present invention, a computer (hereinaf
`ter referred to as “client machine') that requires its network
`configuration settings to be optimized, is connected to a net
`work. An application program (client Software) running on a
`processor within the client machine performs a set of tests to
`determine optimal network configuration settings. In addi
`tion, the application program continuously monitors network
`performance and automatically adjusts the network configu
`ration settings of the client machine to achieve and maintain
`optimal network performance in accordance with the user's
`specified preferences.
`FIG. 1 shows a system 100 used to implement the present
`invention. The system 100 includes a remote server 105 with
`a remote network-enabled intelligent optimization engine
`110, and a client machine 115 with an application program
`120 running on a processor 121 within the client machine
`115. The remote network-enabled intelligent optimization
`engine 110 may be a software object. The client machine 115
`uses a network connection 150 to remote server 105 to test
`performance metrics based on various network configuration
`settings in order to achieve desired performance improve
`ments. The remote network-enabled intelligent optimization
`engine 110 uses one or more algorithms to determine the best
`configuration based on the data accumulated in limited or
`ongoing performance tests. The application program 120 run
`ning on the processor 121 of the client machine 115 includes
`a network performance monitor 125, performance metrics
`130, network configuration settings 135, userpreferences 140
`and a local intelligent optimization engine 145.
`The network performance monitor 125 executes network
`performance tests in order to obtain performance metrics
`based on specific network configuration settings 135. As the
`performance metrics 130 are acquired for various network
`configuration settings 135, the network performance monitor
`125 records the performance metrics on the client machine
`115. The performance metrics are used by the local intelligent
`optimization engine 145 to achieve optimal network perfor
`mance by determining the best network configuration settings
`135 for the client machine 115 on a limited or ongoing basis
`according to one or more algorithms performed by the local
`intelligent optimization engine 145. Any appropriate perfor
`mance metrics 130 may be used, including download
`throughput speed (measured in bytes received per second),
`upload throughput speed (measured in bytes transmitted per
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Case 6:20-cv-01071 Document 1-2 Filed 11/20/20 Page 11 of 16
`
`US 8,069,231 B2
`
`4
`second), latency (measured in milliseconds of ping time), and
`stability (measured in the percentage of network data packets
`lost and/or retransmitted).
`The client machine 115 uses the network performance
`monitor 125 to access the remote server 105. Data received
`over the network connection 150 from the remote server 105
`is used to perform network performance tests in order to
`establish performance metrics. Additionally, the remote
`server 105 can optionally store network configuration set
`tings and performance metrics received from one or more
`client machines using the remote network-enabled intelligent
`optimization engine 110. This data, either solely supplied by
`the client machine 115 or in aggregate form accumulated
`from many client machines over time, is used in algorithms
`based on the remote server 105, client machine 115, or both,
`to determine the best network configuration settings for the
`client machine 115 on a limited or ongoing basis. The remote
`server 105 may require an authentication protocol to grant
`access to the client machine 115.
`The network configuration settings 135 on the client
`machine 115 determine the network configuration and behav
`ior of the client machine 115. The local intelligent optimiza
`tion engine 145 determines how the client software should
`adjust these settings in order to achieve optimal network
`performance in accordance with the specified user prefer
`ences 140 and algorithms in use by the client machine 115
`and/or remote server 105. Any appropriate network configu
`ration settings 135 which may affect the performance metrics
`130 may be used, including, in the case of the Internet's
`TCP/IP protocol, Maximum Transmission Unit (MTU),
`Maximum Segment Size (MSS), Receive Window (RWIN),
`Time to Live (TTL), Black Hole Detection, and MTU Auto
`Discovery.
`The user of the client machine 115 can set the user prefer
`ences 140 on the client machine 115. The local intelligent
`optimization engine 145 uses these user preferences 140 in
`order to determine the correct settings for optimal network
`performance. One optional userpreference, the Scoring Bias,
`involves the relative weighting of various performance met
`rics 130 for determining ideal network performance charac
`teristics in the Scoring Algorithm of the local intelligent opti
`mization engine 145. In this example, using the performance
`metrics 130, one user may prefer a system with an enhanced
`download speed, while another may prefer a system with
`minimized latency. These users may set the Scoring Bias in
`relative favor of one or more of their preferred performance
`metrics 130 to achieve the desired network performance char
`acteristics of their client machine. If the user does not set any
`user preferences 140, then the weightings of each of the
`performance metrics are made equal.
`The local intelligent optimization engine 145 processes the
`performance metrics data 130 to determine the best network
`configuration settings 135 to achieve optimal network perfor
`mance based on the specified user preferences 140 using one
`or more algorithms. If network performance is determined to
`be less than optimal based on the user preferences 140, with
`optional input from and/or control by the remote network
`enabled intelligent optimization engine 110 according to the
`algorithm used, the local intelligent optimization engine 145
`automatically adjusts the network configuration settings 135
`of client machine 115 in order to enhance desired perfor
`mance characteristics of the client machine 115.
`The remote network-enabled intelligent optimization
`engine 110 on the remote server 105 is an optional component
`of the present invention. The remote network-enabled intel
`ligent optimization engine 110 stores the network configura
`tion settings 135 in storage 111 and aggregate test results
`
`

`

`US 8,069,231 B2
`
`10
`
`15
`
`25
`
`30
`
`35
`
`40
`
`45
`
`5
`from one or more users of one or more connected client
`machines 115. The local intelligent optimization engine 145
`on the client machine 115 can access recommendations from
`the remote network-enabled intelligent optimization engine
`110 on the remote server 105 in order to determine the opti
`mal network configuration for that specific machine and net
`work connection type.
`The present invention stores performance metrics 130 for
`particular network configuration settings 135 on the client
`machine 115. The present invention accesses network con
`figuration settings 135 stored in storage 136 on the client
`machine 115. In addition, the present invention can optionally
`store aggregate data received from one or more client
`machines 115 on the remote server 105. This data contains the
`network configuration settings 135 and network performance
`metric test results from the client machine(s) 115. Any other
`appropriately relevant data pertaining to the client machine
`115, remote server 105, and the performance testing may be
`stored as well. FIG. 2 shows an example of how the specified
`data is stored in a database.
`FIG. 3 shows a high-level functional flowchart that dem
`onstrates the process of executing network performance tests
`to determine the most efficient network connectivity settings
`of the client machine. In step 305, the user selects network
`configuration setting preferences. Alternatively, in step 310,
`the user may elect to use default network configuration setting
`preferences using the software interface of the present inven
`tion. The monitoring/optimizing process may cease after a
`fixed number of iterations, or after maximum optimization
`benefits according to weighted score have been reached. In
`step 315, a multitude of tests are performed to determine the
`optimal network configuration settings for the client
`machine. In step 320, the network configuration settings are
`adjusted to maintain network optimization in accordance
`with the user preferences. In step 325, it is determined
`whether the user selected a static mode or a dynamic mode. If
`the user selected, the static mode, the process for adjusting
`network configuration settings is terminated. If the user
`selected a dynamic mode, the network connectivity of the
`client machine is continuously monitored by implementing
`steps 330, 335,340, and, optionally, step 345.
`In step 330, the network performance monitor tests specific
`network configuration settings to obtain performance met
`rics. Using an appropriate algorithm, random or intelligent
`changes may be made to network configuration settings in
`order to anticipate optimal network performance. In step 335,
`the local intelligent optimization engine analyzes perfor
`mance metrics and determines new network configuration
`settings to approach desired network performance. In step
`340, the network configuration settings are again adjusted.
`Optionally, in step 345, the client machine may interface with
`the remote network-enabled intelligent optimization engine
`10 on the remote server 105 in order to determine the optimal
`network configuration settings. When the dynamic mode is
`implemented, the network configuration settings are auto
`matically adjusted on a continuous basis to maintain optimal
`network performance in accordance with the user prefer
`ences. After making these adjustments, network performance
`is continually monitored and adjusted on an “as needed
`basis.
`The intelligent optimization engine on the client machine
`or remote server may employ any number of appropriate
`algorithm(s), individually or in conjunction with one another,
`to determine the best network configuration settings and
`achieve the desired network performance characteristics for
`the client machine based on specified user preferences. The
`algorithms on the client machine and remote server may
`
`Case 6:20-cv-01071 Document 1-2 Filed 11/20/20 Page 12 of 16
`
`50
`
`55
`
`60
`
`65
`
`6
`communicate using an appropriate network application pro
`tocol. The algorithms may be designed to use certain data to
`achieve desired performance characteristics for a particular
`network connection type, such as dial-up modem, ISDN,
`ADSL, cable modem, and T-1. The exemplary algorithms
`described below may use results of the Scoring Formula as
`data points for determining the desired network connection
`characteristics.
`The scoring method implemented by the present invention
`evaluates the results of past tests of groups of network con
`figuration settings. If the user specifies a scoring preference
`(such as faster downloads or reduced ping times), the results
`for each group of network configuration settings are
`weighted.
`In accordance with the present invention, future groups of
`network configuration settings to test are determined by
`either using a predetermined test sequence Supplied locally in
`a client program running on client machine 115, or via the
`remote server 105. Alternatively, a statistical analysis method
`invention, such as linear regression or polynomial curve fit,
`may be implemented inaccordance with the present invention
`to statistically analyze past results. The use of statistical
`analysis can decrease the time it takes to find optimal groups
`of settings. For example, a curve fit or regression may indicate
`that increasing packet size causes a desired performance char
`acteristic specified by the user, Such as the download speed of
`client machine 115, to increase. Based on the statistical analy
`sis, it would no longer be necessary to test Smaller packet
`sizes. This would significantly save time on testing and allows
`the optimum network configuration settings to be determined
`more expeditiously.
`In order to avoid obtrusive interference in the end-user's
`network activity, the active testing of performance metrics by
`the network performance monitor may be delayed by the local
`intelligent optimization engine to times when network activ
`ity is idle or reduced. In cases where the network connection
`of the client machine is a limiting factor in performance
`results, the network performance monitor may automatically
`Suspend the network activity of other network applications on
`the client machine, or provide a warning message for the end
`user to Suspend network activity of other network applica
`tions.
`The Scoring Formula merges the performance metrics test
`results for particular network configuration settings with the
`user preferences to assist the calling algorithm in achieving
`user-desired performance characteristics. For each set of net
`work configuration settings, each applicable performance
`metric is assigned a percentage score relative to the best
`performing set of network configuration settings for that par
`ticular metric. For metrics where a larger number is desired
`(such as download throughput), the percentage score of a
`designated metric of a particular set of network configuration
`settings is calculated by dividing the designated metric by the
`best result of the designated metric for all tested sets of
`network configuration settings, and multiplying by 100. For
`metrics where a smaller number is desired, the metric per
`centage score of the set is calculated by taking the inverse of
`the above example. To avoid divide-by-zero errors in this
`case, if one or more scores of a metric are equal to “0”, the
`percentage score for that metric is automatically set to 100%,
`the best possible percentage score for a metric.
`For each set of network configuration settings, a weighted
`overall percentage score is determined. The relative weight of
`each performance metric, specified as a percentage by the
`userpreferences, is multiplied by the percentage score for that
`particular metric. Each of these results are then added
`
`

`

`US 8,069,231 B2
`
`Case 6:20-cv-01071 Document 1-2 Filed 11/20/20 Page 13 of 16
`
`65
`
`25
`
`7
`together to achieve the weighted overall percentage score.
`The weighted overall percentage scores are returned to the
`calling algorithm.
`A Local Source version of an Active-Learning Algorithm
`of the local intelligent optimization engine is designed to 5
`determine a baseline for the desired network performance
`characteristics on the client machine. Using a series of per
`formance tests, performance metrics are obtained and stored
`on the client machine. The network performance monitor
`performs these tests with a selected set of network configu- 10
`ration settings in order to record accurate performance met
`rics. In the Local Source version of the Active-Learning Algo
`rithm, sets of network configuration settings are determined
`for a variety of network connection types at design time and
`hard-coded into the client software. The local intelligent opti- 15
`mization engine instructs the network performance monitor
`to capture performance metrics for each set of network con
`figuration settings. After the initial round of tests has been
`completed, the local intelligent optimization engine passes
`the results sets to the Scoring Formula. The Scoring Formula 20
`returns a weighted percentage score for each set of network
`configuration settings. The local intelligent optimization
`engine then selects the highest scoring set of network con
`figuration settings as a baseline for the desired network per
`formance characteristics.
`FIG. 4 shows an example of tests being performed on five
`groups of network configuration settings, G1 through G5. The
`lowest (best) ping time receives a score of 100%, and the
`highest (best) throughput receives a score of 100%, and the
`other results are scored relatively. The Scoring Bias is neutral, 30
`so the scores for each group are averaged to determine the
`weighted overall percentage score. The Active-Learning
`Algorithm has determined that G1, with the best-weighted
`overall percentage score, is the best group of network con
`figuration settings in this scenario. The Lo

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