Openflow wurde an der Universität Stanford entwickelt. Ziel von Openflow ist es, eine standardisierte Schnittstelle zur Ansteuerung von Netzwerkgeräten (Switches, Router, Basisstationen) zu schaffen. Bei klassischen Switches werden Routing- und Forwarding-Entscheidungen auf demselben Gerät getroffen. Bei Openflow-Switches hingegen werden die Forwarding-Entscheidungen weiterhin auf dem Switch getroffen, während die Routing-Entscheidungen auf einen externen Controller verlagert werden. Der Switch und der Controller kommunizieren über das Openflow-Protokoll, das dem Controller erlaubt, die Forwarding-Tabelle eines Switches zu manipulieren. Netzadministratoren können so den Datenverkehr aufteilen, indem sie die Routen angeben, auf denen die Pakete weitergeleitet werden sollen. Somit können beispielsweise neue Protokolle, Sicherheitsmodelle oder ein neues Adressierungsschema getestet werden, ohne den Produktionsdatenverkehr zu beeinträchtigen. Des Weiteren können Geräte unterschiedlicher Hersteller angesteuert werden, ohne dass die Hersteller den internen Aufbau ihrer Geräte offenlegen müssen.