A method for measuring a bandwidth of a signal path between a data source and a data recipient involves sending a block of test data from the data source along the signal path to the data recipient, using that test data to obtain a measured bandwidth of the signal path, and transferring information from the data source along the signal path to the data recipient in accordance with the measured bandwidth. The measured bandwidth value can be calculated each time the data recipient accesses a website or the measured bandwidth value can be retained for future use.

Patent
   RE41618
Priority
Jul 12 2001
Filed
Nov 02 2006
Issued
Aug 31 2010
Expiry
Jul 12 2021
Assg.orig
Entity
Large
17
14
all paid
1. A method for measuring a bandwidth of a signal path between a data source and a data recipient, comprising the steps of:
sending a block of test data from the data source along the signal path to the data recipient and measuring a time required for the block of test data to be transferred to the data recipient;
determining whether the measured time is at least a threshold value and, if the measured time is at least the threshold value, using the measured time to determine a measured bandwidth of the signal path; and
transferring information from the data source along the signal path to the data recipient at a rate within the measured bandwidth;
setting the measured bandwidth to a default value if an amount of delay exceeds a predetermined time, and
wherein, if the measured time is at least less than the threshold value, the using of the measured time to determine a measured bandwidth of the signal path is delayed.
0. 11. A method for measuring a bandwidth of a signal path between a data source and a data recipient, comprising the steps of:
sending a block of test data from the data source along the signal path to the data recipient and measuring a time required for the block of test data to be transferred to the data recipient;
determining whether the measured time is within a predetermined range defined by a minimum value and a maximum value and, if the measured time is within the predetermined range, using the measured time to determine a measured bandwidth of the signal path;
setting the measured bandwidth to a default value if an amount of delay exceeds a predetermined time, and
transferring information from the data source along the signal path to the data recipient at a rate within the measured bandwidth;
wherein, if the measured time is outside the predetermined range, the using of the measured time to determine a measured bandwidth of the signal path is delayed.
2. A method for measuring a bandwidth of a signal path between a data source and a data recipient, comprising the steps of:
detecting whether the bandwidth of the signal path was previously determined;
if the bandwidth of the signal path was not previously determined, sending a block of test data from the data source along the signal path to the data recipient and measuring a time required for the block of test data to be transferred to the data recipient;
if the bandwidth of the signal path was not previously determined, determining whether the measured time is at least a first threshold value and, if the measured time is not at least the first threshold value, determining whether the measured time is less than a second threshold value, and if the measured time is not less than the second threshold value, using the measured time to determine a measured bandwidth of the signal path; and
transferring information from the data source along the signal path to the data recipient at a rate within either the previously determined bandwidth or the measured bandwidth.
3. A The method according to claim 2, further comprising a step of:
setting the measured bandwidth to a default value if an amount of delay exceeds a predetermined time, and
wherein, if the measured time is less than the second threshold value, the using of the measured time to determine a measured bandwidth of the signal path is delayed.
0. 4. The method according to claim 2, further comprising:
determining, using either the previously determined bandwidth or the measured bandwidth, information to size a window in which the information transferred to the data recipient is to be experienced.
0. 5. The method according to claim 4, further comprising:
transmitting an open window command to the data recipient, the open window command including the determined window size information.
0. 6. The method according to claim 5, wherein the open window command comprises a command to open a media player window, and the determined window size information comprises information to size the media player window.
0. 7. The method according to claim 1, further comprising the steps of:
detecting whether the bandwidth of the signal path was previously determined;
in a case that the bandwidth of the signal path was previously determined, said method further comprising skipping said steps of sending, determining, and setting, and performing said step of transferring information from the data source along the signal path to the data recipient using the previously-determined bandwidth.
0. 8. The method according to claim 1, further comprising:
determining, using the measured bandwidth, information to size a window in which the information transferred to the data recipient is to be experienced.
0. 9. The method according to claim 8, further comprising:
transmitting an open window command to the data recipient, the open window command including the determined window size information.
0. 10. The method according to claim 9, wherein the open window command comprises a command to open a media player window, and the determined window size information comprises information to size the media player window.
0. 12. The method according to claim 11, further comprising:
if the measured time is less than the minimum value:
sending an other block of test data from the data source along the signal path to the data recipient and measuring a time required for the other block of test data to be transferred to the data recipient;
using the measured time for the other block of test data to determine a measured bandwidth of the signal path.
0. 13. The method according to claim 11, further comprising:
if the measured time exceeds the maximum value:
sending an other block of test data from the data source along the signal path to the data recipient and measuring a time required for the other block of test data to be transferred to the data recipient;
determining whether the measured time for the other block of test data is within the predetermined range defined by the minimum and maximum values and, if the measured time for the other block of test data is within the predetermined range, using the measured time to determine a measured bandwidth of the signal path.
0. 14. The method according to claim 13, wherein the steps of sending an other block of test data and determining whether the measured time for the other block of test data are performed if the amount of delay does not exceed a predetermined time.
0. 15. The method according to claim 11, further comprising the steps of:
detecting whether the bandwidth of the signal path was previously determined;
in a case that the bandwidth of the signal path was previously determined, skipping said steps of sending, determining, and setting, and performing said step of transferring information from the data source along the signal path to the data recipient using the previously-determined bandwidth.
0. 16. The method according to claim 11, further comprising:
determining, using the measured bandwidth, information to size a window in which the information transferred to the data recipient is to be experienced.
0. 17. The method according to claim 16, further comprising:
transmitting an open window command to the data recipient, the open window command including the determined window size information.
0. 18. The method according to claim 17, wherein the open window command comprises a command to open a media player window, and the determined window size information comprises information to size the media player window.
0. 19. The method according to claim 16, wherein a window size corresponding to a first measured bandwidth is larger than a window size corresponding to a second measured bandwidth which is smaller than the first measured bandwidth.

