WO2001015394A1 - Bandwidth adaptive data transfer system and method - Google Patents

Bandwidth adaptive data transfer system and method Download PDF

Info

Publication number
WO2001015394A1
WO2001015394A1 PCT/US2000/023552 US0023552W WO0115394A1 WO 2001015394 A1 WO2001015394 A1 WO 2001015394A1 US 0023552 W US0023552 W US 0023552W WO 0115394 A1 WO0115394 A1 WO 0115394A1
Authority
WO
WIPO (PCT)
Prior art keywords
bandwidth
data
user
maximum
computer
Prior art date
Application number
PCT/US2000/023552
Other languages
French (fr)
Inventor
Zachary S. Levow
Dan B. Robinson
Michael Allan Griffith
Original Assignee
Spinway, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Spinway, Inc. filed Critical Spinway, Inc.
Priority to AU69422/00A priority Critical patent/AU6942200A/en
Publication of WO2001015394A1 publication Critical patent/WO2001015394A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Definitions

  • This invention relates generally to a system and method for performing a transfer of data from one computer to another computer over a computer network. More particularly, this invention relates to a system and method for adaptively downloading a file from a server computer to a client computer over a communications network.
  • the user may desire to view a Web page that contains one or more files that must be downloaded to the user's computer in order to view the Web page.
  • the files are downloaded at the maximum speed of the user's modem or other connection to the Internet Service Provider (ISP) and the computer network's speed is degraded during the download period so that the user must wait for the download to be completed before performing other actions.
  • ISP Internet Service Provider
  • This delay while the files are being downloaded may be annoying for the user.
  • This annoyance may be further increased when the user must wait for unrequested content or advertisements to be downloaded to the user's computer, such as those that might be downloaded by an ISP for which the user does not need to pay for services.
  • the delay and annoyance can become significant and cause the user to change to another ISP.
  • the ISP does not tend to download files or content to the user that have not been requested by that user.
  • many users like the concept of a free Internet connection but do not want the inconvenience of waiting for unwanted content or advertisements to be downloaded by the ISP to the user.
  • a user must typically choose between an ISP that charges some fee for the account with no unwanted content or advertisements or a free ISP that downloads content and advertisements in return for the free account.
  • a client application may download the data while the user is utilizing their work environment and the network. Any network data transfer by this type of application interferes with the performance of the user's network as well as other applications being executed on the client's computer. Moreover, it is currently impractical for these applications to download large amounts of continuous data without crippling the performance of the user's network (such as a dial-up Internet connection) and other network applications.
  • the bandwidth adaptive file transfer system and method in accordance with the invention overcomes the above problems and limitations of typical systems by eliminating computer network (such as a dialup modem Internet network) performance degradation caused by downloading content and advertisements that are unrequested and/or undesired by the user.
  • the system in accordance with the invention permits entities to offer free ISP accounts without the usual network degradation and delay caused by the unwanted content and advertisements.
  • FIG. 1 is a block diagram illustrating an example of a typical dial-up connection to an Internet Service Provider (ISP) that may include an adaptive file transfer system in accordance with the invention.
  • ISP Internet Service Provider
  • Figure 2 is a diagram that illustrates unused bandwidth during various user operations.
  • Figure 3 is a flow chart illustrating a method for adaptive file transfer in accordance with the invention.
  • Figure 4 is a diagram that illustrates an example of a bandwidth adaptive method in accordance with the invention.
  • FIG. 5 is a diagram showing further detail of an example of a bandwidth adaptive method in accordance with the invention.
  • Figure 6 is a diagram that illustrates another embodiment of a bandwidth adaptive method in accordance with the invention.
  • an adaptive data transfer system and method can be used with a typical dial-up connection to an ISP (e.g. via modem or ISDN) and it is in this context that the invention will be described. It will be appreciated, however, that the system and method in accordance with the invention has greater utility, such as to other types of connections with an ISP such as a cable modem, DSL, T-l, or the like, or to other computer network systems in which it is desirable to download data without degrading the computer network.
  • ISP e.g. via modem or ISDN
  • bandwidth refers to the speed at which the user can receive data.
  • bandwidth refers to the speed at which the user can receive data.
  • ISP the number of bits per second
  • actual connection speeds by the user to the ISP can vary, and may be dependent upon a number of factors, including, for example, the quality of the physical connection (including the quality of the wires over which the signals travel), the number of users connected to the ISP, and the amount of other processing occurring in the user's machine.
  • a common 56K modem a user might, for example, only be able to connect reliably at 42 kbps.
  • the user would have a maximum system bandwidth of 42 kbps.
  • a user may have a 56 kbps modem that can be used to connect to a local ISP at a maximum system bandwidth of only 42 kbps.
  • the user may experience a bandwidth of nearly 42 kbps since the ISP may have the data readily available.
  • the user decides, for example, to download information from a different continent, and if the information must be routed in a very indirect manner, the user may experience a reduced bandwidth, below the maximum system bandwidth example above of 42 kbps.
  • the user that has a 42 kbps maximum system bandwidth may, for example, experience a bandwidth of only 28 kbps (or less).
  • a user may experience information transfers at numerous different bandwidths, those bandwidths being the user bandwidths. During those periods where the user bandwidth is less than the maximum system bandwidth, unused bandwidth will exist.
  • a bandwidth adaptive data transfer system and method can utilize a user's typically unused bandwidth and idle modem time (including time when the modem is only partially busy) to perform activity for an application (besides the one in use by the user) in an efficient manner without degrading the performance of the computer network.
  • the unused bandwidth can become application bandwidth, to be used by another application.
  • an ISP application can utilize the application bandwidth to efficiently deliver a large, continuous amount of data (including, for example, content, advertisements, and files) during the time when the user is not using the entire bandwidth of the modem.
  • the user bandwidth can be viewed as being below a particular threshold value.
  • a large amount of data may be downloaded to the user during the time that a user is typically connected to the network. For example, more than one megabyte (1 Mb) of data may be downloaded to the user during ten minutes of a user's typical Internet session so that, for example, a full minute of full-motion digital video may be downloaded.
  • Mb megabyte
  • FIG. 1 is a diagram illustrating an example of a system for establishing a connection between one or more user computers 12 and an Internet Service Provider (ISP) server 14 via communications link 16.
  • the communications link 16 includes a dial-up circuit switch connector 22 in the public telephone system between the ISP and the user, a modem 18 connected to a user computer 24, and a modem 20 at the server 14.
  • ISP Internet Service Provider
  • a variety of other communications networks are well known in the art, such as a dial-up ISDN connection, a cable modem connection, a fiber optic connection, a wireless connection, and the like.
  • Each user computer 24 may include a display unit 26, that may be a cathode ray tube or a liquid crystal display, a processing unit 28, a modem 18 for communications with the ISP and one or more peripheral devices, such as a keyboard 30 and a mouse 32, that permit the user to interact with the computer.
  • the processing unit 28 may further include a central processing unit (CPU) 34, a memory 36 and a persistent storage device 38.
  • CPU central processing unit
  • a software application may be loaded from persistent storage device 38 into memory 36 so that the software application may be executed by CPU 34.
  • the memory 36 may be any semiconductor memory device, such as random access memory, and the persistent storage device 38 may be any device that permanently stores data when the power to the computer is turned off, such as a hard disk drive, a tape drive, an optical drive or the like.
  • an ISP software application 40 may be stored in the persistent storage device and loaded into the memory 36 so that it may be executed by the CPU 34.
  • the ISP software application 40 may perform various functions including initializing the modem 18, dialing the ISP's phone number, generating a user interface for the user once connected to the ISP and controlling the adaptive data transfer process in accordance with the invention.
  • the server 14 may include a modem 20, a central processing unit (CPU) 50 that controls the operations of the server, a memory 52 that can, for example, be a random access memory (RAM) and a persistent storage device 54 as described above.
  • the persistent storage device 54 may store one or more software applications that may be loaded into the memory 52 to be executed by the CPU 50.
  • the persistent storage device 54 may also store various data, such as content, advertisements and the like, that may be downloaded to the user over the dial-up connection once it is established.
  • the one or more software applications are shown already loaded into the memory and may include a data engine 58.
  • the data engine 58 may control which pieces of data are downloaded to which users' computers and retrieve the data to be downloaded from the persistent storage device 54.
  • server 14 can provide the connectivity for the user to communications network 45 which can, in an embodiment, be the Internet.
  • Figure 2 illustrates a chart 200 showing the unused bandwidth that may be available for use by another process during various user operations.
  • the maximum system bandwidth, MaxSysBW 210 denotes the maximum speed at which a user can download information.
  • the user may not actually reach the MaxSysBW 210 level during any or even all downloads from the ISP. During these periods where unused bandwidth may exist, the ISP could download additional information to the user.
  • the bandwidth shown as shaded area 220 could be used for downloading a file while the user's computer performs an initialization procedure (for example, executing a software package known as a "browser" that may be used for navigating around the Web) and a download of an initial Web page during user activity 232, followed by the reading of that Web page by the user during user activity 237.
  • this first file could be downloaded during interval 230 and part of interval 235.
  • the bandwidth available to the ISP would be greater than that during user activity 232 due to the reduction in the user bandwidth from interval 230 to interval 235.
  • a second file could be downloaded using the bandwidth shown as shaded area 225. This download could be completed during the remainder of interval 235 (while the user completes the reading of the Web page during user activity 237), and during interval 240 (while the user's computer completes a user-initiated download of a user-requested file during user activity 242), interval 245 (while the user reads further information from a Web page during user activity 247), and interval 250 (while the user downloads a newly requested Web page during user activity 252).
  • FIG 3 is a diagram illustrating a bandwidth adaptive file transfer method 300 in accordance with an embodiment of the invention.
  • the method can be implemented by an ISP software application (e.g., ISP application 40 shown in Figure 1) in a user's computer.
  • the adaptive downloading process can be implemented at the server (e.g., the server 14).
  • the method can also be implemented for each individual user computer so that each user computer may be downloading the data from the ISP server at a different adaptive rate.
  • step 302 a maximum bandwidth for application use
  • MaxAppBW is determined for each user computer, in order to determine how much of the total bandwidth currently available may be used for the downloading of data to the user computer. This maximum application bandwidth indicates the bandwidth above which the combined user bandwidth and application bandwidth cannot rise.
  • step 302 may include step 304 in which a maximum system bandwidth (MaxSysBW) for the user computer can be determined by measuring the total time for a file transfer of a fixed size from server to user. This measurement will reflect any network delays or other network issues that may affect the user's bandwidth. In this particular example, a transfer of a 20KB file can provide the information needed to determine MaxSysBW.
  • MaxAppBW can be determined in step 306 by multiplying the MaxSysBW by a maximum percentage of available bandwidth that the application may use. In one embodiment, a maximum percentage of available bandwidth may be imposed by an ISP when providing free Internet access.
  • This maximum percentage of available bandwidth can be arbitrarily determined by the ISP, and can be based upon a desired performance level for the ISP. This slightly reduced performance, along with a display of advertisements, can be viewed as the consideration from the user in exchange for a free Internet access account.
  • the application may be constrained to using a maximum of 80% of the total available bandwidth for a particular ISP, resulting in:
  • MaxAppBW MaxSysBW * 0.80
  • MaxSysBW is determined to be 40 kbps
  • MaxAppBW will be 32 kbps in the above example. This means that the application bandwidth, when added to the user bandwidth, cannot exceed 32kbps.
  • the amount by which MaxSysBW is reduced to produce MaxAppBW may be chosen arbitrarily, based on the particular needs of the system.
  • a current file to be downloaded to the user's computer can be requested from the server.
  • the current amount (CurrPos) of a current file remaining to be downloaded can be determined, or, as appropriate, the amount of a file that has not yet begun being downloaded.
  • the CurrPos is zero and can then increase as the transfer is completed during the user's communications session with the ISP.
  • using the bandwidth adaptive data transfer method can allow a 1 Mb file to be downloaded to a user in about eight minutes when using a 28.8 kbps modem.
  • downloading data during an ISP session need not be limited to a single file. For example, one file can be downloaded until complete and then the download of another file can begin.
  • the amount of data for the next file block transfer can be determined by calculating the difference between MaxAppBW (i.e. the maximum allowed bandwidth for the application) and the amount of bandwidth needed by the user. This determination of NextDLSize will result in the amount of data that will be transferred from the application to the user during the next sample.
  • a sample is a preset amount of time that elapses between each update of NextDLSize and that can be established by the ISP. For example, an ISP may decide to set the sample period to one second, which would result in NextDLSize being updated every second.
  • the calculation of the amount of bandwidth needed by the user can vary based on the particular environment. For example, the amount of bandwidth needed by the user can be determined instantaneously from the immediately preceding measurement of the user's bandwidth, or it can be averaged over a certain period of time.
  • an average bandwidth required by the user (AvgUserBW) over a predetermined period of time can be determined from a user bandwidth history.
  • n can be chosen to be three so that AvgUserBW would be determined from the previous three samples stored in the user bandwidth history.
  • the user bandwidth history may be stored in the persistent storage device of the users computer. The method may thus adaptively change the bandwidth during each sample based upon an average user bandwidth value.
  • NextDLSize may be determined in step 316 by subtracting AvgUserBW from MaxAppBW, and determining the appropriate size of the data block for the next sample. For example, if MaxAppBW is determined to be 20 kbps and AvgUserBW is determined to be 10 kbps, a one second time sample time (1 sec) would result in a NextDLSize determination of 10 kbit (10 kbps x 1 sec) for the next interval.
  • NextDLSize a block of data of size NextDLSize from the current piece of data being downloaded (CurrFile) at the current download position (CurrPos) can be requested from the server in step 318 and can be downloaded to the user's computer.
  • the instantaneous amount of bandwidth that the user required during the prior block download may be determined in step 320 so that the bandwidth for future blocks of data may be adaptively changed to maximize the speed of the block download without adversely affecting performance.
  • the instantaneous amount of system bandwidth consumed during the last block transfer can be determined in step 322 and the amount of bandwidth that the application used for the last downloaded block (AppBW) can be determined in step 324.
  • UserBW can be calculated by subtracting AppBW from SysBW.
  • the UserBW value can be added into the bandwidth history file on the user's computer so that it may be factored into the AvgUserBW calculation (e.g., step 314).
  • the method may adaptively adjust the download bandwidth of data based on prior download bandwidths. If appropriate, the process repeats based on the determination in step 330 of whether more data is to be downloaded. Thus, as much bandwidth as possible can be used to download data as fast as possible without adversely affecting the performance of the modem. If the modem is not being used, the download bandwidth can be increased, but when the modem is at or approaching full bandwidth capacity, the download bandwidth can be reduced.
  • the data from the ISP is slowly downloaded over time using the available unused bandwidth so that the user does not experience the delay normally associated with the file transfer of the unwanted data.
  • Figure 4 containing chart 400, illustrates an example of the bandwidth adaptive data transfer method in accordance with the invention. This example depicts how an ISP could use unused bandwidth (as previously discussed with respect to Figure 2) to download other information to the user.
  • the X-axis in Figure 4 represents the time of a user's session while connected to the ISP and the Y- axis represents the bandwidth.
  • a maximum system bandwidth (MaxSysBW) 410 is denoted near the top of the chart and, below that, a maximum application bandwidth (MaxAppBW) 420 is denoted.
  • the initialization of the session and downloading of the initial web page during interval 430 may use a large portion of the available bandwidth so that the bandwidth for downloading the ISP data, denoted by the shaded portion of interval 430, is reduced.
  • the reduced user bandwidth can result in the bandwidth for the ISP data being increased adaptively so that the ISP data can be downloaded to the users computer as rapidly as possible without adversely affecting the user's bandwidth requirements.
  • Figure 4 also shows the results of additional user activity on the adaptive download process. During a download initiated by the user that occurs during interval 450, user bandwidth increases, then decreases again during interval 460 while the user reads a web page.
  • the user bandwidth increases again during interval 470, as a result of the user possibly requesting a new web page.
  • the effects of the adaptive change in bandwidth available for an application can be seen during samples 422 through 426, samples 432 through 436, and interval 460.
  • the bandwidth used by the application has been maximized, as will be discussed in further detail with respect to Figure 5.
  • Figure 5 provides further detail on the adaptive nature of the method according to the present invention.
  • the user's relative inactivity while reading a web page that had previously been downloaded has resulted in the user bandwidth being reduced from the level shown as UserBW 466 down to UserBW 472.
  • the application bandwidth for that sample is at the level shown as AppBW 482, which is based on the previous user bandwidth level, including UserBW 466 during interval 428.
  • the reduction in the user bandwidth to the level UserBW 472 can permit a significant increase in the amount of bandwidth that could be used by the application (e.g. ISP application 40 in Figure 1).
  • the level of this available bandwidth is shown as AvailableBW 483.
  • the calculation of the user bandwidth UserBW in step 320 can be illustrated by the quantities shown for sample 432.
  • the total amount of bandwidth utilized during the transfer in sample 432 can be determined to be at the level shown as SysBW 471. This corresponds to the determination in step 322 of the system bandwidth.
  • the amount of bandwidth used by the application can be determined to be at the level shown as AppBW 482. Consequently, the amount of user bandwidth consumed during sample 432 can be calculated according to step 326 by subtracting AppBW 482 from SysBW 471.
  • the updated value for the amount of bandwidth available for the application (which leads to the calculation of the size of the block of data to request in step 318) will not immediately result in the system bandwidth reaching the level of MaxAppBW 420.
  • the calculations based on the bandwidth measurements for sample 432 in Figure 5 can result in a new application bandwidth value shown as AppBW 484 for sample 434, which can be calculated from UserBW 474 and SysBW 471 (resulting in a reduction in the bandwidth available for the application to AvailableBW 485).
  • the calculation of AppBW 484 and subsequent transfer of data from the server can then be followed by updated (i.e. averaged) application bandwidth values in samples 436 and 437, leading up to the maximized level of application bandwidth during interval 438.
  • interval 450 illustrates a change in user activity that can cause the system bandwidth to suddenly increase.
  • the application bandwidth for the next sample is immediately reduced to prevent the maximum application bandwidth from being exceeded.
  • the increase in the user bandwidth during sample 442 to the level indicated by UserBW 452, combined with application bandwidth level AppBW 494, can result in system bandwidth SysBW 453 exceeding the maximum application bandwidth MaxAppBW 420.
  • the level of AppBW 496 can be reduced such that SysBW 455 will not exceed MaxAppBW 420.
  • Figure 6 containing chart 600 illustrates yet another embodiment of the bandwidth adaptive file transfer method in accordance with the invention.
  • the X-axis represents the time of a user's session while connected to the ISP and the Y- axis represents the bandwidth.
  • a maximum system bandwidth (MaxSysBW) 610 is denoted near the top of the chart and, below that, a maximum application bandwidth (MaxAppBW 620) is denoted.
  • MaxSysBW 610 is denoted near the top of the chart and, below that, a maximum application bandwidth (MaxAppBW 620) is denoted.
  • MaxAppBW 620 maximum application bandwidth
  • dynamic measurements of MaxSysBW 610 can be made instead of maintaining the maximum system bandwidth at a constant level. Consequently, MaxAppBW 620 can change dynamically, providing even further efficiency in the file download process to the user.
  • the maximum system bandwidth available to a user can change to a new level. This could occur, for example, when a user of a shared resource gains or loses additional bandwidth as a result of another user stopping or starting its use of the shared resource. For example, at transition point 603, MaxSysBW 610 can increase to a new level. A change in the maximum system bandwidth, MaxSysBW 610, can result in a change in the maximum amount of bandwidth available to the application (MaxAppBW 620) at transition point 605. As a result of the increase in MaxAppBW, additional bandwidth can be made available for use by the application for downloading of files.
  • the shaded samples indicate the bandwidth usage by the application.
  • the increase in MaxAppBW 620 at transition point 605 can result in the increase in the bandwidth usage by the application, as evidenced by the increase in the shaded area from sample 627 to sample 629.
  • the decreases in MaxSysBW 610 at transition point 607 and transition point 611 can result in corresponding decreases in the bandwidth utilized by the application.
  • the decrease in MaxSysBW 610 at transition point 607 can result in the decrease in application bandwidth indicated by the change in the shaded area between sample 637 and sample 639.
  • the decrease in MaxSysBW 610 at transition point 61 1 does not result in change in application bandwidth, since the user bandwidth changed between interval 650 and 660.
  • a change in the application bandwidth does not occur until the user bandwidth remains at a relatively constant level for three samples. Once this occurs, the application bandwidth can then change to a new level, as indicated by the change in the shaded area between sample 662 and sample 664.
  • the embodiment shown in Figure 6 thus illustrates an alternative approach to the adaptive process. Instead of averaging the values of the user bandwidth, as disclosed regarding the previous embodiment, the embodiment shown in Figure 6 provides a simple delay mechanism. Using this approach, a change in the user bandwidth level will not result in a change to the application bandwidth for the very next sample. Instead, a change to a different user bandwidth level must continue for a certain number of samples prior to a change to the application bandwidth.
  • the application bandwidth does not change immediately.
  • the user bandwidth must remain at a certain level for three samples prior to a change in the application bandwidth level.
  • the change in user bandwidth in sample 632 does not result in any changes until the increase in the application bandwidth at sample 638.
  • no averaging is used in this approach, so the combined user and application bandwidth can immediately increase to the MaxAppBW 620 level.
  • a similar transition can be seen during interval 660.
  • an increase in the user bandwidth that results in the total system bandwidth exceeding the MaxAppBW 620 level can immediately result in a decrease in the application bandwidth to a new level at which MaxAppBW may not be exceeded. This is shown in Figure 6 in the transition from sample 642 to sample 644, and the transition during the first two samples of interval 670.

Abstract

A bandwidth adaptive data transfer system and method are disclosed wherein unrequested data may be efficiently downloaded to a computing device of a user in a data communications network there is unused user bandwidth.

Description

BANDWIDTH ADAPTIVE DATA TRANSFER SYSTEM AND METHOD
BACKGROUND Field of the Invention
This invention relates generally to a system and method for performing a transfer of data from one computer to another computer over a computer network. More particularly, this invention relates to a system and method for adaptively downloading a file from a server computer to a client computer over a communications network.
Description of the Related Art
When a user is browsing the Internet or the World Wide Web (the Web), the user may desire to view a Web page that contains one or more files that must be downloaded to the user's computer in order to view the Web page. In typical systems, the files are downloaded at the maximum speed of the user's modem or other connection to the Internet Service Provider (ISP) and the computer network's speed is degraded during the download period so that the user must wait for the download to be completed before performing other actions. This delay while the files are being downloaded may be annoying for the user. This annoyance may be further increased when the user must wait for unrequested content or advertisements to be downloaded to the user's computer, such as those that might be downloaded by an ISP for which the user does not need to pay for services. At some point, the delay and annoyance can become significant and cause the user to change to another ISP. In contrast, if the user pays for the ISP account, then the ISP does not tend to download files or content to the user that have not been requested by that user. However, many users like the concept of a free Internet connection, but do not want the inconvenience of waiting for unwanted content or advertisements to be downloaded by the ISP to the user. Thus, a user must typically choose between an ISP that charges some fee for the account with no unwanted content or advertisements or a free ISP that downloads content and advertisements in return for the free account.
In a typical free ISP account, a client application may download the data while the user is utilizing their work environment and the network. Any network data transfer by this type of application interferes with the performance of the user's network as well as other applications being executed on the client's computer. Moreover, it is currently impractical for these applications to download large amounts of continuous data without crippling the performance of the user's network (such as a dial-up Internet connection) and other network applications.
Therefore, it is desirable to provide a system that permits a user to take advantage of a free ISP account without the typical network degradation caused by the downloading of content or advertisements. Thus, it is desirable to provide a bandwidth adaptive file transfer system and method that overcomes the above limitations and problems with typical file transfer systems and methods and it is to this end that the present invention is directed.
SUMMARY OF THE INVENTION
The bandwidth adaptive file transfer system and method in accordance with the invention overcomes the above problems and limitations of typical systems by eliminating computer network (such as a dialup modem Internet network) performance degradation caused by downloading content and advertisements that are unrequested and/or undesired by the user. The system in accordance with the invention permits entities to offer free ISP accounts without the usual network degradation and delay caused by the unwanted content and advertisements.
BRIEF DESCRIPTION OF THE BRA WINGS Figure 1 is a block diagram illustrating an example of a typical dial-up connection to an Internet Service Provider (ISP) that may include an adaptive file transfer system in accordance with the invention.
Figure 2 is a diagram that illustrates unused bandwidth during various user operations. Figure 3 is a flow chart illustrating a method for adaptive file transfer in accordance with the invention.
Figure 4 is a diagram that illustrates an example of a bandwidth adaptive method in accordance with the invention.
Figure 5 is a diagram showing further detail of an example of a bandwidth adaptive method in accordance with the invention.
Figure 6 is a diagram that illustrates another embodiment of a bandwidth adaptive method in accordance with the invention.
DETAILED DESCRIPTION In one embodiment of the invention, an adaptive data transfer system and method can be used with a typical dial-up connection to an ISP (e.g. via modem or ISDN) and it is in this context that the invention will be described. It will be appreciated, however, that the system and method in accordance with the invention has greater utility, such as to other types of connections with an ISP such as a cable modem, DSL, T-l, or the like, or to other computer network systems in which it is desirable to download data without degrading the computer network.
In general, a user will have a particular amount of bandwidth available, where bandwidth refers to the speed at which the user can receive data. For example, while using a computer with a common 56K modem, a user can theoretically reach connection speeds with an ISP of about 56 thousand bits per second (kbps). However, actual connection speeds by the user to the ISP can vary, and may be dependent upon a number of factors, including, for example, the quality of the physical connection (including the quality of the wires over which the signals travel), the number of users connected to the ISP, and the amount of other processing occurring in the user's machine. Thus, while using a common 56K modem, a user might, for example, only be able to connect reliably at 42 kbps. Thus, in this example, the user would have a maximum system bandwidth of 42 kbps.
However, there can be times when the user's modem actually transfers data at a rate below the maximum system bandwidth. For example, a user who downloads an initial web page from the user's local ISP will transfer the data at a rate very close to or actually at the maximum system bandwidth (since it is assumed that the ISP has the data immediately available to download to the user). In contrast, if the same user is downloading one or more files from a location that is remote from the ISP, many factors could result in a transfer speed that may be less than the maximum system bandwidth. Such factors can include, for example, geographic proximity, inferior performance of the system that is the source of the specified files, the number of routers through which the message must travel (and any inherent delays in those routers), along with other physical and protocol latencies.
Referring to the modem example discussed above, a user may have a 56 kbps modem that can be used to connect to a local ISP at a maximum system bandwidth of only 42 kbps. When downloading information from that local ISP, the user may experience a bandwidth of nearly 42 kbps since the ISP may have the data readily available. However, if the user decides, for example, to download information from a different continent, and if the information must be routed in a very indirect manner, the user may experience a reduced bandwidth, below the maximum system bandwidth example above of 42 kbps. The user that has a 42 kbps maximum system bandwidth may, for example, experience a bandwidth of only 28 kbps (or less). Thus, during any particular on-line session, a user may experience information transfers at numerous different bandwidths, those bandwidths being the user bandwidths. During those periods where the user bandwidth is less than the maximum system bandwidth, unused bandwidth will exist.
In an embodiment of the invention, a bandwidth adaptive data transfer system and method can utilize a user's typically unused bandwidth and idle modem time (including time when the modem is only partially busy) to perform activity for an application (besides the one in use by the user) in an efficient manner without degrading the performance of the computer network. Thus, the unused bandwidth can become application bandwidth, to be used by another application.
In one embodiment, an ISP application can utilize the application bandwidth to efficiently deliver a large, continuous amount of data (including, for example, content, advertisements, and files) during the time when the user is not using the entire bandwidth of the modem. During this downtime, the user bandwidth can be viewed as being below a particular threshold value. By effectuating this type of background data transfer, the user's network and user's application performance is nearly uninterrupted by the file transfer. By employing this inventive technique, a large amount of data may be downloaded to the user during the time that a user is typically connected to the network. For example, more than one megabyte (1 Mb) of data may be downloaded to the user during ten minutes of a user's typical Internet session so that, for example, a full minute of full-motion digital video may be downloaded. Using existing file transfer techniques, the user would have lost nearly all access to their network/modem for five full minutes to retrieve the same amount of data. The invention therefore solves this prior art limitation with file transfers as will now be described.
Figure 1 is a diagram illustrating an example of a system for establishing a connection between one or more user computers 12 and an Internet Service Provider (ISP) server 14 via communications link 16. The communications link 16 includes a dial-up circuit switch connector 22 in the public telephone system between the ISP and the user, a modem 18 connected to a user computer 24, and a modem 20 at the server 14. A variety of other communications networks are well known in the art, such as a dial-up ISDN connection, a cable modem connection, a fiber optic connection, a wireless connection, and the like.
Each user computer 24 (only one is described here although each user computer may have similar components and features) may include a display unit 26, that may be a cathode ray tube or a liquid crystal display, a processing unit 28, a modem 18 for communications with the ISP and one or more peripheral devices, such as a keyboard 30 and a mouse 32, that permit the user to interact with the computer. The processing unit 28 may further include a central processing unit (CPU) 34, a memory 36 and a persistent storage device 38. Typically, a software application may be loaded from persistent storage device 38 into memory 36 so that the software application may be executed by CPU 34. The memory 36 may be any semiconductor memory device, such as random access memory, and the persistent storage device 38 may be any device that permanently stores data when the power to the computer is turned off, such as a hard disk drive, a tape drive, an optical drive or the like. In order to communicate with and connect to the ISP 14, an ISP software application 40 may be stored in the persistent storage device and loaded into the memory 36 so that it may be executed by the CPU 34. The ISP software application 40 may perform various functions including initializing the modem 18, dialing the ISP's phone number, generating a user interface for the user once connected to the ISP and controlling the adaptive data transfer process in accordance with the invention.
The server 14 may include a modem 20, a central processing unit (CPU) 50 that controls the operations of the server, a memory 52 that can, for example, be a random access memory (RAM) and a persistent storage device 54 as described above. As above, the persistent storage device 54 may store one or more software applications that may be loaded into the memory 52 to be executed by the CPU 50. The persistent storage device 54 may also store various data, such as content, advertisements and the like, that may be downloaded to the user over the dial-up connection once it is established.
In this example, the one or more software applications are shown already loaded into the memory and may include a data engine 58. The data engine 58 may control which pieces of data are downloaded to which users' computers and retrieve the data to be downloaded from the persistent storage device 54. Also in this example, server 14 can provide the connectivity for the user to communications network 45 which can, in an embodiment, be the Internet.
Figure 2 illustrates a chart 200 showing the unused bandwidth that may be available for use by another process during various user operations. The maximum system bandwidth, MaxSysBW 210, denotes the maximum speed at which a user can download information. However, as discussed above and as shown in Figure 2, the user may not actually reach the MaxSysBW 210 level during any or even all downloads from the ISP. During these periods where unused bandwidth may exist, the ISP could download additional information to the user.
For example, the bandwidth shown as shaded area 220 could be used for downloading a file while the user's computer performs an initialization procedure (for example, executing a software package known as a "browser" that may be used for navigating around the Web) and a download of an initial Web page during user activity 232, followed by the reading of that Web page by the user during user activity 237. As shown, this first file could be downloaded during interval 230 and part of interval 235. During user activity 237, the bandwidth available to the ISP would be greater than that during user activity 232 due to the reduction in the user bandwidth from interval 230 to interval 235.
Once the download of the first file has completed, a second file could be downloaded using the bandwidth shown as shaded area 225. This download could be completed during the remainder of interval 235 (while the user completes the reading of the Web page during user activity 237), and during interval 240 (while the user's computer completes a user-initiated download of a user-requested file during user activity 242), interval 245 (while the user reads further information from a Web page during user activity 247), and interval 250 (while the user downloads a newly requested Web page during user activity 252).
Figure 3 is a diagram illustrating a bandwidth adaptive file transfer method 300 in accordance with an embodiment of the invention. As described above, in one embodiment the method can be implemented by an ISP software application (e.g., ISP application 40 shown in Figure 1) in a user's computer. In another embodiment according to the present invention, the adaptive downloading process can be implemented at the server (e.g., the server 14). The method can also be implemented for each individual user computer so that each user computer may be downloading the data from the ISP server at a different adaptive rate.
Referring to Figure 3, in step 302, a maximum bandwidth for application use
(MaxAppBW) is determined for each user computer, in order to determine how much of the total bandwidth currently available may be used for the downloading of data to the user computer. This maximum application bandwidth indicates the bandwidth above which the combined user bandwidth and application bandwidth cannot rise.
In more detail, step 302 may include step 304 in which a maximum system bandwidth (MaxSysBW) for the user computer can be determined by measuring the total time for a file transfer of a fixed size from server to user. This measurement will reflect any network delays or other network issues that may affect the user's bandwidth. In this particular example, a transfer of a 20KB file can provide the information needed to determine MaxSysBW. Once MaxSysBW is determined in step 304, MaxAppBW can be determined in step 306 by multiplying the MaxSysBW by a maximum percentage of available bandwidth that the application may use. In one embodiment, a maximum percentage of available bandwidth may be imposed by an ISP when providing free Internet access. This maximum percentage of available bandwidth can be arbitrarily determined by the ISP, and can be based upon a desired performance level for the ISP. This slightly reduced performance, along with a display of advertisements, can be viewed as the consideration from the user in exchange for a free Internet access account.
In one embodiment, the application may be constrained to using a maximum of 80% of the total available bandwidth for a particular ISP, resulting in:
MaxAppBW = MaxSysBW * 0.80
Thus, if MaxSysBW is determined to be 40 kbps, MaxAppBW will be 32 kbps in the above example. This means that the application bandwidth, when added to the user bandwidth, cannot exceed 32kbps. In general, the amount by which MaxSysBW is reduced to produce MaxAppBW may be chosen arbitrarily, based on the particular needs of the system.
In step 308, a current file to be downloaded to the user's computer (CurrFile) can be requested from the server. Next, in step 310, the current amount (CurrPos) of a current file remaining to be downloaded can be determined, or, as appropriate, the amount of a file that has not yet begun being downloaded. For a new download file, the CurrPos is zero and can then increase as the transfer is completed during the user's communications session with the ISP. In one embodiment, using the bandwidth adaptive data transfer method can allow a 1 Mb file to be downloaded to a user in about eight minutes when using a 28.8 kbps modem. Further, downloading data during an ISP session need not be limited to a single file. For example, one file can be downloaded until complete and then the download of another file can begin.
In step 312, the amount of data for the next file block transfer (NextDLSize) can be determined by calculating the difference between MaxAppBW (i.e. the maximum allowed bandwidth for the application) and the amount of bandwidth needed by the user. This determination of NextDLSize will result in the amount of data that will be transferred from the application to the user during the next sample. In this context, a sample is a preset amount of time that elapses between each update of NextDLSize and that can be established by the ISP. For example, an ISP may decide to set the sample period to one second, which would result in NextDLSize being updated every second.
The calculation of the amount of bandwidth needed by the user can vary based on the particular environment. For example, the amount of bandwidth needed by the user can be determined instantaneously from the immediately preceding measurement of the user's bandwidth, or it can be averaged over a certain period of time. In particular, in step 314, an average bandwidth required by the user (AvgUserBW) over a predetermined period of time (such as the last n samples) can be determined from a user bandwidth history. In one embodiment, n can be chosen to be three so that AvgUserBW would be determined from the previous three samples stored in the user bandwidth history. The user bandwidth history may be stored in the persistent storage device of the users computer. The method may thus adaptively change the bandwidth during each sample based upon an average user bandwidth value.
In one embodiment, once the AvgUserBW is determined, NextDLSize may be determined in step 316 by subtracting AvgUserBW from MaxAppBW, and determining the appropriate size of the data block for the next sample. For example, if MaxAppBW is determined to be 20 kbps and AvgUserBW is determined to be 10 kbps, a one second time sample time (1 sec) would result in a NextDLSize determination of 10 kbit (10 kbps x 1 sec) for the next interval. Once NextDLSize is determined, a block of data of size NextDLSize from the current piece of data being downloaded (CurrFile) at the current download position (CurrPos) can be requested from the server in step 318 and can be downloaded to the user's computer.
After the block of data of size NextDLSize has been downloaded to the user's computer in step 319, the instantaneous amount of bandwidth that the user required during the prior block download (UserBW) may be determined in step 320 so that the bandwidth for future blocks of data may be adaptively changed to maximize the speed of the block download without adversely affecting performance. To determine
UserBW, the instantaneous amount of system bandwidth consumed during the last block transfer (SysBW) can be determined in step 322 and the amount of bandwidth that the application used for the last downloaded block (AppBW) can be determined in step 324.
In step 326, UserBW can be calculated by subtracting AppBW from SysBW. In step 328, the UserBW value can be added into the bandwidth history file on the user's computer so that it may be factored into the AvgUserBW calculation (e.g., step 314). In this manner, the method may adaptively adjust the download bandwidth of data based on prior download bandwidths. If appropriate, the process repeats based on the determination in step 330 of whether more data is to be downloaded. Thus, as much bandwidth as possible can be used to download data as fast as possible without adversely affecting the performance of the modem. If the modem is not being used, the download bandwidth can be increased, but when the modem is at or approaching full bandwidth capacity, the download bandwidth can be reduced. In accordance with the invention, the data from the ISP is slowly downloaded over time using the available unused bandwidth so that the user does not experience the delay normally associated with the file transfer of the unwanted data.
Figure 4, containing chart 400, illustrates an example of the bandwidth adaptive data transfer method in accordance with the invention. This example depicts how an ISP could use unused bandwidth (as previously discussed with respect to Figure 2) to download other information to the user. As in Figure 2, the X-axis in Figure 4 represents the time of a user's session while connected to the ISP and the Y- axis represents the bandwidth. A maximum system bandwidth (MaxSysBW) 410 is denoted near the top of the chart and, below that, a maximum application bandwidth (MaxAppBW) 420 is denoted.
As shown, the initialization of the session and downloading of the initial web page during interval 430 (made up of samples 422 through 426 and the samples in interval 428) may use a large portion of the available bandwidth so that the bandwidth for downloading the ISP data, denoted by the shaded portion of interval 430, is reduced. However, as the user is reading the Web page during interval 440, the reduced user bandwidth can result in the bandwidth for the ISP data being increased adaptively so that the ISP data can be downloaded to the users computer as rapidly as possible without adversely affecting the user's bandwidth requirements. Figure 4 also shows the results of additional user activity on the adaptive download process. During a download initiated by the user that occurs during interval 450, user bandwidth increases, then decreases again during interval 460 while the user reads a web page. The user bandwidth increases again during interval 470, as a result of the user possibly requesting a new web page. As a result of these changes in user activity, the effects of the adaptive change in bandwidth available for an application can be seen during samples 422 through 426, samples 432 through 436, and interval 460. During each of these periods, the bandwidth used by the application has been maximized, as will be discussed in further detail with respect to Figure 5.
Figure 5 provides further detail on the adaptive nature of the method according to the present invention. During interval 440, the user's relative inactivity while reading a web page that had previously been downloaded (for example, during interval 428) has resulted in the user bandwidth being reduced from the level shown as UserBW 466 down to UserBW 472. For sample 432, the application bandwidth for that sample is at the level shown as AppBW 482, which is based on the previous user bandwidth level, including UserBW 466 during interval 428. The reduction in the user bandwidth to the level UserBW 472 can permit a significant increase in the amount of bandwidth that could be used by the application (e.g. ISP application 40 in Figure 1). For sample 432, the level of this available bandwidth is shown as AvailableBW 483. Referring back to Figure 3, the calculation of the user bandwidth UserBW in step 320 can be illustrated by the quantities shown for sample 432. In particular, the total amount of bandwidth utilized during the transfer in sample 432 can be determined to be at the level shown as SysBW 471. This corresponds to the determination in step 322 of the system bandwidth. Next, the amount of bandwidth used by the application can be determined to be at the level shown as AppBW 482. Consequently, the amount of user bandwidth consumed during sample 432 can be calculated according to step 326 by subtracting AppBW 482 from SysBW 471.
As a result of the averaging process in this embodiment in step 314 in Figure 3, the updated value for the amount of bandwidth available for the application (which leads to the calculation of the size of the block of data to request in step 318) will not immediately result in the system bandwidth reaching the level of MaxAppBW 420. Instead, the calculations based on the bandwidth measurements for sample 432 in Figure 5 can result in a new application bandwidth value shown as AppBW 484 for sample 434, which can be calculated from UserBW 474 and SysBW 471 (resulting in a reduction in the bandwidth available for the application to AvailableBW 485). The calculation of AppBW 484 and subsequent transfer of data from the server can then be followed by updated (i.e. averaged) application bandwidth values in samples 436 and 437, leading up to the maximized level of application bandwidth during interval 438.
In contrast to interval 440, interval 450 illustrates a change in user activity that can cause the system bandwidth to suddenly increase. According to an embodiment of the invention, whenever the total system bandwidth for a sample (i.e. the sum of the user bandwidth and the application bandwidth) exceeds the maximum application bandwidth level, the application bandwidth for the next sample is immediately reduced to prevent the maximum application bandwidth from being exceeded. The increase in the user bandwidth during sample 442 to the level indicated by UserBW 452, combined with application bandwidth level AppBW 494, can result in system bandwidth SysBW 453 exceeding the maximum application bandwidth MaxAppBW 420. Accordingly, for sample 444, the level of AppBW 496 can be reduced such that SysBW 455 will not exceed MaxAppBW 420.
Figure 6 containing chart 600 illustrates yet another embodiment of the bandwidth adaptive file transfer method in accordance with the invention. Again, the X-axis represents the time of a user's session while connected to the ISP and the Y- axis represents the bandwidth. A maximum system bandwidth (MaxSysBW) 610 is denoted near the top of the chart and, below that, a maximum application bandwidth (MaxAppBW 620) is denoted. In this embodiment, dynamic measurements of MaxSysBW 610 can be made instead of maintaining the maximum system bandwidth at a constant level. Consequently, MaxAppBW 620 can change dynamically, providing even further efficiency in the file download process to the user.
As shown in Figure 6, the maximum system bandwidth available to a user (MaxSysBW 610) can change to a new level. This could occur, for example, when a user of a shared resource gains or loses additional bandwidth as a result of another user stopping or starting its use of the shared resource. For example, at transition point 603, MaxSysBW 610 can increase to a new level. A change in the maximum system bandwidth, MaxSysBW 610, can result in a change in the maximum amount of bandwidth available to the application (MaxAppBW 620) at transition point 605. As a result of the increase in MaxAppBW, additional bandwidth can be made available for use by the application for downloading of files.
In Figure 6, the shaded samples indicate the bandwidth usage by the application. The increase in MaxAppBW 620 at transition point 605 can result in the increase in the bandwidth usage by the application, as evidenced by the increase in the shaded area from sample 627 to sample 629. Similarly, the decreases in MaxSysBW 610 at transition point 607 and transition point 611 can result in corresponding decreases in the bandwidth utilized by the application. The decrease in MaxSysBW 610 at transition point 607 can result in the decrease in application bandwidth indicated by the change in the shaded area between sample 637 and sample 639. However, the decrease in MaxSysBW 610 at transition point 61 1 does not result in change in application bandwidth, since the user bandwidth changed between interval 650 and 660.
In this embodiment, a change in the application bandwidth does not occur until the user bandwidth remains at a relatively constant level for three samples. Once this occurs, the application bandwidth can then change to a new level, as indicated by the change in the shaded area between sample 662 and sample 664. The embodiment shown in Figure 6 thus illustrates an alternative approach to the adaptive process. Instead of averaging the values of the user bandwidth, as disclosed regarding the previous embodiment, the embodiment shown in Figure 6 provides a simple delay mechanism. Using this approach, a change in the user bandwidth level will not result in a change to the application bandwidth for the very next sample. Instead, a change to a different user bandwidth level must continue for a certain number of samples prior to a change to the application bandwidth.
For example, upon the change in the user bandwidth that occurs starting at sample 632, the application bandwidth does not change immediately. In this embodiment, the user bandwidth must remain at a certain level for three samples prior to a change in the application bandwidth level. Thus, the change in user bandwidth in sample 632 does not result in any changes until the increase in the application bandwidth at sample 638. Also, no averaging is used in this approach, so the combined user and application bandwidth can immediately increase to the MaxAppBW 620 level. A similar transition can be seen during interval 660. However, as in the previously described embodiment, an increase in the user bandwidth that results in the total system bandwidth exceeding the MaxAppBW 620 level can immediately result in a decrease in the application bandwidth to a new level at which MaxAppBW may not be exceeded. This is shown in Figure 6 in the transition from sample 642 to sample 644, and the transition during the first two samples of interval 670.
While the invention has been described in detail, including references to specific embodiments, it will be apparent to one skilled in the art that changes and modifications can be made to the invention without departing from the spirit and scope thereof. For example, although embodiments of the invention involving processing at the user's computer have been described in detail, in other embodiments, all aspects of the invention could be carried out by the server. Furthermore, although particular embodiments have been described in terms of computer programs, the invention could easily be applied to systems utilizing hardware that performs similar functions, such as application specific integrated circuits (ASICs). Thus, it is intended that the present invention cover the modifications and variations of this invention provided they come within the scope of the appended claims and their equivalents.

Claims

What is claimed is:
1. A method for adaptively transferring data to a user in a communications network, the method comprising the steps of:
(a) determining a maximum system bandwidth for said user; (b) determining a maximum application bandwidth for use by an application based upon said maximum system bandwidth;
(c) determining a user bandwidth value;
(d) specifying said data to be transferred to said user;
(e) determining the amount of data to be sent to said user based upon said user bandwidth value ;
(f) sending said amount of data to said user; and
(g) repeating steps (c) to (f) until the transfer of said data has been completed.
2. A method as in claim 1 wherein said step of determining a maximum system bandwidth includes determining an actual transfer data rate from transferring a file of predetermined size.
3. A method as in claim 1 wherein said step of determining a maximum application bandwidth further includes reducing said maximum system bandwidth by a predetermined percentage.
4. A method as in claim 1 wherein said step of determining a size of a portion of said data further includes: determining an average user bandwidth value based upon a user bandwidth history; determining a bandwidth difference between the maximum application bandwidth and the average user bandwidth value; and converting said bandwidth difference into a block size for the next sample.
5. A method as in claim 1 wherein said data is an ISP file.
6. A method as in claim 5 wherein said ISP file includes an advertisement.
7. A method as in claim 5 wherein said ISP file includes a sound file.
8. A method as in claim 5 wherein said ISP file includes a video file.
9. A method for minimizing performance degradation in a first computer of a user of a communications network, the method comprising: determining a maximum system bandwidth for said user; selecting a maximum application bandwidth for transferring first data, wherein said maximum application bandwidth is less than said maximum system bandwidth and wherein said first data is associated with said user; and sending second data from a second computer of said Internet access service to said user while adjusting the bandwidth available for downloading said second data, based on changes in bandwidth of said first data, such that said maximum application bandwidth is not exceeded.
10. A method as in claim 9, wherein said first data further comprises one or more data files requested by said user.
11. A method as in claim 10, wherein said data files further comprise
HTML web pages.
12. A method as in claim 10, wherein said data files further comprise computer programs.
13. A method as in claim 9, wherein said second data further comprises one or more ISP files.
14. A system for adaptively transferring data to a user in a communications network, the system comprising: means for determining a maximum system bandwidth for said user; means for determining a maximum application bandwidth for use by an application based upon said maximum system bandwidth; means for determining a user bandwidth value; means for specifying said data to be transferred to said user; means for determining the amount of data to be sent to said user based upon said user bandwidth value; and means for sending said amount of data to said user.
15. A system for minimizing performance degradation for a user of an Internet access service, comprising: means for determining a maximum system bandwidth for said user; means for selecting a maximum application bandwidth for transferring first data, wherein said maximum application bandwidth is less than said maximum system bandwidth and wherein said first data is associated with said user; and means for sending second data from a second computer of said Internet access service to said user while adjusting the bandwidth available for downloading said second data, based on changes in bandwidth of said first data, such that said maximum application bandwidth is not exceeded.
16. A computer readable medium containing computer program instructions for adaptively transferring data to a user in a communications network, said computer program instructions containing instructions for: (a) determining a maximum system bandwidth for said user;
(b) determining a maximum application bandwidth for use by an application based upon said maximum system bandwidth;
(c) determining a user bandwidth value;
(d) specifying said data to be transferred to said user; (e) determining the amount of data to be sent to said user based upon said user bandwidth value;
(f) sending said amount of data to said user; and
(g) repeating steps (c) to (f) until the transfer of said data has been completed.
17. A system for minimizing performance degradation of a first computer operably coupled to a second computer over a communications network, comprising: a computerized server associated with said second computer, said computerized server including bandwidth adaptive software executable on said computerized server and configured to: determine a maximum system bandwidth for said user; select a maximum application bandwidth for transferring first data, wherein said maximum application bandwidth is less than said maximum system bandwidth and wherein said first data is associated with said user; and send second data from a second computer of said Internet access service to said user while adjusting the bandwidth available for downloading said second data, based on changes in bandwidth of said first data, such that said maximum application bandwidth is not exceeded.
18. A system as in claim 17, wherein said bandwidth adaptive software further configures said server to: dynamically determine a maximum system bandwidth; and dynamically select a maximum application bandwidth.
19. A system as in claim 17, wherein said second computer comprises a server of an Internet Service Provider.
20. A system for minimizing performance degradation during the downloading of data in a communications network, comprising: a first computer operably coupled to a second computer over said communications network, said first computer including bandwidth adaptive software executable on said first computer and configured to: determine a maximum system bandwidth for said user; select a maximum application bandwidth for transferring first data, wherein said maximum application bandwidth is less than said maximum system bandwidth and wherein said first data is associated with said user; and receive said first data and second data from a second computer in said communications network while adjusting the bandwidth available for downloading said second data, based on changes in bandwidth of said first data, such that said maximum application bandwidth is not exceeded.
21. A system as in claim 20, wherein said bandwidth adaptive software further configures said first computer to: dynamically determine a maximum system bandwidth; and dynamically select a maximum application bandwidth.
22. A system as in claim 20, wherein said second computer comprises a server of an Internet Service Provider.
23. A system for minimizing performance degradation during the downloading of data in a communications network, comprising: a first computer operably coupled to a second computer over said communications network, said first computer including bandwidth adaptive software executable on said computerized server and configured to: determine a maximum system bandwidth for said user; select a maximum application bandwidth for transferring first data, wherein said maximum application bandwidth is less than said maximum system bandwidth and wherein said first data is associated with said user; and receive said first data and second data from a second computer of said
Internet access service to said user while adjusting the bandwidth available for downloading said second data, based on changes in bandwidth of said first data, such that said maximum application bandwidth is not exceeded; and a computerized server associated with said second computer, said computerized server including software executable on said computerized server and configured to send data requested by a user of said first computer.
24. A computer-readable data transmission medium containing a data structure comprising: (a) a first portion, wherein said first portion contains data from a first data file, a size of said first portion determined by a user request; and
(b) a second portion, wherein said second portion contains data from a second data file, a size of said second portion determined by adjusting the bandwidth available for downloading said second portion, based on changes in bandwidth of said first portion, such that a maximum application bandwidth is not exceeded.
PCT/US2000/023552 1999-08-26 2000-08-25 Bandwidth adaptive data transfer system and method WO2001015394A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU69422/00A AU6942200A (en) 1999-08-26 2000-08-25 Bandwidth adaptive data transfer system and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15092599P 1999-08-26 1999-08-26
US60/150,925 1999-08-26

Publications (1)

Publication Number Publication Date
WO2001015394A1 true WO2001015394A1 (en) 2001-03-01

Family

ID=22536575

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/023552 WO2001015394A1 (en) 1999-08-26 2000-08-25 Bandwidth adaptive data transfer system and method

Country Status (2)

Country Link
AU (1) AU6942200A (en)
WO (1) WO2001015394A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003043275A2 (en) * 2001-11-14 2003-05-22 Kabushiki Kaisha Toshiba Data transmission in low traffic periods
EP1335564A2 (en) * 2002-02-08 2003-08-13 Kabushiki Kaisha Toshiba Communication system and communication method
FR2864397A1 (en) * 2003-12-23 2005-06-24 France Telecom Digital candidate file transmission temporal management method, involves finding mailing date by taking into account expiration date, and sending file using successive putbacks until file has been completely sent before expiration date
WO2007011491A2 (en) 2005-07-15 2007-01-25 Microsoft Corporation Background network bandwidth sharing behind gateway devices
EP2315414A1 (en) * 2009-10-23 2011-04-27 Telefónica, S.A. A method for transferring tbyte sized delay tolerant bulk data using unutilized but already paid for capacity of commercial internet service providers

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998006203A1 (en) * 1996-08-05 1998-02-12 Virata Limited Method and apparatus for source rate pacing in an atm network
US5768508A (en) * 1996-04-15 1998-06-16 Digilog Ab Computer network system and method for efficient information transfer
WO1998047090A1 (en) * 1997-04-16 1998-10-22 Sony Electronics, Inc. Method of advertising on-line
EP0875843A1 (en) * 1997-04-14 1998-11-04 Adletts International, LLC Method and apparatus for inserting advertisements and the like in a data stream of an internetworked client for display during the void time
US5913040A (en) * 1995-08-22 1999-06-15 Backweb Ltd. Method and apparatus for transmitting and displaying information between a remote network and a local computer
EP0924902A2 (en) * 1997-12-22 1999-06-23 Sun Microsystems, Inc. Network bandwidth control

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5913040A (en) * 1995-08-22 1999-06-15 Backweb Ltd. Method and apparatus for transmitting and displaying information between a remote network and a local computer
US5768508A (en) * 1996-04-15 1998-06-16 Digilog Ab Computer network system and method for efficient information transfer
WO1998006203A1 (en) * 1996-08-05 1998-02-12 Virata Limited Method and apparatus for source rate pacing in an atm network
EP0875843A1 (en) * 1997-04-14 1998-11-04 Adletts International, LLC Method and apparatus for inserting advertisements and the like in a data stream of an internetworked client for display during the void time
WO1998047090A1 (en) * 1997-04-16 1998-10-22 Sony Electronics, Inc. Method of advertising on-line
EP0924902A2 (en) * 1997-12-22 1999-06-23 Sun Microsystems, Inc. Network bandwidth control

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003043275A2 (en) * 2001-11-14 2003-05-22 Kabushiki Kaisha Toshiba Data transmission in low traffic periods
WO2003043275A3 (en) * 2001-11-14 2003-09-12 Toshiba Kk Data transmission in low traffic periods
EP1335564A2 (en) * 2002-02-08 2003-08-13 Kabushiki Kaisha Toshiba Communication system and communication method
EP1335564A3 (en) * 2002-02-08 2003-08-27 Kabushiki Kaisha Toshiba Communication system and communication method
US7028077B2 (en) 2002-02-08 2006-04-11 Kabushiki Kaisha Toshiba Communication system and communication method
FR2864397A1 (en) * 2003-12-23 2005-06-24 France Telecom Digital candidate file transmission temporal management method, involves finding mailing date by taking into account expiration date, and sending file using successive putbacks until file has been completely sent before expiration date
EP1549017A1 (en) * 2003-12-23 2005-06-29 France Telecom Method and system for the temporal management of the transmission over a network of a plurality of digital files between a source address and a sink address
WO2007011491A2 (en) 2005-07-15 2007-01-25 Microsoft Corporation Background network bandwidth sharing behind gateway devices
EP1904930A2 (en) * 2005-07-15 2008-04-02 Microsoft Corporation Background network bandwidth sharing behind gateway devices
EP1904930A4 (en) * 2005-07-15 2011-10-12 Microsoft Corp Background network bandwidth sharing behind gateway devices
EP2315414A1 (en) * 2009-10-23 2011-04-27 Telefónica, S.A. A method for transferring tbyte sized delay tolerant bulk data using unutilized but already paid for capacity of commercial internet service providers

Also Published As

Publication number Publication date
AU6942200A (en) 2001-03-19

Similar Documents

Publication Publication Date Title
US7437428B1 (en) System and method for transferring data over a network
US7441041B2 (en) Network download regulation method and system
US7325068B2 (en) Method and system for managing data transfer over a network
US5991306A (en) Pull based, intelligent caching system and method for delivering data over a network
EP1454251B1 (en) System and method for delayed network information transfer
US6308214B1 (en) Self-tuning dataflow I/O core
US6243392B1 (en) Client-optimized data transmission system and method
US6600737B1 (en) Bandwidth protection for voice over IP
US7899886B2 (en) Apparatus and methods for information transfer using a cached server
US7383350B1 (en) User input based allocation of bandwidth on a data link
US20030023745A1 (en) Method and system for adaptively downloading data from a network device
CN108833996A (en) Service node selection, update and code rate adaptive approach in distributed DASH system
CA2279581A1 (en) Data transfer method
US20040215806A1 (en) On the fly offering and allocation of bandwidth on demand
US6766354B1 (en) Speed sensitive content delivery in a client-server network
WO2001015394A1 (en) Bandwidth adaptive data transfer system and method
WO2001061945A1 (en) System and method for transferring data over a network
CN113766650B (en) Internet resource obtaining method and system based on dynamic balance
CN115665054A (en) Method and module for bandwidth allocation and data transmission management system
JP2002251349A (en) System, method and program for providing contents for waiting time and contents-on-demand system

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP