All of the material in this patent application is subject to copyright protection under the copyright laws of the United States and of other countries. As of the first effective filing date of the present application, this material is protected as unpublished material. However, permission to copy this material is hereby granted to the extent that the copyright owner has no objection to the facsimile reproduction by anyone of the patent documentation or patent disclosure, as it appears in the United States Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
This invention relates to telecommunications, and more particularly this invention pertains to management of available bandwidth on a telecommunications data link.
In the telecommunications infrastructure, e.g. in computer networks, different applications often compete for use of data links having limited available bandwidth to transmit multiple data messages to a single receiving computer. Processing power of the receiving computer may also be heavily loaded by the need to process different messages of incoming data. In many networks such as the Internet, the priority in use of the limited bandwidth and/or the limited processing power of the receiving computer is often determined on a first come first serve basis. That is higher speed computers which have a higher speed data path to the computer (e.g. dial up server) which is one data link away from the destination (client) computer, will tend to monopolize the link to the client computer. Consequently, the dominant use of data link bandwidth, and processing power of the client computer, may not conform to the priorities of the client user.
A current example of this problem is the situation for home users of the Internet. It is often the case that an Internet user is interested in conducting multiple downloads at the same time. For example, a user may click a link to download one or more files from a File Transfer Protocol (FTP) site, and then wish to continue browsing the World Wide Web (WWW) using his web browser which requires Hypertext Transfer Protocol (HTTP) downloads. Unfortunately, the FTP requests may use a large fraction of the available bandwidth leaving a small portion available for the HTTP messages, so that consequently, the response time of the user's web browser to navigation inputs is greatly increased. The user may consider the download a low priority, and prefer to have enhanced response time to WWW navigation inputs.
The user may be connected to the Internet by a relatively slow digital modem, or a fast cable modem or fast Digital Subscriber Line (DSL). In any case, the speed of the source computers and the speed of the transmission path between the source computers and the node to which the user's computer is connected (e.g. the Internet Service Provider (ISP) dial-up server) will determine which source computer dominates the use of the final link to the user's computer. Although, all delays are reduced in the case of a fast link, the delay becomes appreciable again, in the case of much larger file transfers, which can be expected to be common place in the near future given the growing interest in multimedia uses of the Internet.
The percentage of the available bandwidth used by two different applications may also be affected by the format of the messages sent. For example, other factors being equal an application which sends large data blocks will use more bandwidth.
In the case of two data messages coming from the same computer there may be a default prioritization which is not to the liking of the user.
For example this can happen to a user who connects to a private network for the purpose of sending or checking email. At login, some systems check various information files on the client computer and if any are found to be outdated, initiates downloading of updated files. This too, can use up a large portion of the available bandwidth, and slow down the response of the system to user initiated requests.
There is a need for a system in which the user can control the bandwidth used by one or more applications, in order to reserve a remainder portion of the bandwidth for use by other applications.
According to one aspect of the invention, a speed indicator message is received at a server computer from a client computer, and the speed at which a data item is sent from the server to the client is adjusted in accordance with the speed indicator message.
According to another aspect of the invention a client computer controls the rate at which it receives data by issuing a sequence of timed pause and continue signals.
According to another aspect of the invention systems and computer readable media is disclosed for carrying out the above methods.
The subject matter which is regarded as the invention is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other objects, features, and advantages of the invention will be apparent from the following detailed description taken in conjunction with the accompanying drawings.
Referring to
Referring to
Referring to the flow diagram shown in
In the next process block 403, the data indicated in the data request is fetched from a memory (not shown) associated with the first data source server. In the next process block 405, a speed indication signal is received at the first data source computer 307, from the client computer 301, by way of the intermediate server 303 and the data communication network 305.
In the next process block 407, a transmission schedule based on the maximum indicated speed is determined. According to one mode of operation, the requested data item will be broken into separate blocks which will be sent out at intervals substantially equal to the specified period. The interval could differ from the specified period due to for example, other processes running on the data source computer 307, and tying up resources required to send the data. The size of the block and the period are chosen to give the maximum indicated speed. The transmission speed is then closely related to the block size divided by the period, so that there is a large degree of latitude in choosing either of the two. However, to fulfill the objective of not monopolizing the data link to the client, and the client computer resources, the period is desirably chosen to be small compared to a period noticeable as a delay to a client user e.g. preferably less than 2 or 3 seconds. Obviously the period can not be so small that it is less than the time required to send the block-it must be more. Once the period is chosen, the block size is fully determined by the maximum indicated speed.
In the next process block 409, the transmission schedule is implemented, and the requested item is sent back through the data communication network 305, and intermediate server 303, to the client computer 301, according to the data transmission schedule.
A second data request may then be made from the client computer to the second data source server computer 307, and some portion of the bandwidth of the link 311 between the intermediate server and the client computer, and some portion of the computing resources of the client computer 301, which would otherwise have been used for transmitting and processing the data requested from the first data source server 307 had the rate of the first transmission not been limited, will now be available for transmitting and processing the data received in answer to the second data request.
Referring to the flow diagram shown in
In the next process block 503, the first data request is forwarded to a first data source server 307. At this stage, if the speed indicating signal were appended to the request, it could be stripped off and stored in a memory (not shown) associated with the intermediate server 303. In the next process block 505 the data indicated in the data request is accessed at the first data source computer 307, transmitted therefrom, and received at the intermediate server 303. The data is then temporarily stored in a second memory (e.g. a buffer, not shown) associated with the intermediate server 303. In the next process block 507 a transmission schedule is established based on the speed indicating signal, in a manner similar to that discussed above in connection with
The method shown in the flow diagram of
Referring to the flow diagram shown in
Set Speed=DLS*SI/(SI+FI)
where DLS is the data link speed;
Other considerations also apply to the choice of the intervals. The second interval transmission time should not be so long as to cause a delay for other applications sharing the link that is noticeable to the user (i.e., it should preferably not be more than 5 seconds). On the other hand, in the interest of efficiency, the first and second intervals should not be so short that they are comparable to the overhead time involved in sending the pause and continue signals and carrying out the pause and continue instructions. The total cycle time is preferably at least 1 second.
In the next process block 809 in
The pause and continue signals could be directed to the data source server, or to the intermediate server. In the latter case, the data source server will continuously transmit the requested data item to the intermediate server, which will accumulate the data item in a buffer, from which it will be read out during each second (transmit) interval.
Software for implementing the flow diagrams of
It should be understood that the embodiments described above are only examples of the many advantageous uses of the innovative teachings herein. In general, statements made in the specification of the present application do not necessarily limit any of the various claimed inventions. Moreover, some statements may apply to some inventive features but not to others. In general, unless otherwise indicated, singular elements may be in the plural and visa versa with no loss of generality.
This application is a continuation of U.S. patent application Ser. No. 09/497,836 entitled “USER INPUT BASED ALLOCATION OF BANDWIDTH ON A DATA LINK” filed on Feb. 3, 2000, now U.S. Pat. No. 7,383,350, which is assigned to the same assignee as this application and the teachings of which are hereby incorporated by reference.
| Number | Name | Date | Kind |
|---|---|---|---|
| 5167035 | Mann et al. | Nov 1992 | A |
| 5822537 | Katseff et al. | Oct 1998 | A |
| 5875175 | Sherer et al. | Feb 1999 | A |
| 5878228 | Miller et al. | Mar 1999 | A |
| 5938731 | Schreiter | Aug 1999 | A |
| 5938734 | Yao et al. | Aug 1999 | A |
| 5991810 | Shapiro et al. | Nov 1999 | A |
| 6014707 | Miller et al. | Jan 2000 | A |
| 6055577 | Lee et al. | Apr 2000 | A |
| 6125396 | Lowe | Sep 2000 | A |
| 6292834 | Ravi et al. | Sep 2001 | B1 |
| 6389469 | Vekslar et al. | May 2002 | B1 |
| 6415326 | Gupta et al. | Jul 2002 | B1 |
| 6449688 | Peters et al. | Sep 2002 | B1 |
| 6502139 | Birk et al. | Dec 2002 | B1 |
| 6546428 | Baber et al. | Apr 2003 | B2 |
| 6665702 | Zisapel et al. | Dec 2003 | B1 |
| 6751802 | Huizer et al. | Jun 2004 | B1 |
| 20020023164 | Lahr | Feb 2002 | A1 |
| 20020038374 | Gupta et al. | Mar 2002 | A1 |
| Number | Date | Country | |
|---|---|---|---|
| 20080162630 A1 | Jul 2008 | US |
| Number | Date | Country | |
|---|---|---|---|
| Parent | 09497836 | Feb 2000 | US |
| Child | 12045410 | US |