This application is a

where BW=bandwidth, D is the amount of test data sent (here, 50 Kbytes), and T is the amount of time required to completely send the test data to the user. While BW is here calculated in terms of Kbytes/second, BW can be converted to Kbits/second simply by multiplying the value of BW by the conversion factor of 8 bits/byte.

As an alternative to direct calculation of bandwidth, the bandwidth BW could be determined by using a look-up table correlating different measured times to different bandwidths values. The look-up table and the values contained therein can be generated in advance on the basis of actual measurements and/or theoretical calculations. Such numbers could vary according to the application involved (i.e., the nature of the streaming media data that is sent).

For example, the look-up table could contain a number of different measured time ranges forming the limits of several ranges (Ta−Tb), together with the associated bandwidth values, as shown in Table 1:

TABLE 1
Ta (sec) Tb (sec) Bandwidth
14.0 9 30 Kbits/sec
9 5 60 Kbits/sec
5 3 90 Kbits/sec

These values are only provided by way of example and not limitation. More ranges, narrower ranges and/or other values could be employed.

As previously noted, a check is made in step S17 to see whether the user's Internet connection is a high bandwidth connection. When it is found in step S17 that time T<Tmin, this means that the user's bandwidth is of at least a certain threshold speed, and so a further and more accurate test can be performed. Also by way of non-limiting example, means in the form of programmable circuitry (not shown) or software may be provided so that the value of the reference time Tmin could be changed. It may be helpful to be able to change the reference time because over time the average bandwidth increases as users upgrade their connections and higher bandwidth devices are prepared.

Taken together, steps S15 and S17 involve checking to see whether the measured time required to download the block of test data falls within the range Tmin−Tmax. Only if T falls within that range is the bandwidth immediately determined. If T is shorter than Tmin a more detailed bandwidth test is performed in step S25, while if T exceeds Tmax measurement is delayed for a period and, if necessary, a default bandwidth is presumed in step S21.

When the measured transmission time T is less than the minimum time Tmin, a further measurement of transmission time is made in step S25 by pinging the user with a 500 Kbyte block of test data. The 500 Kbyte block of test data can be sent to the user in generally the same manner as the 50 Kbyte test block, and other amounts of data could be used. The time required for the complete transmission of this data is measured in step S27, and the bandwidth is calculated in step S29. The bandwidth can be calculated either using formula (1) or a suitable look-up table, or some other technique.

The bandwidth value determined in either of steps S19, S21 or S29 is then stored in step S30 for later use in controlling the transmission of data to the user's browser.

Optionally, a cookie, either persistent or session, containing information reflecting the user's measured bandwidth is set on the user's computer in step S31. Since the manner of setting a cookie is generally known, that operation will not be described in detail.

By setting this cookie in the user's computer, it will not be necessary to again determine the bandwidth of the user's connection the next time the user seeks to download data from the content provider, whether in the current session or, if the user leaves the content provider's site, the next time the user returns to that site. This way the time-consuming measurement procedures outlined above can be avoided. This aspect of the invention will be described in greater detail later on.

