US20060176827A1 - Network performance tuner - Google Patents

Network performance tuner Download PDF

Info

Publication number
US20060176827A1
US20060176827A1 US11/053,968 US5396805A US2006176827A1 US 20060176827 A1 US20060176827 A1 US 20060176827A1 US 5396805 A US5396805 A US 5396805A US 2006176827 A1 US2006176827 A1 US 2006176827A1
Authority
US
United States
Prior art keywords
network
throughput
bandwidth
data
recited
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
US11/053,968
Other versions
US7940686B2 (en
Inventor
Christian Lehew
Harry Pyle
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ServiceNow Inc
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Priority to US11/053,968 priority Critical patent/US7940686B2/en
Assigned to MICROSOFT CORPORATION reassignment MICROSOFT CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LEHEW, CHRISTIAN R., PYLE, HARRY S.
Publication of US20060176827A1 publication Critical patent/US20060176827A1/en
Application granted granted Critical
Publication of US7940686B2 publication Critical patent/US7940686B2/en
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC reassignment MICROSOFT TECHNOLOGY LICENSING, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MICROSOFT CORPORATION
Assigned to SERVICENOW, INC. reassignment SERVICENOW, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MICROSOFT TECHNOLOGY LICENSING, LLC
Assigned to SERVICENOW, INC. reassignment SERVICENOW, INC. CORRECTIVE ASSIGNMENT TO CORRECT THE RECORDAL TO REMOVE INADVERTENTLY RECOREDED PROPERTIES SHOWN IN ATTACHED SHEET PREVIOUSLY RECORDED AT REEL: 047681 FRAME: 0916. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Assignors: MICROSOFT TECHNOLOGY LICENSING, LLC
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • H04L43/045Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0888Throughput
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements

Definitions

  • This invention generally relates to a technology that facilitates tuning the performance of a data-communications network.
  • Streaming high fidelity multimedia (e.g., video and audio) data over a typical home wireless network pushes existing affordable and widely available wireless home networking technologies to their limits. Because of this, even relatively minor transmission/reception issues result in effects that may be described as “glitchy,” “jerky,” “stop-and-start,” and the like. Since these effects are easily noticed by the customers, multimedia electronics producers and data service providers strive to reduce the occurrence of glitches.
  • a customer does not know if there is a problem with network throughput.
  • the customer does not know what network changes to make that may actually improve throughput.
  • the customer is unable to actively monitor the network throughput in order to see the effects of making network changes.
  • An implementation described herein measures throughput over a data-communications network and between at least two endpoints on the network. This implementation also displays a graphical representation depicting the present throughput of the network as it is measured.
  • the graphical representation has an identified target throughput threshold, and that threshold is indicative of an acceptable level of throughput for the usage being targeted, such as high-quality video streaming.
  • FIG. 1 shows an example of a typical wireless networking scenario within which one or more implementations described herein may operate.
  • FIGS. 2, 3 , and 4 illustrate an example of a user-interface in accordance with at least one implementation described herein.
  • FIG. 5 shows operational components of an exemplary network-performance tuner in accordance with at least one implementation described herein.
  • FIG. 6 illustrates a flow diagram showing a methodological implementation described herein.
  • FIG. 7 is an example of a computing operating environment capable of (wholly or partially) implementing at least one embodiment described herein.
  • a user may tune the throughput of a wireless network so that it sustains a desired level of throughput for streaming multimedia data over the wireless network.
  • FIG. 1 illustrates, at a high-level, the environmental context of a network-performance tuner 100 , as described herein, in an exemplary home wireless network scenario.
  • the tuner 100 itself is, for example, a program module executing within a primary memory system 102 (e.g., volatile or non-volatile memory) of a computer 110 .
  • This computer may be a general- or special-purpose computer in this illustrated scenario.
  • FIG. 7 depicts another computer system on which the tuner 100 may operate.
  • the computer 110 may be running an integrated multimedia software product, such as the Microsoft® Windows® XP Media CenterTM Edition integrated multimedia & entertainment product. Using such an integrated multimedia product, a user may enjoy an integrated home entertainment experience that includes photos, music, television programming, videos, and the like.
  • an integrated multimedia software product such as the Microsoft® Windows® XP Media CenterTM Edition integrated multimedia & entertainment product.
  • FIG. 1 shows a house 120 with a typical wireless network.
  • FIG. 1 also depicts a plan view of the same house.
  • the house is shown with just four rooms: a living room 122 , a kitchen 124 , a dining room 126 , and a study 128 .
  • the house 120 depicted in FIG. 1 is small, those of ordinary skill in the art understand that the house (and thus the networking environment) may be substantially larger than the example shown in FIG. 1 .
  • Isabel 130 purchases a new wireless multimedia set-top box 140 and brings it home (e.g., house 120 ) to install.
  • Isabel connects the set-top box to her television (TV) 142 in her living room 122 of the house 120 .
  • TV television
  • An example of the set-top box 140 is the Microsoft® Windows® XPTM Media CenterTM Extender set-top box.
  • the set-top box 140 takes advantage of her home wireless network to communicate with her integrated multimedia software product installed on her computer 110 in her study 128 .
  • Maria 130 may gather the family in the living room 122 to watch her TV 142 . After pressing a few buttons on her comfortable and familiar remote control, Isabel and her family enjoy experiencing the videos, television programming, music, and photos that are stored on her computer 110 , which is located in a different room (e.g., her study 128 ) of the home.
  • the network tuner 100 is executed in order to determine if current network performance could result in a less-than-ideal experience and if so, the tuner helps Isabel with fine tuning of the networking environment.
  • a user such as Isabel 130 may adjust her networking environment to maximize network throughput of her home wireless network.
  • High fidelity multimedia e.g., video and audio
  • High fidelity multimedia is streamed between the computer 110 and the set-top box 140 . Consequently, the network-performance tuner 100 is packaged with the set-top box 140 , so that Isabel has the opportunity to optimize her network's performance when the set-top box is first installed in her network.
  • the tuner 100 helps Isabel 130 find any performance issues early and solve them quickly and avoid a frustrating customer service call. Addressing any network performance issues at installation time, when Isabel 130 is expecting to spend some time setting up, rather than later in the middle of a TV show, enhances Isabel's overall product experience.
  • the network tuner 100 performs a quick-test which provides an initial evaluation of the network throughput and, as its name implies, is performed relatively quickly (e.g., approximately thirty seconds or less). If the results of the quick-test are above a defined “quick-test threshold,” then the tuner informs Isabel that her network's throughput is sufficient and that no further fine-tuning is necessary.
  • the quick-test employs any available (e.g., conventional or new) techniques for measurement of bandwidth over a data communications network (e.g., a wireless network), which provides an initial evaluation of network bandwidth when performed for thirty seconds or less.
  • the network tuner 100 may, for example, mathematically integrate test samples to simulate receive-end buffer starvation and check to see if it falls below a threshold (e.g., the quick-test threshold). If during the quick-test, the tuner 100 determines that the receive-end buffer would have starved, the tuner aborts the test early and indicate that tuning is needed.
  • the quick-test may be called a “buffer starvation analysis.”
  • the quick-test threshold may be defined as a heuristically or manually determined throughput level that is regarded as sufficient to deliver high-fidelity multimedia (or other desired data for transmission). For example, eight Mbits/sec may be regarded as sufficient for streaming conventional common multimedia (which typically streams at about 6 - 7 Mbits/sec). In another example, twenty-two Mbits/sec may be regarded as sufficient for streaming HDTV-level multimedia (which typically streams at about 18 Mbits/sec). Furthermore, to avoid the possibilities of glitches, the network should sustain a measured throughput above the threshold throughout the entirety of the test or for a defined time period.
  • a key objective of the quick-test is to avoid exposure of unnecessary complexity to those users who have a network with more than sufficient bandwidth (e.g., a fully wired network). If a quick test of the network bandwidth indicates that it is more than sufficient, the tuner informs Isabel 130 , and the setup of the set-top box finishes.
  • the tuner 100 directs Isabel 130 through a more complex procedure, which helps Isabel take action that may improve network throughput.
  • the tuner 100 presents a user-interface (UI) to Isabel 130 that informs her that she could potentially have problems using high-fidelity multimedia with the set-top box 140 .
  • UI user-interface
  • the UI suggests that Isabel perform a more thorough network throughput test and, during that test, Isabel may adjust her network environment in an attempt to improve the network's bandwidth.
  • the tuner 100 measures network performance and provides a user-feedback mechanism regarding network performance.
  • the tuner presents a UI with a continually running graph, indicating the present and recent throughput of the network.
  • the thorough network throughput test employs any available (e.g., conventional or new) techniques for measurement of bandwidth over a data communications network (e.g., a wireless network), which provides a relatively accurate measurement of the bandwidth.
  • a data communications network e.g., a wireless network
  • the thorough network throughput test runs as long as the user desires. During that thorough network throughput test, the network tuner 100 utilizes a low-pass filter on the test samples for a graphical presentation that approximates receive-end buffer fullness. In at least one implementation, the thorough network throughput test may be called a “buffer fullness simulation.”
  • the tuner 100 measures network bandwidth between two endpoints (e.g., the computer 110 and the set-top box 140 ) without regard to what type of network components exist between the endpoints and without regard to which endpoint, if any, is connected wirelessly. This allows for detection of bandwidth-impeding problems, even on completely wired networks or networks using equipment from many different manufacturers.
  • FIGS. 2 and 3 illustrate examples of UIs (specifically UI 200 of FIG. 2 and UI 300 of FIG. 3 ) that the tuner may employ. These example UIs offer a simplified view to limit end-user confusion. These UIs provide the user feedback.
  • the UIs 200 and 300 clearly communicate a target level or range that is “acceptable.” At that target level, the network throughput is sufficient to support a specified purpose, such as streaming glitch-free high-fidelity multimedia data.
  • a specified purpose such as streaming glitch-free high-fidelity multimedia data.
  • Each specified purpose may have a pre-defined, heuristically determined, or a calculated acceptable level.
  • the “acceptable” target level or range may be defined as the throughput level that is sufficient to deliver high-fidelity multimedia data.
  • eight Mbits/sec is regarded as sufficient for streaming typical multimedia
  • twenty-two Mbits/sec is regarded as sufficient for streaming HDTV-level multimedia.
  • the measured throughput should be sustainable within the “acceptable” target range.
  • Isabel may view a bar-graph monitor 210 of the UI 200 .
  • the dark bars indicate a relative measure of network throughput.
  • Area 220 is labeled “Acceptable Performance” to indicate that the network throughput will be acceptable for the desired purpose (e.g., streaming multimedia).
  • the “Acceptable Performance” range is reached when one or more of these bars are darkened.
  • the network-performance tuner 100 may employ an audio UI throughput indicator.
  • An audio signal may indicate a relative degree of throughput. That way, a user may “hear” the available bandwidth from another room when the user is unable to see the screen displaying the bars or the graph. For example if a user was making very minor tweaks to the position of their wireless networking components antennas they might be doing so in a completely isolated room of the house.
  • FIG. 4 illustrates a UI 400 , which is an example of another view of the network throughput.
  • the UI 400 is an example of an easily accessible, detailed view showing valuable historical throughput information as a line graph.
  • This UI also has an “acceptable performance” target line, which is shown at 420 in UI 400 .
  • FIGS. 2 and 3 show a clickable button ( 240 in FIG. 2 and 340 in FIG. 3 ) that allows for easy access to the detailed view of UI 400 .
  • FIG. 4 shows a clickable button 440 that allows for easy access to the simplified summary view of UIs 200 and 300 .
  • the tuner 100 may list the detailed and in-depth suggestions and tips for performance-improving actions. These detailed and in-depth suggestions may be discovered through product support channels. Alternatively, the tuner may present a list or a document with static and/or dynamically generated data. The data details suggestions for actions that Isabel can administer to improve the performance of the network.
  • Examples of suggested performance-improving actions are shown at 230 in UI 200 and 330 in UI 300 .
  • Other examples include (by way of example only and not limitation) the following:
  • the tuner 100 is integrated with the installation process of the set-top box 140 .
  • the tuner 100 may be available as a standalone utility and may operate separately from the set-top box installation process. Since conditions change in the networking environment (which includes the physical environment in which the network operates), the throughput of the network may change. At any time, Isabel may run the tuner as a standalone utility to help improve network performance.
  • FIG. 5 illustrates operational details of the network-performance tuner 100 . Because this is the same tuner 100 discussed and referenced in FIG. 1 , the tuner shown in FIG. 5 retains the 100 reference designation. Although the operational components of FIG. 5 are shown as being part of the tuner 100 , those of ordinary skill in the art understand that each operational component and sub-component may be incorporated into one or more entities other than the tuner.
  • the components of the network-performance tuner 100 include a network-bandwidth quick-tester 510 , a network-bandwidth meter 520 , a corrective action suggestion mechanism 530 , and a network-bandwidth monitor 540 .
  • the network-bandwidth quick-tester 510 of the tuner 100 takes over.
  • the quick-tester performs a quick evaluation of the bandwidth of a subject network 560 between the tuner and the set-top box.
  • the tuner 100 skips the remaining functional components illustrated in FIG. 5 . If the evaluated bandwidth is not clearly sufficient, then the network-bandwidth meter 520 begins to perform a more thorough measurement of the network 560 bandwidth. Until terminated, the meter continues to measure bandwidth.
  • a corrective action suggestion mechanism 530 acquires a static document that lists some suggested actions that the user may take to improve network throughput.
  • This static document may be stored on a same computer-readable medium, which is the source of the tuner's installation software. Instead, the suggestion mechanism may acquire the static document from any accessible source (e.g., via the Internet) or it may provide a link to an updatable document located on any accessible source (e.g., via the Internet). Alternatively, the suggestion mechanism 530 may dynamically generate a list of suggested actions from one or more sources (including, for example, websites on the Internet).
  • an implementation may employ a software user-interface tool to interrogate a user. That tools may be called a “wizard.”
  • This wizard may ask the user questions about things that could affect network performance in an effort to narrow down the list of possible corrective action suggestions. Indeed, the information produced by the wizard aids or directs the suggestion mechanism 530 when it dynamically generates a list of suggested actions from one or more sources For example, the wizard might up-front ask the user if they have an 802.11g or 802.11a wireless network. Based upon the user's responses, the suggestion mechanism 530 knows that some suggestions apply and other do not apply.
  • the suggestion mechanism 530 tailors its suggestions based, at least in part, on the automatically discovered information, properties, and characteristics about the network. For example, detection software may detect that a user is running on an 802.11g network and that the wireless networking “channel” chosen is conflicting with a nearby wireless network. In such an instance, the suggestion mechanism 530 gives the user a very pointed suggestion about changing their wireless networking channel to another channel where no interference is detected.
  • the network-bandwidth monitor 540 Based upon the list provided by the suggestion mechanism 530 and the present network-bandwidth as measured by the meter 520 , the network-bandwidth monitor 540 generates one or more user-interfaces (UIs) on an output device 570 (e.g., a computer monitor).
  • the generated UI presents the list provided by the suggestion mechanism 530 and graphically represents the network-bandwidth as measured by the meter 520 .
  • Examples of UIs that may be presented by the network-bandwidth monitor 540 include UIs 200 , 300 , and 400 as shown in FIGS. 2-4 .
  • FIG. 6 shows a method 600 performed by the network-performance tuner 100 .
  • This methodological implementation may be performed in software, hardware, or a combination thereof.
  • the method is delineated as separate steps represented as independent blocks in FIG. 6 ; however, these separately delineated steps should not be construed as necessarily order dependent in their performance. Additionally, for discussion purposes, the method 600 is described with reference to FIG. 1 .
  • the computer 110 completes installation of the wireless multimedia set-top box 140 .
  • block 602 is skipped.
  • the tuner 100 performs a quick-test to rapidly evaluate network throughput of a subject network.
  • the tuner 100 determines that the network throughput is clearly sufficient to support heavy data transmission loads, then it terminates the method 600 at 606 . Otherwise, the method proceeds to the next block, which is 610 . At 610 , the tuner 100 informs the user of the possibility of network performance issues.
  • Blocks 612 -At 620 form a loop that the tuner 100 performs until the user terminates the loop or some other trigger event (e.g., a timeout) occurs.
  • some other trigger event e.g., a timeout
  • the tuner measures network throughput.
  • the tuner displays the present network throughput via a network performance monitor UI. That UI also displays an indication of the level of throughput necessary to be considered an acceptable level for the desired purpose.
  • the desired purpose may be transmission of HDTV quality multimedia over a wireless network.
  • Each desired purpose may have a pre-defined or a calculated acceptable level.
  • the tuner displays a list of suggestions for improving network throughput (and/or a link to such suggestions found on a website on the Internet).
  • the process loops back to block 612 .
  • the looping continues until the user terminates the loop or some other trigger (e.g., timeout) occurs.
  • FIG. 7 illustrates an example of a suitable computing environment 700 within which an exemplary network-performance tuner, such as tuner 100 as described herein, may be implemented (either fully or partially).
  • the computing environment 700 may be utilized in the computer and network architectures described herein.
  • the exemplary computing environment 700 is only one example of a computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the computer and network architectures. Neither should the computing environment 700 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary computing environment 700 .
  • the exemplary network-performance tuner may be implemented with numerous other general purpose or special purpose computing system environments or configurations.
  • Examples of well known computing systems, environments, and/or configurations that may be suitable for use include, but are not limited to, personal computers, server computers, thin clients, thick clients, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, personal digital assistants (PDA), appliances, special-purpose electronics (e.g., a DVD player), programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
  • PDA personal digital assistants
  • special-purpose electronics e.g., a DVD player
  • the exemplary network-performance tuner may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer.
  • program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
  • the exemplary network-performance tuner may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a data-communications network.
  • program modules may be located in both local and remote computer storage media including memory storage devices.
  • the computing environment 700 includes a general-purpose computing device in the form of a computer 702 .
  • the components of computer 702 may include, but are not limited to, one or more processors or processing units 704 , a system memory 706 , and a system bus 708 that couples various system components, including the processor 704 , to the system memory 706 .
  • the system bus 708 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures.
  • bus architectures can include a CardBus, Personal Computer Memory Card International Association (PCMCIA), Accelerated Graphics Port (AGP), Small Computer System Interface (SCSI), Universal Serial Bus (USB), IEEE 1394, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnects (PCI) bus, also known as a Mezzanine bus.
  • Computer 702 typically includes a variety of computer-readable media. Such media may be any available media that is accessible by computer 702 and includes both volatile and non-volatile media, removable and non-removable media.
  • the system memory 706 includes computer-readable media in the form of volatile memory, such as random access memory (RAM) 710 , and/or non-volatile memory, such as read only memory (ROM) 712 .
  • RAM random access memory
  • ROM read only memory
  • a basic input/output system (BIOS) 714 containing the basic routines that help to transfer information between elements within computer 702 , such as during start-up, is stored in ROM 712 .
  • BIOS basic input/output system
  • RAM 710 typically contains data and/or program modules that are immediately accessible to and/or presently operated on by the processing unit 704 .
  • Computer 702 may also include other removable/non-removable, volatile/non-volatile computer storage media.
  • FIG. 7 illustrates a hard disk drive 716 for reading from and writing to a non-removable, non-volatile magnetic media (not shown), a magnetic disk drive 718 for reading from and writing to a removable, non-volatile magnetic disk 720 (e.g., a “floppy disk”), and an optical disk drive 722 for reading from and/or writing to a removable, non-volatile optical disk 724 such as a CD-ROM, DVD-ROM, or other optical media.
  • a hard disk drive 716 for reading from and writing to a non-removable, non-volatile magnetic media (not shown)
  • a magnetic disk drive 718 for reading from and writing to a removable, non-volatile magnetic disk 720 (e.g., a “floppy disk”)
  • an optical disk drive 722 for reading from and/or writing to a removable, non-volatile optical disk
  • the hard disk drive 716 , magnetic disk drive 718 , and optical disk drive 722 are each connected to the system bus 708 by one or more data media interfaces 725 .
  • the hard disk drive 716 , magnetic disk drive 718 , and optical disk drive 722 may be connected to the system bus 708 by one or more interfaces (not shown).
  • the disk drives and their associated computer-readable media provide non-volatile storage of computer readable instructions, data structures, program modules, and other data for computer 702 .
  • a hard disk 716 a removable magnetic disk 720
  • a removable optical disk 724 it is to be appreciated that other types of computer-readable media, which may store data that is accessible by a computer, such as magnetic cassettes or other magnetic storage devices, flash memory cards, CD-ROM, digital versatile disks (DVD) or other optical storage, random access memories (RAM), read only memories (ROM), electrically erasable programmable read-only memory (EEPROM), and the like, may also be utilized to implement the exemplary computing system and environment.
  • RAM random access memories
  • ROM read only memories
  • EEPROM electrically erasable programmable read-only memory
  • Any number of program modules may be stored on the hard disk 716 , magnetic disk 720 , optical disk 724 , ROM 712 , and/or RAM 710 , including, by way of example, an operating system 726 , one or more application programs 728 , other program modules 730 , and program data 732 .
  • a user may enter commands and information into computer 702 via input devices such as a keyboard 734 and a pointing device 736 (e.g., a “mouse”).
  • Other input devices 738 may include a microphone, joystick, game pad, satellite dish, serial port, scanner, and/or the like.
  • input/output interfaces 740 are coupled to the system bus 708 , but may be connected by other interface and bus structures, such as a parallel port, game port, or a universal serial bus (USB).
  • a monitor 742 or other type of display device may also be connected to the system bus 708 via an interface, such as a video adapter 744 .
  • other output peripheral devices may include components, such as speakers (not shown) and a printer 746 , which may be connected to computer 702 via the input/output interfaces 740 .
  • Computer 702 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computing device 748 .
  • the remote computing device 748 may be a personal computer, a portable computer, a server, a router, a network computer, a peer device or other common network node, and the like.
  • the remote computing device 748 is illustrated as a portable computer that may include many or all of the elements and features described herein, relative to computer 702 .
  • Logical connections between computer 702 and the remote computer 748 are depicted as a local area network (LAN) 750 and a general wide area network (WAN) 752 .
  • LAN local area network
  • WAN wide area network
  • Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and the Internet. Such networking environments may be wired or wireless.
  • the computer 702 When implemented in a LAN networking environment, the computer 702 is connected to a local network 750 via a network interface or adapter 754 . When implemented in a WAN networking environment, the computer 702 typically includes a modem 756 or other means for establishing communications over the wide network 752 .
  • the modem 756 which may be internal or external to computer 702 , may be connected to the system bus 708 via the input/output interfaces 740 or other appropriate mechanisms. It is to be appreciated that the illustrated network connections are exemplary and that other means of establishing communication link(s) between the computers 702 and 748 may be employed.
  • remote application programs 758 reside on a memory device of remote computer 748 .
  • application programs and other executable program components such as the operating system, are illustrated herein as discrete blocks, although it is recognized that such programs and components reside at various times in different storage components of the computing device 702 , and are executed by the data processor(s) of the computer.
  • An implementation of an exemplary network-performance tuner may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices.
  • program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
  • functionality of the program modules may be combined or distributed as desired in various embodiments.
  • FIG. 7 illustrates an example of a suitable operating environment 700 in which an exemplary network-performance tuner may be implemented.
  • the exemplary network-performance tuner(s) described herein may be implemented (wholly or in part) by any program modules 728 - 730 and/or operating system 726 in FIG. 7 or a portion thereof.
  • the operating environment is only an example of a suitable operating environment and is not intended to suggest any limitation as to the scope or use of functionality of the exemplary network-performance tuner(s) described herein.
  • Other well known computing systems, environments, and/or configurations that are suitable for use include, but are not limited to, personal computers (PCs), server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, programmable consumer electronics, wireless phones and equipment, general and special-purpose appliances, application-specific integrated circuits (ASICs), network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
  • Computer-readable media may be any available media that may be accessed by a computer.
  • Computer-readable media may comprise, but is not limited to, “computer storage media” and “communications media.”
  • Computer storage media include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules, or other data.
  • Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which may be used to store the desired information and which may be accessed by a computer.
  • Communication media typically embodies computer-readable instructions, data structures, program modules, or other data in a modulated data signal, such as carrier wave or other transport mechanism. Communication media also includes any information delivery media.
  • the techniques, described herein, may be implemented in many ways, including (but not limited to) program modules, general- and special-purpose computing systems, network servers and equipment, dedicated electronics and hardware, and as part of one or more computer networks.
  • the techniques may, for example, be implemented on a computer system depicted in FIG. 7 .

Abstract

Described herein are techniques to facilitate the improvement of network throughput. An implementation described herein measures throughput over a data-communications network and between at least two endpoints on the network. This implementation also displays a graphical representation depicting the present throughput of the network as it is measured. The graphical representation has an identified target throughput threshold, and that threshold is indicative of an acceptable level of throughput for the usage being targeted, such as high-quality video streaming.

Description

    TECHNICAL FIELD
  • This invention generally relates to a technology that facilitates tuning the performance of a data-communications network.
  • BACKGROUND
  • With the current state of available home wireless network technology, there are significant limitations to delivering a quality video experience. Customers often experience intermittent interference and less than optimal throughput over typical wireless networks. When not used for video, performance issues with wireless networks often go unnoticed, because non-video uses rarely push the limits of a wireless network's performance capabilities. For example, web pages continue to load and email is still sent via a network operating at less than full capacity. The fact that there may have been a short-term glitch, or that the maximum possible bandwidth is momentarily unavailable, causes only minor degradations in the experience.
  • Streaming high fidelity multimedia (e.g., video and audio) data over a typical home wireless network pushes existing affordable and widely available wireless home networking technologies to their limits. Because of this, even relatively minor transmission/reception issues result in effects that may be described as “glitchy,” “jerky,” “stop-and-start,” and the like. Since these effects are easily noticed by the customers, multimedia electronics producers and data service providers strive to reduce the occurrence of glitches.
  • However, often there are many practical actions that a customer can take which will affect the overall performance of a wireless networking environment. For example, fine adjustments to and placement of wireless equipment can affect the overall performance. Unfortunately, the customer typically does not know what action can be taken to prevent or ameliorate performance issues in a glitch-prone wireless networking environment.
  • Conventionally, a customer does not know if there is a problem with network throughput. The customer does not know what network changes to make that may actually improve throughput. Furthermore, the customer is unable to actively monitor the network throughput in order to see the effects of making network changes.
  • SUMMARY
  • Described herein are techniques to facilitate the improvement of network throughput. An implementation described herein measures throughput over a data-communications network and between at least two endpoints on the network. This implementation also displays a graphical representation depicting the present throughput of the network as it is measured. The graphical representation has an identified target throughput threshold, and that threshold is indicative of an acceptable level of throughput for the usage being targeted, such as high-quality video streaming.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The same numbers are used throughout the drawings to reference like elements and features.
  • FIG. 1 shows an example of a typical wireless networking scenario within which one or more implementations described herein may operate.
  • FIGS. 2, 3, and 4 illustrate an example of a user-interface in accordance with at least one implementation described herein.
  • FIG. 5 shows operational components of an exemplary network-performance tuner in accordance with at least one implementation described herein.
  • FIG. 6 illustrates a flow diagram showing a methodological implementation described herein.
  • FIG. 7 is an example of a computing operating environment capable of (wholly or partially) implementing at least one embodiment described herein.
  • DETAILED DESCRIPTION
  • The following description sets forth techniques that help a user tune the performance of a communications network to a desired level. For example, a user may tune the throughput of a wireless network so that it sustains a desired level of throughput for streaming multimedia data over the wireless network.
  • EXEMPLARY SCENARIO
  • FIG. 1 illustrates, at a high-level, the environmental context of a network-performance tuner 100, as described herein, in an exemplary home wireless network scenario. The tuner 100 itself is, for example, a program module executing within a primary memory system 102 (e.g., volatile or non-volatile memory) of a computer 110. This computer may be a general- or special-purpose computer in this illustrated scenario. FIG. 7 depicts another computer system on which the tuner 100 may operate.
  • The computer 110 (or another network accessible computer) may be running an integrated multimedia software product, such as the Microsoft® Windows® XP Media Center™ Edition integrated multimedia & entertainment product. Using such an integrated multimedia product, a user may enjoy an integrated home entertainment experience that includes photos, music, television programming, videos, and the like.
  • The exemplary scenario depicted in FIG. 1 shows a house 120 with a typical wireless network. FIG. 1 also depicts a plan view of the same house. For the sake of simplicity and brevity, the house is shown with just four rooms: a living room 122, a kitchen 124, a dining room 126, and a study 128. While the house 120 depicted in FIG. 1 is small, those of ordinary skill in the art understand that the house (and thus the networking environment) may be substantially larger than the example shown in FIG. 1.
  • Isabel 130, the user in this scenario, purchases a new wireless multimedia set-top box 140 and brings it home (e.g., house 120) to install. Isabel connects the set-top box to her television (TV) 142 in her living room 122 of the house 120. An example of the set-top box 140 is the Microsoft® Windows® XP™ Media Center™ Extender set-top box.
  • The set-top box 140 takes advantage of her home wireless network to communicate with her integrated multimedia software product installed on her computer 110 in her study 128. Isabel 130 may gather the family in the living room 122 to watch her TV 142. After pressing a few buttons on her comfortable and familiar remote control, Isabel and her family enjoy experiencing the videos, television programming, music, and photos that are stored on her computer 110, which is located in a different room (e.g., her study 128) of the home.
  • After physically coupling the set-top box 140 and the TV 142, Isabel 130 typically completes the installation of the set-top box via the computer 110, which has the integrated multimedia software product installed thereon. At or near the completion of installation of the set-top box's software and configuration data at the computer 110, the network tuner 100 is executed in order to determine if current network performance could result in a less-than-ideal experience and if so, the tuner helps Isabel with fine tuning of the networking environment. Using the network-performance tuner 100, a user (such as Isabel 130) may adjust her networking environment to maximize network throughput of her home wireless network.
  • Streaming high fidelity multimedia (e.g., video and audio) data over a home network pushes commonly available and affordable home wireless networking technologies to their limits. High fidelity multimedia is streamed between the computer 110 and the set-top box 140. Consequently, the network-performance tuner 100 is packaged with the set-top box 140, so that Isabel has the opportunity to optimize her network's performance when the set-top box is first installed in her network. The tuner 100 helps Isabel 130 find any performance issues early and solve them quickly and avoid a frustrating customer service call. Addressing any network performance issues at installation time, when Isabel 130 is expecting to spend some time setting up, rather than later in the middle of a TV show, enhances Isabel's overall product experience.
  • Initially, the network tuner 100 performs a quick-test which provides an initial evaluation of the network throughput and, as its name implies, is performed relatively quickly (e.g., approximately thirty seconds or less). If the results of the quick-test are above a defined “quick-test threshold,” then the tuner informs Isabel that her network's throughput is sufficient and that no further fine-tuning is necessary.
  • The quick-test employs any available (e.g., conventional or new) techniques for measurement of bandwidth over a data communications network (e.g., a wireless network), which provides an initial evaluation of network bandwidth when performed for thirty seconds or less. During the quick-test, the network tuner 100 may, for example, mathematically integrate test samples to simulate receive-end buffer starvation and check to see if it falls below a threshold (e.g., the quick-test threshold). If during the quick-test, the tuner 100 determines that the receive-end buffer would have starved, the tuner aborts the test early and indicate that tuning is needed. In at least one implementation, the quick-test may be called a “buffer starvation analysis.”
  • The quick-test threshold may be defined as a heuristically or manually determined throughput level that is regarded as sufficient to deliver high-fidelity multimedia (or other desired data for transmission). For example, eight Mbits/sec may be regarded as sufficient for streaming conventional common multimedia (which typically streams at about 6-7 Mbits/sec). In another example, twenty-two Mbits/sec may be regarded as sufficient for streaming HDTV-level multimedia (which typically streams at about 18 Mbits/sec). Furthermore, to avoid the possibilities of glitches, the network should sustain a measured throughput above the threshold throughout the entirety of the test or for a defined time period.
  • A key objective of the quick-test is to avoid exposure of unnecessary complexity to those users who have a network with more than sufficient bandwidth (e.g., a fully wired network). If a quick test of the network bandwidth indicates that it is more than sufficient, the tuner informs Isabel 130, and the setup of the set-top box finishes.
  • If the quick-test indicates that the bandwidth is marginal or clearly insufficient, then the tuner 100 directs Isabel 130 through a more complex procedure, which helps Isabel take action that may improve network throughput. The tuner 100 presents a user-interface (UI) to Isabel 130 that informs her that she could potentially have problems using high-fidelity multimedia with the set-top box 140.
  • In order to get a good experience, users frequently need to take additional actions to adjust the networking environment. The users may need to reduce obstructions in the wireless path between components and/or make fine adjustments to the wireless equipment to maximize their network throughput.
  • The UI suggests that Isabel perform a more thorough network throughput test and, during that test, Isabel may adjust her network environment in an attempt to improve the network's bandwidth. For this more thorough network throughput test, the tuner 100 measures network performance and provides a user-feedback mechanism regarding network performance. The tuner presents a UI with a continually running graph, indicating the present and recent throughput of the network.
  • The thorough network throughput test employs any available (e.g., conventional or new) techniques for measurement of bandwidth over a data communications network (e.g., a wireless network), which provides a relatively accurate measurement of the bandwidth.
  • The thorough network throughput test runs as long as the user desires. During that thorough network throughput test, the network tuner 100 utilizes a low-pass filter on the test samples for a graphical presentation that approximates receive-end buffer fullness. In at least one implementation, the thorough network throughput test may be called a “buffer fullness simulation.”
  • During this thorough and continually running bandwidth measurement test, the tuner 100 measures network bandwidth between two endpoints (e.g., the computer 110 and the set-top box 140) without regard to what type of network components exist between the endpoints and without regard to which endpoint, if any, is connected wirelessly. This allows for detection of bandwidth-impeding problems, even on completely wired networks or networks using equipment from many different manufacturers.
  • FIGS. 2 and 3 illustrate examples of UIs (specifically UI 200 of FIG. 2 and UI 300 of FIG. 3) that the tuner may employ. These example UIs offer a simplified view to limit end-user confusion. These UIs provide the user feedback.
  • As Isabel 130 takes actions, with the intent of improving network bandwidth, she sees the results of her actions in real-time on the graphical UI such as those of FIGS. 2 and 3. By actively monitoring the throughput via the graphical UI display of the tuner 100, Isabel can determine how her actions affect the network throughput.
  • The UIs 200 and 300 clearly communicate a target level or range that is “acceptable.” At that target level, the network throughput is sufficient to support a specified purpose, such as streaming glitch-free high-fidelity multimedia data. Each specified purpose may have a pre-defined, heuristically determined, or a calculated acceptable level.
  • In the realm of high-fidelity multimedia data transmissions, the “acceptable” target level or range may be defined as the throughput level that is sufficient to deliver high-fidelity multimedia data. As mentioned earlier in discussion of the quick-test, eight Mbits/sec is regarded as sufficient for streaming typical multimedia, and twenty-two Mbits/sec is regarded as sufficient for streaming HDTV-level multimedia. Furthermore, to avoid the possibilities of glitches, the measured throughput should be sustainable within the “acceptable” target range.
  • For example, Isabel may view a bar-graph monitor 210 of the UI 200. The dark bars indicate a relative measure of network throughput. Area 220 is labeled “Acceptable Performance” to indicate that the network throughput will be acceptable for the desired purpose (e.g., streaming multimedia). The “Acceptable Performance” range is reached when one or more of these bars are darkened.
  • In this example, assume that Isabel takes action to improve bandwidth. As a result, Isabel may see bar-graph monitor 310 of UI 300. The dark bars are now in the area 320 labeled “Acceptable Performance.” Consequently, Isabel knows that her efforts have improved network performance.
  • Furthermore, the network-performance tuner 100 may employ an audio UI throughput indicator. An audio signal may indicate a relative degree of throughput. That way, a user may “hear” the available bandwidth from another room when the user is unable to see the screen displaying the bars or the graph. For example if a user was making very minor tweaks to the position of their wireless networking components antennas they might be doing so in a completely isolated room of the house. In this case instead of making very minor tweaks over-and-over then running back to the display to see how the last modification affected performance if they could just turn the volume up loud on the device that was running the performance tuner then ideally it would make a different sound when they were in the “acceptable” range then when they were in the “unacceptable” range and they'd easily be able to distinguish this allowing them to stay in one room and make the tweaks continually only stopping when the sound indicated they were successful.
  • FIG. 4 illustrates a UI 400, which is an example of another view of the network throughput. The UI 400 is an example of an easily accessible, detailed view showing valuable historical throughput information as a line graph. This UI also has an “acceptable performance” target line, which is shown at 420 in UI 400.
  • FIGS. 2 and 3 show a clickable button (240 in FIG. 2 and 340 in FIG. 3) that allows for easy access to the detailed view of UI 400. Similarly, FIG. 4 shows a clickable button 440 that allows for easy access to the simplified summary view of UIs 200 and 300.
  • Via a link to one or more websites (on the Internet), the tuner 100 may list the detailed and in-depth suggestions and tips for performance-improving actions. These detailed and in-depth suggestions may be discovered through product support channels. Alternatively, the tuner may present a list or a document with static and/or dynamically generated data. The data details suggestions for actions that Isabel can administer to improve the performance of the network.
  • Examples of suggested performance-improving actions are shown at 230 in UI 200 and 330 in UI 300. Other examples include (by way of example only and not limitation) the following:
      • Move one or more wireless access points (WAPs). Moving the WAP just six inches can make an appreciable difference. If possible, it may be helpful to move a WAP to a different room.
      • Move the set-top box 140. Again, just a small movement of 6-12 inches may make a noticeable difference.
      • Reorient antenna on the one or more WAPs.
      • Reorient antenna on the set-top box 140.
      • Change network topology. For example, modifying the components and/or fundamental structure of the network changes the network topology.
      • Switch to a different wireless network band if possible. For example, a suggestion to change from the popular and inexpensive Wireless-B (IEEE 802.11b) equipment to the newer and, almost five times faster, Wireless-G (IEEE 802.11g) equipment.
      • Change to a different channel within the band. Each wireless network band offers multiple channels. Some may perform better than others.
      • Move obstructions in the path. FIG. 1 shows several obstructions (150 and 152) in the signal path of the home's wireless network. In particular, the depicted obstructions 150 and 152 are houseplants.
      • Adjust interfering items. FIG. 1 shows several microwave oven 160 producing interference waves 162 in the signal path of the home's wireless network. In addition, FIG. 1 shows that a neighbor's wireless network is producing interference 170.
  • After Isabel follows one or more of the suggestions, she watches the tuner's UI to see how her actions affect the current bandwidth measurement. Hopefully, Isabel discovers one or more suggested actions that successfully raise the bandwidth to an acceptable and sustainable level.
  • Once the network throughput reaches a sustainable and acceptable level, Isabel terminates the tuner 100. With the set-top box 140 in this well-tuned wireless network, Isabel and her family watch the TV 142 in the living room 122 and enjoy the great video from the computer 110, which is located in the study 128.
  • As described above, the tuner 100 is integrated with the installation process of the set-top box 140. Of course, in other implementations, the tuner 100 may be available as a standalone utility and may operate separately from the set-top box installation process. Since conditions change in the networking environment (which includes the physical environment in which the network operates), the throughput of the network may change. At any time, Isabel may run the tuner as a standalone utility to help improve network performance.
  • While the discussions herein focus on wireless networks, those of ordinary skill in the art understand and appreciate that the data-communications networks environment is not limited to wireless networks. It is also not limited to a home-networking environment. Therefore, unless the context indicates otherwise, the techniques described herein operate within and on any data-communications network having a bandwidth or throughput, which is capable of being measured.
  • Exemplary Network-Performance Tuner
  • FIG. 5 illustrates operational details of the network-performance tuner 100. Because this is the same tuner 100 discussed and referenced in FIG. 1, the tuner shown in FIG. 5 retains the 100 reference designation. Although the operational components of FIG. 5 are shown as being part of the tuner 100, those of ordinary skill in the art understand that each operational component and sub-component may be incorporated into one or more entities other than the tuner.
  • As shown in FIG. 5, the components of the network-performance tuner 100 include a network-bandwidth quick-tester 510, a network-bandwidth meter 520, a corrective action suggestion mechanism 530, and a network-bandwidth monitor 540.
  • After a set-top box installer 550 has completed (or nearly completed) installation of configuration data and software for the set-top box, the network-bandwidth quick-tester 510 of the tuner 100 takes over. In a short time (e.g., 20-30 seconds), the quick-tester performs a quick evaluation of the bandwidth of a subject network 560 between the tuner and the set-top box.
  • If that quick evaluation indicates that the network's bandwidth is more than sufficient, then the tuner 100 skips the remaining functional components illustrated in FIG. 5. If the evaluated bandwidth is not clearly sufficient, then the network-bandwidth meter 520 begins to perform a more thorough measurement of the network 560 bandwidth. Until terminated, the meter continues to measure bandwidth.
  • A corrective action suggestion mechanism 530 acquires a static document that lists some suggested actions that the user may take to improve network throughput. This static document may be stored on a same computer-readable medium, which is the source of the tuner's installation software. Instead, the suggestion mechanism may acquire the static document from any accessible source (e.g., via the Internet) or it may provide a link to an updatable document located on any accessible source (e.g., via the Internet). Alternatively, the suggestion mechanism 530 may dynamically generate a list of suggested actions from one or more sources (including, for example, websites on the Internet).
  • In the realm of personal computers, an implementation may employ a software user-interface tool to interrogate a user. That tools may be called a “wizard.” This wizard may ask the user questions about things that could affect network performance in an effort to narrow down the list of possible corrective action suggestions. Indeed, the information produced by the wizard aids or directs the suggestion mechanism 530 when it dynamically generates a list of suggested actions from one or more sources For example, the wizard might up-front ask the user if they have an 802.11g or 802.11a wireless network. Based upon the user's responses, the suggestion mechanism 530 knows that some suggestions apply and other do not apply.
  • Furthermore, there may be additional detection software or mechanism that automatically discovers information, properties, and characteristics about the network (without interrogating a user). The suggestion mechanism 530 tailors its suggestions based, at least in part, on the automatically discovered information, properties, and characteristics about the network. For example, detection software may detect that a user is running on an 802.11g network and that the wireless networking “channel” chosen is conflicting with a nearby wireless network. In such an instance, the suggestion mechanism 530 gives the user a very pointed suggestion about changing their wireless networking channel to another channel where no interference is detected.
  • Based upon the list provided by the suggestion mechanism 530 and the present network-bandwidth as measured by the meter 520, the network-bandwidth monitor 540 generates one or more user-interfaces (UIs) on an output device 570 (e.g., a computer monitor). The generated UI presents the list provided by the suggestion mechanism 530 and graphically represents the network-bandwidth as measured by the meter 520. Examples of UIs that may be presented by the network-bandwidth monitor 540 include UIs 200, 300, and 400 as shown in FIGS. 2-4.
  • Methodological Implementation
  • FIG. 6 shows a method 600 performed by the network-performance tuner 100. This methodological implementation may be performed in software, hardware, or a combination thereof. For ease of understanding, the method is delineated as separate steps represented as independent blocks in FIG. 6; however, these separately delineated steps should not be construed as necessarily order dependent in their performance. Additionally, for discussion purposes, the method 600 is described with reference to FIG. 1.
  • At 602 of FIG. 6, the computer 110 completes installation of the wireless multimedia set-top box 140. When the network-performance tuner 100 is functioning standalone, block 602 is skipped.
  • At 604, the tuner 100 performs a quick-test to rapidly evaluate network throughput of a subject network.
  • If, at 606, the tuner 100 determines that the network throughput is clearly sufficient to support heavy data transmission loads, then it terminates the method 600 at 606. Otherwise, the method proceeds to the next block, which is 610. At 610, the tuner 100 informs the user of the possibility of network performance issues.
  • Blocks 612-At 620 form a loop that the tuner 100 performs until the user terminates the loop or some other trigger event (e.g., a timeout) occurs.
  • At 614, the tuner measures network throughput.
  • At 616, the tuner displays the present network throughput via a network performance monitor UI. That UI also displays an indication of the level of throughput necessary to be considered an acceptable level for the desired purpose. For example, the desired purpose may be transmission of HDTV quality multimedia over a wireless network. Each desired purpose may have a pre-defined or a calculated acceptable level.
  • Of course, the network throughput measurement of block 614 and the display of that throughput via a UI of block 616 may occur concurrently.
  • At 618, the tuner displays a list of suggestions for improving network throughput (and/or a link to such suggestions found on a website on the Internet).
  • At 620, the process loops back to block 612. The looping continues until the user terminates the loop or some other trigger (e.g., timeout) occurs.
  • Exemplary Computing System and Environment
  • FIG. 7 illustrates an example of a suitable computing environment 700 within which an exemplary network-performance tuner, such as tuner 100 as described herein, may be implemented (either fully or partially). The computing environment 700 may be utilized in the computer and network architectures described herein.
  • The exemplary computing environment 700 is only one example of a computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the computer and network architectures. Neither should the computing environment 700 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary computing environment 700.
  • The exemplary network-performance tuner may be implemented with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use include, but are not limited to, personal computers, server computers, thin clients, thick clients, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, personal digital assistants (PDA), appliances, special-purpose electronics (e.g., a DVD player), programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
  • The exemplary network-performance tuner may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The exemplary network-performance tuner may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a data-communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
  • The computing environment 700 includes a general-purpose computing device in the form of a computer 702. The components of computer 702 may include, but are not limited to, one or more processors or processing units 704, a system memory 706, and a system bus 708 that couples various system components, including the processor 704, to the system memory 706.
  • The system bus 708 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, such architectures can include a CardBus, Personal Computer Memory Card International Association (PCMCIA), Accelerated Graphics Port (AGP), Small Computer System Interface (SCSI), Universal Serial Bus (USB), IEEE 1394, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnects (PCI) bus, also known as a Mezzanine bus.
  • Computer 702 typically includes a variety of computer-readable media. Such media may be any available media that is accessible by computer 702 and includes both volatile and non-volatile media, removable and non-removable media.
  • The system memory 706 includes computer-readable media in the form of volatile memory, such as random access memory (RAM) 710, and/or non-volatile memory, such as read only memory (ROM) 712. A basic input/output system (BIOS) 714, containing the basic routines that help to transfer information between elements within computer 702, such as during start-up, is stored in ROM 712. RAM 710 typically contains data and/or program modules that are immediately accessible to and/or presently operated on by the processing unit 704.
  • Computer 702 may also include other removable/non-removable, volatile/non-volatile computer storage media. By way of example, FIG. 7 illustrates a hard disk drive 716 for reading from and writing to a non-removable, non-volatile magnetic media (not shown), a magnetic disk drive 718 for reading from and writing to a removable, non-volatile magnetic disk 720 (e.g., a “floppy disk”), and an optical disk drive 722 for reading from and/or writing to a removable, non-volatile optical disk 724 such as a CD-ROM, DVD-ROM, or other optical media. The hard disk drive 716, magnetic disk drive 718, and optical disk drive 722 are each connected to the system bus 708 by one or more data media interfaces 725. Alternatively, the hard disk drive 716, magnetic disk drive 718, and optical disk drive 722 may be connected to the system bus 708 by one or more interfaces (not shown).
  • The disk drives and their associated computer-readable media provide non-volatile storage of computer readable instructions, data structures, program modules, and other data for computer 702. Although the example illustrates a hard disk 716, a removable magnetic disk 720, and a removable optical disk 724, it is to be appreciated that other types of computer-readable media, which may store data that is accessible by a computer, such as magnetic cassettes or other magnetic storage devices, flash memory cards, CD-ROM, digital versatile disks (DVD) or other optical storage, random access memories (RAM), read only memories (ROM), electrically erasable programmable read-only memory (EEPROM), and the like, may also be utilized to implement the exemplary computing system and environment.
  • Any number of program modules may be stored on the hard disk 716, magnetic disk 720, optical disk 724, ROM 712, and/or RAM 710, including, by way of example, an operating system 726, one or more application programs 728, other program modules 730, and program data 732.
  • A user may enter commands and information into computer 702 via input devices such as a keyboard 734 and a pointing device 736 (e.g., a “mouse”). Other input devices 738 (not shown specifically) may include a microphone, joystick, game pad, satellite dish, serial port, scanner, and/or the like. These and other input devices are connected to the processing unit 704 via input/output interfaces 740 that are coupled to the system bus 708, but may be connected by other interface and bus structures, such as a parallel port, game port, or a universal serial bus (USB).
  • A monitor 742 or other type of display device may also be connected to the system bus 708 via an interface, such as a video adapter 744. In addition to the monitor 742, other output peripheral devices may include components, such as speakers (not shown) and a printer 746, which may be connected to computer 702 via the input/output interfaces 740.
  • Computer 702 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computing device 748. By way of example, the remote computing device 748 may be a personal computer, a portable computer, a server, a router, a network computer, a peer device or other common network node, and the like. The remote computing device 748 is illustrated as a portable computer that may include many or all of the elements and features described herein, relative to computer 702.
  • Logical connections between computer 702 and the remote computer 748 are depicted as a local area network (LAN) 750 and a general wide area network (WAN) 752. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and the Internet. Such networking environments may be wired or wireless.
  • When implemented in a LAN networking environment, the computer 702 is connected to a local network 750 via a network interface or adapter 754. When implemented in a WAN networking environment, the computer 702 typically includes a modem 756 or other means for establishing communications over the wide network 752. The modem 756, which may be internal or external to computer 702, may be connected to the system bus 708 via the input/output interfaces 740 or other appropriate mechanisms. It is to be appreciated that the illustrated network connections are exemplary and that other means of establishing communication link(s) between the computers 702 and 748 may be employed.
  • In a networked environment, such as that illustrated with computing environment 700, program modules depicted, relative to the computer 702 or portions thereof, may be stored in a remote memory storage device. By way of example, remote application programs 758 reside on a memory device of remote computer 748. For purposes of illustration, application programs and other executable program components, such as the operating system, are illustrated herein as discrete blocks, although it is recognized that such programs and components reside at various times in different storage components of the computing device 702, and are executed by the data processor(s) of the computer.
  • Computer-Executable Instructions
  • An implementation of an exemplary network-performance tuner may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Typically, the functionality of the program modules may be combined or distributed as desired in various embodiments.
  • Exemplary Operating Environment
  • FIG. 7 illustrates an example of a suitable operating environment 700 in which an exemplary network-performance tuner may be implemented. Specifically, the exemplary network-performance tuner(s) described herein may be implemented (wholly or in part) by any program modules 728-730 and/or operating system 726 in FIG. 7 or a portion thereof.
  • The operating environment is only an example of a suitable operating environment and is not intended to suggest any limitation as to the scope or use of functionality of the exemplary network-performance tuner(s) described herein. Other well known computing systems, environments, and/or configurations that are suitable for use include, but are not limited to, personal computers (PCs), server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, programmable consumer electronics, wireless phones and equipment, general and special-purpose appliances, application-specific integrated circuits (ASICs), network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
  • Computer-Readable Media
  • An implementation of an exemplary network-performance tuner may be stored on or transmitted across some form of computer-readable media. Computer-readable media may be any available media that may be accessed by a computer. By way of example, computer-readable media may comprise, but is not limited to, “computer storage media” and “communications media.”
  • “Computer storage media” include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules, or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which may be used to store the desired information and which may be accessed by a computer.
  • “Communication media” typically embodies computer-readable instructions, data structures, program modules, or other data in a modulated data signal, such as carrier wave or other transport mechanism. Communication media also includes any information delivery media.
  • CONCLUSION
  • The techniques, described herein, may be implemented in many ways, including (but not limited to) program modules, general- and special-purpose computing systems, network servers and equipment, dedicated electronics and hardware, and as part of one or more computer networks. The techniques may, for example, be implemented on a computer system depicted in FIG. 7.
  • Although the one or more above-described implementations have been described in language specific to structural features and/or methodological steps, it is to be understood that other implementations may be practiced without the specific features or steps described. Rather, the specific features and steps are disclosed as preferred forms of one or more implementations.

Claims (20)

1. A method facilitating improvements in throughput of a data-communications network, the method comprising the acts of:
measuring throughput over a data-communications network and between at least two endpoints on the network;
displaying a graphical representation depicting the present throughput of the network as it is measured by the measuring act, the graphical representation having an identified target throughput threshold, the threshold being indicative of an acceptable level of throughput for the network.
2. A method as recited in claim 1, wherein the data-communications network contains a wireless network.
3. A method as recited in claim 1, wherein the data-communications network contains a wireless network located in a home, a home being a dwelling primarily used as a residence for one or more families.
4. A method as recited in claim 1, wherein identified target throughput threshold is part of an identified target throughput range.
5. A method as recited in claim 1, wherein the acceptable level of throughput for the network is based upon transmission of high fidelity multimedia data over the network.
6. A method as recited in claim 1 further comprising installing software and setting configuration data for a network-coupled multimedia set-top.
7. A method as recited in claim 1 further comprising displaying a list of suggested actions that a user may take to improve throughput of the data-communications network.
8. A method as recited in claim 1 further comprising providing a link to a network accessible document which lists suggested actions that a user may take to improve throughput of the data-communications network.
9. A method as recited in claim 1 further comprising displaying a graphical representation depicting the throughput of the network over time as it was measured by the measuring act, the graphical representation having an identified target throughput threshold, the threshold being indicative of an acceptable level of throughput for the network.
10. A method as recited in claim 1, wherein the graphic representation depicting the measured throughput of the network is a bar graph.
11. A method as recited in claim 1 further comprising:
determining properties of the data-communications network and between at least two endpoints on the network, wherein such properties may affect network throughput;
based upon the determined properties, generating one of suggestions for corrective actions which may improve the throughput of the data-communications network and between at least two endpoints on the network.
12. A method facilitating improvements in bandwidth of a data-communications network, the method comprising the acts of:
performing a quick-test bandwidth measurement of bandwidth over a data-communications network and between at least two endpoints on the network, the quick-test measurement being a short-term evaluation of bandwidth over the network and between the two endpoints, wherein the performing act occurs over a short and defined time-period;
determining whether the quick-test bandwidth measurement exceeds a defined quick-test threshold;
if the quick-test bandwidth measurement falls below the defined quick-test threshold, then performing acts comprising:
measuring bandwidth over the network and between the two endpoints on the network, wherein the measuring act occurs over an indefinite time-period;
displaying a graphical representation depicting the present bandwidth of the network as it is measured by the measuring act, the graphical representation having an identified target bandwidth range, the range being indicative of an acceptable level of bandwidth for the network.
13. A method as recited in claim 12, wherein the data-communications network contains a wireless network located in a home, a home being a dwelling primarily used as a residence for one or more families.
14. A method as recited in claim 12, wherein the defined quick-test threshold and the acceptable level of bandwidth for the network are based upon transmission of high fidelity multimedia data over the network.
15. A method as recited in claim 12 further comprising installing software and setting configuration data for a network-coupled multimedia set-top.
16. A method as recited in claim 12 further comprising displaying a list of suggested actions that a user may take to improve bandwidth of the data-communications network.
17. A method as recited in claim 12 further comprising providing a link to a network accessible document which lists suggested actions that a user may take to improve bandwidth of the data-communications network.
18. A method as recited in claim 12 further comprising displaying a graphical representation depicting the bandwidth of the network over time as it was measured by the measuring act, the graphical representation having an identified target bandwidth range, the range being indicative of an acceptable level of bandwidth for the network.
19. A method as recited in claim 12 further comprising:
determining properties of the data-communications network and between at least two endpoints on the network, wherein such properties may affect network throughput;
based upon the determined properties, generating one of suggestions for corrective actions which may improve the throughput of the data-communications network and between at least two endpoints on the network.
20. One or more computer-readable media having computer-executable instructions thereon that, when executed by a computer, perform a method comprising the acts of:
measuring bandwidth over a data-communications network and between at least two endpoints on the network, wherein the measuring act occurs over an indefinite time-period;
displaying a graphical representation depicting the present bandwidth of the network as it is measured by the measuring act, the graphical representation having an identified target bandwidth threshold, the threshold being indicative of an acceptable level of bandwidth for the network.
US11/053,968 2005-02-09 2005-02-09 Network performance tuner Expired - Fee Related US7940686B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/053,968 US7940686B2 (en) 2005-02-09 2005-02-09 Network performance tuner

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/053,968 US7940686B2 (en) 2005-02-09 2005-02-09 Network performance tuner

Publications (2)

Publication Number Publication Date
US20060176827A1 true US20060176827A1 (en) 2006-08-10
US7940686B2 US7940686B2 (en) 2011-05-10

Family

ID=36779814

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/053,968 Expired - Fee Related US7940686B2 (en) 2005-02-09 2005-02-09 Network performance tuner

Country Status (1)

Country Link
US (1) US7940686B2 (en)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070237036A1 (en) * 2006-03-09 2007-10-11 Takashi Koya Playing state presentation system, playing state presentation device, playing state presentation method, and plying state presentation program
US20070250571A1 (en) * 2006-04-07 2007-10-25 Griffin Paul P Jr Method and apparatus for interfacing a network with a television or stereo for enhanced access of media content
US20080146155A1 (en) * 2006-12-15 2008-06-19 Motorola, Inc. Method and system for reliable detection and avoidance of periodic intermittent interference
US20080146156A1 (en) * 2006-12-15 2008-06-19 Motorola, Inc. Method and system for predictive sensing of periodic intermittent interference
US20080181123A1 (en) * 2007-01-31 2008-07-31 Alexander Lisheng Huang Methods and apparatus to manage network testing procedures
US20090086684A1 (en) * 2007-10-02 2009-04-02 Motorola, Inc. Method for Preventing Co-Channel Operation with Radar Systems
US20120176648A1 (en) * 2005-05-30 2012-07-12 Canon Kabushiki Kaisha System having electronic device with multiple interfaces and host apparatus, information processing device, electronic device, and setup method, control method and program therefor
US20130088990A1 (en) * 2007-08-23 2013-04-11 At&T Intellectual Property I, Lp Methods, Devices and Computer Readable Media for Providing Quality of Service Indicators
US20140162625A1 (en) * 2011-08-12 2014-06-12 Motorola Mobility Llc Method and apparatus for media property of characteristic control in a media system
US20140247735A1 (en) * 2013-03-04 2014-09-04 Fujitsu Limited Network monitoring system
US8920234B2 (en) 2012-12-06 2014-12-30 Steelseries Aps Method and apparatus for presenting information associated with a game
US20150156085A1 (en) * 2013-12-02 2015-06-04 Google Inc. Method for measuring end-to-end internet application performance
US20150304187A1 (en) * 2014-04-17 2015-10-22 Invent.ly LLC Bandwidth Management in Local Premise Networks
CN105027087A (en) * 2012-12-17 2015-11-04 微软技术许可有限责任公司 Operation speed as a dynamic level line
US20160132358A1 (en) * 2014-11-06 2016-05-12 Vmware, Inc. Peripheral device sharing across virtual machines running on different host computing systems
US9456051B2 (en) 2006-12-15 2016-09-27 At&T Intellectual Property I, L.P. Device, system and method for recording personal encounter history

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8433278B2 (en) * 2007-10-31 2013-04-30 Research In Motion Limited System and method for selecting a message transport for a multi-mode communication device
US8593982B1 (en) * 2010-11-02 2013-11-26 Sprint Spectrum L.P. Method and system for optimizing a performance indicator log mask
US10097989B2 (en) 2012-12-21 2018-10-09 E*Trade Financial Corporation Dynamic communication
US9992306B2 (en) 2012-12-21 2018-06-05 E*Trade Financial Corporation Dynamic execution
KR20200054565A (en) * 2018-11-12 2020-05-20 삼성전자주식회사 Electronic device and control method thereof

Citations (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5467341A (en) * 1994-04-14 1995-11-14 Toshiba America Information Systems, Inc. Apparatus and method for alerting computer users in a wireless LAN of a service area transition
US5867483A (en) * 1996-11-12 1999-02-02 Visual Networks, Inc. Method and apparatus for measurement of peak throughput in packetized data networks
US6011868A (en) * 1997-04-04 2000-01-04 Hewlett-Packard Company Bitstream quality analyzer
US6233226B1 (en) * 1998-12-14 2001-05-15 Verizon Laboratories Inc. System and method for analyzing and transmitting video over a switched network
US6285660B1 (en) * 1999-07-15 2001-09-04 At&T Corp. User network control
US20020009060A1 (en) * 2000-05-05 2002-01-24 Todd Gross Satellite transceiver card for bandwidth on demand applications
US20030012217A1 (en) * 1999-10-29 2003-01-16 Christoffer Andersson Channel-type switching to a common channel based on common channel load
US20030028891A1 (en) * 2001-08-03 2003-02-06 General Instrument Corporation System and method for diagnosing RF signal strength at a set-top terminal
US20030055604A1 (en) * 1998-12-29 2003-03-20 Skidmore Roger R. System and method for measuring and monitoring wireless network performance in campus and indoor environments
US6538656B1 (en) * 1999-11-09 2003-03-25 Broadcom Corporation Video and graphics system with a data transport processor
US6636533B1 (en) * 1999-02-22 2003-10-21 International Business Machines Corporation Method for distributing digital TV signal and selection of content
US20040015755A1 (en) * 2002-07-22 2004-01-22 Finisar Corporation Scalable scatter/gather I/O testing tool
US6735553B1 (en) * 2000-07-13 2004-05-11 Netpredict, Inc. Use of model calibration to achieve high accuracy in analysis of computer networks
US20040143428A1 (en) * 2003-01-22 2004-07-22 Rappaport Theodore S. System and method for automated placement or configuration of equipment for obtaining desired network performance objectives
US20040148138A1 (en) * 2002-03-09 2004-07-29 Katrina Garnett System, method and model for autonomic management of enterprise applications
US6785292B1 (en) * 1999-05-28 2004-08-31 3Com Corporation Method for detecting radio frequency impairments in a data-over-cable system
US20050015644A1 (en) * 2003-06-30 2005-01-20 Microsoft Corporation Network connection agents and troubleshooters
US6850736B2 (en) * 2000-12-21 2005-02-01 Tropian, Inc. Method and apparatus for reception quality indication in wireless communication
US6990313B1 (en) * 2002-03-14 2006-01-24 Sprint Communications Company L.P. Wireless repeater with intelligent signal display
US20060082444A1 (en) * 2004-10-19 2006-04-20 Alysis Interactive Corporation Management system for enhanced RFID system performance
US7203169B1 (en) * 2001-12-20 2007-04-10 Packeteer, Inc. Interface facilitating configuration of network resource utilization
US7305464B2 (en) * 2002-09-03 2007-12-04 End Ii End Communications, Inc. Systems and methods for broadband network optimization

Patent Citations (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5467341A (en) * 1994-04-14 1995-11-14 Toshiba America Information Systems, Inc. Apparatus and method for alerting computer users in a wireless LAN of a service area transition
US5867483A (en) * 1996-11-12 1999-02-02 Visual Networks, Inc. Method and apparatus for measurement of peak throughput in packetized data networks
US6011868A (en) * 1997-04-04 2000-01-04 Hewlett-Packard Company Bitstream quality analyzer
US6233226B1 (en) * 1998-12-14 2001-05-15 Verizon Laboratories Inc. System and method for analyzing and transmitting video over a switched network
US20030055604A1 (en) * 1998-12-29 2003-03-20 Skidmore Roger R. System and method for measuring and monitoring wireless network performance in campus and indoor environments
US7096160B2 (en) * 1998-12-29 2006-08-22 Wireless Valley Communications, Inc. System and method for measuring and monitoring wireless network performance in campus and indoor environments
US6636533B1 (en) * 1999-02-22 2003-10-21 International Business Machines Corporation Method for distributing digital TV signal and selection of content
US6785292B1 (en) * 1999-05-28 2004-08-31 3Com Corporation Method for detecting radio frequency impairments in a data-over-cable system
US6285660B1 (en) * 1999-07-15 2001-09-04 At&T Corp. User network control
US20030012217A1 (en) * 1999-10-29 2003-01-16 Christoffer Andersson Channel-type switching to a common channel based on common channel load
US6538656B1 (en) * 1999-11-09 2003-03-25 Broadcom Corporation Video and graphics system with a data transport processor
US20020009060A1 (en) * 2000-05-05 2002-01-24 Todd Gross Satellite transceiver card for bandwidth on demand applications
US6735553B1 (en) * 2000-07-13 2004-05-11 Netpredict, Inc. Use of model calibration to achieve high accuracy in analysis of computer networks
US6850736B2 (en) * 2000-12-21 2005-02-01 Tropian, Inc. Method and apparatus for reception quality indication in wireless communication
US20030028891A1 (en) * 2001-08-03 2003-02-06 General Instrument Corporation System and method for diagnosing RF signal strength at a set-top terminal
US7203169B1 (en) * 2001-12-20 2007-04-10 Packeteer, Inc. Interface facilitating configuration of network resource utilization
US20040148138A1 (en) * 2002-03-09 2004-07-29 Katrina Garnett System, method and model for autonomic management of enterprise applications
US6990313B1 (en) * 2002-03-14 2006-01-24 Sprint Communications Company L.P. Wireless repeater with intelligent signal display
US20040015755A1 (en) * 2002-07-22 2004-01-22 Finisar Corporation Scalable scatter/gather I/O testing tool
US7305464B2 (en) * 2002-09-03 2007-12-04 End Ii End Communications, Inc. Systems and methods for broadband network optimization
US20040143428A1 (en) * 2003-01-22 2004-07-22 Rappaport Theodore S. System and method for automated placement or configuration of equipment for obtaining desired network performance objectives
US20050015644A1 (en) * 2003-06-30 2005-01-20 Microsoft Corporation Network connection agents and troubleshooters
US20060082444A1 (en) * 2004-10-19 2006-04-20 Alysis Interactive Corporation Management system for enhanced RFID system performance

Cited By (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120176648A1 (en) * 2005-05-30 2012-07-12 Canon Kabushiki Kaisha System having electronic device with multiple interfaces and host apparatus, information processing device, electronic device, and setup method, control method and program therefor
US9100841B2 (en) * 2005-05-30 2015-08-04 Canon Kabushiki Kaisha System having electronic device with multiple interfaces and host apparatus, information processing device, electronic device, and setup method, control method and program therefor
US20070237036A1 (en) * 2006-03-09 2007-10-11 Takashi Koya Playing state presentation system, playing state presentation device, playing state presentation method, and plying state presentation program
US8239049B2 (en) * 2006-03-09 2012-08-07 Sony Corporation Playing state presentation system, playing state presentation device, playing state presentation method, and playing state presentation program
US20070250571A1 (en) * 2006-04-07 2007-10-25 Griffin Paul P Jr Method and apparatus for interfacing a network with a television or stereo for enhanced access of media content
US20080146156A1 (en) * 2006-12-15 2008-06-19 Motorola, Inc. Method and system for predictive sensing of periodic intermittent interference
US8050627B2 (en) 2006-12-15 2011-11-01 Motorola Mobility, Inc. Method and system for predictive sensing of periodic intermittent interference
US10785599B2 (en) 2006-12-15 2020-09-22 At&T Intellectual Property I, L.P. Device, system and method for recording personal encounter history
US10271164B2 (en) 2006-12-15 2019-04-23 At&T Intellectual Property I, L.P. Device, system and method for recording personal encounter history
US20080146155A1 (en) * 2006-12-15 2008-06-19 Motorola, Inc. Method and system for reliable detection and avoidance of periodic intermittent interference
US9456051B2 (en) 2006-12-15 2016-09-27 At&T Intellectual Property I, L.P. Device, system and method for recording personal encounter history
US20080181123A1 (en) * 2007-01-31 2008-07-31 Alexander Lisheng Huang Methods and apparatus to manage network testing procedures
US20130088990A1 (en) * 2007-08-23 2013-04-11 At&T Intellectual Property I, Lp Methods, Devices and Computer Readable Media for Providing Quality of Service Indicators
US8179862B2 (en) 2007-10-02 2012-05-15 Motorola Mobility, Inc. Method for preventing co-channel operation with radar systems
US20090086684A1 (en) * 2007-10-02 2009-04-02 Motorola, Inc. Method for Preventing Co-Channel Operation with Radar Systems
US10244093B2 (en) * 2011-08-12 2019-03-26 Google Technology Holdings LLC Method and apparatus for media property or characteristic control in a media system
US9686396B2 (en) * 2011-08-12 2017-06-20 Google Technology Holdings LLC Method and apparatus for media property of characteristic control in a media system
US11665272B2 (en) * 2011-08-12 2023-05-30 Google Technology Holdings LLC Method and apparatus for media property or characteristic control in a media system
US11005985B2 (en) 2011-08-12 2021-05-11 Google Technology Holdings LLC Method and apparatus for media property or characteristic control in a media system
US20140162625A1 (en) * 2011-08-12 2014-06-12 Motorola Mobility Llc Method and apparatus for media property of characteristic control in a media system
US20210258416A1 (en) * 2011-08-12 2021-08-19 Google Technology Holdings LLC Method and apparatus for media property or characteristic control in a media system
US9876887B2 (en) * 2011-08-12 2018-01-23 Google Llc Method and apparatus for media property or characteristic control in a media system
US20170251091A1 (en) * 2011-08-12 2017-08-31 Google Technology Holdings LLC Method and apparatus for media property or characteristic control in a media system
US9289689B2 (en) 2012-12-06 2016-03-22 Steelseries Aps Method and apparatus for presenting information associated with a game
US8920234B2 (en) 2012-12-06 2014-12-30 Steelseries Aps Method and apparatus for presenting information associated with a game
CN105027087A (en) * 2012-12-17 2015-11-04 微软技术许可有限责任公司 Operation speed as a dynamic level line
US9591504B2 (en) * 2013-03-04 2017-03-07 Fujitsu Limited Network monitoring system
CN104038382A (en) * 2013-03-04 2014-09-10 富士通株式会社 Network monitoring system
US20140247735A1 (en) * 2013-03-04 2014-09-04 Fujitsu Limited Network monitoring system
US10771355B2 (en) * 2013-12-02 2020-09-08 Google Llc Method for measuring end-to-end internet application performance
US20190260650A1 (en) * 2013-12-02 2019-08-22 Google Llc Method for measuring end-to-end internet application performance
US20150156085A1 (en) * 2013-12-02 2015-06-04 Google Inc. Method for measuring end-to-end internet application performance
US10284439B2 (en) * 2013-12-02 2019-05-07 Google Llc Method for measuring end-to-end internet application performance
US20210105195A1 (en) * 2013-12-02 2021-04-08 Google Llc Method for measuring end-to-end internet application performance
US11743148B2 (en) * 2013-12-02 2023-08-29 Google Llc Method for measuring end-to-end internet application performance
US20150304187A1 (en) * 2014-04-17 2015-10-22 Invent.ly LLC Bandwidth Management in Local Premise Networks
US10067800B2 (en) * 2014-11-06 2018-09-04 Vmware, Inc. Peripheral device sharing across virtual machines running on different host computing systems
US20160132358A1 (en) * 2014-11-06 2016-05-12 Vmware, Inc. Peripheral device sharing across virtual machines running on different host computing systems

Also Published As

Publication number Publication date
US7940686B2 (en) 2011-05-10

Similar Documents

Publication Publication Date Title
US7940686B2 (en) Network performance tuner
US7878907B2 (en) Real-time HD TV/video IP streaming to a game console
US7693869B2 (en) Method and apparatus for using item dwell time to manage a set of items
KR101436771B1 (en) Capture and recall of home entertainment system session
US8914529B2 (en) Dynamically adapting media content streaming and playback parameters for existing streaming and playback conditions
US20070245028A1 (en) Configuring content in an interactive media system
US20070234327A1 (en) Configuring media applications based on performance characteristics
US9361787B2 (en) Information processing apparatus, information processing method, program control target device, and information processing system
US20140196094A1 (en) Method and apparatus for automatically switching channels
US20080313555A1 (en) Scalable User Interface
US8891015B2 (en) Electronic apparatus and display control method
JP2007158758A (en) Apparatus setting system and apparatus setting method
US20070233694A1 (en) Configuring interactive media systems based on performance metrics
US20140172556A1 (en) Method and apparatus to provide advertisement data based on device information and operational information of apparatuses
JP4294473B2 (en) Recommendation system with user selectable input limiting factor and output maturity indicator
JP5649861B2 (en) Display device, system, control method, program, and recording medium
US7007234B2 (en) Method and apparatus for performing a set up operation for a video system
US20150097972A1 (en) Mechanism for Facilitating Dynamic Phase Detection With High Jitter Tolerance for Images of Media Streams
WO2011048505A1 (en) A method circuit and system for detecting a connection request while maintaining a low power mode
US20150067742A1 (en) Method and system for context based splitting and transmission of broadcast content
KR20140090066A (en) Method and apparatus for automatically switching channel

Legal Events

Date Code Title Description
AS Assignment

Owner name: MICROSOFT CORPORATION, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LEHEW, CHRISTIAN R.;PYLE, HARRY S.;REEL/FRAME:015914/0196

Effective date: 20050208

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034543/0001

Effective date: 20141014

AS Assignment

Owner name: SERVICENOW, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT TECHNOLOGY LICENSING, LLC;REEL/FRAME:047681/0916

Effective date: 20181115

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20190510

AS Assignment

Owner name: SERVICENOW, INC., CALIFORNIA

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE RECORDAL TO REMOVE INADVERTENTLY RECOREDED PROPERTIES SHOWN IN ATTACHED SHEET PREVIOUSLY RECORDED AT REEL: 047681 FRAME: 0916. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT;ASSIGNOR:MICROSOFT TECHNOLOGY LICENSING, LLC;REEL/FRAME:049797/0119

Effective date: 20181115