WO2001061944A1 - System and method for transferring data over a network - Google Patents
System and method for transferring data over a network Download PDFInfo
- Publication number
- WO2001061944A1 WO2001061944A1 PCT/US2001/004885 US0104885W WO0161944A1 WO 2001061944 A1 WO2001061944 A1 WO 2001061944A1 US 0104885 W US0104885 W US 0104885W WO 0161944 A1 WO0161944 A1 WO 0161944A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- network
- data
- level
- utilization
- actual
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0882—Utilisation of link capacity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/11—Identifying congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/15—Flow control; Congestion control in relation to multipoint traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/62—Establishing a time schedule for servicing the requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/022—Capturing of monitoring data by sampling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0888—Throughput
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/106—Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Definitions
- the present invention relates to computer software and, more particularly, to a system and method for transferring data over a network such as the Internet.
- a computer system in which one or more client machines communicate with one or more servers over a network is a common arrangement.
- PCs personal computers
- Many of these PC users acquire new or updated software on their
- PCs by downloading the software from a remote server over the Internet.
- Providing software updates is beneficial to PC users because it corrects problems and improves the performance of their PCs. Additionally, the software vendor benefits from a reduction in the number of product support calls, which in turn reduces the substantial resources the vendor might otherwise allocate to handling such calls.
- Microsoft Corporation provides a software update service in connection with its MICROSOFT WINDOWS family of operating system products under the mark "WINDOWS UPDATE".
- WINDOWS UPDATE By accessing the "WINDOWS UPDATE" Internet website, MICROSOFT WINDOWS users can have their system evaluated and download both critical and non-critical software updates (e.g., a fix or a patch) over the Internet.
- critical and non-critical software updates e.g., a fix or a patch
- the user is notified that such updates are available, and the user is prompted to select one or more of them for downloading over the Internet. While this is a convenient method for providing software updates to users, such downloads could interfere with other network activity.
- the present invention is directed to a method of transferring a set of data over a network.
- the method includes the steps of monitoring the level of actual network bandwidth utilization and identifying a maximum monitored level of actual utilization. Then, the method calculates a threshold level of utilization as a function of the maximum monitored level of utilization. If the actual level is less than the threshold level, at least a portion of the set of data is received over the network.
- Another aspect of the present invention is directed to a computer- readable medium having stored thereon a data structure which includes a first data field and a second data field.
- the first data field contains data representing a maximum monitored level of actual network bandwidth utilization.
- the second data field contains data representing a threshold level of network bandwidth utilization below which data may be transferred over the network without interfering with other network activity.
- the second data field is derived from the first data field by calculating the threshold level as a function of the maximum monitored level.
- Yet another aspect of the present invention involves a computer- readable medium having computer-executable components for managing the transfer of data over a network.
- the first component is a bandwidth monitoring component which monitors the level of actual bandwidth utilization for a network connection and identifies a maximum monitored level of utilization.
- the second component is a threshold calculating component which calculates a threshold level of utilization as a function of the maximum monitored level of utilization identified by the first component.
- the third component is a transfer management component which manages the transfer of data over the network when the level of actual bandwidth utilization is less than the threshold level of utilization.
- Still another aspect of the present invention is directed to a method of communicating between a client process and a server process over a network.
- the method includes issuing to the server process a first download request which identifies a file and which requests that the server process download a first segment of the file over the network.
- the method also includes downloading, by the server process, the first segment of the file.
- the method issues to the server process a further download request which is associated with the file and which requests that the server process download a further segment of the file over the network, provided the actual network bandwidth utilization is less than a threshold level.
- the method further includes downloading, by the server process, the further segment of the file.
- the method includes repeating the step of issuing a further download request and the step of downloading the further segment until the server process has downloaded each segment of the file over the network.
- an aspect is directed to a method of transferring a set of data over a network.
- the method includes the steps of monitoring the level of actual network bandwidth utilization and identifying an average monitored level of actual utilization. Then, the method calculates the size of a data block to be transferred as a function of current activity and bandwidth threshold. A block of the computed size is then downloaded .
- Another aspect of an alternate embodiment of present invention is directed to a computer-readable medium having stored thereon a data structure which includes a first data field and a second data field.
- the first data field contains data representing a timestamp corresponding to the sample time of network utilization.
- the second data field contains data representing the total number of bytes that have passed through the network adapter.
- Yet another aspect of an alternate embodiment of the present invention involves a computer-readable medium having computer-executable components for managing the transfer of data over a network.
- the first component is a bandwidth monitoring component which monitors the level of actual bandwidth utilization for a network connection and identifies an average monitored level of utilization.
- the second component is a transfer block size calculating component which calculates the block size to be transferred based on utilization as a function of the average level of utilization identified by the first component.
- the third component is a transfer management component which manages the transfer of data over the network at the computed block size.
- Still another aspect of an alternate embodiment of the present invention is directed to a method of continuously refining network speed computations and consequently data block size computations.
- the method includes sampling network usage at intervals, and computing a moving average of the obtained speeds over a number of samples. The most recent sample is given a heavier weighting in the averaging computation.
- the sampling interval of the network is adjusted based on the speed of the network.
- FIG. 1 is a block diagram of a suitable computing system environment for use in implementing the present invention
- FIG. 2 is a block diagram of a system including a client machine which communicates with a server over a network;
- FIG. 3 is a block diagram similar to FIG. 2 but with first and second client machines connected to one another via an intranet;
- FIG. 4 is a diagram illustrating network bandwidth utilization over time with a curve representing the actual network bandwidth utilization and a broken line representing a threshold level of utilization calculated in accordance with the present invention;
- FIG. 5 is a block diagram illustrating the architecture of a client machine in accordance with the present invention.
- FIG. 6 is a block diagram of a data structure according to the present invention.
- FIG. 7 is a flowchart representative of a computer program for transferring data over a network in accordance with the present invention.
- FIG. 8 is a diagram illustrating network bandwidth utilization over time with a solid curve representing the actual network bandwidth utilization and broken line curve representing the observed transfer rate between client and server, and the data flow rate through the network in accordance with a further embodiment of the present invention
- FIG. 9 is a block diagram of a data structure according to the further embodiment of the present invention.
- FIG. 10 is a flowchart representative of a computer program for transferring data over a network in accordance with the further embodiment of the present invention.
- the present invention provides a system and method for transferring data over a network such as the Internet.
- FIG. 1 illustrates an example of a suitable computing system environment in which the invention may be implemented.
- the computing system environment is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Neither should the computing environment be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment.
- the invention is operational 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 with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
- the invention 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 invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
- program modules may be located in both local and remote computer storage media including memory storage devices.
- an exemplary system for implementing the invention includes a general purpose computing device in the form of a computer 20.
- Components of computer 20 include, but are not limited to, a processing unit 22, a system memory 24, and a system bus 26 that couples various system components including the system memory to the processing unit 22.
- the system bus 26 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures.
- such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus.
- ISA Industry Standard Architecture
- MCA Micro Channel Architecture
- EISA Enhanced ISA
- VESA Video Electronics Standards Association
- PCI Peripheral Component Interconnect
- Computer 20 typically includes a variety of computer readable media.
- Computer readable media can be any available media that can be accessed by computer 20 and includes both volatile and nonvolatile media, removable and non-removable media.
- Computer readable media may comprise computer storage media and communication media.
- Computer storage media includes both volatile and nonvolatile, 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 disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 20.
- Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media.
- modulated data signal means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
- communication media includes wired media such as a wired network or direct wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
- the system memory 24 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 28 and random access memory (RAM) 30.
- ROM read only memory
- RAM random access memory
- BIOS basic input/output system
- RAM 30 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 22.
- FIG. 1 illustrates operating system 46, application programs 48, other program modules 50, and program data 52.
- the computer 20 may also include other removable/non-removable, volatile/nonvolatile computer storage media.
- FIG. 1 illustrates a hard disk drive 34 that reads from or writes to non-removable, nonvolatile magnetic media, a magnetic disk drive 36 that reads from or writes to removable, nonvolatile magnetic disk 38, and an optical disk drive 40 that reads from or writes to a removable, nonvolatile optical disk 42 such as a CD ROM or other optical media.
- removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital video disks, digital video tape, Bernoulli cartridges, solid state RAM, solid state ROM, and the like.
- the hard disk drive 34, magnetic disk drive 36, and optical disk drive 40 are typically connected to the system bus 26 by a Small Computer System Interface (SCSI) 44.
- SCSI Small Computer System Interface
- the hard disk drive 34, magnetic disk drive 36 and optical disk drive 40 may be connected to the system bus 26 by a hard disk drive interface, a magnetic disk drive interface, and an optical drive interface, respectively.
- hard disk drive 34 is illustrated as storing operating system 46, application programs 48, other program modules 50, and program data 52. Note that these components can either be the same as or different from operating system 46, application programs 48, other program modules 50, and program data 52.
- a user may enter commands and information into the computer 20 through input devices such as a keyboard 54 and pointing device 56, commonly referred to as a mouse, trackball or touch pad.
- Other input devices may include a microphone, joystick, game pad, satellite dish, scanner, or the like.
- a user input interface 58 or a serial port interface 60 that is coupled to the system bus, 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 61 or other type of display device is also connected to the system bus 26 via an interface, such as a video adapter 62.
- computers may also include other peripheral output devices such as speakers and printers, which may be connected through an output peripheral interface.
- the computer 20 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 64.
- the remote computer 64 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 20, although only a memory storage device has been illustrated in FIG. 1.
- the logical connections depicted in FIG. 1 include a local area network (LAN) 66 and a wide area network (WAN) 68, but may also include other networks.
- LAN local area network
- WAN wide area network
- Such networking environments are commonplace in offices, enterprise- wide computer networks, intranets and the Internet.
- the computer 20 When used in a LAN networking environment, the computer 20 is connected to the LAN 66 through a network interface or adapter 70. When used in a WAN networking environment, the computer 20 typically includes a modem 72 or other means for establishing communications over the WAN 68, such as the Internet.
- the modem 72 which may be internal or external, may be connected to the system bus 26 via the serial port interface 60 or other appropriate mechanism.
- program modules depicted relative to the computer 20, or portions thereof may be stored in the remote memory storage device.
- FIG. 1 illustrates remote application programs 48 as residing on memory device 64. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
- program modules such as the operating system 46, application programs 48 and data 52 are provided to the computer 20 via one of its memory storage devices, which may include ROM 28, RAM 30, hard disk drive 34, magnetic disk drive 36 or optical disk drive 40.
- the hard disk drive 34 is used to store data 52 and programs, including the operating system 46 and application programs 48.
- the BIOS 32 which is stored in the ROM 28 instructs the processing unit 22 to load the operating system from the hard disk drive 34 into the RAM 30.
- the processing unit 22 executes the operating system code and causes the visual elements associated with the user interface of the operating system 46 to be displayed on the monitor 61.
- an application program 48 is opened by a user, the program code and relevant data are read from the hard disk drive 34 and stored in RAM 30.
- an exemplary system for practicing the present invention is designated generally by reference numeral 74.
- the system 74 includes a client machine such as a PC 76 and a communications device 78 such as a modem for accessing a network 80 (e.g., the Internet).
- a server 82 is also connected to the network 80 in a conventional manner.
- the PC 76 and modem 78 establish a connection with the server 82 over the network 80 to facilitate the transfer of data between the client and the server.
- a system 84 set forth in FIG. 3 is similar to the system 74 of FIG. 2, except that the system 84 includes a first client 86A and a second client 86B which are connected to one another over a link 88 such as an intranet.
- the communications device 78 (e.g., a modem) establishes a connection between the first client 86A and the network 80. Accordingly, the clients 86A, 86B can exchange data with the server 82 over the network 80.
- any number of client and server machines may be connected to the network 80 (either directly or indirectly).
- the system 84 could include more than two client machines, one of which would act as a proxy for the others.
- the client machines could be connected to one another over an intranet, and the network card in the proxy machine could be connected to a router which is linked to the network 80 over a Tl line.
- the network 80 could be the Internet or any other public or private network.
- the communications device 78 may be part of the PC 76 or an independent hardware device.
- the client machine is the PC 76
- the device 78 is a 56 Kbps (Kilobits per second) modem
- the network 80 is the Internet
- the server 82 is a website accessible over the Internet for downloading software updates for the operating system of the PC.
- a curve 90 represents the level of actual network bandwidth utilization for a client PC accessing the Internet over a period of time.
- the curve 90 rises from TQ through T2 to reflect the flurry of network activity which typically occurs as the user initially accesses the Internet. Then, after a brief decrease in network activity at T3, the client's actual utilization again rises dramatically to a peak at T4.
- This peak could represent any number of possible actions initiated by the client, such as the downloading of a webpage or the opening of an email message. While the user at the client machine reads the web page or the email message, or perhaps listens to music over the Internet, the actual network utilization decreases to a significantly lower level from T5 through
- network idle The relatively low level of actual network bandwidth utilization shown from T5 through Tg (FIG. 4) is sometimes referred to as "network idle.” This concept differs from “machine idle,” which occurs when a PC user is not currently using the keyboard or mouse. If the machine remains idle for a period of time, a screen saver may be invoked. However, network utilization may be high at the same time the machine is idle (e.g., during a download), and the network interface may be "idle" when the machine is not.
- the present invention is directed to the transfer of a set of data, such as a software update, over a network at a time when the network utilization is relatively low. This transfer of data is intended to be transparent to the user, and the user's machine need not be idle during the transfer.
- This transfer of data could just as easily relate to activities initiated by a user action on the PC, such as playing video games or downloading music MP3 files, eBooks and so on.
- the data to be transferred may include text, image and/or audio data.
- the present invention is also equally applicable to uploads from the client to the server or other communication of data between computers.
- the present invention monitors the level of actual utilization represented by the curve 90 (FIG. 4) and calculates a threshold level of utilization below which the transfer of data between the client and server is not likely to interfere with other network activity.
- the threshold level is equal to approximately 33% of the maximum detected level of actual network utilization.
- the threshold level is generally designated by reference numeral 92 and is initially set to zero. Network activity is periodically sampled, and a new threshold level is calculated each time a new maximum is identified.
- the level of actual bandwidth usage is 15 Kbps, which is a new maximum, so the threshold 92 is set to 5 Kbps. The level of actual bandwidth usage is again sampled at T2, and another new maximum of 30 Kbps is identified.
- the new threshold 92 is calculated to be 10 Kbps.
- a client 94 includes an update client 96, an update engine 98, an update downloader 100 and an update applet 102.
- the client 94 is connected to a server such as via an update website 104 over a pair of links 106, 108, which are preferably HTTP (Hypertext Transfer Protocol) links.
- the update client 96 is responsible for notifications and personalization options for the user.
- the update engine 98 controls content interaction with the update site 104 as well as detection, installation and logging of software updates.
- the update downloader 100 is responsible for implementing the packet background downloading/throttling and incoming packet queue management.
- the update applet 102 determines the configuration of update notifications to the user and other interactions with the user.
- the backend content and catalogs are available from the update site 104.
- the present invention utilizes a data structure 110 illustrated in FIG. 6.
- the data structure 110 includes a first field 112 which contains the maximum identified level of actual bandwidth utilization and a second field 114 which contains the threshold level of utilization.
- both the maximum identified level and the threshold level can vary over time depending on the level of actual utilization.
- the threshold level is calculated as a function of the maximum identified level of actual usage. Therefore, a new threshold level is calculated each time a new maximum level is detected.
- FIG. 7 sets forth a flowchart representative of a computer program for selectively transferring data over a network in accordance with a preferred embodiment of the present invention.
- the program is started at step 120 when certain predetermined conditions are present.
- the client PC should be turned “on” and connected to the network before starting the program. While it would be possible for the program to establish the connection between the PC and the network, some PC users may be startled by the unexpected sound of their modem dialing up the network on its own. It is also possible that the client may be connected to another network (e.g., a private network) so that access to a webserver is not possible until the client disconnects from the private network and reconnects to the Internet.
- another network e.g., a private network
- the client and server are connected to the same network by "pinging" the server and receiving an acknowledgment from the server.
- the level of actual network bandwidth utilization is obtained at step 122.
- the actual usage is sampled periodically (e.g., every five seconds). Preferably, this is done by tracking the number of incoming and outgoing packets over a given time period (e.g., one second) at the communications interface between the client and the network. For a PC running the "WINDOWS 98" operating system, this information is available using the GetlfEntry function in "iphlpapi.dll".
- Relatively large files provide a more accurate basis for measuring the level of actual network bandwidth usage at the network interface. For example, it is difficult to accurately measure the download time for a 200 byte file because the overhead of measurement is significant and the small file does not saturate the available bandwidth. Consequently, the present invention preferably updates the maximum level of utilization only when the measurement of the actual level of utilization is based on the transfer speed of a file that is at least 4 KB in size.
- each of the “virtual devices” is enumerated to ensure accurate monitoring, especially in a system which is more complex than the system 74.
- the term "virtual device,” as used herein, refers to any networking device with a device driver, such as modems (including cable modems and ISDN modems), network cards and DSLs (Digital Subscriber Lines).
- modems including cable modems and ISDN modems
- network cards including DSLs (Digital Subscriber Lines).
- DSLs Digital Subscriber Lines
- the level of actual network bandwidth utilization is monitored rather than simply relying on the rated or listed throughput of the network device.
- the rated value is not reliable because, as a practical matter, the maximum throughput achieved by a modem is less than its listed throughput and may be different for each network session. Variables such as the quality of the telephone connection typically result in a maximum available bandwidth of less than 50 Kbps for a 56 Kbps modem.
- rated values cannot be assumed to be accurate when a client is connected to the network by a proxy.
- the system 84 there is a peer-to-peer connection between the first client 86A and the second client 86B over the intranet 88, and the first client 86A is in turn linked to the network 80 by a modem 78. Assuming a 56 Kbps modem and a 10 Mbps intranet, the modem 78 is the bottleneck to the network 80.
- the second client 86B is utilizing only 5 Kbps of the bandwidth, there would not be sufficient network bandwidth available to download a set of data (e.g., a software update) from the server 82 to either client without degrading their other network activity. Moreover, it would not be accurate to assume either that the second client 86B has a maximum throughput of 10 Mbps or that substantial bandwidth is available because the second client 86B is only using 5 Kbps of the network interface.
- the level of actual bandwidth utilization for the second client 86B can be obtained from the RAS (Remote Access Service) device table.
- RAS Remote Access Service
- the maximum detected level of actual usage is initially set to zero. Then, at step 124, it is determined whether the actual usage is greater than the current maximum. If not, the actual usage is sampled again at step 122. However, if the actual usage is greater than the current maximum, then a new maximum is set equal to the current actual level at step 126. Next, a threshold level is calculated as a function of the maximum at step 128. The threshold is initially set to zero, and a new threshold is calculated each time a new maximum is detected. As a general proposition, the threshold level could be anywhere from approximately 5%- 80% of the maximum detected level. However, the presently preferred threshold level for Internet applications is approximately 33% of the maximum detected level. Once the new threshold level has been calculated, the actual usage is sampled again at step 122.
- the present invention calculates the threshold level as a percentage of actual network bandwidth in Kilobits per second, as opposed to some other parameter, such as the percentage of time the network connection is busy over a given period. For example, a client machine utilizing its network connection 75% of the time over the course of an hour is not necessarily using 75% of its available bandwidth. In fact, if the user at the client PC is merely reading a webpage, reading email, listening to music or the like, it is likely that the level of actual bandwidth utilization is well below the maximum available bandwidth.
- the present invention which is implemented at the client level, is fundamentally different from methods for limiting bandwidth at the hardware level (e.g., sockets).
- the level of actual network bandwidth utilization is obtained at step 122, it is also compared to the current threshold level.
- the download is preferably performed by downloading the software update in several segments. Accordingly, at step 132, one segment of the file is downloaded from the server to the client. If the client's network activity increases after downloading the first segment, the download of the entire file can be suspended until the actual usage drops back down below the threshold level. However, if the network is idle for an extended period of time, the download can be accelerated by downloading progressively larger segments of the file over the network.
- a counting device is provided in a preferred embodiment of the present invention to facilitate the downloading of progressively larger file segments.
- a 144 KB file may be downloaded from the server to the client over the Internet by first transferring an 8 KB segment of the file at step 132 of FIG. 7.
- a small segment such as 8 KB has been found to be an effective default because it uses 100% of the pipeline for a short period of time and permits frequent monitoring of actual usage between segments. Even if a user clicks on an URL (Uniform Resource Locator) during the download of an 8 KB block, there will be no noticeable delay to the user. Moreover, in the event an interruption occurs, 8 KB is the most data that can be lost.
- URL Uniform Resource Locator
- step 134 it is determined whether the entire file has been downloaded. Since the 8 KB block was the first segment of the 144 KB file, the entire file has not been downloaded and the counter, which is initially set to zero, is incremented to "1" at step 136.
- the counter keeps track of the number of segments that have been downloaded consecutively without interruption so that the size of the segments can be increased so long as network activity remains low. As an example, the size of the segments could be increased to 16 KB if the counter is equal to "2", and the size of the segments could be increased to 32 KB if the counter is equal to "4". This would enable the 144 KB file to be downloaded in seven progressively larger segments as opposed to 18 of the smaller 8 KB segments, provided network activity stays below the threshold level.
- steps 122 and 130 are repeated. If the level of actual usage is no longer less than the threshold level, the file download is suspended and the counter is cleared (i.e., set to zero) at step 138. Then, the actual utilization is sampled again at step 122.
- the download will be resumed from the point of suspension. However, if the actual usage remains below the threshold level, the next segment is downloaded at step 132, and the process is repeated until it is determined at step 134 that the entire file has been downloaded. If so, the counter is cleared at step 140 and the loop ends at step 142.
- the progressive download feature of the present invention may require filtering or a similar technique to overcome the limitations of some existing servers. While progressive downloads have been widely available at the FTP (file transfer protocol) level, they were not available at the HTTP level until HTTP 1.1 servers became available. As discussed above, the present invention utilizes a byte range approach with 8 KB file segments as a default. For the first segment, a byte range of "0-7999" is specified in the download request from the client, the range "8000-15999" is specified in the download request for the second segment, and so on. However, the byte range portion of the request would be lost if an HTTP 1.0 server is encountered, and the entire file would be downloaded at once.
- FTP file transfer protocol
- ISAPI Internet Server Application Programming Interface
- the preferred size of the segment or byte range can vary dramatically based on factors such as the speed of the modem.
- the foregoing examples e.g., the default segment size of 8 KB
- the preferred default segment size would be 4 KB rather than 8 KB.
- the progressively larger segments would be 8 KB and 16 KB rather than 16 KB and 32 KB.
- the monitoring of actual bandwidth usage during an extensive download may be given more weight than the monitoring of actual bandwidth usage before or after such a download. That is, if a predetermined number of segments are downloaded consecutively, the average level of usage for each of the segments is adopted as the new "maximum" level. For example, if the predetermined number of segments is 10, the average level of usage during the downloading of ten consecutive segments would replace the previous maximum level even if the average level is less than the previous maximum value. Moreover, if 11 segments are consecutively downloaded, the average level would be calculated for segments 2-11 so that a moving average of 10 downloads determines both a new maximum level and a new threshold level.
- Using a moving average to identify the maximum level advantageously provides a dynamic increase or decrease to the threshold level in response to changing network traffic conditions without compromising the accuracy of the measurement.
- the maximum level will remain frozen at the most recent moving average (of the predetermined number of segments) until another extensive download occurs.
- a maximum level based on an extensive download is deemed to be a more accurate reflection of available bandwidth than the initial maximum level measured prior to a download.
- the download of an isolated segment may not provide an accurate reflection of available bandwidth.
- a counter such as the one referenced in FIG. 7 may be used.
- the further embodiment of the present invention monitors the level of actual network utilization represented by the curve 804 (FIG. 8) and calculates the size of a block of data that can be transferred within a predetermined interval (T n-1 - T n ) (FIG. 8) such that transfer of data between the client and server is not likely to interfere with other network activity.
- a block represents a portion of an entire set of data that is to be transferred or other independent useful unit of data.
- This further embodiment more fully utilizes the available bandwidth of a Network by computing block sizes and refining network speed estimates, as opposed to an embodiment as described above that utilizes a fixed threshold value to determine when to transfer data.
- FIG. 8 illustrates some concepts from the further embodiment of this invention.
- the sampling time is generally designated by T n and the interval T n-1 - T n is initially set to a value such as 1 second.
- the region (Area 1) under the external usage curve 804 between the intervals Ti and T 2 (808) would represent the total number of bytes that were transferred by processes other than the current invention.
- the region (Area 2) bounded by the observed network throughput 802, the external usage curve 804, and the intervals Ti and T2 (808), represent the amount of bytes that could potentially be assigned for a block size.
- the Network throughput 802 and external usage 804 fluctuate over time, thereby necessitating the re-computation of block sizes in order to fully utilize the available bandwidth.
- Network activity is sampled at various points during each interval. The sampling interval is then adjusted in response to the determined network speed and utilization, rather than being maintained at a fixed value in contrast to the embodiment of FIGS. 4-7. This reduces CPU and network overhead that arises from using block sizes that are not optimized for the Network.
- This embodiment includes three components. There is a network interface component that collects data about the number of bytes sent and received through the Network interface hardware. There is a network speed calculator component that determines Global speed, Download speed and Free bandwidth. Finally, there is the Data Block Download component that uses the values computed by the speed component to compute a block size and download interval size.
- the embodiment divides each time interval into two phases, a download phase and an idle phase.
- the software downloads a block of data from the server.
- the software relinquishes the network to other applications.
- the network-monitor component of the embodiment has access to a counter that records the number of bytes that have passed through the network interface at a given moment. The difference between two readings of the counter indicates the number of bytes that have been transferred in the time between the two readings.
- the network-monitor component samples the system clock and bytes-transferred counter at three points: (1) the start of the interval, which is also the start of the download phase, (2) the end of the download phase, and (3) the end of the interval.
- the download component records the interval length, the size of the block to be downloaded, and the expected duration of the download phase.
- last-rate (block size + network header size) / (time at point 2 - time at point 1) and the average download rate is updated.
- the current embodiment uses
- new-download-rate new-download-rate + (last-rate / sample- count); with sample-count set to 3 however, many other averaging formulae could be used instead. This is also true of the other average values that the downloader calculates.
- the average download rate will enable the block-download component to choose a block size that can be completed during the download phase of the next interval.
- the component measures network utilization during the download phase to arrive at global-speed:
- Last-global-speed is averaged into global-speed by the same algorithm used for the average download rate. Global-speed is used as an estimate of the total throughput of the network interface.
- Bytes-transferred (bytes at point 3 - bytes at point 1) - (block size + overhead)
- Actual-interval-length (time at point 3 - time at point 1)
- External-utilization bytes-transferred / actual-interval-length
- Percent-free 100 * (1 - external-utilization / global-speed )
- the block-downloader component uses Percent-free to choose the relative length of the download phase and idle phase of the following download interval.
- the further embodiment limits percent-free to 80% as insurance against an increase in external activity, other similar policies are also possible.
- the further embodiment adjusts the duration of the sampling interval depending upon the network speed and utilization, rather than using a fixed value as in FIGS. 1-7.
- This reduces CPU and network overhead that arises from using block sizes that are not optimized for the Network. For instance, in many implementations, using a very large block size would require dedicating a prohibitive amount of memory as a buffer. Conversely, sending data as a series of very small blocks may waste resources by requiring extra network header fields and network protocol acknowledgements. Deriving block sizes that take full advantage of Network bandwidth and that minimize the interference to Network traffic is an advantage of this further embodiment. There are several steps and components involved in determining appropriate block sizes.
- the upper bound for a block size which is dictated by the memory of the downloader, is 30 Kb, i.e. the downloader can hold 30Kb of data before it needs to write to a disk.
- the default interval duration is one second and the computed block size for interval T 5 -T 6 is 35 Kb, which is beyond the maximum.
- the algorithms of the present invention will shrink the durations of the next interval intervals T 6 - T in order to reduce the block size below the maximum.
- the interval T 6 -T were reduced to 0.8 seconds for example, it will result in a computed block size of 28 Kb, which is within the bounds for a block size.
- next interval T - T 8 (820) will also be set at 0.8 seconds instead of 1 second.
- a block size is considered to be too small when the computed size falls below a default lower boundary which has been determined to be an inefficient size of data to transfer in the given interval.
- the downloader may choose to download the minimum size and then download nothing for one or more intervals, or it may choose to increase the interval length.
- a smoothing of the sampled network data is achieved by using an average for the Global Speed and Download Speed wherein, the average is weighted in favor of the most recent sample.
- the latest sample counts for 30% of the new total, with the previous value counting for 70% While this particular method of diluting the latest value with previous averages is used, other implementations would achieve the same result of allowing recovery from spikes in network activity.
- the further embodiment of the present invention utilizes a data structure 900 illustrated in FIG. 9.
- the data structure 900 includes a first field 912 which contains the time at which the identified level of actual bandwidth utilization was taken and a second field 914 which contains the total number of bytes through the network interface, a monotonically increasing counter of the bytes that have been sent or received by the adapter. As shown in FIG. 8, both the timestamp and the bytes count vary with each sampling, depending on the level of actual utilization 802. By subtracting consecutive measurements of these values, an interval period and number of bytes transferred during the interval period are obtained.
- FIG. 10 sets forth a flowchart representative of a computer program for selectively transferring data over a network in accordance with the further embodiment of the present invention.
- the program is started at step 1000 when certain predetermined conditions are present.
- the block size, Percent-free, and sampling interval are initialized to default values at step 1002.
- the actual usage is sampled periodically (e.g., every second). Preferably, as discussed above, this is done by tracking the number of incoming and outgoing bytes at important moments of the interval sample period (e.g., Start of interval, end of block transfer and end of interval) at the communications interface between the client and the network.
- a block download and network data collection take place at step 1004.
- the network speed related elements namely Download speed, Global speed and Percent-free are refined and updated accordingly.
- a block size is calculated as a function of the network speed related elements at step 1008.
- a new block size is calculated each time after a block download.
- the block size could be anywhere between the size of communications packet header and the size of the memory allocated for the downloader.
- the presently preferred minimum block size for Internet applications is approximately 1000 bytes, 500 for block data and 500 for HTTP request and reply packet headers.
- an average of download speed and Global speed are computed, along with the network Percent-free value.
- the observed Global speed is within an acceptable range of the average Global speed, and whether Percent- free is less than a predetermined maximum fraction of bandwidth value.
- the observed Global speed must be greater than one half of the average Global speed in order to be included in the computation of a new average Global speed. Otherwise, the new average is determined to be 90% of the previous average Global speed.
- Percent-free the further embodiment of this invention may require that a computed Percent-free value can be no greater than 80%.
- Software updates (or other set of data) available from the server can be downloaded over the network to the client.
- the download is preferably performed by downloading the software update in several segments otherwise referred to as a block. Accordingly, at step 1004, one segment of the file is downloaded from the server to the client. If the client's network activity increases after downloading the first segment, the further embodiment will download smaller blocks unless the block size drops below the previously discussed minimum. However, if the network becomes idle, the next iteration of step 1006 will increase the block size appropriately.
- the computed block size is bounded to a lower and upper value.
- the lower boundary is a size so small that it is more efficient to do nothing in that particular interval. If a computed block size is below this boundary during two consecutive intervals, the size of the interval is incremented and no block is downloaded during this second interval, as shown at step 1010. If the computed block size remains below the lower boundary during the newly incremented interval, the block size is set to a "Busy-block-size" and the interval is set to a default interval value.
- Busy-block-size is a value that allows a minimal download to occur such that, 1) some progress is made in the download process, 2) the invention is able to address a situation wherein a server is so slow that the calculated block size may never rise to the downloader minimum, and 3) the process of downloading allows the refinement of estimated network speeds.
- a block size that exceeds the maximum boundary results in a shrinking of the interval so that the computed block size can be kept within bounds.
- the present invention has been described in connection with exemplary embodiments which are intended to be illustrative rather than restrictive.
- the invention has been described in the context of downloading software updates for the operating system of the PC.
- the software updates could just as easily relate to many other types of software, such as updates to video games on the PC.
- the data to be downloaded may include text, image and/or audio data.
- the present invention is also equally applicable to uploads from the client to the server.
- Alternative embodiments of the present invention will become apparent to those skilled in the art to which it pertains upon review of the specification, including the drawing figures. Accordingly, the scope of the present invention is defined by the appended claims rather than the foregoing description.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
- Communication Control (AREA)
Abstract
Description
Claims
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP01910752A EP1256212B1 (en) | 2000-02-16 | 2001-02-16 | System and method for transferring data over a network |
DE60122676T DE60122676T2 (en) | 2000-02-16 | 2001-02-16 | METHOD AND METHOD FOR TRANSFERRING DATA OVER A NETWORK |
AU2001238326A AU2001238326A1 (en) | 2000-02-16 | 2001-02-16 | System and method for transferring data over a network |
JP2001560080A JP4711586B2 (en) | 2000-02-16 | 2001-02-16 | System and method for transferring data over a network |
US10/987,666 US7436771B2 (en) | 2001-02-14 | 2004-11-12 | System for refining network utilization and data block sizes in the transfer of data over a network |
US10/988,073 US7325068B2 (en) | 2001-02-14 | 2004-11-12 | Method and system for managing data transfer over a network |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/505,735 | 2000-02-16 | ||
US09/505,735 US7437428B1 (en) | 2000-02-16 | 2000-02-16 | System and method for transferring data over a network |
US09/783,407 | 2001-02-14 | ||
US09/783,407 US6920110B2 (en) | 2001-02-14 | 2001-02-14 | System and method for transferring data over a network |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2001061944A1 true WO2001061944A1 (en) | 2001-08-23 |
WO2001061944A8 WO2001061944A8 (en) | 2001-11-01 |
Family
ID=27055235
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2001/005087 WO2001061945A1 (en) | 2000-02-16 | 2001-02-15 | System and method for transferring data over a network |
PCT/US2001/004885 WO2001061944A1 (en) | 2000-02-16 | 2001-02-16 | System and method for transferring data over a network |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2001/005087 WO2001061945A1 (en) | 2000-02-16 | 2001-02-15 | System and method for transferring data over a network |
Country Status (6)
Country | Link |
---|---|
EP (2) | EP1256212B1 (en) |
JP (1) | JP4711586B2 (en) |
AT (1) | ATE338406T1 (en) |
AU (2) | AU2001238419A1 (en) |
DE (1) | DE60122676T2 (en) |
WO (2) | WO2001061945A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005026978A2 (en) * | 2003-09-11 | 2005-03-24 | Siemens Aktiengesellschaft | Method for determining a rate with the aid of a time weighted moving average |
WO2005034463A1 (en) * | 2003-09-29 | 2005-04-14 | Siemens Aktiengesellschaft | Method for providing performance characteristics as required |
WO2005091561A1 (en) * | 2004-03-18 | 2005-09-29 | Siemens Aktiengesellschaft | Method for determining the rate of incoming traffic in a communications network |
JP2005537707A (en) * | 2002-08-17 | 2005-12-08 | ディズニー エンタープライゼス インコーポレイテッド | A system for sending and dynamic presentation of multimedia assets on networks with limited line capacity |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4651912B2 (en) * | 2003-01-27 | 2011-03-16 | Necインフロンティア株式会社 | INTERNET TELEPHONE SYSTEM, CALL CONNECTION CONTROL DEVICE, TERMINAL LINKING METHOD USED FOR THE SAME, AND PROGRAM |
US7603473B2 (en) * | 2005-07-15 | 2009-10-13 | Microsoft Corporation | Background network bandwidth sharing behind gateway devices |
EP1936517A1 (en) * | 2006-12-19 | 2008-06-25 | Alcatel Lucent | Method for distributing non real-time media in a non real-time media distribution system, a related system, a related media server and media client |
US9078072B2 (en) * | 2013-10-07 | 2015-07-07 | Bose Corporation | Audio distribution |
US9596281B2 (en) * | 2014-03-18 | 2017-03-14 | Qualcomm Incorporated | Transport accelerator implementing request manager and connection manager functionality |
US11184447B2 (en) | 2019-05-14 | 2021-11-23 | Swiftly Systems, Inc. | Systems and methods for efficient transmission of catalog data |
CN112887146A (en) * | 2021-01-28 | 2021-06-01 | 杭州迪普科技股份有限公司 | Network node upgrading method and device and electronic equipment |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0782302A2 (en) * | 1995-12-04 | 1997-07-02 | Lucent Technologies Inc. | Method and apparatus for controlling data transfer rates of sources in ATM networks |
EP0862304A2 (en) * | 1997-02-10 | 1998-09-02 | International Business Machines Corporation | Method for file transfer |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05153154A (en) * | 1991-11-28 | 1993-06-18 | Nippon Telegr & Teleph Corp <Ntt> | Channel band management processing system |
US6151309A (en) * | 1994-04-28 | 2000-11-21 | British Telecommunications Public Limited Company | Service provision system for communications networks |
US5913040A (en) * | 1995-08-22 | 1999-06-15 | Backweb Ltd. | Method and apparatus for transmitting and displaying information between a remote network and a local computer |
JPH11261632A (en) * | 1998-03-06 | 1999-09-24 | Chokosoku Network Computer Gijutsu Kenkyusho:Kk | Band allocation control method |
US6628666B1 (en) * | 1998-03-30 | 2003-09-30 | Genesys Telecomm Lab Inc | Managing bandwidth on demand for internet protocol messaging with capability for transforming telephony calls from one media type to another media type |
EP1018248A1 (en) * | 1998-06-30 | 2000-07-12 | Sun Microsystems, Inc. | Congestion control in reliable multicast protocol |
-
2001
- 2001-02-15 WO PCT/US2001/005087 patent/WO2001061945A1/en active Application Filing
- 2001-02-15 AU AU2001238419A patent/AU2001238419A1/en not_active Abandoned
- 2001-02-16 WO PCT/US2001/004885 patent/WO2001061944A1/en active IP Right Grant
- 2001-02-16 EP EP01910752A patent/EP1256212B1/en not_active Expired - Lifetime
- 2001-02-16 DE DE60122676T patent/DE60122676T2/en not_active Expired - Lifetime
- 2001-02-16 AU AU2001238326A patent/AU2001238326A1/en not_active Abandoned
- 2001-02-16 EP EP06017894A patent/EP1720304A2/en not_active Withdrawn
- 2001-02-16 AT AT01910752T patent/ATE338406T1/en not_active IP Right Cessation
- 2001-02-16 JP JP2001560080A patent/JP4711586B2/en not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0782302A2 (en) * | 1995-12-04 | 1997-07-02 | Lucent Technologies Inc. | Method and apparatus for controlling data transfer rates of sources in ATM networks |
EP0862304A2 (en) * | 1997-02-10 | 1998-09-02 | International Business Machines Corporation | Method for file transfer |
Non-Patent Citations (1)
Title |
---|
FLOYD S ET AL: "LINK-SHARING AND RESOURCE MANAGEMENT MODELS FOR PACKET NETWORKS", IEEE / ACM TRANSACTIONS ON NETWORKING,IEEE INC. NEW YORK,US, vol. 3, no. 4, 1 August 1995 (1995-08-01), pages 365 - 386, XP000520857, ISSN: 1063-6692 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005537707A (en) * | 2002-08-17 | 2005-12-08 | ディズニー エンタープライゼス インコーポレイテッド | A system for sending and dynamic presentation of multimedia assets on networks with limited line capacity |
JP2009165118A (en) * | 2002-08-17 | 2009-07-23 | Disney Enterprises Inc | System for delivery and dynamic presentation of large media assets over line capacity constrained networks |
JP2012231498A (en) * | 2002-08-17 | 2012-11-22 | Disney Enterprises Inc | System for delivery and dynamic presentation of large media assets over bandwidth-constrained network |
WO2005026978A2 (en) * | 2003-09-11 | 2005-03-24 | Siemens Aktiengesellschaft | Method for determining a rate with the aid of a time weighted moving average |
WO2005026978A3 (en) * | 2003-09-11 | 2005-09-29 | Siemens Ag | Method for determining a rate with the aid of a time weighted moving average |
WO2005034463A1 (en) * | 2003-09-29 | 2005-04-14 | Siemens Aktiengesellschaft | Method for providing performance characteristics as required |
US8656005B2 (en) | 2003-09-29 | 2014-02-18 | Siemens Enterprise Communications Gmbh & Co. Kg | Method for providing performance characteristics on demand |
WO2005091561A1 (en) * | 2004-03-18 | 2005-09-29 | Siemens Aktiengesellschaft | Method for determining the rate of incoming traffic in a communications network |
Also Published As
Publication number | Publication date |
---|---|
JP4711586B2 (en) | 2011-06-29 |
AU2001238326A1 (en) | 2001-08-27 |
EP1256212A1 (en) | 2002-11-13 |
DE60122676T2 (en) | 2007-09-06 |
EP1256212B1 (en) | 2006-08-30 |
WO2001061945A1 (en) | 2001-08-23 |
EP1720304A2 (en) | 2006-11-08 |
ATE338406T1 (en) | 2006-09-15 |
WO2001061944A8 (en) | 2001-11-01 |
DE60122676D1 (en) | 2006-10-12 |
AU2001238419A1 (en) | 2001-08-27 |
JP2003527800A (en) | 2003-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6920110B2 (en) | System and method for transferring data over a network | |
US7437428B1 (en) | System and method for transferring data over a network | |
US10469355B2 (en) | Traffic surge management for points of presence | |
US7400633B2 (en) | Adaptive bandwidth throttling for network services | |
US7076544B2 (en) | Caching techniques for streaming media | |
US9887931B1 (en) | Traffic surge management for points of presence | |
KR101231380B1 (en) | Background network bandwidth sharing behind gateway devices | |
US6731600B1 (en) | System and method for determining network conditions | |
US6657954B1 (en) | Adapting receiver thresholds to improve rate-based flow control | |
US20020099844A1 (en) | Load balancing and dynamic control of multiple data streams in a network | |
EP1256212B1 (en) | System and method for transferring data over a network | |
US20060287738A1 (en) | Optimized performance counter monitoring | |
CN115576698A (en) | Network card interrupt aggregation method, device, equipment and medium | |
US11627630B2 (en) | TCP performance over cellular mobile networks | |
WO2001015394A1 (en) | Bandwidth adaptive data transfer system and method | |
Conti et al. | Replicated web services: A comparative analysis of client-based content delivery policies | |
CN117896371A (en) | Cloud storage quota speed limit downloading method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
AK | Designated states |
Kind code of ref document: C1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: C1 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
CFP | Corrected version of a pamphlet front page | ||
CR1 | Correction of entry in section i |
Free format text: PAT. BUL. 34/2001 UNDER (30) REPLACE "NOT FURNISHED" BY "09/783407" |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2001910752 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref country code: JP Ref document number: 2001 560080 Kind code of ref document: A Format of ref document f/p: F |
|
WWP | Wipo information: published in national office |
Ref document number: 2001910752 Country of ref document: EP |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 Ref country code: DE Ref legal event code: 8642 |
|
WWG | Wipo information: grant in national office |
Ref document number: 2001910752 Country of ref document: EP |