1. A flow-based network switching system, comprising: a memory including a flow table; a packet processor coupled to the memory, wherein the packet processor includes: a user-programmable flow-based rule storage that includes a plurality of flow-based rules; a flow-based handler and session manager that is configured to retrieve application layer metadata that includes a first application signature from a first packet, determine a first flow session associated with the first packet using the first application signature in the application layer metadata from the first packet and the flow table, and retrieve at least one of the plurality of flow-based rules from the programmable flow-based rule storage using the first application signature in the application layer metadata from the first packet; and a flow-based rule processing engine that is configured to apply the at least one flow-based rule to the first packet.