Having determined the bandwidth of the user's Internet connection and the available media player(s), the content provider in step S33 uses this information to send to the user's browser a call to open up a particular media player window. This can be done, by way of non-limiting example, by sending the information establishing the format of the media player window before the streaming data, in a separate file containing information such as a stream ID number, a stream identifier relating to the format of the data that will be sent, the stream title, stream author, status and copyright information, the data transfer rate (i.e., bit rate), the file name, the duration of the streaming data, and an expiration. All or some of this data, and/or other data, could be included in the identifying file.

If the user's computer does not have the correct type of media player for the data to be downloaded, the user's computer may in known manner give the user the option of downloading and installing the necessary media player.

Knowing the user's bandwidth allows the content provider's media player call to specify the proper size of the media player window to be opened (again, the size of the media player window will be influenced by the bandwidth of the user's Internet connection; faster connections allow for larger media player windows). By way of non-limiting example, the following media player window sizes could be used for the indicated bandwidths:

TABLE 2
Bandwidth Window Size
 28 K 176 × 132 pixels
 56 K 176 × 132 pixels
100 K 240 × 180 pixels
300 K 320 × 240 pixels

The values proposed in Table 2 are proposed for a basic video window, and are suggested by way of non-limiting example. The window size may be altered if ActiveX controls are used.

This avoids degraded performance, which might otherwise occur where the user's bandwidth is insufficient to supply the needed amount of content data to the media player.

Once the user's computer has confirmed that the media player window has opened, the content provider then commences transmitting data to the media player in step S35. After sufficient data has been received by the user's computer, the media player begins playing in step S37.

It is presently preferred to evaluate the user's bandwidth each time the user visits the website. This is thought to be preferable because of the inconsistency in bandwidth today; a user may have high bandwidth on one visit, low bandwidth on another. This way, the streaming media data sent to the user is always tailored to reflect the user's bandwidth.

Alternatively, instead of detecting the user's bandwidth each time a user visits a website, a previously-determined bandwidth can be used.

In the case where a previously-determined bandwidth is to be used, as noted above with regard to step S3, the user seeking to download content from the content provider's site already has visited the content provider's site. In step S3 a check is made to see whether a cookie for the content provider's site was set on the user's computer during the previous visit. If the cookies has been set on the user's computer, the user's browser will in step S3 return that cookie to the content provider along with the user's initial request to be sent web page data to display that site. Upon receiving this cookie the content provider's website will recognize the user as a repeat visitor. Processing advances to step S39, where a check is made to see if bandwidth data is present in the cookie. If such data is available, the data is then read out in step S41 and stored at the content provider for use in selecting the format of streaming data sent to the user.

Having the previously-determined bandwidth data is useful because this information speeds the transmission of content to the user; now, it is not necessary to go through the various steps required to ascertain the user's bandwidth. Content transmission can instead begin immediately. The content to be downloaded from the content provider is selected by the user in step S43. Processing then advances to step S33, wherein the content provider uses that information to send to the user's browser a call to open up a media player window and thereafter play the content in a manner already described with regard to steps S35 and S37.

The content provider, having received the cookie, still may not in step S39 find bandwidth information for the user. Then, as shown in step S39 the content provider will take the steps already described with regard first to step S5 to determine the user's bandwidth.

It will be understood that various values given in the foregoing discussion of this invention are by way of example and not limitation. For instance, blocks of test data of sizes other than 50 Kbytes and 500K bytes, and other types of test data, could be used.

Likewise, while the foregoing discussion of this invention made reference to streaming media data, this present invention need not be limited to such data. Rather, the this can be employed whenever the size of data being transmitted is such that receipt of such data is a concern. For example, this invention might have applicability to a game site.

Nor is the present invention intended to be limited to the transmission of data over the Internet. This invention may have applicability in any network, such as a LAN, or other networks using other transmission protocols, where the amount of data transferred between points on the network affects applications running on members of the network.

Thus, while there have been shown and described and pointed out fundamental novel features of the invention as applied to preferred embodiments thereof, it will be understood that various omissions and substitutions and changes in the form and details of the disclosed invention may be made by those skilled in the art without departing from the spirit of the invention. It is the intention, therefore, to be limited only as indicated by the scope of the claims appended hereto.

Florschuetz, Alan S.

Patent Priority Assignee Title
10039978, Sep 13 2010 Sony Interactive Entertainment LLC Add-on management systems
8147339, Dec 15 2007 Sony Interactive Entertainment LLC Systems and methods of serving game video
8506402, Jun 01 2009 Sony Interactive Entertainment LLC Game execution environments
8560331, Aug 02 2010 Sony Interactive Entertainment LLC Audio acceleration
8595373, Jan 25 2008 TUNEIN, INC Guide based content services
8613673, Dec 15 2008 Sony Interactive Entertainment LLC Intelligent game loading
8676591, Aug 02 2010 Sony Interactive Entertainment LLC Audio deceleration
8756101, Jan 25 2008 TUNEIN, INC User and stream demographics metadata guide based content services
8840476, Dec 15 2008 Sony Interactive Entertainment LLC Dual-mode program execution
8888592, Jun 01 2009 Sony Interactive Entertainment LLC Voice overlay
8926435, Dec 15 2008 Sony Interactive Entertainment LLC Dual-mode program execution
8968087, Jun 01 2009 Sony Interactive Entertainment LLC Video game overlay
9203685, Jun 01 2009 Sony Interactive Entertainment LLC Qualified video delivery methods
9240017, Jan 25 2008 TuneIn, Inc. Guide based content services
9584575, Jun 01 2009 Sony Interactive Entertainment LLC Qualified video delivery
9723319, Jun 01 2009 Sony Interactive Entertainment LLC Differentiation for achieving buffered decoding and bufferless decoding
9878240, Sep 13 2010 Sony Interactive Entertainment LLC Add-on management methods
Patent Priority Assignee Title
5918002, Jan 30 1997 Microsoft Technology Licensing, LLC Selective retransmission for efficient and reliable streaming of multimedia packets in a computer network
5970052, Sep 19 1997 GOOGLE LLC Method for dynamic bandwidth testing
6085241, Jul 22 1998 HANGER SOLUTIONS, LLC Internet user-bandwidth management and control tool
6256669, Nov 25 1997 Intel Corporation Method and apparatus for bandwidth characterization and reporting in web browsers
6272539, Nov 18 1998 International Business Machines Corporation Methods, systems and computer program products for determining and visually representing a user's overall network delay in collaborative applications
6292834, Jan 30 1997 Microsoft Technology Licensing, LLC Dynamic bandwidth selection for efficient transmission of multimedia streams in a computer network
6385673, Oct 06 1999 Oracle America, Inc SYSTEM AND METHOD FOR ADJUSTING PERFORMANCE OF A MEDIA STORAGE BY DECREASING A MAXIMUM THROUGHPUT BY A PRIMARY DERATE PARAMETER TO SPECIFY AVAILABLE & GUARANTEED RATE PARAMETERS AND DETERMINING RING BUFFER SIZES FOR STREAMS
6397258, Sep 14 1998 Matsushita Electric Industrial, Co., Ltd. File system
6587875, Apr 30 1999 Microsoft Technology Licensing, LLC Network protocol and associated methods for optimizing use of available bandwidth
6628666, Mar 30 1998 GENESYS TELECOMMUNCIATIONS LABORATORIES, INC Managing bandwidth on demand for internet protocol messaging with capability for transforming telephony calls from one media type to another media type
6766376, Sep 12 2000 WAG ACQUISITION, L L C Streaming media buffering system
20010010059,
20010044835,
20020116518,
//////
Executed onAssignorAssigneeConveyanceFrameReelDoc
Oct 31 2001FLORSCHUETZ, ALAN S Yahoo! IncASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0586190826 pdf
Nov 02 2006Yahoo! Inc.(assignment on the face of the patent)
Jun 13 2017Yahoo! IncYAHOO HOLDINGS, INC ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0429630211 pdf
Dec 31 2017YAHOO HOLDINGS, INC OATH INCASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0452400310 pdf
Oct 05 2020OATH INCVERIZON MEDIA INC ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0542580635 pdf
Aug 01 2021VERIZON MEDIA INC Verizon Patent and Licensing IncASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0574530431 pdf
Date Maintenance Fee Events
Jun 13 2012M1552: Payment of Maintenance Fee, 8th Year, Large Entity.
Jun 13 2012M1555: 7.5 yr surcharge - late pmt w/in 6 mo, Large Entity.
Apr 20 2016M1553: Payment of Maintenance Fee, 12th Year, Large Entity.


Date Maintenance Schedule
Aug 31 20134 years fee payment window open
Mar 03 20146 months grace period start (w surcharge)
Aug 31 2014patent expiry (for year 4)
Aug 31 20162 years to revive unintentionally abandoned end. (for year 4)
Aug 31 20178 years fee payment window open
Mar 03 20186 months grace period start (w surcharge)
Aug 31 2018patent expiry (for year 8)
Aug 31 20202 years to revive unintentionally abandoned end. (for year 8)
Aug 31 202112 years fee payment window open
Mar 03 20226 months grace period start (w surcharge)
Aug 31 2022patent expiry (for year 12)
Aug 31 20242 years to revive unintentionally abandoned end. (for year 12)