OpenFlow to protokół komunikacyjny umożliwiający zdalny dostęp do płaszczyzny danych urządzenia sieciowego. Zamierzeniem twórców protokołu było wsparcie budowy programowalnych sieci komputerowych (ang. Software-defined network, SDN) dzięki standaryzacji oraz dopasowaniu do możliwości produkowanych urządzeń.
Zasada działania OpenFlow Uczestnicy komunikacji
mały|Przykładowa architektura sieci wykorzystującej protokół OpenFlow - w wersji z czystymi przełącznikami OpenFlow
Protokół OpenFlow rozdziela płaszczyznę danych (ang. forwarding plane) przełączników sieciowych i ruterów oraz sterowania (ang. control plane). Płaszczyzna danych realizowana jest przez urządzenia nazywane w tym kontekście przełącznikami OpenFlow, a płaszczyznę sterowania realizują kontrolery OpenFlow. W celu osiągnięcia postulowanej w ramach SDN centralizacji funkcji sterowania, każdy kontroler na ogół będzie sterował wieloma przełącznikami. Danym przełącznikiem może natomiast sterować wiele kontrolerów np. w celu uzyskania odporności na awarie lub równoważenia obciążenia.