Patent ID: 8495251

Claim:
A method comprising: a) initializing a finite state machine including (i) an interface with a plurality of connections, (ii) a memory buffer including a plurality of locations for storing a last accessed timestamp by setting a status property of the locations to inactive, and (iii) a memory pointer, the memory pointer initialized by setting it to point to one of the plurality of locations; b) performing a timestamp analysis by: i) when the status property of the location of the memory pointer is active A) reading a last accessed timestamp corresponding to the location of the memory pointer; B) determining whether a timeout has occurred based on the last accessed timestamp, a current timestamp and a stored timeout value; C) if a timeout has not occurred or the location of the memory pointer is inactive, repeating step (b)(ii); D) if a timeout has occurred and the location of the memory pointer is active, notifying a higher communication layer and updating the status property of the location of the memory pointer to inactive; and ii) incrementing the memory pointer; c) if an incoming data packet is received, handling the packet by: i) processing the incoming data packet with an incoming data handler configured to process the incoming data packet in the higher communication layer; ii) if the incoming data packet is part of a new connection, the new connection status of the incoming data packet indicated by a lack of an entry corresponding to the connection of the incoming data packet in the plurality of memory locations, storing the data packet in one of the locations in the memory buffer; iii) updating the status property of the location to active and setting the last accessed timestamp in one of the plurality of locations in the memory buffer; and d) repeating step (b).