IP Library › Granted Patent US 7,353,286
Granted Patent B2
US 7,353,286 · App. 11/016,392 · Granted Apr 1, 2008

Fast dynamic measurement of bandwidth in a TCP network environment

Assignee: Microsoft Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,353,286
App. No.
11/016,392
Granted
Apr 1, 2008
Kind
B2
Abstract

The fast dynamic measurement of bandwidth in a TCP network environment utilizes a single pair of packets to calculate bandwidth between two entities on a network (such as the Internet). This calculation is based upon the packet-pair technique. This bandwidth measurement is extremely quick. On its journey across a network, communication devices may delay the packet pairs. In particular, TCP networks have two algorithms designed to delay some packets with the goal of increasing the overall throughput of the network. However, these algorithms effectively delay a packet pair designed to measure bandwidth. Therefore, they distort the measurement. These algorithms are Nagle and Slow Start. The fast dynamic measurement of bandwidth implements countermeasures to overcome the delays imposed by these algorithms. Such countermeasures include disabling the application of the Nagle Algorithm; minimizing the buffering of packets by sending a “push” packet right after the packet pair; and avoiding the Slow Start Algorithm by priming it with a dummy packet.

Claims (18)

1. A method for facilitating communication of packets between a sending entity and a receiving entity through a communication device on a network, the method comprising:

setting, by the sending entity, a congestion window between the sending entity and the receiving entity to at least three packets;

sending at least one “priming” packet from the sending entity to avoid a transmission delay caused by a slow start algorithm on the communication device;

receiving an acknowledgement packet at the sending entity;

sending immediately thereafter, two bandwidth measurement packets back to back from the sending entity to the receiving entity to measure bandwidth of a connection between the sending entity and the receiving entity, wherein the priming packet is not used for the bandwidth measurement.

2. A method as recited in claim 1 , wherein the network is TCP.

3. A method as recited in claim 1 further comprising establishing a TCP connection between the sending entity to the receiving entity, wherein the establishing is just before the sending of the set of packets.

4. A computer-readable medium storing computer-executable instructions that, when executed by a computer, performs acts to facilitate communication of packets between a sending entity and a receiving entity through a communication device on a network, the acts comprising:

setting, by the sending entity, a congestion window between the sending entity and the receiving entity to at least three packets;

sending at least one priming packet from the sending entity to avoid a transmission delay caused by a stow start algorithm on the communication device;

receiving an acknowledgement packet at the sending entity;

sending immediately thereafter, two bandwidth measurement rackets back to back from the sending entity to the receiving entity to measure bandwidth of a connection between the sending entity and the receiving entity, wherein the priming racket is not used for the bandwidth measurement.

5. An apparatus comprising:

a sending entity having a processor and a transmission-delay avoider executable on the processor to perform acts to facilitate communication of rackets between the sending entity and a receiving entity through a communication device on a network, the acts comprising:

setting, by the sending entity, a congestion window between the sending entity and the receiving entity to at least three packets;

sending at least one priming packet from the sending entity to avoid a transmission delay caused by a slow start algorithm on the communication device;

receiving an acknowledgement packet at the sending entity;

sending immediately thereafter, two bandwidth measurement packets back to back from the sending entity to the receiving entity to measure bandwidth of a connection between the sending entity and the receiving entity, wherein the priming packet is not used for the bandwidth measurement.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034543/0001 →
Continuity (2)
Continuation 0963598800 · Aug 9, 2000
Related Publication 20050100014A1 · May 12, 2005