IP Library Granted Patent US 12,177,292
Granted Patent B2
US 12,177,292 · App. 18/486,013 · Granted Dec 24, 2024

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/1029H04L67/1023H04L2101/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 12,177,292
App. No.
18/486,013
Granted
Dec 24, 2024
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 (54)

1. A method of operating a network, comprising:

in a first server:

receiving a packet from a stateless load balancer, the packet comprising a primary address and a secondary address that identifies a second network component;

determining that the packet should be forwarded to the second network component without passing the packet to a user space of the first server; and

forwarding the packet to the second network component without passing the packet to the user space of the first server; and

in the second network component:

receiving the packet; and

processing the packet, comprising passing the packet to a user space of the second network component to respond to any request that may be part of the packet.

2. The method of claim 1 , wherein determining that the packet should be forwarded to the second network component comprises determining that a connection identified in the packet is unknown to the first server.

3. The method of claim 1 , wherein determining that the packet should be forwarded to the second network component comprises determining that the packet is not requesting a new connection.

4. The method of claim 1 , wherein determining that the packet should be forwarded to the second network component comprises comparing a portion of the packet to a table.

5. The method of claim 1 , wherein the packet comprises a payload, the payload having a context, and wherein determining that the packet should be forwarded to the second network component comprises inspecting the context of the payload.

6. The method of claim 1 , wherein the second network component is a second server.

7. The method of claim 1 , further comprising:

in the first server:

receiving a second packet from the stateless load balancer, the second packet comprising a payload;

determining that the second packet should not be forwarded without passing the second packet to a user space of the first server;

passing the second packet to the user space of the first server;

replying to the second packet.

8. A server in an infrastructure service, the server comprising a processor connected to a memory with instructions thereon, the instructions divided into kernal instructions and user space instructions, the kernal instructions, when executed by the processor, cause the server to:

receive a packet from a stateless load balancer, the packet comprising a primary address and a secondary address that identifies a second network component;

determine that the packet should be forwarded to the second network component without passing the packet to a user space of the first server;

forward the packet to the second network component without passing the packet to the user space of the first server.

9. The server of claim 8 , wherein the user space instructions, when executed by the processor, enable the server to read and respond to the payload.

10. The server of claim 8 , wherein the kernal instructions, when executed by the processor, further cause the server to:

receive a second packet from the stateless load balancer, the second packet comprising a payload;

determine that the second packet should not be forwarded without passing the second packet to a user space of the first server;

pass the second packet to the user space of the first server; and

reply to the second packet.

11. The server of claim 10 , wherein the user space instructions, when executed by the processor, cause the server to read and respond to the payload.

12. The server of claim 8 , wherein determining that the packet should be forwarded to the second network component comprises determining that a connection identified in the packet is unknown to the first server.

13. The server of claim 10 , wherein determining that the second packet should not be forwarded comprises determining that a connection identified in the packet is new or known to the first server.

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

in a stateless load balancer:

receiving a packet, comprising a secondary address associated with the packet and a payload from a user;

identifying a first server to receive the packet; and

forwarding the packet to the first server;

in the first server:

receiving the packet;

determining that the packet should be forwarded to the secondary address associated with the packet without passing the packet to a user space of the first server; and

forwarding the packet to the secondary address associated with the packet without passing the packet to the user space of the first server.

15. The method of claim 14 further comprising:

in a second server associated with the secondary address:

receiving the packet; and

processing the packet, comprising passing the packet to a user space of the second server to respond to any request that may be part of the packet.

16. The method of claim 14 , further comprising:

In the first server:

receiving a second packet from the stateless load balancer, the second packet comprising a payload;

determining that the second packet should not be forwarded without passing the second packet to a user space of the first server;

passing the second packet to the user space of the first server.

17. The method of claim 14 , wherein determining that the packet should be forwarded to the second network component comprises determining that a connection identified in the packet is unknown to the first server.

18. The method of claim 14 , wherein determining that the packet should be forwarded to the second network component comprises determining that the packet is not requesting a new connection.

19. The method of claim 14 , wherein determining that the packet should be forwarded to the second network component comprises comparing a portion of the packet to a table.

20. The method of claim 14 , and wherein determining that the packet should be forwarded to the second network component comprises inspecting a context of the payload.

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 Oct 12, 2023
From: BUYTENHEK, LENNERT; ARAUJO, JOAO DIOGO TAVIERA
To: FASTLY, INC.
Reel/Frame 065204/0011 →
Continuity (4)
Continuation 17584033 · Jan 25, 2022
Continuation 16544188 · Aug 19, 2019
Provisional Application 62719271 · Aug 17, 2018
Related Publication 20240039987A1 · Feb 1, 2024