Stateful filters keep a "list" of already established connections, and if the connection is being established, what step of the TCP handshake we are on (SYN, SYN ACK etc.). Stateful is supposed better at detecting faked packets.
Stateless filters don't keep a list. Every packet is processed in isolation, with no regard to the previous packets. Stateless is supposed to be better for processing packets faster.
How do they process UDP connections? I read somewhere that stateless filters can either be set up to block all UDP connections or let all of them through, which could be a major security flaw.
Can someone please tell me the major differences between the two?