High data rate stateful protocol processing
First Claim
1. A method of processing data in a stateful protocol processing system (“
- SPPS”
) that processes a multiplicity of flows of messages, each flow being associated with a uniquely corresponding flow identification (“
FID”
) that is conveyed by messages belonging to such flow, the method comprising;
a) receiving a plurality of messages belonging to a particular flow;
b) deriving SPPS events associated with the particular flow from the received messages;
c) specifically assigning a first protocol processing core (“
PPC”
) to process one or more events of the particular flow in accordance with a stateful protocol (SP) of the particular flow; and
d) specifically assigning a different second PPC to process one or more other events of the particular flow in accordance with the SP of the particular flow.
6 Assignments
0 Petitions
Accused Products
Abstract
A method, system, and apparatus for processing messages according to one or more stateful protocols in a data communication system. Messages belonging to various communication flows (such as TCP transport layer “connections”) are processed according to a selected stateful protocol. Messages belonging to a single unified flow are distributed among different protocol processing cores (PPCs) at different times. Assignment of flows to PPCs is typically modifiable at the level of specific individual flows, permitting flexible load balancing between PPCs. The architecture of the system facilitates the method by providing a mix of pipelined and parallel processing structures.
196 Citations
49 Claims
-
1. A method of processing data in a stateful protocol processing system (“
- SPPS”
) that processes a multiplicity of flows of messages, each flow being associated with a uniquely corresponding flow identification (“
FID”
) that is conveyed by messages belonging to such flow, the method comprising;
a) receiving a plurality of messages belonging to a particular flow;
b) deriving SPPS events associated with the particular flow from the received messages;
c) specifically assigning a first protocol processing core (“
PPC”
) to process one or more events of the particular flow in accordance with a stateful protocol (SP) of the particular flow; and
d) specifically assigning a different second PPC to process one or more other events of the particular flow in accordance with the SP of the particular flow. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
- SPPS”
-
18. A method of processing data in a data communication stateful protocol processing system that processes a multiplicity of flows of data communication messages, each flow being associated with a uniquely corresponding flow identification (“
- FID”
) that is conveyed by messages belonging to such flow, the method comprising;
a) receiving messages belonging to a particular flow and messages belonging to other flows;
b) deriving events from the received messages that are associated with the flow indicated by the FID of the message from which they are derived, including events associated with the particular flow and events associated with the other flows;
c) placing each event in one of a group of one or more preliminary processing queues;
d) assigning a first protocol processor core (“
PPC”
) to process a first event of the particular flow without regard to the preliminary processing queue in which the first event is located, and subsequently transferring the first event to a local queue of the assigned first PPC; and
e) assigning a different second PPC to process a different second event of the particular flow without regard to the preliminary processing queue in which the second event is located, and subsequently transferring the second event to a local queue of the assigned second PPC. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
- FID”
-
31. A method of processing data in a stateful protocol processing system (“
- SPPS”
) that processes a multiplicity of flows of messages, each flow being associated with a uniquely corresponding flow identification (“
FID”
) that is conveyed by messages belonging to such flow, the method comprising;
a) steps to effect receipt of a plurality of messages belonging to a particular flow;
b) steps to define events based upon the received messages;
c) steps to effect assignment of a first event of a particular flow to a first protocol processor core (“
PPC”
) for stateful protocol (“
SP”
) processing; and
d) steps to effect assignment of a second event of the particular flow to a different second PPC for SP processing. - View Dependent Claims (32, 33)
- SPPS”
-
34. A system for terminating a data communication transport layer, comprising:
-
a) a message receiver module configured to i) receive numerous data communication messages, each such message associated with a flow uniquely identified by a flow identification (“
FID”
) of such message, andii) derive events from the received messages, each event associated with the flow associated with the message from which it is derived;
b) a plurality of protocol processor core (“
PPC”
) modules configured to process events in accordance with a stateful protocol of the flow of the event; and
c) an event dispatching module for dispatching events among the plurality of PPC modules, the event dispatching module configured to;
iv) receive events from the message receiver module;
v) determine, for each received event, whether a PPC module is presently assigned to process events of the flow of the received event; and
vi) select, from among a plurality of compatible PPC modules without regard to the FID of the flow of a particular received event, a PPC module to process a received event that was determined in step ii) to have no PPC module presently assigned for processing. - View Dependent Claims (35, 36, 37, 38, 39, 40)
-
-
41. An apparatus for processing messages according to a data communication stateful protocol, the apparatus comprising:
-
a) means for receiving messages from a physical layer;
b) a plurality of means for stateful protocol (SP) processing of information of a particular communication flow;
c) means for selecting one among the plurality of SP processing means to process information of the particular communication flow so as to balance processor loading irrespective of flow identification (“
FID”
) data provided in messages of the particular communication flow. - View Dependent Claims (42, 43, 44)
-
-
45. A stateful protocol processing apparatus, comprising:
-
a) more than one protocol processing core (“
PPC”
) microprocessor, each PPC microprocessor including;
i) local memory sufficient to substantially store a flowstate that is accessible by the PPC without interference to other PPCs, and ii) program memory configured to contain instruction code, during operation of the apparatus, sufficient to cause the microprocessor to process a received data message in accordance with an appropriate stateful protocol (SP), including updating an associated flowstate stored in local memory in response to state-relevant information in the received data message; and
b) a dispatcher including an input for receiving data messages, and processing circuitry that is configured, at least during operation of the apparatus, to iv) forward information of a first received data message associated with a particular flow to a first PPC for SP processing, and v) forward information of at least a different second message associated with the particular flow to a different second PPC for SP processing. - View Dependent Claims (46)
-
-
47. A method within a data communication system for distributing communication events belonging to corresponding communication flows among a plurality of compatible protocol processors, the method comprising:
-
a) receiving a first event belonging to a first flow in a queue for distribution;
b) selecting a first protocol processor to process the first event from among a plurality of protocol processors that are compatible with the first event;
c) transferring the first event from the queue to the first protocol processor;
d) transferring other events belonging to other flows from the queue to the first protocol processor;
e) receiving a second event belonging to the particular flow in the queue;
f) selecting a different second protocol processor to process the second event from among the plurality of compatible protocol processors; and
g) transferring the second event from the queue to the second protocol processor while the first protocol processor continues to process other events from the queue. - View Dependent Claims (48, 49)
-
Specification