`
`IN THE UNITED STATES DISTRICT COURT
`FOR THE WESTERN DISTRICT OF TEXAS
`WACO DIVISION
`
`
`PANTHER INNOVATIONS, LLC,
`
`
`
`v.
`
`MICROSOFT CORPORATION,
`
`
`
`
`Plaintiff,
`
`Defendant.
`
`
`
`
`
`
`
`
`
`
`CIVIL ACTION NO.
`
`
`JURY TRIAL DEMANDED
`
`
`PLAINTIFF’S COMPLAINT FOR PATENT INFRINGEMENT
`
`
`
`
`
`
`EXHIBIT A
`
`
`
`USOO784.0652B2
`
`(12) United States Patent
`Schran et al.
`
`(10) Patent No.:
`45) Date of Patent:
`
`US 7,840,652 B2
`NOV. 23, 2010
`
`9
`
`(54) SYSTEMAND METHOD FOR DETERMINING
`NETWORK CONFIGURATION SETTINGS
`THAT PROVIDE OPTIMAL NETWORK
`PERFORMANCE
`
`(75) Inventors: Adam R. Schran, Philadelphia, PA
`(US); Robert E. Darlington,
`Philadelphia, PA (US)
`(73) Assignee: Ascentive LLC, Philadelphia, PA (US)
`c
`(*) Notice:
`
`Subject to any disclaimer the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 1253 days.
`(21) Appl. No.: 10/078,815
`(22) Filed:
`Feb. 19, 2002
`(65)
`Prior Publication Data
`US 20O2/O138443A1
`Sep. 26, 2002
`
`Related U.S. Application Data
`(60) Provisional application No. 60/277.463, filed on Mar.
`21, 2001.
`
`(51) Int. Cl.
`(2006.01)
`G06F 15/177
`(2006.01)
`G06F 5/73
`(52) U.S. Cl. ........................ 709/220, 709/221; 709/223.
`(58) Field of Classification Search ................. 709/220,
`709/221, 223, 233,234, 235
`See application file for complete search history.
`References Cited
`U.S. PATENT DOCUMENTS
`
`(56)
`
`6,189,008 B1* 2/2001 Easty et al. ................... 707/10
`6,292.483 B1
`9/2001 Kerstein ..................... 370,389
`6,493.751 B1* 12/2002 Tate et al. ................... TO9,221
`6,505,249 B1* 1/2003 Rehkopf ..................... TO9,224
`6,725.229 B2 * 4/2004 Majewski et al. ........... 707/102
`6,842,431 B2 *
`1/2005 Clarkson et al. ............ 370,254
`
`7,222,255 B1* 5/2007 Claessens et al. .............. 714.f4
`
`OTHER PUBLICATIONS
`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).
`(Continued)
`initialist. As Eisne
`SSIS OF EXOFife AV1 CO
`try Agent, or Firm Panitch Schwarze Belisario &
`aCC
`
`(57)
`
`ABSTRACT
`
`A system and method determines network configuration set
`tings that provide optimal network performance for a user's
`computer (client machine). The computer is connected to a
`remote server via a network connection. A plurality of net
`work configuration settings are selected for the computer.
`One or more performance tests using the selected network
`configuration settings are automatically conducted. An algo
`rithm is used to determine the best network configuration
`settings and achieve the desired network performance char
`acteristics for the computer based on preferences specified by
`the user. The network configuration settings of the computer
`are automatically adjusted based on the results of the perfor
`mance tests. The user's computer can access network con
`figuration setting recommendations from the remote server,
`based on network configuration settings and aggregate test
`results associated with other computers that previously were
`in communication with the remote server.
`
`56 Claims, 6 Drawing Sheets
`
`
`
`Case 6:20-cv-01071 Document 1-1 Filed 11/20/20 Page 2 of 16
`
`NETWORK
`CONFIGURATO
`SETTINGS
`
`NTEGENT
`OPTMZATION
`ENGINE
`(AGGREGATE DATA)
`REMOTE SERVER
`
`NETWORK
`PERFORMANCE
`MONOR
`
`PERFORMANCE
`METRICS
`
`NETWORK
`CONFIGURAION
`SETINGS
`
`INELtGENT
`OPTIMIZATION
`ENGINE
`(LOCAL DATA)
`
`CLENT MACHINE
`
`
`
`US 7,840,652 B2
`Page 2
`
`OTHER PUBLICATIONS
`
`"Ping times.” printout from web site address: http://www.progres
`sivesystems.com/Ping%20time.htm. printout date: Mar. 9, 2001 (1
`page).
`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-speedl.html,
`printout date: Mar. 20, 2001 (1 page).
`“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).
`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).
`"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).
`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).
`* cited by examiner
`
`Case 6:20-cv-01071 Document 1-1 Filed 11/20/20 Page 3 of 16
`
`
`
`U.S. Patent
`
`Nov. 23, 2010
`
`Sheet 1 of 6
`
`US 7,840,652 B2
`
`
`
`EN|$)NE
`
`
`
`(WLWQ TWOOT)
`
`èJESTI
`
`SEON3}}}-|}}}d
`
`X??JONALEN
`
`LNE?I
`“TTELN?
`
`SONE
`
`Case 6:20-cv-01071 Document 1-1 Filed 11/20/20 Page 4 of 16
`
`
`
`Case 6:20-cv-01071 Document 1-1 Filed 11/20/20 Page 5 of 16
`Case 6:20-cv-01071 Document 1-1 Filed 11/20/20 Page 5 of 16
`
`U.S. Patent
`
`Nov. 23, 2010
`
`Sheet 2 of 6
`
`US 7,840,652 B2
`
` £3meHmmk
`
`
`
`mmcfimmx5362
`
`
`
`
`
`A99Jmo.E.£25.):83.cosomccoo
`
`
`
`8065502535333958.9E25908mm
`
`m.mE
`
`
`
`
`U.S. Patent
`
`Nov. 23, 2010
`
`Sheet 3 of 6
`
`US 7,840,652 B2
`
`USER SELECTS
`NETWORK
`CONFIGURATION
`PREFERENCES
`
`USERELECTS TO
`USE DEFAULT
`NETWORK
`CONFIGURATION
`PREFERENCES
`
`PERFORM TESTS
`TO DETERMINE
`OPTMAL
`NETWORK
`CONFIGURATION
`SETTINGS
`
`
`
`ADJUST NETWORK
`CONFIGURATION
`SETTINGS
`
`320
`
`OBTAN
`PERFORMANCE
`METRICS
`
`
`
`
`
`
`
`-
`
`WHAT
`MODE DID
`USER
`SELECT?
`
`SE
`
`Case 6:20-cv-01071 Document 1-1 Filed 11/20/20 Page 6 of 16
`
`ANALYZE
`
`- - - - - - - - - - - - - - - - -
`
`Sise
`PERFORMANCE
`INTERFACES :
`METRICS TO
`DETERMNE NEW
`Ete
`NETWORK
`VER
`CONFIGURATION
`SERVER
`SETTINGS
`X- --------- - - - - - - - - -------
`:
`
`DYNAMIC
`
`MODE
`
`
`
`-34o
`ADJUST NETWORK
`CONFIGURATION
`SETTINGS
`
`Fig. 3
`
`
`
`U.S. Patent
`
`Nov. 23, 2010
`
`Sheet 4 of 6
`
`US 7,840,652 B2
`
`y ‘814
`
`Case 6:20-cv-01071 Document 1-1 Filed 11/20/20 Page 7 of 16
`
`
`
`
`
`U.S. Patent
`
`Nov. 23, 2010
`
`Sheet 5 of 6
`
`US 7,840,652 B2
`
`ç (81)
`
`
`
`Case 6:20-cv-01071 Document 1-1 Filed 11/20/20 Page 8 of 16
`
`
`
`?un uo?ss!uusubu L uunuuqxeIN
`(n)LW)
`
`
`
`U.S. Patent
`
`Nov. 23, 2010
`
`Sheet 6 of 6
`
`US 7,840,652 B2
`
`
`
`
`
`plu Opu D?S :êpO W
`
`
`
`
`
`uê6 pupW peedS
`
`Case 6:20-cv-01071 Document 1-1 Filed 11/20/20 Page 9 of 16
`
`suo?do
`
`GO9
`
`
`
`US 7,840,652 B2
`
`1.
`SYSTEMAND METHOD FOR DETERMINING
`NETWORK CONFIGURATION SETTINGS
`THAT PROVIDE OPTIMIAL NETWORK
`PERFORMANCE
`
`CROSS-REFERENCE TO RELATED
`APPLICATION
`
`This application claims the benefit of U.S. Provisional
`Application No. 60/277.463, filed Mar. 21, 2001, entitled
`10
`SYSTEM AND METHOD FOR DETERMINING NET
`WORK CONFIGURATION SETTINGS THAT PROVIDE
`OPTIMAL NETWORK PERFORMANCE
`
`BACKGROUND OF THE INVENTION
`
`15
`
`2
`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.
`
`25
`
`35
`
`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 webRocket(R), available from Ascentive LLC;
`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
`30
`defined by the software program. The goal of changing the
`settings is to optimize the performance of the user's com
`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
`provide some improvement in performance, but does not
`provide the optimal settings for a particular user's computer
`during a particular Internet session.
`40
`Furthermore, the user may have specific performance pref
`erences. For example, one user may prefer enhanced down
`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.
`
`45
`
`50
`
`55
`
`Case 6:20-cv-01071 Document 1-1 Filed 11/20/20 Page 10 of 16
`
`BRIEF SUMMARY OF THE INVENTION
`
`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
`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
`
`60
`
`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
`understood, however, that the invention is not limited to the
`precise arrangements and instrumentalities shown. In the
`drawings:
`
`
`
`3
`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
`second), latency (measured in milliseconds of ping time), and
`stability (measured in the percentage of network data packets
`lost and/or retransmitted).
`
`Case 6:20-cv-01071 Document 1-1 Filed 11/20/20 Page 11 of 16
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 7,840,652 B2
`
`4
`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
`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
`
`
`
`6
`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
`together to achieve the weighted overall percentage score.
`The weighted overall percentage scores are returned to the
`calling algorithm.
`
`Case 6:20-cv-01071 Document 1-1 Filed 11/20/20 Page 12 of 16
`
`45
`
`55
`
`60
`
`65
`
`US 7,840,652 B2
`
`10
`
`15
`
`25
`
`30
`
`35
`
`5
`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
`40
`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
`110 on the remote server 105 in order to determine the opti
`mal 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
`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
`
`50
`
`
`
`7
`A Local Source version of an Active-Learning Algorithm
`of the local intelligent optimization engine is designed to
`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 5
`on the client machine. The network performance monitor
`performs these tests with a selected set of network configu
`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 10
`for a variety of network connection types at design time and
`hard-coded into the client software. The local intelligent opti
`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 15
`completed, the local intelligent optimization engine passes
`the results sets to the Scoring Formula. The Scoring Formula
`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- 20
`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 25
`highest (best) throughput receives a score of 100%, and the
`other results are scored relatively. The Scoring Bias is neutral,
`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 30
`overall percentage score, is the best group of network con
`figuration settings in this scenario. The Local Source version
`of the Active-Learning Algorithm or others may be used to
`further pinpoint an optimal group of network configuration
`Settings.
`In a Network Source version of the Active-Learning Algo
`rithm, the sets of network configuration settings are provided
`by the remote server at run time based on the network con
`nection type of the client machine. The remote server makes
`the selection based on the Active-Learning Support Algo- 40
`rithm in use at the time. Other than gathering the sets of
`network configuration settings from the remote server instead
`of the client software, the Network Source version of the
`Active-Learning Algorithm initially proceeds exactly as in
`the Local Source version of the Active-Learning Algorithm. 45
`After the testing round has been completed and the Scoring
`Formula is called to provide a weighted percentage score for
`each set of network configuration settings, the client machine
`provides the remote server with the result set. The remote
`server stores the percentage score results for various network 50
`configuration settings for one or more machines and may use
`the stored results to determine the set of network configura
`tion settings to provide