IP Library Granted Patent US 11,245,753
Granted Patent B2
US 11,245,753 · App. 16/544,188 · Granted Feb 8, 2022

User space redirect of packet traffic

Inventors: Lennert Buytenhek (San Francisco, CA); João Taveira (San Francisco, CA)
Assignee: Fastly, Inc.
H04L67/1038H04L45/66H04L47/125H04L47/196H04L61/6022H04L63/0263H04L63/102H04L67/1004H04L67/1029
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,245,753
App. No.
16/544,188
Granted
Feb 8, 2022
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 (43)

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

receiving a packet from a stateless load balancer in the infrastructure service, wherein the packet comprises a request for content;

in a user space program on the server, determining whether a connection identified in the packet belongs to the server;

in the user space program, handling the request for the content if the connection belongs to the server; and

forwarding the packet from the server to a secondary server in the infrastructure service if the connection does not belong to the server.

2. The method of claim 1 wherein the connection identified in the packet is determined to belong the server is the connection is new or already known to the user space program.

3. The method of claim 2 wherein the user space program operates in accordance with a transport layer network protocol and maintains a list of existing connections.

4. The method of claim 3 wherein determining whether the connection belongs to the server comprises checking the list of existing connections for the connection.

5. The method of claim 4 wherein the transport layer network protocol comprises QUIC (Quick UDP [User Datagram Protocol] Internet Connections) and wherein the connection comprises a QUIC connection.

6. The method of claim 1 wherein the secondary server is identified in the packet and wherein forwarding the packet from the server to the secondary server comprises sending the packet to a media access control (MAC) address for the secondary server.

7. The method of claim 1 wherein handling the request for the content comprises:

determining if the content is cached in the server;

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

replying to the request with the content.

8. A server computer comprising:

one or more computer readable storage media;

a processing system operatively coupled with the one or more computer readable storage media; and

program instructions stored on the one or more computer readable storage media and executed by the processing system, wherein the program instructions comprise:

a kernel space program configured to at least receive packet traffic from a stateless load balancer in an infrastructure service;

a user space program on the server configured to at least: determine whether a connection identified in the packet traffic belongs to the user space program; keep the packet traffic if the connection belongs to the user space program; and forward the packet traffic from a secondary server computer in the infrastructure service if the connection does not belong to the user space program.

9. The server computer of claim 8 wherein the connection identified in the packet is determined to belong the server is the connection is new or already known to the user space program.

10. The server computer of claim 9 wherein the user space program operates in accordance with a transport layer network protocol and maintains a list of existing connections.

11. The server computer of claim 10 wherein user space program checks the list of existing connections to determine whether the connection belongs to the user space program.

12. The server computer of claim 11 wherein the transport layer network protocol comprises QUIC (Quick UDP [User Datagram Protocol] Internet Connections) and wherein the connection comprises a QUIC connection.

13. The server computer of claim 8 wherein the secondary server computer is identified in the packet traffic and wherein forwarding the packet traffic from the server computer to the secondary server computer comprises sending the packet to a media access control (MAC) address for the secondary server computer.

14. The server computer of claim method of claim 8 wherein, in response to keeping the packet traffic, the server computer is further configured to:

determine if a content requested by the packet traffic is cached in the server;

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

reply to the packet traffic with the content.

15. A method of operating a content delivery network, the method comprising:

in a load balancer, receiving packet traffic from end user applications;

in the load balancer, distributing the packet traffic across a plurality of servers in the content delivery network;

in response to an instruction to drain the packet traffic from a one of the plurality of servers, redirect the packet traffic from the one of the plurality of servers to at least one other of the plurality of servers;

in a user space application of the one other of the plurality of servers:

receiving a packet from the load balancer;

determining whether a connection identified in the packet belongs to the one other of the plurality of servers;

sending the packet to the one of the plurality of servers if the connection does not belong to the one other of the plurality of servers; and

serving content requested by the packet if the connection belongs to the one other of the plurality of servers.

16. The method of claim 15 wherein the connection identified in the packet is determined to belong to the one other of the plurality of servers if the connection is new or already known to the user space application.

17. The method of claim 16 wherein the user space program operates in accordance with a transport layer network protocol and maintains a list of existing connections.

18. The method of claim 17 wherein determining whether the connection belongs to the one other of the plurality of servers comprises checking the list of existing connections for the connection.

19. The method of claim 18 wherein the transport layer network protocol comprises QUIC (Quick UDP [User Datagram Protocol] Internet Connections) and wherein the connection comprises a QUIC connection.

20. The method of claim 15 wherein the one of the plurality of servers is identified in the packet and wherein sending the packet to the one of the plurality of servers comprises directing the packet to a media access control (MAC) address for the one of the plurality of servers.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2021
From: BUYTENHEK, LENNERT; ARAUJO, JOAO DIOGO TAVEIRA
To: FASTLY INC.
Reel/Frame 056049/0352 →
SECURITY INTEREST Recorded Feb 17, 2021
From: FASTLY, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AND COLLATERAL AGENT
Reel/Frame 055316/0616 →
Continuity (2)
Provisional Application 62719271 · Aug 17, 2018
Related Publication 20200059514A1 · Feb 20, 2020
Cited By (1)
US 12,267,381