1. A method of filtering an input packet stream, said method comprising the steps of: establishing a session database adapted to store session related data for a plurality of sessions, each session corresponding to a socket; opening a new session upon receipt of a socket not previously stored in said session database; recognizing a session associated with a received packet in accordance with its associated socket; processing the session data corresponding to said received packet in accordance with a plurality of predefined rules to generate processing results; and deciding whether to allow or deny said received packet in accordance with said processing results.