IP Library Granted Patent US 11,792,260
Granted Patent B2
US 11,792,260 · App. 17/584,033 · Granted Oct 17, 2023

User space redirect of packet traffic

Inventors: Lennert Buytenhek (San Francisco, CA); João Diogo Taveira Araújo (San Francisco, CA)
Assignee: Fastly, Inc.
H04L67/1038H04L45/66H04L47/125H04L47/196H04L47/22H04L47/2441H04L47/32H04L63/0263H04L63/102H04L67/1004H04L67/1029H04L2101/622
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,792,260
App. No.
17/584,033
Granted
Oct 17, 2023
Kind
B2
Abstract

Enhanced packet redirect capabilities are disclosed herein for draining traffic to a server. In an implementation, a server in an infrastructure service receives a packet from a stateless load balancer. The packet may comprise a request for content. A user space program on the server determines whether a connection identified in the packet belongs to the server. If the connection belongs to the server, the user space program handles the request for the content. If not, the server forwards the packet to a secondary server in the infrastructure service. The secondary server, to which the connection may belong, can then handle the request.

Claims (42)

1. A method of operating an infrastructure service, the method comprising:

receiving an instruction to drain traffic from a first server;

responsive to the instruction, ceasing to forward packets from a load balancer to the first server;

after the instruction, forwarding a first packet from the load balancer to a second server;

examining the first packet in user space;

identifying a connection that is associated with the first packet;

determining that the connection is not new and is not known to the second server; and

forwarding the first packet from the second server to the first server.

2. The method of claim 1 wherein ceasing to forward packets from a load balancer to the first server comprises load balancing packets among a group of servers comprising the second server, and not comprising the first server, and wherein, prior to receiving the instruction, the load balancer load balanced packets among a group of servers comprising the first server.

3. The method of claim 1 , wherein examining the first packet in user space comprises operating a user space program on the second server to identify the connection that is associated with the first packet.

4. The method of claim 1 , further comprising determining that the connection that is associated with the first packet is associated with the first server.

5. The method of claim 1 , further comprising removing the first server from service.

6. The method of claim 1 , further comprising examining the first packet in kernel space to identify the address of the first server.

7. The method of claim 1 , wherein determining that the connection is not known to the second server comprises checking a list of existing connections with the second server.

8. The method of claim 1 , wherein the first server is identified in the first packet.

9. The method of claim 1 , wherein the first packet comprises a request for content.

10. The method of claim 9 , further comprising handling the request for content at least by:

determining if the content is cached in the first server;

obtaining the content from an origin server if the content is not yet cached; and

replying to the request with the content.

11. An infrastructure service, comprising:

a first server and a second server; and

a load balancer, comprising a processor, computer-readable memory, and load balancer instructions stored on the computer-readable memory, which, when executed by the load balancer, cause the load balancer to:

receive a command to drain traffic from a first server;

responsive to the command, cease to forward packets from the load balancer to the first server; and

after the command, forward a first packet from the load balancer to a second server;

wherein the second server comprises a processor, computer-readable memory, and second server instructions stored on the computer-readable memory, which, when executed by the second server, cause the second server to:

examine the first packet in user space;

identify a connection that is associated with the first packet;

determine that the connection is not new and is not known to the second server; and

forward the first packet from the second server to the first server.

12. The infrastructure service of claim 11 wherein ceasing to forward packets from a load balancer to the first server comprises distributing packets among a group of servers comprising the second server, but not the first server, and wherein, prior to receiving the command, the load balancer distributed packets among a group of servers comprising the first server.

13. The infrastructure service of claim 11 , wherein examining the first packet in user space comprises operating a user space program on the second server to identify the connection that is associated with the first packet.

14. The infrastructure service of claim 11 , wherein the second server instructions further cause the second server to determine that the connection that is associated with the first packet is associated with the first server.

15. The infrastructure service of claim 11 , wherein the second server instructions further cause the second server to examine the first packet in kernel space to identify the address of the first server.

16. The infrastructure service of claim 11 , wherein determining that the connection is not known to the second server comprises checking a list of existing connections with the second server.

17. The infrastructure service of claim 11 , wherein the first server is identified in the first packet.

18. The infrastructure service of claim 11 , wherein the first packet comprises a request for content.

19. The infrastructure service of claim 18 , wherein the second server instructions further cause the second server to handle the request for content at least by:

determining if the content is cached in the first server;

obtaining the content from an origin server if the content is not yet cached; and

replying to the request with the content.

Assignments (2)
SECURITY INTEREST Recorded May 1, 2024
From: FASTLY, INC.
To: FIRST-CITIZENS BANK & TRUST COMPANY, AS ADMINISTRATIVE AGENT
Reel/Frame 067281/0500 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2022
From: BUYTENHEK, LENNERT; ARAUJO, JOAO DIOGO TAVEIRA
To: FASTLY, INC.
Reel/Frame 058763/0892 →
Continuity (3)
Continuation 16544188 · Aug 19, 2019
Provisional Application 62719271 · Aug 17, 2018
Related Publication 20220150170A1 · May 12, 2022