`
`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