What's the difference between a traditional switch and OpenFlow Switch?
I know that OpenFlow switch is used in Software-defined networking but am failing to understand why a OpenFlow switch is so special?
A normal switch works independently of the rest of the network.
A OpenFlow/SDN switch, when it receives a packet, that it does not have a flow for (Match + exit port) will contact a SDN controller (Server) and ask what must it do with this packet. The controller can then download a flow to the switch, possibly including some packet manipulation. Once the flow is downloaded to the switch it will switch similar packets at wire-speed.
Why is centralizing the decision such a big deal?
Having a central server that knows the network layout and can make all the switching decisions and build the paths gives us new capabilities.
In a traditional switch device, packet forwarding and high-level routing are on the same device. An OpenFlow switch separates the data path from the control path. Separate controller makes high-level routing decisions. The switch and controller communicate by the OpenFlow protocol.
So in the old switches you would have to go to the locations of the switch login to the command line and then configure it through the command line.
With open flow enabled switches you could program the switch by sending commands through openflow messages. SDN controller helps you to program the switches. In other words, SDN controller uses openflow and gives you an interface to program the switched.