Method and apparatus for managing network traffic
AssigneeF5 Networks, Inc.
InventorNing Xiang Li
Life of this patent
Estimating the term…
Abstract
A system, apparatus, and method for managing the flow of data on a network. A plurality of processors are used to implement a virtual queue, for controlling a rate of flow of data on the network. Each of the processors has a member queue, the combination of member queues combining to form the virtual queue. Aspects of the invention use messages to communicate among the processors, to properly control the rate of flow.
Claims11
A method of employing a plurality of processors to manage the transmission of data packets from across a network, comprising:
- receiving, at each processor in the plurality of processors, a plurality of data packets;
- sending, from each processor in the plurality of processors, to at least one other processor in the plurality of processors, at least one allocation message, the at least one allocation message being sent separate from any of the data packets, each allocation message including information about a number of tokens claimed by the respective processor and indicating data representative of an amount of data to be transmitted by the respective processor;
- transmitting, from each processor in the plurality of processors, the amount of data corresponding to each allocation message sent by the respective processor, the tokens being employed to control a rate of transmission of the data packets from each processor in the plurality of processors;
- determining, by each processor in the plurality of processors, the amount of data to be represented by the at least one allocation message corresponding to the respective processor;
- receiving a synchronization message from a master processor;
- and
- determining, at each processor, an aggregate amount of data based on the received synchronization message, wherein determining by each processor the amount of data to be represented by the at least one allocation message is at least partly based further on the aggregate amount of data determined by said each processor.
In a network having a plurality of processors transmitting packets to one or more targets, a traffic manager comprising:
- an input mechanism that receives packets;
- an output mechanism that transmits each packet to a target on the network;
- a processor;
- and
- allocation messaging means for controlling a rate of flow of the packets based at least in part on an amount of packets to be transmitted from each of the other processors in the plurality of processors such that the traffic manager manages the transmission of data packets across the network the allocation messaging means including at least one allocation message that is sent separate from any of the packets in the flow of packets being controlled and having within the allocation message tokens usable by each allocation messaging means to control the rate of flow of the packets;
- and
- receiving a synchronization message from a master processor;
- and
- wherein each processor determines an aggregate amount of data based on the received synchronization message, wherein determining by each processor the amount of data to be represented by the at least one allocation message is at least partly based further on the aggregate amount of data determined by said each processor.
A plurality of processors to manage the transmission of data packets from across a network, wherein the processing of data enables actions, comprising:
- receiving, at each processor in the plurality of processors, a plurality of data packets;
- sending, from each processor in the plurality of processors, to at least one other processor in the plurality of processors, at least one allocation message, the at least one allocation message being sent separate from any of the data packets, each allocation message including information about a number of tokens claimed by the respective processor and indicating data representative of an amount of data to be transmitted by the processor;
- transmitting, from each processor in the plurality of processors, the amount of data corresponding to each allocation message sent by the respective processor, the tokens being employed to control a rate of transmission of the data packets from each processor in the plurality of processors;
- and
- determining, by each processor in the plurality of processors, the amount of data to be represented by the at least one allocation message corresponding to the respective processor;
- and
- when a synchronization message is received from a master processor, determining, at each processor, an aggregate amount of data, wherein determining by each processor the amount of data to be represented by the at least one allocation message is at least partly based further on the aggregate amount of data determined by said each processor.
A method of employing a plurality of processors to manage the transmission of data packets from across a network, comprising:
- receiving, at each processor in the plurality of processors, a plurality of data packets;
- sending, from each processor in the plurality of processors, to at least one other processor in the plurality of processors, at least one allocation message, the at least one allocation message being sent separate from any of the data packets, each allocation message including information about a number of tokens claimed by the respective processor and indicating an amount of data to be transmitted by the respective processor;
- transmitting, from each processor in the plurality of processors, the amount of data corresponding to each allocation message sent by the respective processor, the tokens being employed to control a rate of transmission of the data packets from each processor in the plurality of processors;
- and
- determining, by each processor in the plurality of processors, the amount of data to be represented by the at least one allocation message corresponding to the respective processor;
- and
- when a synchronization message is received from a master processor, determining, at each processor, an aggregate amount of data, wherein determining by each processor the amount of data to be represented by the at least one allocation message is at least partly based further on the aggregate amount of data determined by said each processor.
Dependencies are inferred from the claim text.