IP Library Granted Patent US 11,140,084
Granted Patent B2
US 11,140,084 · App. 15/488,113 · Granted Oct 5, 2021

TCP/UDP acceleration

Inventors: Howard Hall (Groton, MA); Ilia Sokolinski (Brighton, MA); Milan Merhar (Brookline, MA)
Assignee: ORACLE AMERICA, INC.
H04L47/193G06F16/178G06F16/183H04L29/06H04L47/125H04L47/2458H04L47/2466H04L47/2483H04L47/726H04L69/10H04L69/16H04L69/165H04L49/00
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,140,084
App. No.
15/488,113
Granted
Oct 5, 2021
Kind
B2
Abstract

A method for accelerating TCP/UDP packet switching. The method involves determining whether exception processing is necessary; if not, the packet is forwarded to a special stack for expedited processing. Packets requiring exception processing are forwarded to the conventional stack.

Claims (34)

1. A digital processing system for processing data packets in at least one data network, comprising:

a storage resource card;

wherein storage resource card includes a first stack for performing a first type of packet processing with a first number of processing steps on data packets received in the at least one network and

a second stack for performing a second type of packet processing that comprises a second number of processing steps on data packets received in the at least one network, wherein the second number of processing steps is less than the first number of processing steps;

wherein the storage resource card receives packets and determines whether the received packets correspond to the first type or second type of packet processing, wherein the storage resource card injects packets that correspond to the first type of packet processing into the first stack, and wherein the storage resource card processes packets that correspond to the second type of packet processing according to the second stack.

2. The system of claim 1 , wherein the storage resource card determines whether the received packets correspond to the first or second types of packet processing based on Session IDs associated with the received packets.

3. The system of claim 2 , wherein the packets requiring exceptions processing are injected into the first stack.

4. The system of claim 1 , wherein the storage resource card determines whether the received packets correspond to the first or second types of packet processing based on TCP socket states associated with the received packets.

5. The system of claim 1 , wherein the first stack is implemented by a first processor of the storage resource card and the second stack is implemented by a second processor of the storage resource card, and wherein the first and second processors exchange control messages to maintain state synchronization.

6. The system of claim 1 , wherein the first stack and the second stack are implemented by a single processor disposed on the storage resource card.

7. A method for processing data packets, comprising:

receiving a data packet at a storage resource card that comprises a first stack for processing data packets according to a slow path and a second stack for processing data packets according to a fast path;

determining whether the data packet is eligible for processing by the second stack; and

routing the data packet to the second stack as a function of the packet being eligible for processing by the second stack or routing the data packet to the first stack as a function of the packet being ineligible for processing by the second stack.

8. The method of claim 7 , wherein the determining comprises:

extracting a Session ID from the data packet;

using the Session ID to look up socket and TCP control blocks corresponding to the data packet; and

examining the socket and TCP control blocks, a TCP header, and an associated Fast-Path connection entry to determine whether the data packet is eligible for processing by the second stack.

9. The method of claim 7 , wherein the determining comprises assessing whether the data packet will require exception processing based on at least one of:

an out of order sequence of the data packet in relation to other data packets;

a TCP-atypical flag corresponding to the data packet;

an option associated with the data packet;

an incorrect timestamp associated with the data packet;

data queued in a send buffer of a socket associated with the data packet; and

a retransmission requirement.

10. The method of claim 7 , wherein the determining comprises sending the data packet directly to an inter-processor communication module, wherein receiving an error code at a socket send routine indicates that the data packet is ineligible for processing by the second stack.

11. The method of claim 7 , wherein the data packet is received from an internet exchange point.

12. The method of claim 7 , further comprising:

establishing, using the first stack, a TCP connection; and

tearing down, using the first stack, the TCP connection.

13. A digital processing system for processing data packets in at least one data network, comprising:

a first stack for performing a first type of packet processing with a first number of processing steps on data packets received in the at least one network; and

a second stack for performing a second type of packet processing that comprises a second number of processing steps on data packets received in the at least one network;

wherein the second number of processing steps is less than the first number of processing steps, wherein the system receives packets and determines whether the received packets correspond to the first or second types of packet processing, wherein the system injects packets that correspond to the first type of packet processing into the first stack, wherein the system processes packets that correspond to the second type of packet processing according to the second stack, and wherein the data packets are transmitted from one or both of the first stack and the second stack to one or both of a first storage medium of a first type and a second storage medium of a second type via mediation.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2017
From: HALL, HOWARD; SOKOLINSKI, ILIA; MERHAR, MILAN
To: PIRUS NETWORKS
Reel/Frame 042015/0981 →
SECURITY INTEREST Recorded Apr 14, 2017
From: PIRUS NETWORKS, INC.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 042016/0011 →
SECURITY INTEREST Recorded Apr 14, 2017
From: PIRUS NETWORKS, INC.
To: GATX VENTURES, INC.
Reel/Frame 042016/0909 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2017
From: PIRUS NETWORKS, INC.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 042016/0942 →
MERGER Recorded Apr 14, 2017
From: SUN MICROSYSTEMS, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 042017/0035 →
Continuity (5)
Continuation 14459539 · Aug 14, 2014
Division 10415330
Provisional Application 60301378 · Jun 27, 2001
Provisional Application 60245295 · Nov 2, 2000
Related Publication 20170237668A1 · Aug 17, 2017
Cited By (1)
US 12,468,567