A method for processing outgoing information packets comprising: receiving an outgoing information packet generated by a user application having a process ID; comparing the process ID of the user application with a process ID stored in a private memory area reserved from a user-space socket and associated with the user application; when the process ID stored in the private memory area matches the process ID of the user application identifying a transmit queue associated with the process ID stored in the private memory area and sending the outgoing packet to the identified transmit queue; when the process ID stored in the private memory area does not match the process ID of the user application determining whether the process ID of the user application matches a Process ID in an active threads table that associates process IDs of active processing threads with one of a plurality of transmit queues; when the process ID of the user application matches a Process ID in the active threads table, determining that the information packet is associated with a different processing thread of a current flow and updating the private memory area associated with the process ID of the user application with the process ID stored in the active threads table to be associated with the transmit queue in the private memory area; and when the process ID of the user application does not match a Process ID in the active threads table, generating a new transmit queue for a processing thread associated with the process ID of the user application that generated the outgoing information packet, updating the private memory area with the process ID of the user application in association with the new transmit queue, and adding a new entry to the active threads table to associate the process ID of the user application with the processing thread and the new transmit queue. receiving an outgoing information packet generated by a user application having a process ID; comparing the process ID of the user application with a process ID stored in a private memory area reserved from a user-space socket and associated with the user application; when the process ID stored in the private memory area matches the process ID of the user application identifying a transmit queue associated with the process ID stored in the private memory area and sending the outgoing packet to the identified transmit queue; when the process ID stored in the private memory area does not match the process ID of the user application determining whether the process ID of the user application matches a Process ID in an active threads table that associates process IDs of active processing threads with one of a plurality of transmit queues; when the process ID of the user application matches a Process ID in the active threads table, determining that the information packet is associated with a different processing thread of a current flow and updating the private memory area associated with the process ID of the user application with the process ID stored in the active threads table to be associated with the transmit queue in the private memory area; and when the process ID of the user application does not match a Process ID in the active threads table, generating a new transmit queue for a processing thread associated with the process ID of the user application that generated the outgoing information packet, updating the private memory area with the process ID of the user application in association with the new transmit queue, and adding a new entry to the active threads table to associate the process ID of the user application with the processing thread and the new transmit queue.