1. A flow-based network switching system, comprising: a memory including a flow table including a plurality of flow match rules; 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 first session layer metadata that includes a first session protocol from a first packet; determine a first flow session associated with the first packet using the flow table and the first session protocol in the first session layer metadata from the first packet; retrieve at least one of the plurality of flow-based rules from the programmable flow-based rule storage using the first session protocol in the session layer metadata from the first packet; retrieve second session layer metadata that includes a second session protocol from a second packet; determine that at least one of the plurality of flow match rules from the flow table is associated with the second session protocol in the second session layer metadata from the second packet; determine that no flow session is available; and create a second flow session that is associated with the second packet; and a flow-based rule processing engine that is configured to apply the at least one flow-based rule to the first packet.