| US 7,558,200 B2 | ||
| Router congestion management | ||
| Kamal Jain, Bellevue, Wash. (US); Xiaojie Gao, Pasadena, Calif. (US); and Leonard J. Schulman, La Crescenta, Calif. (US) | ||
| Assigned to Microsoft Corporation, Redmond, Wash. (US) | ||
| Filed on Sep. 01, 2005, as Appl. No. 11/35,353. | ||
| Prior Publication US 2007/0053286 A1, Mar. 08, 2007 | ||
| Int. Cl. H04L 12/26 (2006.01) | ||
| U.S. Cl. 370—230 [370/429] | 10 Claims |

| 1. A process for managing router congestion in a distributed communications system, comprising:
receiving data packets from senders;
tracking data packet transmission rates of the senders;
implementing an accented congestion management protocol that expects each of the senders to decrease its respective data transmission
rate if congestion occurs;
detecting congestion or potential congestion;
during the congestion or potential congestion, determining that one or more of the senders deviate from the accepted congestion
management protocol by comparing, for each sender, a present data packet transmission rate to a prior tracked data transmission
rate for the sender to determine whether the sender maintained or increased its rate of data packet transmission in violation
of the accented congestion management protocol;
rank ordering the one or more of the senders according to egregiousness of their deviation from the accented congestion management
protocol to generate a rank ordered list of one or more worst offenders;
identifying which of the received data packets are from the one or more worst offenders of the rank ordered list;
marking the identified data packets for dropping;
queuing in a queue, according to received order, the received data packets, including the identified data packets marked for
dropping; and
transmitting the received data packets from a head of the queue except for at least some of those data packets marked for
dropping which were received from a most egregious one of the one or more worst offenders according to the rank ordered list
wherein a decision for not transmitting occurs based on the marking as each of the marked, identified data packets reaches
the head of the queue.
|