IP Library Granted Patent US 12,413,652
Granted Patent B2
US 12,413,652 · App. 17/973,115 · Granted Sep 9, 2025

Method for identifying and managing QUIC connections for middleboxes

Inventors: Rajvardhan Somraj Deshmukh (San Jose, CA); Nancy Patricia Cam-Winget (Mountain View, CA); James W. Kasper (Leander, TX)
Assignee: Cisco Technology, Inc.
H04L69/16H04L45/02H04L63/0236
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 12,413,652
App. No.
17/973,115
Granted
Sep 9, 2025
Kind
B2
Abstract

Techniques are described for managing QUIC connections. The techniques include identifying a first QUIC connection between a first and second device. Determining, from the connection, a first IP address and port number of the first device, a second IP address and port number of the second device, and a first CID. Storing an association between the first and second IP addresses, port numbers and first CID. Identifying a second QUIC connection between the first device and another device. Identifying, from the second connection, the first IP address and port number, a second CID, and a third IP address and port number. Determining if two of the following are met: the second IP address corresponds to the third IP address, the second port number corresponds to the third port number, the second CID corresponds to the first CID, if two are met, the first and second QUIC connections are the same.

Claims (106)

1. A method comprising:

identifying, by a network device, a first QUIC connection between a first device and a second device;

determining, from the first QUIC connection, a first IP-tuple including a first IP address and a first port number associated with the first device;

determining, from the first QUIC connection, a second IP-tuple including a second IP address and a second port number associated with the second device;

determining, from the first QUIC connection, a first connection identifier (CID) associated with the first QUIC connection;

storing a first association between the first IP-tuple, the second IP-tuple, and the first CID associated with the first QUIC connection;

identifying, by the network device, a second QUIC connection between the first device and another device;

identifying, from the second QUIC connection, the first IP-tuple, a second CID, and a third IP-tuple including a third IP address and a third port number;

determining whether at least two following connection criteria are met:

the second IP address corresponds to the third IP address;

the second port number corresponds to the third port number; or

the second CID corresponds to the first CID; and

in response to determining that at least two connection criteria are met, determining that the second QUIC connection and the first QUIC connection are a same QUIC connection, and updating the first association based at least in part on the third IP-tuple or the second CID.

2. The method of claim 1 , further comprising:

in response to determining that at least two connection criteria are not met, determining that the second QUIC connection does not correspond to the first QUIC connection; and

storing a second association between the first IP-tuple, the third IP-tuple, and the second CID associated with the second QUIC connection.

3. The method of claim 1 , further comprising:

determining that the second IP address corresponds to the third IP address;

determining that the second port number corresponds to the third port number;

determining that the second CID does not correspond to the first CID; and

storing the second CID in a list of probable CIDs.

4. The method of claim 1 , further comprising:

determining that the second IP-tuple is associated with a server name index (SNI) and wherein storing the first association includes storing an association with the SNI.

5. The method of claim 1 , wherein the network device is a middlebox and is one of a firewall, a Network Address Translator (NAT), a content delivery network (CDN), a load balancer, a WAN optimizer, a cloud based gateway, a cloud based firewall, or a secure router.

6. The method of claim 1 , further comprising:

receiving, by the network device, a QUIC packet;

determining, by the network device, a source IP-tuple, a destination IP-tuple, and a CID from the QUIC packet;

determining, by the network device, that the source IP-tuple, the destination IP-tuple, and the CID from the QUIC packet correspond to the first association associated with the first QUIC connection; and

transmitting the QUIC packet to a destination device associated with the destination IP-tuple.

7. The method of claim 1 , further comprising:

receiving, by the network device, a QUIC packet;

determining, by the network device, a source IP-tuple, a destination IP-tuple, and a CID from the QUIC packet;

determining, by the network device, that the source IP-tuple, the destination IP-tuple, and the CID from the QUIC packet do not correspond to the first association associated with the first QUIC connection; and

dropping the QUIC packet.

8. A system comprising:

one or more processors; and

one or more non-transitory computer-readable media storing computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:

identifying, by a network device, a first QUIC connection between a first device and a second device;

determining, from the first QUIC connection, a first IP-tuple including a first IP address and a first port number associated with the first device;

determining, from the first QUIC connection, a second IP-tuple including a second IP address and a second port number associated with the second device;

determining, from the first QUIC connection, a first connection identifier (CID) associated with the first QUIC connection;

storing a first association between the first IP-tuple, the second IP-tuple, and the first CID associated with the first QUIC connection;

identifying, by the network device, a second QUIC connection between the first device and another device;

identifying, from the second QUIC connection, the first IP-tuple, a second CID, and a third IP-tuple including a third IP address and a third port number;

determining whether at least two following connection criteria are met:

the second IP address corresponds to the third IP address;

the second port number corresponds to the third port number; or

the second CID corresponds to the first CID; and

in response to determining that at least two connection criteria are met, determining that the second QUIC connection and the first QUIC connection are a same QUIC connection, and updating the first association based at least in part on the third IP-tuple or the second CID.

9. The system of claim 8 , further comprising:

in response to determining that at least two of the connection criteria are not met, determining that the second QUIC connection does not correspond to the first QUIC connection; and

storing a second association between the first IP-tuple, the third IP-tuple, and the second CID associated with the second QUIC connection.

10. The system of claim 8 , further comprising:

determining that the second IP address corresponds to the third IP address;

determining that the second port number corresponds to the third port number;

determining that the second CID does not correspond to the first CID; and

storing the second CID in a list of probable CIDs.

11. The system of claim 8 , further comprising:

determining that the second IP-tuple is associated with a server name index (SNI) and wherein storing the first association includes storing an association with the SNI.

12. The system of claim 11 , further comprising:

determining that the third IP-tuple is associated with the SNI;

