IP Library Granted Patent US 11,784,912
Granted Patent B2
US 11,784,912 · App. 15/930,999 · Granted Oct 10, 2023

Intelligently routing internet traffic

Inventors: Braden Ehrat (Champaign, IL); Jay A. Kreibich (San Francisco, CA); Jérôme Fleury (San Francisco, CA); Michael Vanderwater (Champaign, IL); Nicholas Alexander Wondra (Savoy, IL); Richard Thompson (Sydney, AU)
Assignee: CLOUDFLARE, INC.
H04L45/14H04L45/44H04L61/5007
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 11,784,912
App. No.
15/930,999
Granted
Oct 10, 2023
Kind
B2
Abstract

A request from a client device is received at a first one of a plurality of compute nodes at a first one of a plurality of data centers of a distributed cloud computing network. A destination of the request is determined. An optimized route for transmitting the request toward an origin server that corresponds with the destination of the request is determined, where the optimized route is based on at least in part on probe data between data centers of the distributed cloud computing network for a plurality of transit connections, and where the optimized route has an IP address that encodes an identification of which of the plurality of transit connections is to be used to deliver the request. The request is transmitted to a next hop as defined by the optimized route over the identified one of the plurality of transit connections.

Claims (41)

1. A method, comprising:

receiving a request from a client device at a first one of a plurality of compute nodes at a first one of a plurality of data centers of a distributed cloud computing network;

determining a destination of the request;

determining an optimized route for transmitting the request toward an origin server that corresponds with the destination of the request, wherein the optimized route is based at least in part on probe data between data centers of the distributed cloud computing network for a plurality of transit connections, wherein the optimized route has an IP address that includes a first portion that encodes an identification of which of the plurality of transit connections is to be used to deliver the request, a second portion that encodes an identification of a data center, and a third portion that encodes an identifier for an ingress transit connection from the plurality of transit connections; and

transmitting the request to a next hop as defined by the optimized route over the identified one of the plurality of transit connections.

2. The method of claim 1 , wherein the IP address that encodes the identification of which of the plurality of transit connections is to be used to deliver the request is a source IP address.

3. The method of claim 1 , wherein the IP address that encodes the identification of which of the plurality of transit connections is to be used to deliver the request is a source IP address, and wherein the source IP address further includes a fourth portion that encodes an identification of an egress transit connection from the plurality of transit connections.

4. The method of claim 1 , wherein the next hop is a second one of the plurality of data centers, and wherein the optimized route has a destination IP address that includes a first portion that encodes an identification of which of the plurality of transit connections is to be used for ingress to the second one of the plurality of data centers, and a second portion that encodes an identifier of the second one of the plurality of data centers.

5. The method of claim 1 , wherein transmitting the request to the next hop includes a router of the first data center matching the encoded identification of which of the plurality of transit connections is to be used to deliver the request with a physical interface on the router and transmitting the request using that physical interface.

6. The method of claim 1 , further comprising:

receiving a response to the transmitted request; and

transmitting the response to the client device.

7. The method of claim 1 , wherein the optimized route is further based in part on probe data between the plurality of data centers and the origin server.

8. A non-transitory machine-readable storage medium that provides instructions that, when executed by a processor, causes the processor to perform the following operations:

receiving a request from a client device at a first one of a plurality of compute nodes at a first one of a plurality of data centers of a distributed cloud computing network;

determining a destination of the request;

determining an optimized route for transmitting the request toward an origin server that corresponds with the destination of the request, wherein the optimized route is based at least in part on probe data between data centers of the distributed cloud computing network for a plurality of transit connections, wherein the optimized route has an IP address that includes a first portion that encodes an identification of which of the plurality of transit connections is to be used to deliver the request, a second portion that encodes an identification of a data center, and a third portion that encodes an identifier for an ingress transit connection from the plurality of transit connections; and

transmitting the request to a next hop as defined by the optimized route over the identified one of the plurality of transit connections.

