IP Library Granted Patent US 8,126,015
Granted Patent B2
US 8,126,015 · App. 12/138,985 · Granted Feb 28, 2012

Multi-stream communication processing

Assignee: Hewlett-Packard Development Company, L.P.
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 8,126,015
App. No.
12/138,985
Granted
Feb 28, 2012
Kind
B2
Abstract

The processing of multi-streaming communication includes an association between a sender and a receiver established over a communications network. The processing also includes identifying each of more than one independent multi-streamed messages transferred over the association. Each of the multi-streamed messages are separated at the receiver, and each separated message is processed in parallel with the other messages on a corresponding unique processor at the receiver.

Claims (46)

1. A method of processing multi-streaming communication at a communication receiver having a receiver processor and a plurality of message processors, the method comprising:

identifying each of a plurality of independent multi-streamed messages by corresponding stream identifiers, wherein the multi-streamed messages are simultaneously carried together within a single payload, wherein the payload and the stream identifiers are carried together in a single packet, and wherein the packet is transferred over a communications network in an association between a sender and a receiver;

separating each of the identified independent messages in the packet at the receiver processor based on the stream identifiers in the packet wherein each multi-streamed message includes a unique stream identifier;

assigning the corresponding one of the unique processors for processing with a hash function on the stream identifier, which is

destination_cpu=(((stream_id)%(ncpus−1))+niccpu+1)% ncpus;

wherein destination_cpu is the corresponding one of the unique processors,

stream_id is the stream identifier,

ncpus is the number of processors at the receiver,

niccpu is the processor on which the messages have arrived, and

% represents the modulo operation, which determines a remainder in a division; and

simultaneously processing each of at least a plurality of separated independent message as an individual thread on a corresponding unique message processor at the receiver.

2. The method of claim 1 wherein the messages are transferred with a transport protocol operating in a transport layer.

3. The method of claim 2 wherein the transport protocol is Stream Controlled Transmission Protocol.

4. The method of claim 2 wherein processing each separated independent message is performed at the transport layer.

5. The method of claim 1 wherein the association includes at least one Internet Protocol address for a particular port at each of the sender and the receiver.

6. The method of claim 1 wherein the multi-streamed messages are grouped together in a packet and transferred on the association, and the stream identifier for each message is unique to the packet.

7. A system for processing multi-streaming communication from a sender having

an association established between the sender and a receiver wherein the association includes a plurality of independent multi-streamed messages simultaneously transferred together as a single payload, wherein each of the messages includes an identifier, and wherein the payload and identifiers are included in a single message packet, the system comprising:

a receiver processor configured to receive the plurality of messages transferred in the association and to separate the messages based on the corresponding identifier; and

a plurality of message processors coupled in parallel to the receiver processor;

wherein the receiver processor is configured to assign each of the messages in the association to a unique message processor according to a function performed on the identifier, and wherein the function includes:

destination_cpu=(((stream_id)%(ncpus−1))+niccpu+1)% ncpus;

wherein destination_cpu is the corresponding one of the unique processors,

stream_id is the identifier,

ncpus is the number of processors at the receiver,

niccpu is the processor on which the messages have arrived, and

% represents the modulo operation, which determines a remainder in a division; and

wherein the plurality of message processors are configured to simultaneously process the messages as individual threads.

8. The system of claim 7 wherein the plurality of message processors is at least as many as the plurality of messages in the association.

9. The system of claim 7 wherein only the plurality of message processors process the separated messages.

10. A non-transitory processor-readable medium tangibly storing processor-executable instructions to cause a processor to perform a method, comprising:

receiving a plurality of independent multi-streamed messages each having corresponding stream identifiers, wherein the multi-streamed messages are simultaneously carried together within a single payload, wherein the payload and the stream identifiers are carried together in a single packet, and wherein the packet is transferred over a communications network in an association between a sender and a receiver

separating each of the independent messages based on the stream identifiers in the packet wherein each multi-streamed message includes a unique stream identifier;

assigning the corresponding one of the unique processors for processing with a hash function on the stream identifier, which is

destination_cpu=(((stream_id)%(ncpus−1))+niccpu+1)% ncpus;

wherein destination_cpu is the corresponding one of the unique processors,

stream_id is the stream identifier,

ncpus is the number of processors at the receiver,

niccpu is the processor on which the messages have arrived, and

% represents the modulo operation, which determines a remainder in a division;

simultaneously processing each of the messages as an individual thread along with the other messages; and

binding each of the message identifiers to an input.

11. The non-transitory processor-readable medium of claim 10 wherein the processing includes processing the messages in parallel as corresponding threads that are coupled to an application main thread.

12. The non-transitory processor-readable medium of claim 10 wherein binding each of the stream identifiers to an input includes selecting one of a plurality of inputs for binding.

13. The non-transitory processor-readable medium of claim 12 wherein the selecting includes considering network congestion characteristics.

14. The non-transitory processor-readable medium of claim 12 wherein the messages are provided with a transport protocol that supports multi-homing.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2024
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: HCL TECHNOLOGIES LIMITED
Reel/Frame 069715/0743 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2008
From: SIRIGIRI, ANIL KUMAR REDDY; RAMAIAH, CHAITRA MARALIGA
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 021210/0394 →
Priority Claims (1)
IN 920/CHE/2008 · Apr 11, 2008 · national
Continuity (1)
Related Publication 20090257450A1 · Oct 15, 2009