IP Library › Granted Patent US 10,063,481
Granted Patent B1
US 10,063,481 · App. 15/161,445 · Granted Aug 28, 2018

Network endpoint congestion management

Inventors: Nan Jiang (St. Louis, MO); Larry Robert Dennison (Mendon, MA); William James Dally (Los Altos Hills, CA)
Assignee: U.S. Department of Energy
H04L47/125H04L5/0055H04L43/16H04L45/74H04L47/32H04L47/122
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 10,063,481
App. No.
15/161,445
Granted
Aug 28, 2018
Kind
B1
Abstract

A congestion management protocol that can be used for small messages in which the last-hop switch determines the congestion of the end point. The last-hop switch drops messages when the end point is congested and schedules a retransmission. A second congestion management protocol transmits small messages in a speculative mode to avoid the overhead caused by reservation handshakes.

Claims (47)

1. A method for congestion management in a network, the method comprising the steps of:

(a) transmitting a message packet from a source to a destination, said message packet being a speculative packet, said message packet having a message packet size, the message packet size being smaller than or equal to a predetermined packet size for the respective network;

(b) receiving said message packet at a last-hop switch;

(c) determining, at said last-hop switch, a destination congestion level;

(d) upon determining, by said last-hop switch, that the destination congestion level exceeds a predetermined threshold, dropping, at said last-hop switch, said message packet;

(e) responsive to said step of dropping, generating, at said last-hop switch, both a negative acknowledgement and a reservation, the negative acknowledgement and the reservation transmitted simultaneously from said last-hop switch to said source, the negative acknowledgement and the reservation being a non-speculative packet;

(f) scheduling, at said source, a transmittal of the message packet; and

(g) transmitting, at a predetermined time, said message packet from said source to said destination, said message packet being a non-speculative packet.

2. The method of claim 1 , further including the step of:

repeating steps (a)-(g) a desired number of times.

3. The method of claim 1 , wherein the step of determining a congestion level further includes:

a. queuing said message packet at the last-hop switch;

b. determining a queuing level;

c. comparing the queuing level to a predetermined congestion metric.

4. The method of claim 3 , wherein the queuing level is a number of message packets in the respective queue and the predetermined congestion metric is a maximum number of message packets.

5. The method of claim 3 , wherein the queuing level is a first elapsed time measurement and the predetermined congestion metric is a second elapsed time measurement.

6. The method of claim 1 , wherein said message packet is transmitted at a first time, the negative acknowledgement is received at a second time, wherein the step of scheduling further includes

a. calculating a third time by subtracting said first time from said second time;

b. calculating a time differential by dividing said third time by two;

c. calculating the predetermined time by adding the reservation time to said time differential.

7. The method of claim 1 , wherein said message packet is transmitted at a first time, wherein the step of scheduling further includes calculating the predetermined time by adding the reservation time to said first time.

8. The method of claim 1 , wherein said message packet contains data.

9. The method of claim 1 , wherein said source is one of a plurality of sources, said destination is one of a plurality of destinations, said last-hop switch is one of a plurality of last-hop switches, each of the plurality of last-hop switches connected concurrently to more than one of the plurality of sources and more than one of the plurality of destinations.

10. The method of claim 1 , wherein the speculative packets use a first virtual channel and the non-speculative packets use a second virtual channel, said first virtual channel having a lower priority than said second virtual channel.

11. The method of claim 2 , and further comprising the step of:

reassembling, at said destination, a large message from a plurality of message packets.

12. A method for congestion management in a network, the method comprising the steps of:

(a) transmitting a message packet from a source to a destination, said message packet being a speculative packet, said message packet having a message packet size, the message packet size being smaller than or equal to a predetermined packet size for the respective network;

(b) receiving said message packet at one of a plurality of network switches;

(c) determining, at the one of a plurality of network switches, a destination congestion level;

(d) upon determining, at one of a plurality of network switches, that the destination congestion level exceeds a predetermined threshold, dropping, at the one of a plurality of network switches, said message packet;

(e) generating, at the one of a plurality of network switches, a negative acknowledgement, the negative acknowledgement transmitted to the source, the negative acknowledgement being a non-speculative packet;

(f) transmitting, from said source to said destination, a reservation, the reservation being a non-speculative packet;

(g) transmitting, from said destination to said source, a grant, the grant being a non-speculative packet;

(h) scheduling, at said source, a transmittal of said message packet; and

(i) transmitting, at a predetermined time, said message packet from said source to said destination, said message packet being a non-speculative packet.

13. The method of claim 12 , further including the step of:

repeating steps (a)-(i) a desired number of times.

14. The method of claim 12 , wherein the step of determining a congestion level further includes:

a. queuing said message packet at the one of a plurality of network switches;

b. determining a queuing level;

c. comparing the queuing level to a predetermined congestion metric.

15. The method of claim 14 , wherein the queuing level is a number of message packets in the respective queue and the predetermined congestion metric is a maximum number of message packets.

16. The method of claim 14 , wherein the queuing level is a first elapsed time measurement and the predetermined congestion metric is a second elapsed time measurement.

17. The method of claim 12 , wherein said message packet contains data.

18. The method of claim 12 , wherein said source is one of a plurality of sources, said destination is one of a plurality of destinations.

19. The method of claim 12 , wherein the speculative packets use a first virtual channel and the non-speculative packets use a second virtual channel, said first virtual channel having a lower priority than said second virtual channel.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2018
From: JIANG, NAN; DENNISON, LARRY ROBERT; DALLY, WILLIAM JAMES
To: U.S. DEPARTMENT OF ENERGY
Reel/Frame 046428/0172 →
Continuity (1)
Provisional Application 62253308 · Nov 10, 2015
Cited By (11)
US 12,218,828 US 12,218,829 US 12,244,489 US 12,267,229 US 12,348,433 US 12,360,923 US 12,393,530 US 12,443,545 US 12,443,546 US 12,450,177 US 12,455,840