IP Library Granted Patent US 7,596,091
Granted Patent B2
US 7,596,091 · App. 11/069,513 · Granted Sep 29, 2009

Unified congestion notification mechanism for reliable and unreliable protocols by augmenting ECN

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,596,091
App. No.
11/069,513
Granted
Sep 29, 2009
Kind
B2
Abstract

A unified congestion notification mechanism can detect congestion at a recipient device either directly, such as via an explicit indicator, or indirectly, such as via dropped packets. Such congestion can then be indicated to the sending device either by leveraging an existing congestion notification mechanism, including by spoofing expected communications, or by creating a new congestion notification mechanism. Additionally, modifications to lossless protocols, such as TCP/IP can adapt them for use with streaming data while still implementing the unified congestion notification mechanism by eliminating retransmissions either as a result of the retransmission timeout or as a result of information conveyed as part of the acknowledgement packets.

Claims (31)

1. A method for notifying a sending device of network congestion on a network comprising at least the sending device and a receiving device, the method comprising:

interpreting, by the receiving device, at least one condition on the network as an indication of the network congestion using a network congestion notification mechanism, wherein interpreting comprises inferring that at least one intermediate device on the network is experiencing the network congestion regardless of whether the at least one intermediate device is configured to explicitly notify the receiving device of the network congestion;

generating, by the receiving device, a congestion notification signal using the network congestion notification mechanism, wherein the congestion notification signal includes a reference indicative of the network congestion;

sending the congestion notification signal to the sending device, wherein the sending device monitors the reference for the network congestion; and

generating and sending to the sending device at least one second congestion notification signal until the sending device provides an indication to the receiving device that the sending device has reduced its rate of transmission.

2. The method of claim 1 , wherein interpreting the at least one condition on the network as an indication of the network congestion comprises determining that one or more packets have been dropped.

3. The method of claim 2 , wherein the determining that the one or more packets have been dropped comprises receiving one or more out of order packets.

4. The method of claim 2 , wherein the network congestion notification mechanism comprises at least one Explicit Congestion Notification mechanism of the Transmission Control Protocol and Internet Protocol.

5. The method of claim 1 , wherein the reference indicative of the network congestion is a predetermined flag in a packet sent to the sending device.

6. A computer-readable memory medium encoded with computer-executable instructions for notifying a sending device of network congestion on a network comprising at least the sending device and a receiving device, the computer-executable instructions when executed perform steps comprising:

interpreting, by the receiving device, at least one condition on the network as an indication of the network congestion using a network congestion notification mechanism, wherein interpreting comprises inferring that at least one intermediate device on the network is experiencing the network congestion regardless of whether the at least one intermediate device is configured to explicitly notify the receiving device of the network congestion;

generating, by the receiving device, a congestion notification signal using the network congestion notification mechanism, wherein the congestion notification signal includes a reference indicative of the network congestion;

sending the congestion notification signal to the sending device, wherein the sending device monitors the reference for the network congestion; and

generating and sending to the sending device at least one second congestion notification signal the sending device provides an indication to the receiving device that the sending device has reduced its rate of transmission.

7. The computer-readable memory medium of claim 6 further encoded with computer-executable instructions that, when executed, perform a step of receiving an explicit indication of congestion on the network from at least one intermediate network device.

8. The computer-readable memory medium of claim 6 further encoded with computer-executable instructions that, when executed, perform a step of determining that one or more packets have been dropped.

9. The computer-readable memory medium of claim 8 , wherein the computer-executable instructions that, when executed, perform the step of determining that the one or more packets have been dropped comprise computer-executable instructions that, when executed, perform a step of receiving one or more subsequent packets to the one or more packets that have been dropped prior to receiving any of the one or more packets that have been dropped.

10. The computer-readable memory medium of claim 8 , wherein the network congestion notification mechanism comprises at least one Explicit Congestion Notification mechanism of the Transmission Control Protocol and Internet Protocol.

11. The computer-readable memory medium of claim 6 , wherein sending the congestion notification signal to the sending device comprises sending an acknowledgment packet.

12. The computer-readable memory medium of claim 6 , wherein the reference indicative of the network congestion comprises a predetermined flag in a packet sent to the sending device.

13. A computer-readable memory medium encoded with computer-executable instructions for modifying a lossless transmission protocol in a manner conducive to streaming data, the computer-executable instructions when executed by a processor performing steps comprising:

receiving a packet from a transmitting device; and

acknowledging the received packet with an acknowledgement packet comprising a highest sequence number received from the transmitting device regardless of whether all prior packets sent by the transmitting device have been received, wherein the transmitting device does not retransmit data; wherein:

the transmitting device does not retransmit data in response to retransmission timeouts, and

the transmitting device reduces its rate of transmission after receiving no acknowledgement for a retransmission timer initiating packet on which the retransmission timer was started for a period of time equivalent to a retransmission timeout of the retransmission timeouts.

14. The computer-readable memory medium of claim 13 , wherein the computer-executable instructions when executed perform further steps comprising:

interpreting at least one condition on a network as an indication of the network congestion;

generating a congestion notification signal using a network congestion notification mechanism, wherein the congestion notification signal includes a reference indicative of the network congestion; and

sending the congestion notification signal to the transmitting device, wherein the transmitting device monitors the reference for the network congestion.

15. The computer-readable memory medium of claim 14 , wherein the network congestion notification mechanism comprises at least one Explicit Congestion Notification mechanism of the Transmission Control Protocol and Internet Protocol.

16. The computer-readable memory medium of claim 14 , wherein the computer-executable instructions when executed perform further steps comprising: generating and sending to the transmitting device at least one second congestion notification signal until the transmitting device provides an indication to the receiving device that the transmitting device has reduced its rate of transmission.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034543/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2006
From: SETHI, BHUPINDER S.
To: MICROSOFT CORPORATION
Reel/Frame 018277/0580 →
Continuity (1)
Related Publication 20060193261A1 · Aug 31, 2006