9. The non-transitory machine-readable storage medium of claim 8 , wherein the IP address that encodes the identification of which of the plurality of transit connections is to be used to deliver the request is a source IP address.

10. The non-transitory machine-readable storage medium of claim 8 , wherein the IP address that encodes the identification of which of the plurality of transit connections is to be used to deliver the request is a source IP address, and wherein the source IP address further includes a fourth portion that encodes an identification of an egress transit connection from the plurality of transit connections.

11. The non-transitory machine-readable storage medium of claim 8 , wherein the next hop is a second one of the plurality of data centers, and wherein the optimized route has a destination IP address that includes a first portion that encodes an identification of which of the plurality of transit connections is to be used for ingress to the second one of the plurality of data centers, and a second portion that encodes an identifier of the second one of the plurality of data centers.

12. The non-transitory machine-readable storage medium of claim 8 , wherein transmitting the request to the next hop includes a router of the first data center matching the encoded identification of which of the plurality of transit connections is to be used to deliver the request with a physical interface on the router and transmitting the request using that physical interface.

13. The non-transitory machine-readable storage medium of claim 8 , the operations further comprising:

receiving a response to the transmitted request; and

transmitting the response to the client device.

14. The non-transitory machine-readable storage medium of claim 8 , wherein the optimized route is further based in part on probe data between the plurality of data centers and the origin server.

15. An apparatus, comprising:

a processor; and

a non-transitory machine-readable storage medium that provides instructions that, when executed by a processor, causes the processor to perform the following:

receive a request from a client device at a first one of a plurality of compute nodes at a first one of a plurality of data centers of a distributed cloud computing network;

determine a destination of the request;

determine an optimized route for transmitting the request toward an origin server that corresponds with the destination of the request, wherein the optimized route is to based at least in part on probe data between data centers of the distributed cloud computing network for a plurality of transit connections, wherein the optimized route is have an IP address that includes a first portion that encodes an identification of which of the plurality of transit connections is to be used to deliver the request, a second portion that encodes an identification of a data center, and a third portion that encodes an identifier for an ingress transit connection from the plurality of transit connections; and

transmit the request to a next hop as defined by the optimized route over the identified one of the plurality of transit connections.

16. The apparatus of claim 15 , wherein the IP address that encodes the identification of which of the plurality of transit connections is to be used to deliver the request is a source IP address.

17. The apparatus of claim 15 , wherein the IP address that encodes the identification of which of the plurality of transit connections is to be used to deliver the request is a source IP address, and wherein the source IP address further includes a fourth portion that encodes an identification of an egress transit connection from the plurality of transit connections.

18. The apparatus of claim 15 , wherein the next hop is a second one of the plurality of data centers, and wherein the optimized route has a destination IP address that includes a first portion that encodes an identification of which of the plurality of transit connections is to be used for ingress to the second one of the plurality of data centers, and a second portion that encodes an identifier of the second one of the plurality of data centers.

19. The apparatus of claim 15 , wherein transmission of the request to the next hop includes a router of the first data center matching the encoded identification of which of the plurality of transit connections is to be used to deliver the request with a physical interface on the router and transmitting the request using that physical interface.

20. The apparatus of claim 15 , wherein the non-transitory machine-readable storage medium further provides instructions that, when executed by the processor, causes the processor to perform the following:

receive a response to the transmitted request; and

transmit the response to the client device.

21. The apparatus of claim 15 , wherein the optimized route is further based in part on probe data between the plurality of data centers and the origin server.

Assignments (1)
SECURITY INTEREST Recorded May 20, 2024
From: CLOUDFLARE, INC.
To: CITIBANK, N.A.
Reel/Frame 067472/0246 →
Continuity (2)
Provisional Application 62847307 · May 13, 2019
Related Publication 20200366592A1 · Nov 19, 2020
Cited By (1)
US 12,457,196