determining that the third IP-tuple corresponds to the second IP-tuple;

determining that the second QUIC connection corresponds to the first QUIC connection; and

updating the first association with the second CID.

13. The system of claim 8 , wherein the network device a middlebox and is one of a firewall, a Network Address Translator (NAT), a content delivery network (CDN), a load balancer, or a WAN optimizer.

14. The system of claim 8 , further comprising:

receiving, by the network device, a QUIC packet;

determining, by the network device, a source IP-tuple, a destination IP-tuple, and a CID from the QUIC packet;

determining, by the network device, that the source IP-tuple, the destination IP-tuple, and the CID from the QUIC packet correspond to the first association associated with the first QUIC connection; and

transmitting the QUIC packet to a destination device associated with the destination IP-tuple.

15. The system of claim 8 , further comprising:

receiving, by the network device, a QUIC packet;

determining, by the network device, a source IP-tuple, a destination IP-tuple, and a CID from the QUIC packet;

determining, by the network device, that the source IP-tuple, the destination IP-tuple, and the CID from the QUIC packet do not correspond to the first association associated with the first QUIC connection; and

dropping the QUIC packet.

16. One or more non-transitory computer-readable media storing computer-executable instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:

identifying, by a network device, a first QUIC connection between a first device and a second device;

determining, from the first QUIC connection, a first IP-tuple including a first IP address and a first port number associated with the first device;

determining, from the first QUIC connection, a second IP-tuple including a second IP address and a second port number associated with the second device;

determining, from the first QUIC connection, a first connection identifier (CID) associated with the first QUIC connection;

storing a first association between the first IP-tuple, the second IP-tuple, and the first CID associated with the first QUIC connection;

identifying, by the network device, a second QUIC connection between the first device and another device;

identifying, from the second QUIC connection, the first IP-tuple, a second CID, and a third IP-tuple including a third IP address and a third port number;

determining whether at least two following connection criteria are met:

the second IP address corresponds to the third IP address;

the second port number corresponds to the third port number; or

the second CID corresponds to the first CID; and

in response to determining that at least two connection criteria are met, determining that the second QUIC connection and the first QUIC connection are a same QUIC connection, and updating the first association based at least in part on the third IP-tuple or the second CID.

17. The one or more non-transitory computer-readable media of claim 16 , the operations further comprising:

in response to determining that at least two of the connection criteria are not met, determining that the second QUIC connection does not correspond to the first QUIC connection; and

storing a second association between the first IP-tuple, the third IP-tuple, and the second CID associated with the second QUIC connection.

18. The one or more non-transitory computer-readable media of claim 16 , the operations further comprising:

determining that the second IP address corresponds to the third IP address;

determining that the second port number corresponds to the third port number;

determining that the second CID does not correspond to the first CID; and

storing the second CID in a list of probable CIDs.

19. The one or more non-transitory computer-readable media of claim 16 , the operations further comprising:

receiving, by the network device, a QUIC packet;

determining, by the network device, a source IP-tuple, a destination IP-tuple, and a CID from the QUIC packet;

determining, by the network device, that the source IP-tuple, the destination IP-tuple, and the CID from the QUIC packet correspond to the first association associated with the first QUIC connection; and

transmitting the QUIC packet to a destination device associated with the destination IP-tuple.

20. The one or more non-transitory computer-readable media of claim 16 , the operations further comprising:

receiving, by the network device, a QUIC packet;

determining, by the network device, a source IP-tuple, a destination IP-tuple, and a CID from the QUIC packet;

determining, by the network device, that the source IP-tuple, the destination IP-tuple, and the CID from the QUIC packet do not correspond to the first association associated with the first QUIC connection; and

dropping the QUIC packet.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2022
From: DESHMUKH, RAJVARDHAN SOMRAJ; CAM-WINGET, NANCY PATRICIA; KASPER, JAMES W.
To: CISCO TECHNOLOGY, INC.
Reel/Frame 061530/0885 →
Continuity (2)
Related Publication 20240137428A1 · Apr 25, 2024
Related Publication 20240236210A9 · Jul 11, 2024
References Cited (15)
US 8224966B2 · Tate · 2012 [cited by examiner]
US 11533655B2 · Sarker · 2022 [cited by examiner]
US 20190116535A1 · Szilagyi et al. · 2019 [cited by applicant]
US 20200120015A1 · Boucadair et al. · 2020 [cited by applicant]
US 20210045186A1 · Fu et al. · 2021 [cited by applicant]
US 20210211385A1 · Gochi Garcia et al. · 2021 [cited by applicant]
US 20210329069A1 · Desmouceaux · 2021 [cited by applicant]
US 20210409447A1 · Dutta · 2021 [cited by applicant]
US 20220191304A1 · Jain · 2022 [cited by examiner]
EP 3754947A1 · 2020 [cited by examiner]
EP 3754947B1 · 2023 [cited by applicant]
WO WO2020043319A1 · 2020 [cited by examiner]
The PCT Search Report and Written Opinion mailed Feb. 13, 2024 for PCT Application No. PCT/US2023/035896 from PCT Summary, 32 pages. [cited by applicant]
Duke Google N Banks Microsoft C Huitemaprivate Octopus Inc M: “QUIC-LB:Generating Routab1e QUIC Connection IDsdraft-ietf-quic-1oad-ba1ancers-15;draft-ietf-quic-1oad-ba1ancers-15.txt”,QUIC-LB:Generating Routable Quicconn… [cited by applicant]
Kuehlewind Ericsson B Trammell Google M: “Manageability of the QUIC TransportProtocol draft-ietf-quic-manageability-10;draft-ietf-quic-manageability-10.txt”, Manageability of the Quic Transportprotocol draft-ietf-quicma… [cited by applicant]