Patent ID: 7979526

Claim:
A method for managing connections over a network, comprising: receiving a first synchronize packet associated with a server socket; determining that the first synchronize packet is to be accepted, utilizing a processor, and in response generating a first hash associated with the first synchronize packet, based on a pair of Internet Protocol (IP) addresses and ports associated with the first synchronize packet; allocating a first portion of a first memory for the server socket for a first-type of control block including a handle, IP addresses, TCP ports, and a timestamp, wherein the first hash is utilized as a pointer to the first-type of control block; sending a packet acknowledgement of the first synchronize packet; receiving an acknowledgement packet and in response: generating a second hash associated with the acknowledgement packet, based on a pair of IP addresses and ports associated with the acknowledgement packet, retrieving parameters in the first-type of control block pointed to by the second hash, and determining that parameters in the retrieved first-type of control block indicate that the received acknowledgement packet is a handshake acknowledgement packet for a connection attempt and parameters in the received handshake acknowledgement packet match the parameters in the retrieved first-type of control block and in response: opening the server socket to produce an open socket, de-allocating the first portion of the first memory, and allocating a second portion of a second memory for the open socket for a second-type of control block that is larger than the first-type of control block; and determining that a second synchronize packet is received with a hash that matches the first hash, and in response overwriting the first portion of the first memory for a server socket associated with the second synchronize packet, else allocating a second portion of the first memory for the server socket associated with the second synchronize packet; wherein the second memory is allocated for the open socket so that overload of the first memory does not affect the open socket.