IP Library Granted Patent US 9,660,914
Granted Patent B1
US 9,660,914 · App. 14/676,068 · Granted May 23, 2017

System and method for providing congestion notification in layer 3 networks

Inventors: Junlan Zhou (Sunnyvale, CA); Zhengrong Ji (Sunnyvale, CA)
Assignee: Google Inc.
H04L47/12H04L43/062H04L45/50H04L47/11
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 9,660,914
App. No.
14/676,068
Granted
May 23, 2017
Kind
B1
Abstract

A system and method is provided for sending congestion notification messages through L3 networks and implementation of QCN in L3 switches. For example, according to this system and method, an L3 switch receives one or more data packets, and determines, based on the received one or more data packets, whether the L3 switch is congested. If the L3 switch is congested, it generates a congestion notification message, the congestion notification message including an Internet Protocol (IP) header, the IP header identifying a source of the one or more received data packets as its destination. The L3 switch sends the congestion notification message to the source of the one or more received data packets using information in the IP header.

Claims (41)

1. A method, comprising:

receiving, with one or more processors associated with a layer 3 (L3) switch, one or more data packets, the one or more data packets including a quantized congestion notification (QCN) Internet Protocol (IP) option;

determining, with the one or more processors based on the received one or more data packets, that the L3 switch is congested;

generating, with the one or more processors, a congestion notification message when it is determined that the L3 switch is congested, the congestion notification message including an inner IP header, the inner IP header identifying a source of the one or more received data packets as its destination, wherein the congestion notification message is encapsulated with an outer IP header used for sending the congestion notification message to an intermediate switch; and

sending, with the one or more processors, the congestion notification message to the source of the one or more received data packets using information in the inner IP header.

2. The method of claim 1 , wherein sending the congestion notification message further comprises forwarding the congestion notification message to a port on the L3 switch through which the one or more received data packets was received.

3. The method of claim 1 , wherein the outer IP header is a tunnel header.

4. The method of claim 3 , wherein:

the one or more received packets include a data inner IP header; and

the inner IP header of the congestion notification message identifies as its destination a source of the data inner IP header of the received packets.

5. The method of claim 1 , wherein the sending the congestion notification message comprises sending it through the intermediate switch, wherein the intermediate switch decapsulates the congestion notification message and forwards the decapsulated message to the source of the received packets.

6. The method of claim 1 , further comprising determining, with the one or more processors, that the one or more received packets are eligible for congestion notification.

7. The method of claim 6 , wherein determining that the one or more received packets are eligible for congestion notification comprises determining that the one or more received packets include at least one of a data IP header or a multiprotocol label switching (MPLS) header.

8. The method of claim 7 , wherein, when the one or more received packets include a data IP header, the determining that the one or more received packets are eligible for congestion notification further comprises determining that the one or more received packets has the QCN IP option.

9. A layer 3 (L3) switch, comprising:

at least one memory storing data and executable instructions; and

one or more processors in communication with the at least one memory, the one or more processors to:

receive one or more data packets, the one or more data packets including a quantized congestion notification (QCN) Internet Protocol (IP) option;

determine, based on the received one or more data packets, that the L3 switch is congested;

generate a congestion notification message when it is determined that the L3 switch is congested, the congestion notification message including an inner IP header, the inner IP header identifying a source of the one or more received data packets as its destination, wherein the congestion notification message is encapsulated with an outer IP header, the outer IP header used for sending the congestion notification message to an intermediate switch; and

send the congestion notification message to the source of the one or more received data packets using information in the inner IP header.

10. The L3 switch of claim 9 , wherein the one or more processors are further configured to encapsulate the congestion notification message with a tunnel header.

11. The L3 switch of claim 10 , wherein:

the one or more received packets include a data inner IP header; and

the inner IP header of the congestion notification message identifies as its destination a source of the data inner IP header of the received packets.

12. The L3 switch of claim 10 , wherein the one or more processor are further configured to send the congestion notification message to an intermediate L3 switch using the tunnel header, the intermediate L3 switch adapted to decapsulate the congestion notification message and forward the decapsulated message to the source of the received packets.

13. The L3 switch of claim 9 , wherein the one or more processors are further configured to determine that the one or more received packets are eligible for congestion notification.

14. The L3 switch of claim 13 , wherein determining that the one or more received packets are eligible for congestion notification comprises determining that the one or more received packets include at least one of a data IP header or a multiprotocol label switching (MPLS) header.

15. The L3 switch of claim 14 , wherein, when the one or more received packets include a data IP header, the determining that the one or more received packets are eligible for congestion notification further comprises determining that the one or more received packets has the QCN IP option.

16. A non-transitory computer-readable medium storing instructions executable by one or more processors for performing a method, the method comprising:

receive one or more data packets transmitted through an L3 network, the one or more data packets including a quantized congestion notification (QCN) Internet Protocol (IP) option;

determine, based on the received one or more data packets, that a given L3 switch in the network is congested;

generate a congestion notification message when it is determined that the given L3 switch is congested, the congestion notification message including an inner IP header, the inner IP header identifying a source of the one or more received data packets as its destination, wherein the congestion notification message is encapsulated with an outer IP header, the outer IP header used for sending the congestion notification message to an intermediate switch; and

send the congestion notification message to the source of the one or more received data packets using information in the inner IP header.

17. The non-transitory computer-readable medium of claim 16 , wherein

sending the congestion notification message further comprises forwarding the congestion notification message to a port on the given L3 switch through which the one or more received data packets was received.

18. The non-transitory computer-readable medium of claim 16 , wherein generating the congestion notification message further comprises encapsulating the congestion notification message with a tunnel header.

19. The non-transitory computer-readable medium of claim 18 , wherein:

the one or more received packets include a data inner IP header; and

the inner IP header of the congestion notification message identifies as its destination a source of the data inner IP header of the received packets.

20. The non-transitory computer-readable medium of claim 18 , the method further comprising sending the congestion notification message to an intermediate L3 switch using the tunnel header, wherein the intermediate L3 switch is adapted to decapsulate the congestion notification message and forward the decapsulated message to the source of the received packets.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044097/0658 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 2, 2015
From: ZHOU, JUNLAN; JI, ZHENGRONG
To: GOOGLE INC.
Reel/Frame 035319/0117 →
Continuity (1)
Provisional Application 61990401 · May 8, 2014